@mars_ai/marscli 2.0.13 → 2.0.15

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 (1187) hide show
  1. package/CHANGELOG.md +6515 -0
  2. package/README.md +71 -22
  3. package/dist/bun/cli.d.ts +5 -0
  4. package/dist/bun/cli.d.ts.map +1 -0
  5. package/dist/bun/cli.js +5 -0
  6. package/dist/bun/cli.js.map +1 -0
  7. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  8. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  9. package/dist/bun/restore-sandbox-env.js +36 -0
  10. package/dist/bun/restore-sandbox-env.js.map +1 -0
  11. package/dist/bun/runtime-setup.d.ts +2 -0
  12. package/dist/bun/runtime-setup.d.ts.map +1 -0
  13. package/dist/bun/runtime-setup.js +12 -0
  14. package/dist/bun/runtime-setup.js.map +1 -0
  15. package/dist/bun/sandbox-env-setup.d.ts +2 -0
  16. package/dist/bun/sandbox-env-setup.d.ts.map +1 -0
  17. package/dist/bun/sandbox-env-setup.js +4 -0
  18. package/dist/bun/sandbox-env-setup.js.map +1 -0
  19. package/dist/bundle/chunks/anthropic-messages-QCK7M7VG.js +6 -0
  20. package/dist/bundle/chunks/anthropic.js +75 -0
  21. package/dist/bundle/chunks/azure-openai-responses-LMBPTTDE.js +2 -0
  22. package/dist/bundle/chunks/bedrock-converse-stream.js +89 -0
  23. package/dist/bundle/chunks/chunk-45GGYWI5.js +2 -0
  24. package/dist/bundle/chunks/chunk-5AGIVGSV.js +6 -0
  25. package/dist/bundle/chunks/chunk-5ZIVIB55.js +8 -0
  26. package/dist/bundle/chunks/chunk-6QGV3IWD.js +6 -0
  27. package/dist/bundle/chunks/chunk-7CBJINYJ.js +20 -0
  28. package/dist/bundle/chunks/chunk-7DDKXS2Q.js +2 -0
  29. package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
  30. package/dist/bundle/chunks/chunk-AZEKCFSR.js +82 -0
  31. package/dist/bundle/chunks/chunk-BUEFMMN7.js +1261 -0
  32. package/dist/bundle/chunks/chunk-CF5GWZHW.js +31 -0
  33. package/dist/bundle/chunks/chunk-FFMDRXC4.js +10 -0
  34. package/dist/bundle/chunks/chunk-FR2OJIAF.js +2 -0
  35. package/dist/bundle/chunks/chunk-G4QXDUQL.js +30 -0
  36. package/dist/bundle/chunks/chunk-GFUN2N5K.js +2 -0
  37. package/dist/bundle/chunks/chunk-GXW3X65X.js +4 -0
  38. package/dist/bundle/chunks/chunk-ICLDQMTM.js +129 -0
  39. package/dist/bundle/chunks/chunk-IEBK4HQA.js +2 -0
  40. package/dist/bundle/chunks/chunk-JEIXS66U.js +2 -0
  41. package/dist/bundle/chunks/chunk-JK44MIUX.js +44 -0
  42. package/dist/bundle/chunks/chunk-JXUDILQJ.js +16 -0
  43. package/dist/bundle/chunks/chunk-JXWJOIH4.js +2 -0
  44. package/dist/bundle/chunks/chunk-K5TQM7UY.js +2 -0
  45. package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  46. package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
  47. package/dist/bundle/chunks/chunk-LVVZS2NO.js +12 -0
  48. package/dist/bundle/chunks/chunk-MTY47RPT.js +19 -0
  49. package/dist/bundle/chunks/chunk-OLNSR6Z3.js +13 -0
  50. package/dist/bundle/chunks/chunk-P7FPUEYA.js +2 -0
  51. package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  52. package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
  53. package/dist/bundle/chunks/chunk-PMRZO46Y.js +2 -0
  54. package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  55. package/dist/bundle/chunks/chunk-RDZVAGPR.js +2 -0
  56. package/dist/bundle/chunks/chunk-TVDA4NZP.js +55 -0
  57. package/dist/bundle/chunks/chunk-UNAPBUIX.js +2 -0
  58. package/dist/bundle/chunks/chunk-UTB4DTYQ.js +2 -0
  59. package/dist/bundle/chunks/chunk-V6KH5QG4.js +9 -0
  60. package/dist/bundle/chunks/chunk-ZG74NES2.js +2 -0
  61. package/dist/bundle/chunks/cli-CI7EFTTK.js +53 -0
  62. package/dist/bundle/chunks/codemode-worker.js +478 -0
  63. package/dist/bundle/chunks/easter-egg-3d-P2D4BQR7.js +2 -0
  64. package/dist/bundle/chunks/execute-PRYDOFWM.js +505 -0
  65. package/dist/bundle/chunks/github-copilot.js +2 -0
  66. package/dist/bundle/chunks/google-generative-ai-WFLFMJYT.js +2 -0
  67. package/dist/bundle/chunks/google-vertex-3VJ5WJYY.js +2 -0
  68. package/dist/bundle/chunks/https-proxy-agent-LVOO5TPL.js +13 -0
  69. package/dist/bundle/chunks/image-resize-worker.js +2 -0
  70. package/dist/bundle/chunks/jiti-loader-GL4HJFAD.js +21 -0
  71. package/dist/bundle/chunks/jiti-static-loader-2RCDI6B4.js +2 -0
  72. package/dist/bundle/chunks/kimi-coding.js +2 -0
  73. package/dist/bundle/chunks/lib-4AVRLBHM.js +9 -0
  74. package/dist/bundle/chunks/meta.js +2 -0
  75. package/dist/bundle/chunks/mistral-conversations-G22LGLWM.js +5 -0
  76. package/dist/bundle/chunks/multipart-parser-FMGQ7342.js +3 -0
  77. package/dist/bundle/chunks/node-AUOGOBCN.js +2 -0
  78. package/dist/bundle/chunks/node-KCMANYC2.js +16 -0
  79. package/dist/bundle/chunks/openai-chatgpt.js +75 -0
  80. package/dist/bundle/chunks/openai-codex-responses-CDQVKDUO.js +10 -0
  81. package/dist/bundle/chunks/openai-codex.js +75 -0
  82. package/dist/bundle/chunks/openai-completions-RAU4DJDG.js +7 -0
  83. package/dist/bundle/chunks/openai-responses-4IZEGS2C.js +4 -0
  84. package/dist/bundle/chunks/openrouter-images-EXXX2XDD.js +2 -0
  85. package/dist/bundle/chunks/openrouter.js +75 -0
  86. package/dist/bundle/chunks/pi-messages-YPAWD2FK.js +8 -0
  87. package/dist/bundle/chunks/radius.js +75 -0
  88. package/dist/bundle/chunks/runtime-4K2RC6HQ.js +2 -0
  89. package/dist/bundle/chunks/src-QKGKDFSU.js +4 -0
  90. package/dist/bundle/chunks/typesafe-system-one-2F7KHMWD.js +2 -0
  91. package/dist/bundle/chunks/virtual-modules-XDTMJGCH.js +2 -0
  92. package/dist/bundle/chunks/xai.js +2 -0
  93. package/dist/bundle/cli-runtime.js +3 -0
  94. package/dist/bundle/cli.js +5 -0
  95. package/dist/bundle/index.js +2 -0
  96. package/dist/bundle/rpc-entry.js +3 -0
  97. package/dist/cli/args.d.ts +62 -0
  98. package/dist/cli/args.d.ts.map +1 -0
  99. package/dist/cli/args.js +474 -0
  100. package/dist/cli/args.js.map +1 -0
  101. package/dist/cli/auth-check.d.ts +19 -0
  102. package/dist/cli/auth-check.d.ts.map +1 -0
  103. package/dist/cli/auth-check.js +50 -0
  104. package/dist/cli/auth-check.js.map +1 -0
  105. package/dist/cli/auth-command.d.ts +24 -0
  106. package/dist/cli/auth-command.d.ts.map +1 -0
  107. package/dist/cli/auth-command.js +103 -0
  108. package/dist/cli/auth-command.js.map +1 -0
  109. package/dist/cli/config-selector.d.ts +16 -0
  110. package/dist/cli/config-selector.d.ts.map +1 -0
  111. package/dist/cli/config-selector.js +34 -0
  112. package/dist/cli/config-selector.js.map +1 -0
  113. package/dist/cli/credential-print.d.ts +13 -0
  114. package/dist/cli/credential-print.d.ts.map +1 -0
  115. package/dist/cli/credential-print.js +76 -0
  116. package/dist/cli/credential-print.js.map +1 -0
  117. package/dist/cli/file-processor.d.ts +15 -0
  118. package/dist/cli/file-processor.d.ts.map +1 -0
  119. package/dist/cli/file-processor.js +71 -0
  120. package/dist/cli/file-processor.js.map +1 -0
  121. package/dist/cli/initial-message.d.ts +18 -0
  122. package/dist/cli/initial-message.d.ts.map +1 -0
  123. package/dist/cli/initial-message.js +22 -0
  124. package/dist/cli/initial-message.js.map +1 -0
  125. package/dist/cli/list-models.d.ts +9 -0
  126. package/dist/cli/list-models.d.ts.map +1 -0
  127. package/dist/cli/list-models.js +98 -0
  128. package/dist/cli/list-models.js.map +1 -0
  129. package/dist/cli/project-trust.d.ts +10 -0
  130. package/dist/cli/project-trust.d.ts.map +1 -0
  131. package/dist/cli/project-trust.js +48 -0
  132. package/dist/cli/project-trust.js.map +1 -0
  133. package/dist/cli/session-picker.d.ts +10 -0
  134. package/dist/cli/session-picker.d.ts.map +1 -0
  135. package/dist/cli/session-picker.js +36 -0
  136. package/dist/cli/session-picker.js.map +1 -0
  137. package/dist/cli/setup.d.ts +2 -0
  138. package/dist/cli/setup.d.ts.map +1 -0
  139. package/dist/cli/setup.js +12 -0
  140. package/dist/cli/setup.js.map +1 -0
  141. package/dist/cli/startup-ui.d.ts +20 -0
  142. package/dist/cli/startup-ui.d.ts.map +1 -0
  143. package/dist/cli/startup-ui.js +175 -0
  144. package/dist/cli/startup-ui.js.map +1 -0
  145. package/dist/cli.d.ts +3 -0
  146. package/dist/cli.d.ts.map +1 -0
  147. package/dist/cli.js +6 -0
  148. package/dist/cli.js.map +1 -0
  149. package/dist/config.d.ts +136 -0
  150. package/dist/config.d.ts.map +1 -0
  151. package/dist/config.js +554 -0
  152. package/dist/config.js.map +1 -0
  153. package/dist/core/agent-session-runtime.d.ts +124 -0
  154. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  155. package/dist/core/agent-session-runtime.js +324 -0
  156. package/dist/core/agent-session-runtime.js.map +1 -0
  157. package/dist/core/agent-session-services.d.ts +86 -0
  158. package/dist/core/agent-session-services.d.ts.map +1 -0
  159. package/dist/core/agent-session-services.js +147 -0
  160. package/dist/core/agent-session-services.js.map +1 -0
  161. package/dist/core/agent-session.d.ts +950 -0
  162. package/dist/core/agent-session.d.ts.map +1 -0
  163. package/dist/core/agent-session.js +3710 -0
  164. package/dist/core/agent-session.js.map +1 -0
  165. package/dist/core/auth-guidance.d.ts +5 -0
  166. package/dist/core/auth-guidance.d.ts.map +1 -0
  167. package/dist/core/auth-guidance.js +21 -0
  168. package/dist/core/auth-guidance.js.map +1 -0
  169. package/dist/core/auth-storage.d.ts +72 -0
  170. package/dist/core/auth-storage.d.ts.map +1 -0
  171. package/dist/core/auth-storage.js +434 -0
  172. package/dist/core/auth-storage.js.map +1 -0
  173. package/dist/core/bash-executor.d.ts +32 -0
  174. package/dist/core/bash-executor.d.ts.map +1 -0
  175. package/dist/core/bash-executor.js +103 -0
  176. package/dist/core/bash-executor.js.map +1 -0
  177. package/dist/core/bug-report-upload.d.ts +12 -0
  178. package/dist/core/bug-report-upload.d.ts.map +1 -0
  179. package/dist/core/bug-report-upload.js +22 -0
  180. package/dist/core/bug-report-upload.js.map +1 -0
  181. package/dist/core/bug-report.d.ts +184 -0
  182. package/dist/core/bug-report.d.ts.map +1 -0
  183. package/dist/core/bug-report.js +292 -0
  184. package/dist/core/bug-report.js.map +1 -0
  185. package/dist/core/cache-stats.d.ts +49 -0
  186. package/dist/core/cache-stats.d.ts.map +1 -0
  187. package/dist/core/cache-stats.js +112 -0
  188. package/dist/core/cache-stats.js.map +1 -0
  189. package/dist/core/cache-warmer.d.ts +103 -0
  190. package/dist/core/cache-warmer.d.ts.map +1 -0
  191. package/dist/core/cache-warmer.js +358 -0
  192. package/dist/core/cache-warmer.js.map +1 -0
  193. package/dist/core/client-identity.d.ts +8 -0
  194. package/dist/core/client-identity.d.ts.map +1 -0
  195. package/dist/core/client-identity.js +15 -0
  196. package/dist/core/client-identity.js.map +1 -0
  197. package/dist/core/compaction/branch-summarization.d.ts +100 -0
  198. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  199. package/dist/core/compaction/branch-summarization.js +262 -0
  200. package/dist/core/compaction/branch-summarization.js.map +1 -0
  201. package/dist/core/compaction/compaction.d.ts +145 -0
  202. package/dist/core/compaction/compaction.d.ts.map +1 -0
  203. package/dist/core/compaction/compaction.js +749 -0
  204. package/dist/core/compaction/compaction.js.map +1 -0
  205. package/dist/core/compaction/index.d.ts +7 -0
  206. package/dist/core/compaction/index.d.ts.map +1 -0
  207. package/dist/core/compaction/index.js +7 -0
  208. package/dist/core/compaction/index.js.map +1 -0
  209. package/dist/core/compaction/utils.d.ts +45 -0
  210. package/dist/core/compaction/utils.d.ts.map +1 -0
  211. package/dist/core/compaction/utils.js +149 -0
  212. package/dist/core/compaction/utils.js.map +1 -0
  213. package/dist/core/crash-log.d.ts +27 -0
  214. package/dist/core/crash-log.d.ts.map +1 -0
  215. package/dist/core/crash-log.js +140 -0
  216. package/dist/core/crash-log.js.map +1 -0
  217. package/dist/core/defaults.d.ts +4 -0
  218. package/dist/core/defaults.d.ts.map +1 -0
  219. package/dist/core/defaults.js +11 -0
  220. package/dist/core/defaults.js.map +1 -0
  221. package/dist/core/diagnostics.d.ts +15 -0
  222. package/dist/core/diagnostics.d.ts.map +1 -0
  223. package/dist/core/diagnostics.js +2 -0
  224. package/dist/core/diagnostics.js.map +1 -0
  225. package/dist/core/event-bus.d.ts +9 -0
  226. package/dist/core/event-bus.d.ts.map +1 -0
  227. package/dist/core/event-bus.js +25 -0
  228. package/dist/core/event-bus.js.map +1 -0
  229. package/dist/core/exec.d.ts +37 -0
  230. package/dist/core/exec.d.ts.map +1 -0
  231. package/dist/core/exec.js +119 -0
  232. package/dist/core/exec.js.map +1 -0
  233. package/dist/core/experimental.d.ts +2 -0
  234. package/dist/core/experimental.d.ts.map +1 -0
  235. package/dist/core/experimental.js +4 -0
  236. package/dist/core/experimental.js.map +1 -0
  237. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  238. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  239. package/dist/core/export-html/ansi-to-html.js +249 -0
  240. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  241. package/dist/core/export-html/index.d.ts +37 -0
  242. package/dist/core/export-html/index.d.ts.map +1 -0
  243. package/dist/core/export-html/index.js +228 -0
  244. package/dist/core/export-html/index.js.map +1 -0
  245. package/dist/core/export-html/template.css +1085 -0
  246. package/dist/core/export-html/template.html +56 -0
  247. package/dist/core/export-html/template.js +2044 -0
  248. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  249. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  250. package/dist/core/export-html/tool-renderer.js +113 -0
  251. package/dist/core/export-html/tool-renderer.js.map +1 -0
  252. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  253. package/dist/core/export-html/vendor/marked-cjk-friendly.min.js +6 -0
  254. package/dist/core/export-html/vendor/marked.min.js +79 -0
  255. package/dist/core/extensions/index.d.ts +12 -0
  256. package/dist/core/extensions/index.d.ts.map +1 -0
  257. package/dist/core/extensions/index.js +9 -0
  258. package/dist/core/extensions/index.js.map +1 -0
  259. package/dist/core/extensions/jiti-loader.d.ts +2 -0
  260. package/dist/core/extensions/jiti-loader.d.ts.map +1 -0
  261. package/dist/core/extensions/jiti-loader.js +4 -0
  262. package/dist/core/extensions/jiti-loader.js.map +1 -0
  263. package/dist/core/extensions/jiti-static-loader.d.ts +2 -0
  264. package/dist/core/extensions/jiti-static-loader.d.ts.map +1 -0
  265. package/dist/core/extensions/jiti-static-loader.js +4 -0
  266. package/dist/core/extensions/jiti-static-loader.js.map +1 -0
  267. package/dist/core/extensions/loader.d.ts +23 -0
  268. package/dist/core/extensions/loader.d.ts.map +1 -0
  269. package/dist/core/extensions/loader.js +710 -0
  270. package/dist/core/extensions/loader.js.map +1 -0
  271. package/dist/core/extensions/pi-ai-extension-view.d.ts +19 -0
  272. package/dist/core/extensions/pi-ai-extension-view.d.ts.map +1 -0
  273. package/dist/core/extensions/pi-ai-extension-view.js +22 -0
  274. package/dist/core/extensions/pi-ai-extension-view.js.map +1 -0
  275. package/dist/core/extensions/runner.d.ts +216 -0
  276. package/dist/core/extensions/runner.d.ts.map +1 -0
  277. package/dist/core/extensions/runner.js +1246 -0
  278. package/dist/core/extensions/runner.js.map +1 -0
  279. package/dist/core/extensions/types.d.ts +1801 -0
  280. package/dist/core/extensions/types.d.ts.map +1 -0
  281. package/dist/core/extensions/types.js +48 -0
  282. package/dist/core/extensions/types.js.map +1 -0
  283. package/dist/core/extensions/virtual-modules.d.ts +3 -0
  284. package/dist/core/extensions/virtual-modules.d.ts.map +1 -0
  285. package/dist/core/extensions/virtual-modules.js +42 -0
  286. package/dist/core/extensions/virtual-modules.js.map +1 -0
  287. package/dist/core/extensions/wrapper.d.ts +20 -0
  288. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  289. package/dist/core/extensions/wrapper.js +22 -0
  290. package/dist/core/extensions/wrapper.js.map +1 -0
  291. package/dist/core/footer-data-provider.d.ts +64 -0
  292. package/dist/core/footer-data-provider.d.ts.map +1 -0
  293. package/dist/core/footer-data-provider.js +338 -0
  294. package/dist/core/footer-data-provider.js.map +1 -0
  295. package/dist/core/http-dispatcher.d.ts +22 -0
  296. package/dist/core/http-dispatcher.d.ts.map +1 -0
  297. package/dist/core/http-dispatcher.js +98 -0
  298. package/dist/core/http-dispatcher.js.map +1 -0
  299. package/dist/core/index.d.ts +14 -0
  300. package/dist/core/index.d.ts.map +1 -0
  301. package/dist/core/index.js +13 -0
  302. package/dist/core/index.js.map +1 -0
  303. package/dist/core/key-id-schema.d.ts +6 -0
  304. package/dist/core/key-id-schema.d.ts.map +1 -0
  305. package/dist/core/key-id-schema.js +16 -0
  306. package/dist/core/key-id-schema.js.map +1 -0
  307. package/dist/core/keybindings-schema.d.ts +4 -0
  308. package/dist/core/keybindings-schema.d.ts.map +1 -0
  309. package/dist/core/keybindings-schema.js +16 -0
  310. package/dist/core/keybindings-schema.js.map +1 -0
  311. package/dist/core/keybindings.d.ts +560 -0
  312. package/dist/core/keybindings.d.ts.map +1 -0
  313. package/dist/core/keybindings.js +324 -0
  314. package/dist/core/keybindings.js.map +1 -0
  315. package/dist/core/mcp-servers.d.ts +121 -0
  316. package/dist/core/mcp-servers.d.ts.map +1 -0
  317. package/dist/core/mcp-servers.js +163 -0
  318. package/dist/core/mcp-servers.js.map +1 -0
  319. package/dist/core/messages.d.ts +77 -0
  320. package/dist/core/messages.d.ts.map +1 -0
  321. package/dist/core/messages.js +124 -0
  322. package/dist/core/messages.js.map +1 -0
  323. package/dist/core/model-config.d.ts +2000 -0
  324. package/dist/core/model-config.d.ts.map +1 -0
  325. package/dist/core/model-config.js +167 -0
  326. package/dist/core/model-config.js.map +1 -0
  327. package/dist/core/model-registry.d.ts +63 -0
  328. package/dist/core/model-registry.d.ts.map +1 -0
  329. package/dist/core/model-registry.js +144 -0
  330. package/dist/core/model-registry.js.map +1 -0
  331. package/dist/core/model-resolver.d.ts +139 -0
  332. package/dist/core/model-resolver.d.ts.map +1 -0
  333. package/dist/core/model-resolver.js +495 -0
  334. package/dist/core/model-resolver.js.map +1 -0
  335. package/dist/core/model-runtime.d.ts +150 -0
  336. package/dist/core/model-runtime.d.ts.map +1 -0
  337. package/dist/core/model-runtime.js +774 -0
  338. package/dist/core/model-runtime.js.map +1 -0
  339. package/dist/core/models-store.d.ts +22 -0
  340. package/dist/core/models-store.d.ts.map +1 -0
  341. package/dist/core/models-store.js +115 -0
  342. package/dist/core/models-store.js.map +1 -0
  343. package/dist/core/nested-tool-calls.d.ts +103 -0
  344. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  345. package/dist/core/nested-tool-calls.js +179 -0
  346. package/dist/core/nested-tool-calls.js.map +1 -0
  347. package/dist/core/output-guard.d.ts +7 -0
  348. package/dist/core/output-guard.d.ts.map +1 -0
  349. package/dist/core/output-guard.js +89 -0
  350. package/dist/core/output-guard.js.map +1 -0
  351. package/dist/core/package-manager.d.ts +240 -0
  352. package/dist/core/package-manager.d.ts.map +1 -0
  353. package/dist/core/package-manager.js +2383 -0
  354. package/dist/core/package-manager.js.map +1 -0
  355. package/dist/core/pi-ai-schemas.d.ts +166 -0
  356. package/dist/core/pi-ai-schemas.d.ts.map +1 -0
  357. package/dist/core/pi-ai-schemas.js +21 -0
  358. package/dist/core/pi-ai-schemas.js.map +1 -0
  359. package/dist/core/pi-manifest.d.ts +9 -0
  360. package/dist/core/pi-manifest.d.ts.map +1 -0
  361. package/dist/core/pi-manifest.js +30 -0
  362. package/dist/core/pi-manifest.js.map +1 -0
  363. package/dist/core/project-trust.d.ts +15 -0
  364. package/dist/core/project-trust.d.ts.map +1 -0
  365. package/dist/core/project-trust.js +60 -0
  366. package/dist/core/project-trust.js.map +1 -0
  367. package/dist/core/prompt-templates.d.ts +59 -0
  368. package/dist/core/prompt-templates.d.ts.map +1 -0
  369. package/dist/core/prompt-templates.js +267 -0
  370. package/dist/core/prompt-templates.js.map +1 -0
  371. package/dist/core/provider-composer.d.ts +81 -0
  372. package/dist/core/provider-composer.d.ts.map +1 -0
  373. package/dist/core/provider-composer.js +492 -0
  374. package/dist/core/provider-composer.js.map +1 -0
  375. package/dist/core/radius.d.ts +7 -0
  376. package/dist/core/radius.d.ts.map +1 -0
  377. package/dist/core/radius.js +10 -0
  378. package/dist/core/radius.js.map +1 -0
  379. package/dist/core/remote-catalog-provider.d.ts +23 -0
  380. package/dist/core/remote-catalog-provider.d.ts.map +1 -0
  381. package/dist/core/remote-catalog-provider.js +190 -0
  382. package/dist/core/remote-catalog-provider.js.map +1 -0
  383. package/dist/core/resolve-config-value.d.ts +30 -0
  384. package/dist/core/resolve-config-value.d.ts.map +1 -0
  385. package/dist/core/resolve-config-value.js +247 -0
  386. package/dist/core/resolve-config-value.js.map +1 -0
  387. package/dist/core/resource-loader.d.ts +233 -0
  388. package/dist/core/resource-loader.d.ts.map +1 -0
  389. package/dist/core/resource-loader.js +1025 -0
  390. package/dist/core/resource-loader.js.map +1 -0
  391. package/dist/core/runtime-credentials.d.ts +23 -0
  392. package/dist/core/runtime-credentials.d.ts.map +1 -0
  393. package/dist/core/runtime-credentials.js +53 -0
  394. package/dist/core/runtime-credentials.js.map +1 -0
  395. package/dist/core/sdk.d.ts +117 -0
  396. package/dist/core/sdk.d.ts.map +1 -0
  397. package/dist/core/sdk.js +329 -0
  398. package/dist/core/sdk.js.map +1 -0
  399. package/dist/core/session-cwd.d.ts +19 -0
  400. package/dist/core/session-cwd.d.ts.map +1 -0
  401. package/dist/core/session-cwd.js +38 -0
  402. package/dist/core/session-cwd.js.map +1 -0
  403. package/dist/core/session-export.d.ts +8 -0
  404. package/dist/core/session-export.d.ts.map +1 -0
  405. package/dist/core/session-export.js +33 -0
  406. package/dist/core/session-export.js.map +1 -0
  407. package/dist/core/session-manager.d.ts +423 -0
  408. package/dist/core/session-manager.d.ts.map +1 -0
  409. package/dist/core/session-manager.js +1542 -0
  410. package/dist/core/session-manager.js.map +1 -0
  411. package/dist/core/settings-defaults.d.ts +66 -0
  412. package/dist/core/settings-defaults.d.ts.map +1 -0
  413. package/dist/core/settings-defaults.js +69 -0
  414. package/dist/core/settings-defaults.js.map +1 -0
  415. package/dist/core/settings-diagnostics.d.ts +9 -0
  416. package/dist/core/settings-diagnostics.d.ts.map +1 -0
  417. package/dist/core/settings-diagnostics.js +21 -0
  418. package/dist/core/settings-diagnostics.js.map +1 -0
  419. package/dist/core/settings-manager.d.ts +253 -0
  420. package/dist/core/settings-manager.d.ts.map +1 -0
  421. package/dist/core/settings-manager.js +1154 -0
  422. package/dist/core/settings-manager.js.map +1 -0
  423. package/dist/core/settings-schema.d.ts +232 -0
  424. package/dist/core/settings-schema.d.ts.map +1 -0
  425. package/dist/core/settings-schema.js +301 -0
  426. package/dist/core/settings-schema.js.map +1 -0
  427. package/dist/core/skills.d.ts +63 -0
  428. package/dist/core/skills.d.ts.map +1 -0
  429. package/dist/core/skills.js +404 -0
  430. package/dist/core/skills.js.map +1 -0
  431. package/dist/core/slash-commands.d.ts +15 -0
  432. package/dist/core/slash-commands.d.ts.map +1 -0
  433. package/dist/core/slash-commands.js +32 -0
  434. package/dist/core/slash-commands.js.map +1 -0
  435. package/dist/core/source-info.d.ts +35 -0
  436. package/dist/core/source-info.d.ts.map +1 -0
  437. package/dist/core/source-info.js +48 -0
  438. package/dist/core/source-info.js.map +1 -0
  439. package/dist/core/system-prompt.d.ts +77 -0
  440. package/dist/core/system-prompt.d.ts.map +1 -0
  441. package/dist/core/system-prompt.js +150 -0
  442. package/dist/core/system-prompt.js.map +1 -0
  443. package/dist/core/telemetry.d.ts +3 -0
  444. package/dist/core/telemetry.d.ts.map +1 -0
  445. package/dist/core/telemetry.js +9 -0
  446. package/dist/core/telemetry.js.map +1 -0
  447. package/dist/core/timings.d.ts +10 -0
  448. package/dist/core/timings.d.ts.map +1 -0
  449. package/dist/core/timings.js +41 -0
  450. package/dist/core/timings.js.map +1 -0
  451. package/dist/core/tools/bash.d.ts +100 -0
  452. package/dist/core/tools/bash.d.ts.map +1 -0
  453. package/dist/core/tools/bash.js +363 -0
  454. package/dist/core/tools/bash.js.map +1 -0
  455. package/dist/core/tools/edit-diff.d.ts +101 -0
  456. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  457. package/dist/core/tools/edit-diff.js +421 -0
  458. package/dist/core/tools/edit-diff.js.map +1 -0
  459. package/dist/core/tools/edit.d.ts +44 -0
  460. package/dist/core/tools/edit.d.ts.map +1 -0
  461. package/dist/core/tools/edit.js +145 -0
  462. package/dist/core/tools/edit.js.map +1 -0
  463. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  464. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  465. package/dist/core/tools/file-mutation-queue.js +52 -0
  466. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  467. package/dist/core/tools/find.d.ts +42 -0
  468. package/dist/core/tools/find.d.ts.map +1 -0
  469. package/dist/core/tools/find.js +267 -0
  470. package/dist/core/tools/find.js.map +1 -0
  471. package/dist/core/tools/grep.d.ts +39 -0
  472. package/dist/core/tools/grep.d.ts.map +1 -0
  473. package/dist/core/tools/grep.js +257 -0
  474. package/dist/core/tools/grep.js.map +1 -0
  475. package/dist/core/tools/index.d.ts +43 -0
  476. package/dist/core/tools/index.d.ts.map +1 -0
  477. package/dist/core/tools/index.js +129 -0
  478. package/dist/core/tools/index.js.map +1 -0
  479. package/dist/core/tools/ls.d.ts +41 -0
  480. package/dist/core/tools/ls.d.ts.map +1 -0
  481. package/dist/core/tools/ls.js +127 -0
  482. package/dist/core/tools/ls.js.map +1 -0
  483. package/dist/core/tools/output-accumulator.d.ts +63 -0
  484. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  485. package/dist/core/tools/output-accumulator.js +214 -0
  486. package/dist/core/tools/output-accumulator.js.map +1 -0
  487. package/dist/core/tools/path-utils.d.ts +10 -0
  488. package/dist/core/tools/path-utils.d.ts.map +1 -0
  489. package/dist/core/tools/path-utils.js +99 -0
  490. package/dist/core/tools/path-utils.js.map +1 -0
  491. package/dist/core/tools/powershell.d.ts +16 -0
  492. package/dist/core/tools/powershell.d.ts.map +1 -0
  493. package/dist/core/tools/powershell.js +39 -0
  494. package/dist/core/tools/powershell.js.map +1 -0
  495. package/dist/core/tools/read.d.ts +63 -0
  496. package/dist/core/tools/read.d.ts.map +1 -0
  497. package/dist/core/tools/read.js +302 -0
  498. package/dist/core/tools/read.js.map +1 -0
  499. package/dist/core/tools/render-utils.d.ts +50 -0
  500. package/dist/core/tools/render-utils.d.ts.map +1 -0
  501. package/dist/core/tools/render-utils.js +153 -0
  502. package/dist/core/tools/render-utils.js.map +1 -0
  503. package/dist/core/tools/renderers/bash.d.ts +12 -0
  504. package/dist/core/tools/renderers/bash.d.ts.map +1 -0
  505. package/dist/core/tools/renderers/bash.js +89 -0
  506. package/dist/core/tools/renderers/bash.js.map +1 -0
  507. package/dist/core/tools/renderers/edit.d.ts +23 -0
  508. package/dist/core/tools/renderers/edit.d.ts.map +1 -0
  509. package/dist/core/tools/renderers/edit.js +168 -0
  510. package/dist/core/tools/renderers/edit.js.map +1 -0
  511. package/dist/core/tools/renderers/find.d.ts +10 -0
  512. package/dist/core/tools/renderers/find.d.ts.map +1 -0
  513. package/dist/core/tools/renderers/find.js +64 -0
  514. package/dist/core/tools/renderers/find.js.map +1 -0
  515. package/dist/core/tools/renderers/grep.d.ts +10 -0
  516. package/dist/core/tools/renderers/grep.d.ts.map +1 -0
  517. package/dist/core/tools/renderers/grep.js +69 -0
  518. package/dist/core/tools/renderers/grep.js.map +1 -0
  519. package/dist/core/tools/renderers/index.d.ts +28 -0
  520. package/dist/core/tools/renderers/index.d.ts.map +1 -0
  521. package/dist/core/tools/renderers/index.js +47 -0
  522. package/dist/core/tools/renderers/index.js.map +1 -0
  523. package/dist/core/tools/renderers/ls.d.ts +10 -0
  524. package/dist/core/tools/renderers/ls.d.ts.map +1 -0
  525. package/dist/core/tools/renderers/ls.js +58 -0
  526. package/dist/core/tools/renderers/ls.js.map +1 -0
  527. package/dist/core/tools/renderers/read.d.ts +11 -0
  528. package/dist/core/tools/renderers/read.d.ts.map +1 -0
  529. package/dist/core/tools/renderers/read.js +126 -0
  530. package/dist/core/tools/renderers/read.js.map +1 -0
  531. package/dist/core/tools/renderers/write.d.ts +10 -0
  532. package/dist/core/tools/renderers/write.d.ts.map +1 -0
  533. package/dist/core/tools/renderers/write.js +153 -0
  534. package/dist/core/tools/renderers/write.js.map +1 -0
  535. package/dist/core/tools/tool-definition-wrapper.d.ts +26 -0
  536. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  537. package/dist/core/tools/tool-definition-wrapper.js +38 -0
  538. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  539. package/dist/core/tools/truncate.d.ts +74 -0
  540. package/dist/core/tools/truncate.d.ts.map +1 -0
  541. package/dist/core/tools/truncate.js +238 -0
  542. package/dist/core/tools/truncate.js.map +1 -0
  543. package/dist/core/tools/write.d.ts +30 -0
  544. package/dist/core/tools/write.d.ts.map +1 -0
  545. package/dist/core/tools/write.js +61 -0
  546. package/dist/core/tools/write.js.map +1 -0
  547. package/dist/core/trust-manager.d.ts +36 -0
  548. package/dist/core/trust-manager.d.ts.map +1 -0
  549. package/dist/core/trust-manager.js +210 -0
  550. package/dist/core/trust-manager.js.map +1 -0
  551. package/dist/core/usage-totals.d.ts +21 -0
  552. package/dist/core/usage-totals.d.ts.map +1 -0
  553. package/dist/core/usage-totals.js +81 -0
  554. package/dist/core/usage-totals.js.map +1 -0
  555. package/dist/core/virtual-models.d.ts +117 -0
  556. package/dist/core/virtual-models.d.ts.map +1 -0
  557. package/dist/core/virtual-models.js +124 -0
  558. package/dist/core/virtual-models.js.map +1 -0
  559. package/dist/extensions/codemode/execute.d.ts +16 -0
  560. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  561. package/dist/extensions/codemode/execute.js +740 -0
  562. package/dist/extensions/codemode/execute.js.map +1 -0
  563. package/dist/extensions/codemode/execute.lazy.d.ts +3 -0
  564. package/dist/extensions/codemode/execute.lazy.d.ts.map +1 -0
  565. package/dist/extensions/codemode/execute.lazy.js +3 -0
  566. package/dist/extensions/codemode/execute.lazy.js.map +1 -0
  567. package/dist/extensions/codemode/index.d.ts +21 -0
  568. package/dist/extensions/codemode/index.d.ts.map +1 -0
  569. package/dist/extensions/codemode/index.js +33 -0
  570. package/dist/extensions/codemode/index.js.map +1 -0
  571. package/dist/extensions/codemode/renderer.d.ts +12 -0
  572. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  573. package/dist/extensions/codemode/renderer.js +147 -0
  574. package/dist/extensions/codemode/renderer.js.map +1 -0
  575. package/dist/extensions/codemode/tool.d.ts +125 -0
  576. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  577. package/dist/extensions/codemode/tool.js +313 -0
  578. package/dist/extensions/codemode/tool.js.map +1 -0
  579. package/dist/extensions/codemode/worker.d.ts +7 -0
  580. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  581. package/dist/extensions/codemode/worker.js +7 -0
  582. package/dist/extensions/codemode/worker.js.map +1 -0
  583. package/dist/extensions/index.d.ts +3 -0
  584. package/dist/extensions/index.d.ts.map +1 -0
  585. package/dist/extensions/index.js +19 -0
  586. package/dist/extensions/index.js.map +1 -0
  587. package/dist/extensions/llama/client.d.ts +71 -0
  588. package/dist/extensions/llama/client.d.ts.map +1 -0
  589. package/dist/extensions/llama/client.js +334 -0
  590. package/dist/extensions/llama/client.js.map +1 -0
  591. package/dist/extensions/llama/huggingface.d.ts +23 -0
  592. package/dist/extensions/llama/huggingface.d.ts.map +1 -0
  593. package/dist/extensions/llama/huggingface.js +141 -0
  594. package/dist/extensions/llama/huggingface.js.map +1 -0
  595. package/dist/extensions/llama/index.d.ts +3 -0
  596. package/dist/extensions/llama/index.d.ts.map +1 -0
  597. package/dist/extensions/llama/index.js +219 -0
  598. package/dist/extensions/llama/index.js.map +1 -0
  599. package/dist/extensions/llama/provider.d.ts +12 -0
  600. package/dist/extensions/llama/provider.d.ts.map +1 -0
  601. package/dist/extensions/llama/provider.js +236 -0
  602. package/dist/extensions/llama/provider.js.map +1 -0
  603. package/dist/extensions/llama/ui.d.ts +42 -0
  604. package/dist/extensions/llama/ui.d.ts.map +1 -0
  605. package/dist/extensions/llama/ui.js +440 -0
  606. package/dist/extensions/llama/ui.js.map +1 -0
  607. package/dist/extensions/marsai/index.d.ts +18 -0
  608. package/dist/extensions/marsai/index.d.ts.map +1 -0
  609. package/dist/extensions/marsai/index.js +179 -0
  610. package/dist/extensions/marsai/index.js.map +1 -0
  611. package/dist/extensions/marsai/oauth.d.ts +49 -0
  612. package/dist/extensions/marsai/oauth.d.ts.map +1 -0
  613. package/dist/extensions/marsai/oauth.js +291 -0
  614. package/dist/extensions/marsai/oauth.js.map +1 -0
  615. package/dist/extensions/marsai/web-tools.d.ts +31 -0
  616. package/dist/extensions/marsai/web-tools.d.ts.map +1 -0
  617. package/dist/extensions/marsai/web-tools.js +298 -0
  618. package/dist/extensions/marsai/web-tools.js.map +1 -0
  619. package/dist/extensions/mcp/cli.d.ts +23 -0
  620. package/dist/extensions/mcp/cli.d.ts.map +1 -0
  621. package/dist/extensions/mcp/cli.js +558 -0
  622. package/dist/extensions/mcp/cli.js.map +1 -0
  623. package/dist/extensions/mcp/cli.lazy.d.ts +3 -0
  624. package/dist/extensions/mcp/cli.lazy.d.ts.map +1 -0
  625. package/dist/extensions/mcp/cli.lazy.js +3 -0
  626. package/dist/extensions/mcp/cli.lazy.js.map +1 -0
  627. package/dist/extensions/mcp/config.d.ts +84 -0
  628. package/dist/extensions/mcp/config.d.ts.map +1 -0
  629. package/dist/extensions/mcp/config.js +192 -0
  630. package/dist/extensions/mcp/config.js.map +1 -0
  631. package/dist/extensions/mcp/index.d.ts +79 -0
  632. package/dist/extensions/mcp/index.d.ts.map +1 -0
  633. package/dist/extensions/mcp/index.js +1206 -0
  634. package/dist/extensions/mcp/index.js.map +1 -0
  635. package/dist/extensions/mcp/log.d.ts +16 -0
  636. package/dist/extensions/mcp/log.d.ts.map +1 -0
  637. package/dist/extensions/mcp/log.js +66 -0
  638. package/dist/extensions/mcp/log.js.map +1 -0
  639. package/dist/extensions/mcp/oauth.d.ts +64 -0
  640. package/dist/extensions/mcp/oauth.d.ts.map +1 -0
  641. package/dist/extensions/mcp/oauth.js +188 -0
  642. package/dist/extensions/mcp/oauth.js.map +1 -0
  643. package/dist/extensions/mcp/resources.d.ts +36 -0
  644. package/dist/extensions/mcp/resources.d.ts.map +1 -0
  645. package/dist/extensions/mcp/resources.js +262 -0
  646. package/dist/extensions/mcp/resources.js.map +1 -0
  647. package/dist/extensions/mcp/runtime.d.ts +99 -0
  648. package/dist/extensions/mcp/runtime.d.ts.map +1 -0
  649. package/dist/extensions/mcp/runtime.js +380 -0
  650. package/dist/extensions/mcp/runtime.js.map +1 -0
  651. package/dist/extensions/mcp/runtime.lazy.d.ts +3 -0
  652. package/dist/extensions/mcp/runtime.lazy.d.ts.map +1 -0
  653. package/dist/extensions/mcp/runtime.lazy.js +3 -0
  654. package/dist/extensions/mcp/runtime.lazy.js.map +1 -0
  655. package/dist/extensions/mcp/tools.d.ts +65 -0
  656. package/dist/extensions/mcp/tools.d.ts.map +1 -0
  657. package/dist/extensions/mcp/tools.js +257 -0
  658. package/dist/extensions/mcp/tools.js.map +1 -0
  659. package/dist/extensions/mcp/ui.d.ts +61 -0
  660. package/dist/extensions/mcp/ui.d.ts.map +1 -0
  661. package/dist/extensions/mcp/ui.js +195 -0
  662. package/dist/extensions/mcp/ui.js.map +1 -0
  663. package/dist/extensions/subagent/agents.d.ts +23 -0
  664. package/dist/extensions/subagent/agents.d.ts.map +1 -0
  665. package/dist/extensions/subagent/agents.js +121 -0
  666. package/dist/extensions/subagent/agents.js.map +1 -0
  667. package/dist/extensions/subagent/index.d.ts +16 -0
  668. package/dist/extensions/subagent/index.d.ts.map +1 -0
  669. package/dist/extensions/subagent/index.js +1080 -0
  670. package/dist/extensions/subagent/index.js.map +1 -0
  671. package/dist/extensions/subagent/recon-child.d.ts +9 -0
  672. package/dist/extensions/subagent/recon-child.d.ts.map +1 -0
  673. package/dist/extensions/subagent/recon-child.js +80 -0
  674. package/dist/extensions/subagent/recon-child.js.map +1 -0
  675. package/dist/extensions/subagent/recon.d.ts +17 -0
  676. package/dist/extensions/subagent/recon.d.ts.map +1 -0
  677. package/dist/extensions/subagent/recon.js +56 -0
  678. package/dist/extensions/subagent/recon.js.map +1 -0
  679. package/dist/extensions/tool-search/index.d.ts +12 -0
  680. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  681. package/dist/extensions/tool-search/index.js +15 -0
  682. package/dist/extensions/tool-search/index.js.map +1 -0
  683. package/dist/extensions/tool-search/tool.d.ts +86 -0
  684. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  685. package/dist/extensions/tool-search/tool.js +255 -0
  686. package/dist/extensions/tool-search/tool.js.map +1 -0
  687. package/dist/index.d.ts +45 -0
  688. package/dist/index.d.ts.map +1 -0
  689. package/dist/index.js +54 -0
  690. package/dist/index.js.map +1 -0
  691. package/dist/main.d.ts +16 -0
  692. package/dist/main.d.ts.map +1 -0
  693. package/dist/main.js +835 -0
  694. package/dist/main.js.map +1 -0
  695. package/dist/migrations.d.ts +33 -0
  696. package/dist/migrations.d.ts.map +1 -0
  697. package/dist/migrations.js +282 -0
  698. package/dist/migrations.js.map +1 -0
  699. package/dist/modes/index.d.ts +10 -0
  700. package/dist/modes/index.d.ts.map +1 -0
  701. package/dist/modes/index.js +8 -0
  702. package/dist/modes/index.js.map +1 -0
  703. package/dist/modes/interactive/assets/clankolas.png +0 -0
  704. package/dist/modes/interactive/bug-report.d.ts +16 -0
  705. package/dist/modes/interactive/bug-report.d.ts.map +1 -0
  706. package/dist/modes/interactive/bug-report.js +210 -0
  707. package/dist/modes/interactive/bug-report.js.map +1 -0
  708. package/dist/modes/interactive/chat-viewport.d.ts +20 -0
  709. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -0
  710. package/dist/modes/interactive/chat-viewport.js +28 -0
  711. package/dist/modes/interactive/chat-viewport.js.map +1 -0
  712. package/dist/modes/interactive/components/armin.d.ts +37 -0
  713. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  714. package/dist/modes/interactive/components/armin.js +335 -0
  715. package/dist/modes/interactive/components/armin.js.map +1 -0
  716. package/dist/modes/interactive/components/assistant-message.d.ts +29 -0
  717. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  718. package/dist/modes/interactive/components/assistant-message.js +182 -0
  719. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  720. package/dist/modes/interactive/components/auth-url.d.ts +14 -0
  721. package/dist/modes/interactive/components/auth-url.d.ts.map +1 -0
  722. package/dist/modes/interactive/components/auth-url.js +37 -0
  723. package/dist/modes/interactive/components/auth-url.js.map +1 -0
  724. package/dist/modes/interactive/components/bash-execution.d.ts +38 -0
  725. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  726. package/dist/modes/interactive/components/bash-execution.js +178 -0
  727. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  728. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  729. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  730. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  731. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  732. package/dist/modes/interactive/components/branch-summary-message.d.ts +21 -0
  733. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  734. package/dist/modes/interactive/components/branch-summary-message.js +62 -0
  735. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  736. package/dist/modes/interactive/components/compaction-summary-message.d.ts +21 -0
  737. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  738. package/dist/modes/interactive/components/compaction-summary-message.js +63 -0
  739. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  740. package/dist/modes/interactive/components/config-selector.d.ts +102 -0
  741. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  742. package/dist/modes/interactive/components/config-selector.js +758 -0
  743. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  744. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  745. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  746. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  747. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  748. package/dist/modes/interactive/components/custom-editor.d.ts +30 -0
  749. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  750. package/dist/modes/interactive/components/custom-editor.js +122 -0
  751. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  752. package/dist/modes/interactive/components/custom-entry.d.ts +21 -0
  753. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  754. package/dist/modes/interactive/components/custom-entry.js +59 -0
  755. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  756. package/dist/modes/interactive/components/custom-message.d.ts +25 -0
  757. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  758. package/dist/modes/interactive/components/custom-message.js +96 -0
  759. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  760. package/dist/modes/interactive/components/diff.d.ts +12 -0
  761. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  762. package/dist/modes/interactive/components/diff.js +139 -0
  763. package/dist/modes/interactive/components/diff.js.map +1 -0
  764. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  765. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  766. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  767. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  768. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  769. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  770. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  771. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  772. package/dist/modes/interactive/components/easter-egg-3d.d.ts +104 -0
  773. package/dist/modes/interactive/components/easter-egg-3d.d.ts.map +1 -0
  774. package/dist/modes/interactive/components/easter-egg-3d.js +1139 -0
  775. package/dist/modes/interactive/components/easter-egg-3d.js.map +1 -0
  776. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts +6 -0
  777. package/dist/modes/interactive/components/easter-egg-3d.lazy.d.ts.map +1 -0
  778. package/dist/modes/interactive/components/easter-egg-3d.lazy.js +23 -0
  779. package/dist/modes/interactive/components/easter-egg-3d.lazy.js.map +1 -0
  780. package/dist/modes/interactive/components/extension-editor.d.ts +26 -0
  781. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  782. package/dist/modes/interactive/components/extension-editor.js +107 -0
  783. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  784. package/dist/modes/interactive/components/extension-input.d.ts +25 -0
  785. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  786. package/dist/modes/interactive/components/extension-input.js +67 -0
  787. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  788. package/dist/modes/interactive/components/extension-selector.d.ts +27 -0
  789. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  790. package/dist/modes/interactive/components/extension-selector.js +95 -0
  791. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  792. package/dist/modes/interactive/components/first-time-setup.d.ts +26 -0
  793. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  794. package/dist/modes/interactive/components/first-time-setup.js +118 -0
  795. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  796. package/dist/modes/interactive/components/footer.d.ts +39 -0
  797. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  798. package/dist/modes/interactive/components/footer.js +265 -0
  799. package/dist/modes/interactive/components/footer.js.map +1 -0
  800. package/dist/modes/interactive/components/index.d.ts +33 -0
  801. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  802. package/dist/modes/interactive/components/index.js +34 -0
  803. package/dist/modes/interactive/components/index.js.map +1 -0
  804. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  805. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  806. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  807. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  808. package/dist/modes/interactive/components/login-dialog.d.ts +59 -0
  809. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  810. package/dist/modes/interactive/components/login-dialog.js +289 -0
  811. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  812. package/dist/modes/interactive/components/markdown-transform.d.ts +4 -0
  813. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  814. package/dist/modes/interactive/components/markdown-transform.js +20 -0
  815. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  816. package/dist/modes/interactive/components/mermaid.d.ts +12 -0
  817. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  818. package/dist/modes/interactive/components/mermaid.js +80 -0
  819. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  820. package/dist/modes/interactive/components/model-selector.d.ts +61 -0
  821. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  822. package/dist/modes/interactive/components/model-selector.js +380 -0
  823. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  824. package/dist/modes/interactive/components/oauth-selector.d.ts +40 -0
  825. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  826. package/dist/modes/interactive/components/oauth-selector.js +175 -0
  827. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  828. package/dist/modes/interactive/components/pi-logo.d.ts +20 -0
  829. package/dist/modes/interactive/components/pi-logo.d.ts.map +1 -0
  830. package/dist/modes/interactive/components/pi-logo.js +41 -0
  831. package/dist/modes/interactive/components/pi-logo.js.map +1 -0
  832. package/dist/modes/interactive/components/radius-login-selector.d.ts +15 -0
  833. package/dist/modes/interactive/components/radius-login-selector.d.ts.map +1 -0
  834. package/dist/modes/interactive/components/radius-login-selector.js +85 -0
  835. package/dist/modes/interactive/components/radius-login-selector.js.map +1 -0
  836. package/dist/modes/interactive/components/scoped-models-selector.d.ts +47 -0
  837. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  838. package/dist/modes/interactive/components/scoped-models-selector.js +337 -0
  839. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  840. package/dist/modes/interactive/components/session-selector-search.d.ts +27 -0
  841. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  842. package/dist/modes/interactive/components/session-selector-search.js +219 -0
  843. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  844. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  845. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  846. package/dist/modes/interactive/components/session-selector.js +885 -0
  847. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  848. package/dist/modes/interactive/components/settings-selector.d.ts +98 -0
  849. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  850. package/dist/modes/interactive/components/settings-selector.js +753 -0
  851. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  852. package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
  853. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  854. package/dist/modes/interactive/components/settings-submenu.js +167 -0
  855. package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
  856. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  857. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  858. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  859. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  860. package/dist/modes/interactive/components/skill-invocation-message.d.ts +22 -0
  861. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  862. package/dist/modes/interactive/components/skill-invocation-message.js +65 -0
  863. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  864. package/dist/modes/interactive/components/status-indicator.d.ts +32 -0
  865. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  866. package/dist/modes/interactive/components/status-indicator.js +88 -0
  867. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  868. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  869. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  870. package/dist/modes/interactive/components/theme-selector.js +50 -0
  871. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  872. package/dist/modes/interactive/components/themed-text.d.ts +17 -0
  873. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  874. package/dist/modes/interactive/components/themed-text.js +29 -0
  875. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  876. package/dist/modes/interactive/components/thinking-selector.d.ts +23 -0
  877. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  878. package/dist/modes/interactive/components/thinking-selector.js +109 -0
  879. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  880. package/dist/modes/interactive/components/tool-execution.d.ts +79 -0
  881. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  882. package/dist/modes/interactive/components/tool-execution.js +336 -0
  883. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  884. package/dist/modes/interactive/components/tree-selector.d.ts +96 -0
  885. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  886. package/dist/modes/interactive/components/tree-selector.js +1255 -0
  887. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  888. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  889. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  890. package/dist/modes/interactive/components/trust-selector.js +91 -0
  891. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  892. package/dist/modes/interactive/components/user-message-selector.d.ts +31 -0
  893. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  894. package/dist/modes/interactive/components/user-message-selector.js +122 -0
  895. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  896. package/dist/modes/interactive/components/user-message.d.ts +18 -0
  897. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  898. package/dist/modes/interactive/components/user-message.js +54 -0
  899. package/dist/modes/interactive/components/user-message.js.map +1 -0
  900. package/dist/modes/interactive/components/visual-truncate.d.ts +48 -0
  901. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  902. package/dist/modes/interactive/components/visual-truncate.js +66 -0
  903. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  904. package/dist/modes/interactive/external-editor.d.ts +13 -0
  905. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  906. package/dist/modes/interactive/external-editor.js +50 -0
  907. package/dist/modes/interactive/external-editor.js.map +1 -0
  908. package/dist/modes/interactive/interactive-mode.d.ts +528 -0
  909. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  910. package/dist/modes/interactive/interactive-mode.js +6347 -0
  911. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  912. package/dist/modes/interactive/model-catalog-refresh.d.ts +7 -0
  913. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  914. package/dist/modes/interactive/model-catalog-refresh.js +34 -0
  915. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
  916. package/dist/modes/interactive/model-search.d.ts +22 -0
  917. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  918. package/dist/modes/interactive/model-search.js +36 -0
  919. package/dist/modes/interactive/model-search.js.map +1 -0
  920. package/dist/modes/interactive/program-status-reporter.d.ts +34 -0
  921. package/dist/modes/interactive/program-status-reporter.d.ts.map +1 -0
  922. package/dist/modes/interactive/program-status-reporter.js +110 -0
  923. package/dist/modes/interactive/program-status-reporter.js.map +1 -0
  924. package/dist/modes/interactive/session-share.d.ts +18 -0
  925. package/dist/modes/interactive/session-share.d.ts.map +1 -0
  926. package/dist/modes/interactive/session-share.js +195 -0
  927. package/dist/modes/interactive/session-share.js.map +1 -0
  928. package/dist/modes/interactive/theme/dark.json +78 -0
  929. package/dist/modes/interactive/theme/light.json +78 -0
  930. package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
  931. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  932. package/dist/modes/interactive/theme/system-theme.js +546 -0
  933. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  934. package/dist/modes/interactive/theme/theme-controller.d.ts +81 -0
  935. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  936. package/dist/modes/interactive/theme/theme-controller.js +210 -0
  937. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  938. package/dist/modes/interactive/theme/theme-schema.d.ts +28 -0
  939. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  940. package/dist/modes/interactive/theme/theme-schema.js +105 -0
  941. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  942. package/dist/modes/interactive/theme/theme-tokens.d.ts +257 -0
  943. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  944. package/dist/modes/interactive/theme/theme-tokens.js +94 -0
  945. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  946. package/dist/modes/interactive/theme/theme.d.ts +165 -0
  947. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  948. package/dist/modes/interactive/theme/theme.js +917 -0
  949. package/dist/modes/interactive/theme/theme.js.map +1 -0
  950. package/dist/modes/interactive/tui-renderer.d.ts +22 -0
  951. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -0
  952. package/dist/modes/interactive/tui-renderer.js +67 -0
  953. package/dist/modes/interactive/tui-renderer.js.map +1 -0
  954. package/dist/modes/json-event.d.ts +34 -0
  955. package/dist/modes/json-event.d.ts.map +1 -0
  956. package/dist/modes/json-event.js +29 -0
  957. package/dist/modes/json-event.js.map +1 -0
  958. package/dist/modes/print-mode.d.ts +28 -0
  959. package/dist/modes/print-mode.d.ts.map +1 -0
  960. package/dist/modes/print-mode.js +155 -0
  961. package/dist/modes/print-mode.js.map +1 -0
  962. package/dist/modes/rpc/jsonl.d.ts +17 -0
  963. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  964. package/dist/modes/rpc/jsonl.js +49 -0
  965. package/dist/modes/rpc/jsonl.js.map +1 -0
  966. package/dist/modes/rpc/rpc-client.d.ts +254 -0
  967. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  968. package/dist/modes/rpc/rpc-client.js +499 -0
  969. package/dist/modes/rpc/rpc-client.js.map +1 -0
  970. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  971. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  972. package/dist/modes/rpc/rpc-mode.js +685 -0
  973. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  974. package/dist/modes/rpc/rpc-types.d.ts +478 -0
  975. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  976. package/dist/modes/rpc/rpc-types.js +8 -0
  977. package/dist/modes/rpc/rpc-types.js.map +1 -0
  978. package/dist/package-manager-cli.d.ts +9 -0
  979. package/dist/package-manager-cli.d.ts.map +1 -0
  980. package/dist/package-manager-cli.js +1076 -0
  981. package/dist/package-manager-cli.js.map +1 -0
  982. package/dist/rpc-entry.d.ts +3 -0
  983. package/dist/rpc-entry.d.ts.map +1 -0
  984. package/dist/rpc-entry.js +11 -0
  985. package/dist/rpc-entry.js.map +1 -0
  986. package/dist/utils/abort.d.ts +5 -0
  987. package/dist/utils/abort.d.ts.map +1 -0
  988. package/dist/utils/abort.js +48 -0
  989. package/dist/utils/abort.js.map +1 -0
  990. package/dist/utils/ansi.d.ts +10 -0
  991. package/dist/utils/ansi.d.ts.map +1 -0
  992. package/dist/utils/ansi.js +74 -0
  993. package/dist/utils/ansi.js.map +1 -0
  994. package/dist/utils/changelog.d.ts +22 -0
  995. package/dist/utils/changelog.d.ts.map +1 -0
  996. package/dist/utils/changelog.js +171 -0
  997. package/dist/utils/changelog.js.map +1 -0
  998. package/dist/utils/child-process.d.ts +18 -0
  999. package/dist/utils/child-process.d.ts.map +1 -0
  1000. package/dist/utils/child-process.js +106 -0
  1001. package/dist/utils/child-process.js.map +1 -0
  1002. package/dist/utils/cli-invocation.d.ts +11 -0
  1003. package/dist/utils/cli-invocation.d.ts.map +1 -0
  1004. package/dist/utils/cli-invocation.js +23 -0
  1005. package/dist/utils/cli-invocation.js.map +1 -0
  1006. package/dist/utils/clipboard-command.d.ts +7 -0
  1007. package/dist/utils/clipboard-command.d.ts.map +1 -0
  1008. package/dist/utils/clipboard-command.js +52 -0
  1009. package/dist/utils/clipboard-command.js.map +1 -0
  1010. package/dist/utils/clipboard-image.d.ts +11 -0
  1011. package/dist/utils/clipboard-image.d.ts.map +1 -0
  1012. package/dist/utils/clipboard-image.js +214 -0
  1013. package/dist/utils/clipboard-image.js.map +1 -0
  1014. package/dist/utils/clipboard.d.ts +6 -0
  1015. package/dist/utils/clipboard.d.ts.map +1 -0
  1016. package/dist/utils/clipboard.js +162 -0
  1017. package/dist/utils/clipboard.js.map +1 -0
  1018. package/dist/utils/deprecation.d.ts +4 -0
  1019. package/dist/utils/deprecation.d.ts.map +1 -0
  1020. package/dist/utils/deprecation.js +13 -0
  1021. package/dist/utils/deprecation.js.map +1 -0
  1022. package/dist/utils/exif-orientation.d.ts +5 -0
  1023. package/dist/utils/exif-orientation.d.ts.map +1 -0
  1024. package/dist/utils/exif-orientation.js +157 -0
  1025. package/dist/utils/exif-orientation.js.map +1 -0
  1026. package/dist/utils/frontmatter.d.ts +8 -0
  1027. package/dist/utils/frontmatter.d.ts.map +1 -0
  1028. package/dist/utils/frontmatter.js +27 -0
  1029. package/dist/utils/frontmatter.js.map +1 -0
  1030. package/dist/utils/fs-watch.d.ts +5 -0
  1031. package/dist/utils/fs-watch.d.ts.map +1 -0
  1032. package/dist/utils/fs-watch.js +25 -0
  1033. package/dist/utils/fs-watch.js.map +1 -0
  1034. package/dist/utils/git.d.ts +26 -0
  1035. package/dist/utils/git.d.ts.map +1 -0
  1036. package/dist/utils/git.js +195 -0
  1037. package/dist/utils/git.js.map +1 -0
  1038. package/dist/utils/html.d.ts +7 -0
  1039. package/dist/utils/html.d.ts.map +1 -0
  1040. package/dist/utils/html.js +40 -0
  1041. package/dist/utils/html.js.map +1 -0
  1042. package/dist/utils/image-convert.d.ts +22 -0
  1043. package/dist/utils/image-convert.d.ts.map +1 -0
  1044. package/dist/utils/image-convert.js +84 -0
  1045. package/dist/utils/image-convert.js.map +1 -0
  1046. package/dist/utils/image-process.d.ts +18 -0
  1047. package/dist/utils/image-process.d.ts.map +1 -0
  1048. package/dist/utils/image-process.js +83 -0
  1049. package/dist/utils/image-process.js.map +1 -0
  1050. package/dist/utils/image-resize-core.d.ts +42 -0
  1051. package/dist/utils/image-resize-core.d.ts.map +1 -0
  1052. package/dist/utils/image-resize-core.js +131 -0
  1053. package/dist/utils/image-resize-core.js.map +1 -0
  1054. package/dist/utils/image-resize-worker.d.ts +2 -0
  1055. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  1056. package/dist/utils/image-resize-worker.js +32 -0
  1057. package/dist/utils/image-resize-worker.js.map +1 -0
  1058. package/dist/utils/image-resize.d.ts +16 -0
  1059. package/dist/utils/image-resize.d.ts.map +1 -0
  1060. package/dist/utils/image-resize.js +96 -0
  1061. package/dist/utils/image-resize.js.map +1 -0
  1062. package/dist/utils/json.d.ts +3 -0
  1063. package/dist/utils/json.d.ts.map +1 -0
  1064. package/dist/utils/json.js +7 -0
  1065. package/dist/utils/json.js.map +1 -0
  1066. package/dist/utils/management-http.d.ts +25 -0
  1067. package/dist/utils/management-http.d.ts.map +1 -0
  1068. package/dist/utils/management-http.js +54 -0
  1069. package/dist/utils/management-http.js.map +1 -0
  1070. package/dist/utils/mime.d.ts +3 -0
  1071. package/dist/utils/mime.d.ts.map +1 -0
  1072. package/dist/utils/mime.js +110 -0
  1073. package/dist/utils/mime.js.map +1 -0
  1074. package/dist/utils/open-browser.d.ts +9 -0
  1075. package/dist/utils/open-browser.d.ts.map +1 -0
  1076. package/dist/utils/open-browser.js +25 -0
  1077. package/dist/utils/open-browser.js.map +1 -0
  1078. package/dist/utils/output-files.d.ts +15 -0
  1079. package/dist/utils/output-files.d.ts.map +1 -0
  1080. package/dist/utils/output-files.js +30 -0
  1081. package/dist/utils/output-files.js.map +1 -0
  1082. package/dist/utils/paths.d.ts +51 -0
  1083. package/dist/utils/paths.d.ts.map +1 -0
  1084. package/dist/utils/paths.js +156 -0
  1085. package/dist/utils/paths.js.map +1 -0
  1086. package/dist/utils/photon.d.ts +21 -0
  1087. package/dist/utils/photon.d.ts.map +1 -0
  1088. package/dist/utils/photon.js +121 -0
  1089. package/dist/utils/photon.js.map +1 -0
  1090. package/dist/utils/pi-user-agent.d.ts +3 -0
  1091. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  1092. package/dist/utils/pi-user-agent.js +6 -0
  1093. package/dist/utils/pi-user-agent.js.map +1 -0
  1094. package/dist/utils/shell.d.ts +32 -0
  1095. package/dist/utils/shell.d.ts.map +1 -0
  1096. package/dist/utils/shell.js +235 -0
  1097. package/dist/utils/shell.js.map +1 -0
  1098. package/dist/utils/sleep.d.ts +5 -0
  1099. package/dist/utils/sleep.d.ts.map +1 -0
  1100. package/dist/utils/sleep.js +17 -0
  1101. package/dist/utils/sleep.js.map +1 -0
  1102. package/dist/utils/syntax-highlight.d.ts +18 -0
  1103. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  1104. package/dist/utils/syntax-highlight.js +191 -0
  1105. package/dist/utils/syntax-highlight.js.map +1 -0
  1106. package/dist/utils/text.d.ts +8 -0
  1107. package/dist/utils/text.d.ts.map +1 -0
  1108. package/dist/utils/text.js +9 -0
  1109. package/dist/utils/text.js.map +1 -0
  1110. package/dist/utils/tool-result-images.d.ts +21 -0
  1111. package/dist/utils/tool-result-images.d.ts.map +1 -0
  1112. package/dist/utils/tool-result-images.js +48 -0
  1113. package/dist/utils/tool-result-images.js.map +1 -0
  1114. package/dist/utils/tools-manager.d.ts +13 -0
  1115. package/dist/utils/tools-manager.d.ts.map +1 -0
  1116. package/dist/utils/tools-manager.js +339 -0
  1117. package/dist/utils/tools-manager.js.map +1 -0
  1118. package/dist/utils/version-check.d.ts +19 -0
  1119. package/dist/utils/version-check.d.ts.map +1 -0
  1120. package/dist/utils/version-check.js +81 -0
  1121. package/dist/utils/version-check.js.map +1 -0
  1122. package/dist/utils/windows-self-update.d.ts +3 -0
  1123. package/dist/utils/windows-self-update.d.ts.map +1 -0
  1124. package/dist/utils/windows-self-update.js +77 -0
  1125. package/dist/utils/windows-self-update.js.map +1 -0
  1126. package/dist/utils/wsl.d.ts +3 -0
  1127. package/dist/utils/wsl.d.ts.map +1 -0
  1128. package/dist/utils/wsl.js +15 -0
  1129. package/dist/utils/wsl.js.map +1 -0
  1130. package/dist/utils/zip.d.ts +7 -0
  1131. package/dist/utils/zip.d.ts.map +1 -0
  1132. package/dist/utils/zip.js +60 -0
  1133. package/dist/utils/zip.js.map +1 -0
  1134. package/docs/cli-integration.md +106 -0
  1135. package/docs/cli.md +343 -0
  1136. package/docs/codemode.md +230 -0
  1137. package/docs/compaction.md +463 -0
  1138. package/docs/configuration.md +47 -0
  1139. package/docs/containerization.md +183 -0
  1140. package/docs/custom-provider.md +227 -0
  1141. package/docs/docs.json +220 -0
  1142. package/docs/environment-variables.md +103 -0
  1143. package/docs/extensions.md +3366 -0
  1144. package/docs/how-pi-works.md +49 -0
  1145. package/docs/images/doom-extension.png +0 -0
  1146. package/docs/images/exy.png +0 -0
  1147. package/docs/images/interactive-mode.png +0 -0
  1148. package/docs/images/tree-view.png +0 -0
  1149. package/docs/index.md +39 -0
  1150. package/docs/json.md +226 -0
  1151. package/docs/keybindings.md +195 -0
  1152. package/docs/llama-cpp.md +129 -0
  1153. package/docs/mcp.md +274 -0
  1154. package/docs/message-types.md +279 -0
  1155. package/docs/models-configuration.md +200 -0
  1156. package/docs/models.md +226 -0
  1157. package/docs/nvidia-rtx-llama-cpp.md +96 -0
  1158. package/docs/packages.md +153 -0
  1159. package/docs/prompt-templates.md +59 -0
  1160. package/docs/providers.md +247 -0
  1161. package/docs/quickstart.md +140 -0
  1162. package/docs/rpc-commands.md +860 -0
  1163. package/docs/rpc-extension-ui.md +200 -0
  1164. package/docs/rpc.md +195 -0
  1165. package/docs/sdk.md +147 -0
  1166. package/docs/security.md +99 -0
  1167. package/docs/session-format.md +293 -0
  1168. package/docs/sessions.md +74 -0
  1169. package/docs/settings.md +173 -0
  1170. package/docs/shell-aliases.md +93 -0
  1171. package/docs/skills.md +93 -0
  1172. package/docs/slash-commands.md +61 -0
  1173. package/docs/terminal-setup.md +235 -0
  1174. package/docs/termux.md +117 -0
  1175. package/docs/themes.md +138 -0
  1176. package/docs/tmux.md +61 -0
  1177. package/docs/tui.md +197 -0
  1178. package/docs/usage.md +94 -0
  1179. package/docs/virtual-models.md +114 -0
  1180. package/docs/windows.md +108 -0
  1181. package/package.json +42 -40
  1182. package/schemas/keybindings.schema.json +393 -0
  1183. package/schemas/models.schema.json +1236 -0
  1184. package/schemas/settings.schema.json +800 -0
  1185. package/schemas/theme.schema.json +365 -0
  1186. package/LICENSE +0 -21
  1187. package/bin/mars.cjs +0 -133
@@ -0,0 +1,30 @@
1
+ import { createRequire as __piCreateRequire } from "node:module"; const require = __piCreateRequire(import.meta.url);
2
+ import{ArrayOptions,Clone,Evaluate,Flatten,Get,Instantiate,Intersect,IsArray,IsBigInt,IsBoolean,IsCodec,IsConstructor,IsCyclic,IsEnum,IsFunction,IsInteger,IsIntersect,IsLiteral,IsLiteralBigInt,IsLiteralBoolean,IsLiteralNumber,IsLiteralString,IsNever,IsNull,IsNumber,IsObject,IsOptional,IsRecord,IsRef,IsRefine,IsSchema,IsString,IsSymbol,IsTemplateLiteral,IsTuple,IsUndefined,IsUnion,IsVoid,Literal,Priority,Record,RecordKey,RecordPattern,RecordValue,Ref,String as String2,TemplateLiteralDecode,Tuple,Union,Unknown,Unreachable,With,_Array_,_Object_,arguments_exports,emit_exports,environment_exports,globals_exports,guard_default,guard_exports,hash_exports,settings_exports,typebox_exports}from"./chunk-5ZIVIB55.js";import{AuthStorage,FileAuthStorageBackend,getConfigValueEnvVarNames,isCommandConfigValue,isConfigValueConfigured,isMcpServerOverride,mcpNamespace,operationSignal,raceWithAbortSignal,require_proper_lockfile,resolveConfigValueOrThrow,resolveHeadersOrThrow,validateMcpServerConfig}from"./chunk-MTY47RPT.js";import{CONFIG_DIR_NAME,VERSION,canonicalizePath,getAgentDir,getFileRevision,normalizePath,pathsEqual,resolvePath,stripBom}from"./chunk-45GGYWI5.js";import{getEnvApiKey}from"./chunk-GFUN2N5K.js";import{ModelsError,assertChatModel,assertClassifierInputSupported,assertClassifierModel,assertImageModel,clampThinkingLevel,classifierErrorResult,createModels,createProvider,getModelType,imageErrorResult,isModelType,lazyApi,lazyStream,normalizeContext}from"./chunk-GXW3X65X.js";import{ToolCallArgumentsStream}from"./chunk-FFMDRXC4.js";import{createAssistantMessageEventStream}from"./chunk-LPXNMA2W.js";import{formatUserAgent,getOpenCodeSessionHeaders,getSystemMessageText,ownedSlice}from"./chunk-V6KH5QG4.js";import{__export,__toESM}from"./chunk-JXWJOIH4.js";var all_exports={};__export(all_exports,{builtinModels:()=>builtinModels,builtinProviders:()=>builtinProviders,getAllBuiltinModels:()=>getAllBuiltinModels,getBuiltinClassifierModel:()=>getBuiltinClassifierModel,getBuiltinClassifierModels:()=>getBuiltinClassifierModels,getBuiltinImageModel:()=>getBuiltinImageModel,getBuiltinImageModels:()=>getBuiltinImageModels,getBuiltinModel:()=>getBuiltinModel,getBuiltinModelDataGeneratedAt:()=>getBuiltinModelDataGeneratedAt,getBuiltinModels:()=>getBuiltinModels,getBuiltinProviders:()=>getBuiltinProviders,radiusProvider:()=>radiusProvider});var amazon_bedrock_default={"bedrock-converse-stream":{"chat: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:!0,input:["text","image"],cost:{input:.33,output:2.75,cacheRead:.0825,cacheWrite:.33},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.06},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.035},contextWindow:128e3,maxTokens:1e4,type:"chat"},"chat: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:.8},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-fable-5":{id:"anthropic.claude-fable-5",name:"Claude Fable 5",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-fable-5-1":{id:"anthropic.claude-fable-5-1",name:"Claude Fable 5.1",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-haiku-5-5":{id:"anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-opus-4-6-v1":{id:"anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-opus-4-7":{id:"anthropic.claude-opus-4-7",name:"Claude Opus 4.7",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-opus-4-8":{id:"anthropic.claude-opus-4-8",name:"Claude Opus 4.8",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-opus-5-5":{id:"anthropic.claude-opus-5-5",name:"Claude Opus 5.5",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-sonnet-5":{id:"anthropic.claude-sonnet-5",name:"Claude Sonnet 5",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic.claude-sonnet-5-5":{id:"anthropic.claude-sonnet-5-5",name:"Claude Sonnet 5.5",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:apac.amazon.nova-lite-v1:0":{id:"apac.amazon.nova-lite-v1:0",name:"Nova Lite (APAC)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:.063,output:.252,cacheRead:.01575,cacheWrite:.063},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:apac.amazon.nova-micro-v1:0":{id:"apac.amazon.nova-micro-v1:0",name:"Nova Micro (APAC)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!1,input:["text"],cost:{input:.037,output:.148,cacheRead:.00925,cacheWrite:.037},contextWindow:128e3,maxTokens:1e4,type:"chat"},"chat:apac.amazon.nova-pro-v1:0":{id:"apac.amazon.nova-pro-v1:0",name:"Nova Pro (APAC)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:.84,output:3.36,cacheRead:.21,cacheWrite:.84},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:apac.anthropic.claude-sonnet-4-20250514-v1:0":{id:"apac.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (APAC)",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,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.1,output:5.5,cacheRead:.11,cacheWrite:1.375},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-haiku-5-5":{id:"au.anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:1e5,input:.55,output:2.75,cacheRead:.055,cacheWrite:.6875}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-opus-4-6-v1":{id:"au.anthropic.claude-opus-4-6-v1",name:"AU Anthropic Claude Opus 4.6",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-opus-4-7":{id:"au.anthropic.claude-opus-4-7",name:"Claude Opus 4.7 (AU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-opus-4-8":{id:"au.anthropic.claude-opus-4-8",name:"Claude Opus 4.8 (AU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-opus-5":{id:"au.anthropic.claude-opus-5",name:"Claude Opus 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:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-opus-5-5":{id:"au.anthropic.claude-opus-5-5",name:"Claude Opus 5.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:4.4,output:22,cacheRead:.22,cacheWrite:5.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-sonnet-5":{id:"au.anthropic.claude-sonnet-5",name:"Claude Sonnet 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:2.2,output:11,cacheRead:.22,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:au.anthropic.claude-sonnet-5-5":{id:"au.anthropic.claude-sonnet-5-5",name:"Claude Sonnet 5.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:2.2,output:11,cacheRead:.11,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:ca.amazon.nova-lite-v1:0":{id:"ca.amazon.nova-lite-v1:0",name:"Nova Lite (CA)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:.064,output:.256,cacheRead:.016,cacheWrite:.064},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat:eu.amazon.nova-2-lite-v1:0":{id:"eu.amazon.nova-2-lite-v1:0",name:"Nova 2 Lite (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.374,output:3.157,cacheRead:.0935,cacheWrite:.374},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.amazon.nova-lite-v1:0":{id:"eu.amazon.nova-lite-v1:0",name:"Nova Lite (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:.069,output:.276,cacheRead:.01725,cacheWrite:.069},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.amazon.nova-micro-v1:0":{id:"eu.amazon.nova-micro-v1:0",name:"Nova Micro (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!1,input:["text"],cost:{input:.04,output:.16,cacheRead:.01,cacheWrite:.04},contextWindow:128e3,maxTokens:1e4,type:"chat"},"chat:eu.amazon.nova-pro-v1:0":{id:"eu.amazon.nova-pro-v1:0",name:"Nova Pro (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:.92,output:3.68,cacheRead:.23,cacheWrite:.92},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-fable-5":{id:"eu.anthropic.claude-fable-5",name:"Claude Fable 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:11,output:55,cacheRead:1.1,cacheWrite:13.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.1,output:5.5,cacheRead:.11,cacheWrite:1.375},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-haiku-5-5":{id:"eu.anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:1e5,input:.55,output:2.75,cacheRead:.055,cacheWrite:.6875}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-opus-4-6-v1":{id:"eu.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-opus-4-7":{id:"eu.anthropic.claude-opus-4-7",name:"Claude Opus 4.7 (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-opus-4-8":{id:"eu.anthropic.claude-opus-4-8",name:"Claude Opus 4.8 (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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-opus-5":{id:"eu.anthropic.claude-opus-5",name:"Claude Opus 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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-opus-5-5":{id:"eu.anthropic.claude-opus-5-5",name:"Claude Opus 5.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:4.4,output:22,cacheRead:.22,cacheWrite:5.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-sonnet-4-20250514-v1:0":{id:"eu.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-sonnet-5":{id:"eu.anthropic.claude-sonnet-5",name:"Claude Sonnet 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:2.2,output:11,cacheRead:.22,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.anthropic.claude-sonnet-5-5":{id:"eu.anthropic.claude-sonnet-5-5",name:"Claude Sonnet 5.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:2.2,output:11,cacheRead:.11,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:eu.mistral.pixtral-large-2502-v1:0":{id:"eu.mistral.pixtral-large-2502-v1:0",name:"Pixtral Large (25.02) (EU)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.eu-central-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.amazon.nova-2-lite-v1:0":{id:"global.amazon.nova-2-lite-v1:0",name:"Nova 2 Lite (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:2.5,cacheRead:.075,cacheWrite:.3},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-fable-5":{id:"global.anthropic.claude-fable-5",name:"Claude Fable 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:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-fable-5-1":{id:"global.anthropic.claude-fable-5-1",name:"Claude Fable 5.1 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-haiku-5-5":{id:"global.anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-opus-4-6-v1":{id:"global.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-opus-4-7":{id:"global.anthropic.claude-opus-4-7",name:"Claude Opus 4.7 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-opus-4-8":{id:"global.anthropic.claude-opus-4-8",name:"Claude Opus 4.8 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-opus-5":{id:"global.anthropic.claude-opus-5",name:"Claude Opus 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:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-opus-5-5":{id:"global.anthropic.claude-opus-5-5",name:"Claude Opus 5.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:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-sonnet-4-20250514-v1:0":{id:"global.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-sonnet-5":{id:"global.anthropic.claude-sonnet-5",name:"Claude Sonnet 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:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.anthropic.claude-sonnet-5-5":{id:"global.anthropic.claude-sonnet-5-5",name:"Claude Sonnet 5.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:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.moonshotai.kimi-k3":{id:"global.moonshotai.kimi-k3",name:"Kimi K3 (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:1048576,maxTokens:128e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-5.6-luna":{id:"global.openai.gpt-5.6-luna",name:"GPT-5.6 Luna (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-5.6-sol":{id:"global.openai.gpt-5.6-sol",name:"GPT-5.6 Sol (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-5.6-terra":{id:"global.openai.gpt-5.6-terra",name:"GPT-5.6 Terra (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-6-astra":{id:"global.openai.gpt-6-astra",name:"GPT-6 Astra (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-6-luna":{id:"global.openai.gpt-6-luna",name:"GPT-6 Luna (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:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-6-sol":{id:"global.openai.gpt-6-sol",name:"GPT-6 Sol (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-6.1-sol":{id:"global.openai.gpt-6.1-sol",name:"GPT-6.1 Sol (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.openai.gpt-6.1-terra":{id:"global.openai.gpt-6.1-terra",name:"GPT-6.1 Terra (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:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.xai.grok-4.6":{id:"global.xai.grok-4.6",name:"Grok 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:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.xai.grok-4.7":{id:"global.xai.grok-4.7",name:"Grok 4.7 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:global.zai.glm-5.3":{id:"global.zai.glm-5.3",name:"GLM-5.3 (Global)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text"],cost:{input:1.68,output:5.28,cacheRead:.312,cacheWrite:2.1},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},type:"chat"},"chat:google.gemma-4-26b-a4b":{id:"google.gemma-4-26b-a4b",name:"Gemma 4 26B A4B IT",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.13,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google.gemma-4-31b":{id:"google.gemma-4-31b",name:"Gemma 4 31B IT",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.14,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google.gemma-4-e2b":{id:"google.gemma-4-e2b",name:"Gemma 4 E2B IT",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.04,output:.08,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:in.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"in.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (India)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:1.1,output:5.5,cacheRead:.11,cacheWrite:1.375},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:in.anthropic.claude-opus-5":{id:"in.anthropic.claude-opus-5",name:"Claude Opus 5 (India)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:in.anthropic.claude-sonnet-5":{id:"in.anthropic.claude-sonnet-5",name:"Claude Sonnet 5 (India)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:11,cacheRead:.22,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:in.openai.gpt-5.6-luna":{id:"in.openai.gpt-5.6-luna",name:"GPT-5.6 Luna (India)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.22,output:1.32,cacheRead:.022,cacheWrite:.275,tiers:[{inputTokensAbove:272e3,input:.44,output:1.98,cacheRead:.044,cacheWrite:.55}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:in.openai.gpt-5.6-terra":{id:"in.openai.gpt-5.6-terra",name:"GPT-5.6 Terra (India)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:13.2,cacheRead:.22,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:19.8,cacheRead:.44,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.amazon.nova-2-lite-v1:0":{id:"jp.amazon.nova-2-lite-v1:0",name:"Nova 2 Lite (JP)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.396,output:3.311,cacheRead:.099,cacheWrite:.396},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"jp.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 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:1.1,output:5.5,cacheRead:.11,cacheWrite:1.375},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-haiku-5-5":{id:"jp.anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:1e5,input:.55,output:2.75,cacheRead:.055,cacheWrite:.6875}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-opus-4-8":{id:"jp.anthropic.claude-opus-4-8",name:"Claude Opus 4.8 (JP)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-opus-5":{id:"jp.anthropic.claude-opus-5",name:"Claude Opus 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:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-opus-5-5":{id:"jp.anthropic.claude-opus-5-5",name:"Claude Opus 5.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:4.4,output:22,cacheRead:.22,cacheWrite:5.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:jp.anthropic.claude-sonnet-5":{id:"jp.anthropic.claude-sonnet-5",name:"Claude Sonnet 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:2.2,output:11,cacheRead:.22,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,type:"chat"},"chat: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,type:"chat"},"chat: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,type:"chat"},"chat: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:8192,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:1e7,maxTokens:8192,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:196608,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:262144,maxTokens:8192,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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","image"],cost:{input:.2,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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","image"],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:262144,maxTokens:8192,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:32768,maxTokens:4096,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:8192,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:262144,maxTokens:16e3,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:262144,maxTokens:16384,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:131072,maxTokens:8192,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:262144,maxTokens:8192,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:131072,maxTokens:8192,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat:openai.gpt-5.4":{id:"openai.gpt-5.4",name:"GPT-5.4",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.75,output:16.5,cacheRead:.275,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-5.5":{id:"openai.gpt-5.5",name:"GPT-5.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.5,output:33,cacheRead:.55,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-5.6-luna":{id:"openai.gpt-5.6-luna",name:"GPT-5.6 Luna",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.22,output:1.32,cacheRead:.022,cacheWrite:.275,tiers:[{inputTokensAbove:272e3,input:.44,output:1.98,cacheRead:.044,cacheWrite:.55}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-5.6-sol":{id:"openai.gpt-5.6-sol",name:"GPT-5.6 Sol",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:4.4,output:22,cacheRead:.44,cacheWrite:5.5,tiers:[{inputTokensAbove:272e3,input:8.8,output:33,cacheRead:.88,cacheWrite:11}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-5.6-terra":{id:"openai.gpt-5.6-terra",name:"GPT-5.6 Terra",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:13.2,cacheRead:.22,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:19.8,cacheRead:.44,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-6-astra":{id:"openai.gpt-6-astra",name:"GPT-6 Astra",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:11,output:55,cacheRead:1.1,cacheWrite:13.75,tiers:[{inputTokensAbove:272e3,input:22,output:82.5,cacheRead:2.2,cacheWrite:27.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-6-luna":{id:"openai.gpt-6-luna",name:"GPT-6 Luna",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:272e3,input:.22,output:.825,cacheRead:.022,cacheWrite:.275}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-6-sol":{id:"openai.gpt-6-sol",name:"GPT-6 Sol",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:11,cacheRead:.22,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:16.5,cacheRead:.44,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-6.1-sol":{id:"openai.gpt-6.1-sol",name:"GPT-6.1 Sol",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:11,cacheRead:.11,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:16.5,cacheRead:.22,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-6.1-terra":{id:"openai.gpt-6.1-terra",name:"GPT-6.1 Terra",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:1.1,output:5.5,cacheRead:.055,cacheWrite:1.375,tiers:[{inputTokensAbove:272e3,input:2.2,output:8.25,cacheRead:.11,cacheWrite:2.75}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai.gpt-oss-120b":{id:"openai.gpt-oss-120b",name:"gpt-oss-120b",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:131072,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:!0,input:["text"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:128e3,compat:{supportsStrictMode:!0},type:"chat"},"chat:openai.gpt-oss-20b":{id:"openai.gpt-oss-20b",name:"gpt-oss-20b",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text"],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:!0,input:["text"],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:128e3,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:!0,input:["text"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:!0,input:["text"],cost:{input:.07,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},type:"chat"},"chat:qwen.qwen3-235b-a22b-2507-v1:0":{id:"qwen.qwen3-235b-a22b-2507-v1:0",name:"Qwen3 235B-A22B Instruct 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,compat:{supportsStrictMode:!0},type:"chat"},"chat:qwen.qwen3-32b-v1:0":{id:"qwen.qwen3-32b-v1:0",name:"Qwen3 32B",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:32768,maxTokens:16384,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:.45,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:!1,input:["text"],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0},type:"chat"},"chat:qwen.qwen3-next-80b-a3b":{id:"qwen.qwen3-next-80b-a3b",name:"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:.15,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262e3,compat:{supportsStrictMode:!0},type:"chat"},"chat:qwen.qwen3-vl-235b-a22b":{id:"qwen.qwen3-vl-235b-a22b",name:"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:.53,output:2.66,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us-gov.openai.gpt-oss-120b-1:0":{id:"us-gov.openai.gpt-oss-120b-1:0",name:"gpt-oss-120b (GovCloud)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text"],cost:{input:.18,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},type:"chat"},"chat:us-gov.openai.gpt-oss-20b-1:0":{id:"us-gov.openai.gpt-oss-20b-1:0",name:"gpt-oss-20b (GovCloud)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text"],cost:{input:.084,output:.36,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},type:"chat"},"chat:us.amazon.nova-2-lite-v1:0":{id:"us.amazon.nova-2-lite-v1:0",name:"Nova 2 Lite (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.33,output:2.75,cacheRead:.0825,cacheWrite:.33},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.amazon.nova-lite-v1:0":{id:"us.amazon.nova-lite-v1:0",name:"Nova Lite (US)",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:.06},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.amazon.nova-micro-v1:0":{id:"us.amazon.nova-micro-v1:0",name:"Nova Micro (US)",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:.035},contextWindow:128e3,maxTokens:1e4,type:"chat"},"chat:us.amazon.nova-premier-v1:0":{id:"us.amazon.nova-premier-v1:0",name:"Nova Premier (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!1,input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.625,cacheWrite:2.5},contextWindow:1e6,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.amazon.nova-pro-v1:0":{id:"us.amazon.nova-pro-v1:0",name:"Nova Pro (US)",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:.8},contextWindow:3e5,maxTokens:1e4,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-fable-5":{id:"us.anthropic.claude-fable-5",name:"Claude Fable 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:11,output:55,cacheRead:1.1,cacheWrite:13.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-fable-5-1":{id:"us.anthropic.claude-fable-5-1",name:"Claude Fable 5.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:11,output:55,cacheRead:.275,cacheWrite:13.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.1,output:5.5,cacheRead:.11,cacheWrite:1.375},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-haiku-5-5":{id:"us.anthropic.claude-haiku-5-5",name:"Claude Haiku 5.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:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:1e5,input:.55,output:2.75,cacheRead:.055,cacheWrite:.6875}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-opus-4-6-v1":{id:"us.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-opus-4-7":{id:"us.anthropic.claude-opus-4-7",name:"Claude Opus 4.7 (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:5.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-opus-4-8":{id:"us.anthropic.claude-opus-4-8",name:"Claude Opus 4.8 (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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-opus-5":{id:"us.anthropic.claude-opus-5",name:"Claude Opus 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.5,output:27.5,cacheRead:.55,cacheWrite:6.875},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-opus-5-5":{id:"us.anthropic.claude-opus-5-5",name:"Claude Opus 5.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:4.4,output:22,cacheRead:.22,cacheWrite:5.5},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-sonnet-4-20250514-v1:0":{id:"us.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:2e5,maxTokens:64e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-sonnet-5":{id:"us.anthropic.claude-sonnet-5",name:"Claude Sonnet 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:2.2,output:11,cacheRead:.22,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.anthropic.claude-sonnet-5-5":{id:"us.anthropic.claude-sonnet-5-5",name:"Claude Sonnet 5.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:2.2,output:11,cacheRead:.11,cacheWrite:2.75},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.meta.llama3-1-70b-instruct-v1:0":{id:"us.meta.llama3-1-70b-instruct-v1:0",name:"Llama 3.1 70B Instruct (US)",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,type:"chat"},"chat:us.meta.llama3-1-8b-instruct-v1:0":{id:"us.meta.llama3-1-8b-instruct-v1:0",name:"Llama 3.1 8B Instruct (US)",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,type:"chat"},"chat:us.meta.llama3-3-70b-instruct-v1:0":{id:"us.meta.llama3-3-70b-instruct-v1:0",name:"Llama 3.3 70B Instruct (US)",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,type:"chat"},"chat: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:8192,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:1e7,maxTokens:8192,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.mistral.pixtral-large-2502-v1:0":{id:"us.mistral.pixtral-large-2502-v1:0",name:"Pixtral Large (25.02) (US)",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,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.moonshotai.kimi-k3":{id:"us.moonshotai.kimi-k3",name:"Kimi K3 (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.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1048576,maxTokens:128e3,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-5.6-luna":{id:"us.openai.gpt-5.6-luna",name:"GPT-5.6 Luna (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.22,output:1.32,cacheRead:.022,cacheWrite:.275,tiers:[{inputTokensAbove:272e3,input:.44,output:1.98,cacheRead:.044,cacheWrite:.55}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-5.6-sol":{id:"us.openai.gpt-5.6-sol",name:"GPT-5.6 Sol (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:4.4,output:22,cacheRead:.44,cacheWrite:5.5,tiers:[{inputTokensAbove:272e3,input:8.8,output:33,cacheRead:.88,cacheWrite:11}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-5.6-terra":{id:"us.openai.gpt-5.6-terra",name:"GPT-5.6 Terra (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:13.2,cacheRead:.22,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:19.8,cacheRead:.44,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-6-astra":{id:"us.openai.gpt-6-astra",name:"GPT-6 Astra (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:11,output:55,cacheRead:1.1,cacheWrite:13.75,tiers:[{inputTokensAbove:272e3,input:22,output:82.5,cacheRead:2.2,cacheWrite:27.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-6-luna":{id:"us.openai.gpt-6-luna",name:"GPT-6 Luna (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:.11,output:.55,cacheRead:.011,cacheWrite:.1375,tiers:[{inputTokensAbove:272e3,input:.22,output:.825,cacheRead:.022,cacheWrite:.275}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-6-sol":{id:"us.openai.gpt-6-sol",name:"GPT-6 Sol (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:11,cacheRead:.22,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:16.5,cacheRead:.44,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-6.1-sol":{id:"us.openai.gpt-6.1-sol",name:"GPT-6.1 Sol (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:11,cacheRead:.11,cacheWrite:2.75,tiers:[{inputTokensAbove:272e3,input:4.4,output:16.5,cacheRead:.22,cacheWrite:5.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.openai.gpt-6.1-terra":{id:"us.openai.gpt-6.1-terra",name:"GPT-6.1 Terra (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.1,output:5.5,cacheRead:.055,cacheWrite:1.375,tiers:[{inputTokensAbove:272e3,input:2.2,output:8.25,cacheRead:.11,cacheWrite:2.75}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsStrictMode:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.writer.palmyra-x4-v1:0":{id:"us.writer.palmyra-x4-v1:0",name:"Palmyra X4 (US)",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,type:"chat"},"chat:us.writer.palmyra-x5-v1:0":{id:"us.writer.palmyra-x5-v1:0",name:"Palmyra X5 (US)",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,type:"chat"},"chat:us.xai.grok-4.6":{id:"us.xai.grok-4.6",name:"Grok 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:2.2,output:6.6,cacheRead:.55,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.xai.grok-4.7":{id:"us.xai.grok-4.7",name:"Grok 4.7 (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:2.2,output:6.6,cacheRead:.55,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:us.zai.glm-5.3":{id:"us.zai.glm-5.3",name:"GLM-5.3 (US)",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text"],cost:{input:1.848,output:5.808,cacheRead:.3432,cacheWrite:2.31},contextWindow:1e6,maxTokens:128e3,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,type:"chat"},"chat: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,type:"chat"},"chat:xai.grok-4.3":{id:"xai.grok-4.3",name:"Grok 4.3",api:"bedrock-converse-stream",provider:"amazon-bedrock",baseUrl:"https://bedrock-runtime.us-east-1.amazonaws.com",reasoning:!0,input:["text","image"],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:xai.grok-4.6":{id:"xai.grok-4.6",name:"Grok 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:2.2,output:6.6,cacheRead:.55,cacheWrite:0},contextWindow:5e5,maxTokens:5e5,compat:{supportsStrictMode:!0},inputLimits:{images:{maxPerMessage:20,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:202752,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:202752,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:131072,compat:{supportsStrictMode:!0},type:"chat"}}};function flattenModelCatalog(groups,type){return Object.fromEntries(Object.values(groups).flatMap(models=>Object.values(models)).filter(model=>model.type===type).map(model=>[model.id,model]))}function flattenChatModelCatalog(_provider,groups){return flattenModelCatalog(groups,"chat")}function flattenImageModelCatalog(_provider,groups){return flattenModelCatalog(groups,"image")}function flattenClassifierModelCatalog(_provider,groups){return flattenModelCatalog(groups,"classifier")}var AMAZON_BEDROCK_MODELS=flattenChatModelCatalog("amazon-bedrock",amazon_bedrock_default),AMAZON_BEDROCK_IMAGE_MODELS=flattenImageModelCatalog("amazon-bedrock",amazon_bedrock_default),AMAZON_BEDROCK_CLASSIFIER_MODELS=flattenClassifierModelCatalog("amazon-bedrock",amazon_bedrock_default);var ant_ling_default={"openai-completions":{"chat:Ling-2.6-1T":{id:"Ling-2.6-1T",name:"Ling 2.6 1T",api:"openai-completions",baseUrl:"https://api.ant-ling.com/v1",provider:"ant-ling",reasoning:!1,input:["text"],cost:{input:.06,output:.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"ant-ling",supportsStrictMode:!0,supportsLongCacheRetention:!1},type:"chat"},"chat:Ling-2.6-flash":{id:"Ling-2.6-flash",name:"Ling 2.6 Flash",api:"openai-completions",baseUrl:"https://api.ant-ling.com/v1",provider:"ant-ling",reasoning:!1,input:["text"],cost:{input:.01,output:.02,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"ant-ling",supportsStrictMode:!0,supportsLongCacheRetention:!1},type:"chat"},"chat:Ring-2.6-1T":{id:"Ring-2.6-1T",name:"Ring 2.6 1T",api:"openai-completions",baseUrl:"https://api.ant-ling.com/v1",provider:"ant-ling",reasoning:!0,input:["text"],cost:{input:.06,output:.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"ant-ling",supportsStrictMode:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh"},type:"chat"}}};var ANT_LING_MODELS=flattenChatModelCatalog("ant-ling",ant_ling_default),ANT_LING_IMAGE_MODELS=flattenImageModelCatalog("ant-ling",ant_ling_default),ANT_LING_CLASSIFIER_MODELS=flattenClassifierModelCatalog("ant-ling",ant_ling_default);var anthropic_default={"anthropic-messages":{"chat:claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0,allowedFallbackModels:[{provider:"anthropic",model:"claude-opus-4-8",cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}},{provider:"anthropic",model:"claude-opus-5",cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25}}]},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5-1":{id:"claude-fable-5-1",name:"Claude Fable 5.1",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoEffort:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-5-5":{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},compat:{forceAdaptiveThinking:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 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:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5-5":{id:"claude-opus-5-5",name:"Claude Opus 5.5",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:100,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:128e3,thinkingLevelMap:{max:"max"},compat:{forceAdaptiveThinking:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5-5":{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",api:"anthropic-messages",provider:"anthropic",baseUrl:"https://api.anthropic.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolChanges:!0,supportsStrictTools:!0},promptCache:{short:300,long:3600},inputLimits:{maxRequestBytes:33554432,images:{maxPerRequest:600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var ANTHROPIC_MODELS=flattenChatModelCatalog("anthropic",anthropic_default),ANTHROPIC_IMAGE_MODELS=flattenImageModelCatalog("anthropic",anthropic_default),ANTHROPIC_CLASSIFIER_MODELS=flattenClassifierModelCatalog("anthropic",anthropic_default);var azure_default={"azure-openai-responses":{"chat:chat-latest":{id:"chat-latest",name:"Chat Latest",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4":{id:"gpt-4",name:"GPT-4",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text"],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192,type:"chat"},"chat:gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4o":{id:"gpt-4o",name:"GPT-4o",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4o-2024-05-13":{id:"gpt-4o-2024-05-13",name:"GPT-4o (2024-05-13)",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4o-2024-08-06":{id:"gpt-4o-2024-08-06",name:"GPT-4o (2024-08-06)",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4o-2024-11-20":{id:"gpt-4o-2024-11-20",name:"GPT-4o (2024-11-20)",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4o mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!1,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5":{id:"gpt-5",name:"GPT-5",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-chat-latest":{id:"gpt-5-chat-latest",name:"GPT-5 Chat Latest",api:"azure-openai-responses",baseUrl:"",provider:"azure",reasoning:!1,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.3-codex-spark":{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5":{id:"gpt-5.5",name:"GPT-5.5",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5-pro":{id:"gpt-5.5-pro",name:"GPT-5.5 Pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",minimal:null,low:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-cyber":{id:"gpt-5.6-cyber",name:"GPT-5.6 Cyber",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:12.5,output:75,cacheRead:1.25,cacheWrite:15.625},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-daybreak-blue-latest":{id:"gpt-daybreak-blue-latest",name:"Daybreak Blue",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5},contextWindow:105e4,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-daybreak-red-latest":{id:"gpt-daybreak-red-latest",name:"Daybreak Red",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:12.5,output:75,cacheRead:1.25,cacheWrite:15.625},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:o1":{id:"o1",name:"o1",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:o1-pro":{id:"o1-pro",name:"o1-pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:150,output:600,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:o3":{id:"o3",name:"o3",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:o3-mini":{id:"o3-mini",name:"o3-mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text"],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,type:"chat"},"chat:o3-pro":{id:"o3-pro",name:"o3-pro",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:o4-mini":{id:"o4-mini",name:"o4-mini",api:"azure-openai-responses",provider:"azure",baseUrl:"",reasoning:!0,input:["text","image"],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",baseUrl:"",provider:"azure",reasoning:!0,input:["text"],cost:{input:1.925,output:3.828,cacheRead:.165,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"openai",supportsDeveloperRole:!1,supportsMidConvoSystemMessages:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"}}};var AZURE_MODELS=flattenChatModelCatalog("azure",azure_default),AZURE_IMAGE_MODELS=flattenImageModelCatalog("azure",azure_default),AZURE_CLASSIFIER_MODELS=flattenClassifierModelCatalog("azure",azure_default);var baseten_default={"openai-completions":{"chat:deepseek-ai/DeepSeek-V4-Flash-0731":{id:"deepseek-ai/DeepSeek-V4-Flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:.13,output:.26,cacheRead:.028,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},type:"chat"},"chat:deepseek-ai/DeepSeek-V4-Pro-0813":{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:.132,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash":{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.007,cacheWrite:0},contextWindow:1048576,maxTokens:32768,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash-1017":{id:"deepseek-ai/DeepSeek-V4.1-Flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.007,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash-1017-Fast":{id:"deepseek-ai/DeepSeek-V4.1-Flash-1017-Fast",name:"DeepSeek V4.1 Flash 1017 Fast",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:2.4,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash-Fast":{id:"deepseek-ai/DeepSeek-V4.1-Flash-Fast",name:"DeepSeek V4.1 Flash Fast",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:2.4,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:32768,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K3":{id:"moonshotai/Kimi-K3",name:"Kimi K3",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K3.1-Pro":{id:"moonshotai/Kimi-K3.1-Pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B":{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",name:"Nemotron Ultra",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:.6,output:2.4,cacheRead:.12,cacheWrite:0},contextWindow:202800,maxTokens:202800,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},type:"chat"},"chat:openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"OpenAI GPT 120B",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:.1,output:.5,cacheRead:.1,cacheWrite:0},contextWindow:128072,maxTokens:128072,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},type:"chat"},"chat:zai-org/GLM-5.2":{id:"zai-org/GLM-5.2",name:"GLM 5.2",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"baseten",chatTemplateArgs:{enable_thinking:{$var:"thinking.enabled"}}},type:"chat"},"chat:zai-org/GLM-5.2-Fast":{id:"zai-org/GLM-5.2-Fast",name:"GLM 5.2 Fast",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text"],cost:{input:2.1,output:6.6,cacheRead:.21,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"baseten",chatTemplateArgs:{enable_thinking:{$var:"thinking.enabled"}}},type:"chat"},"chat:zai-org/GLM-5.3":{id:"zai-org/GLM-5.3",name:"GLM 5.3",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai-org/GLM-5.3-Fast":{id:"zai-org/GLM-5.3-Fast",name:"GLM 5.3 Fast",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:2.1,output:6.6,cacheRead:.21,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai-org/GLM-5.3-Flash":{id:"zai-org/GLM-5.3-Flash",name:"GLM 5.3 Flash",api:"openai-completions",provider:"baseten",baseUrl:"https://inference.baseten.co/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0,maxTokensField:"max_tokens",sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,thinkingFormat:"openai"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var BASETEN_MODELS=flattenChatModelCatalog("baseten",baseten_default),BASETEN_IMAGE_MODELS=flattenImageModelCatalog("baseten",baseten_default),BASETEN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("baseten",baseten_default);var cerebras_default={"openai-completions":{"chat: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:.35,output:.75,cacheRead:.35,cacheWrite:0},contextWindow:131072,maxTokens:40960,compat:{supportsStore:!1,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:qwen-3.8-27b":{id:"qwen-3.8-27b",name:"Qwen3.8 27B",api:"openai-completions",provider:"cerebras",baseUrl:"https://api.cerebras.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.99,output:1.49,cacheRead:.99,cacheWrite:0},contextWindow:131072,maxTokens:40960,compat:{supportsStore:!1,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var CEREBRAS_MODELS=flattenChatModelCatalog("cerebras",cerebras_default),CEREBRAS_IMAGE_MODELS=flattenImageModelCatalog("cerebras",cerebras_default),CEREBRAS_CLASSIFIER_MODELS=flattenClassifierModelCatalog("cerebras",cerebras_default);var cloudflare_ai_gateway_default={"anthropic-messages":{"chat:claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",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:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5-1":{id:"claude-fable-5-1",name:"Claude Fable 5.1",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:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-5-5":{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",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:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 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:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",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:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",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:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5-5":{id:"claude-opus-5-5",name:"Claude Opus 5.5",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:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0},thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",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:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5-5":{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",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:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{sendSessionAffinityHeaders:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731":{id:"workers-ai/@cf/deepseek-ai/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:.44,output:1.32,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"},"chat:workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813":{id:"workers-ai/@cf/deepseek-ai/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:.044,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"},"chat:workers-ai/@cf/deepseek-ai/deepseek-v4.1-flash-1017":{id:"workers-ai/@cf/deepseek-ai/deepseek-v4.1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:workers-ai/@cf/google/gemma-4-26b-a4b-it":{id:"workers-ai/@cf/google/gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B IT",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text","image"],cost:{input:.1,output:.3,cacheRead:.05,cacheWrite:0},contextWindow:256e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{id:"workers-ai/@cf/ibm-granite/granite-4.0-h-micro",name:"Granite 4.0 H Micro",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!1,input:["text"],cost:{input:.017,output:.112,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:131e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{id:"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct fp8 Fast",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!1,input:["text"],cost:{input:.293,output:2.253,cacheRead:0,cacheWrite:0},contextWindow:24e3,maxTokens:24e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{id:"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout 17B 16E Instruct",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!1,input:["text","image"],cost:{input:.27,output:.85,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{id:"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!1,input:["text","image"],cost:{input:.351,output:.555,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:workers-ai/@cf/moonshotai/kimi-k2.7-code":{id:"workers-ai/@cf/moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/openai/gpt-oss-120b":{id:"workers-ai/@cf/openai/gpt-oss-120b",name:"GPT OSS 120B",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:.35,output:.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/openai/gpt-oss-20b":{id:"workers-ai/@cf/openai/gpt-oss-20b",name:"GPT OSS 20B",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:.2,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{id:"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8",name:"Qwen3 30B A3b fp8",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:.0509,output:.335,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/qwen/qwen3.8-27b":{id:"workers-ai/@cf/qwen/qwen3.8-27b",name:"Qwen3.8 27B",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text","image"],cost:{input:.45,output:3.2,cacheRead:.05,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.0605,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/zai-org/glm-5.2":{id:"workers-ai/@cf/zai-org/glm-5.2",name:"Glm 5.2",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/zai-org/glm-5.3":{id:"workers-ai/@cf/zai-org/glm-5.3",name:"Glm 5.3",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:workers-ai/@cf/zai-org/glm-5.3-flash":{id:"workers-ai/@cf/zai-org/glm-5.3-flash",name:"Glm 5.3 Flash",api:"openai-completions",provider:"cloudflare-ai-gateway",baseUrl:"https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-responses":{"chat:gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",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,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 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:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",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:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1e6,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:1.25,output:5,cacheRead:.625,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.075,output:.3,cacheRead:.0375,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5":{id:"gpt-5",name:"GPT-5",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.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 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:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",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:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 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:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",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:1.25,cacheRead:.02,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 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:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:5,output:30,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5-pro":{id:"gpt-5.5-pro",name:"GPT-5.5 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:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",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:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",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:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",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:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",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:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",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,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",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:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",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:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",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,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},type:"chat"},"chat: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:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var CLOUDFLARE_AI_GATEWAY_MODELS=flattenChatModelCatalog("cloudflare-ai-gateway",cloudflare_ai_gateway_default),CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS=flattenImageModelCatalog("cloudflare-ai-gateway",cloudflare_ai_gateway_default),CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS=flattenClassifierModelCatalog("cloudflare-ai-gateway",cloudflare_ai_gateway_default);var cloudflare_workers_ai_default={"cloudflare-workers-ai-system-one":{"classifier:@cf/cloudflare/clef":{type:"classifier",id:"@cf/cloudflare/clef",name:"Clef",api:"cloudflare-workers-ai-system-one",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai",input:["text","image"],cost:{input:.24,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,compat:{imageInput:"images"}},"classifier:@cf/cloudflare/clef-flash":{type:"classifier",id:"@cf/cloudflare/clef-flash",name:"Clef Flash",api:"cloudflare-workers-ai-system-one",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai",input:["text","image"],cost:{input:.038,output:0,cacheRead:0,cacheWrite:0},contextWindow:24576,compat:{imageInput:"images"}},"classifier:@cf/cloudflare/clef-omni":{type:"classifier",id:"@cf/cloudflare/clef-omni",name:"Clef Omni",api:"cloudflare-workers-ai-system-one",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai",input:["text","image"],cost:{input:.15,output:0,cacheRead:0,cacheWrite:0},contextWindow:64e3,compat:{imageInput:"images"}},"classifier:typesafe/jev":{type:"classifier",id:"typesafe/jev",name:"Jev",api:"cloudflare-workers-ai-system-one",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai",input:["text","image"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3,compat:{imageInput:"assets"}},"classifier:typesafe/jev-1.14.0":{type:"classifier",id:"typesafe/jev-1.14.0",name:"Jev 1.14",api:"cloudflare-workers-ai-system-one",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai",input:["text","image"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3,compat:{imageInput:"assets"}}},"openai-completions":{"chat:@cf/deepseek-ai/deepseek-v4-flash-0731":{id:"@cf/deepseek-ai/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text"],cost:{input:.44,output:1.32,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"},"chat:@cf/deepseek-ai/deepseek-v4-pro-0813":{id:"@cf/deepseek-ai/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:.044,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"},"chat:@cf/deepseek-ai/deepseek-v4.1-flash-1017":{id:"@cf/deepseek-ai/deepseek-v4.1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@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",reasoning:!0,input:["text","image"],cost:{input:.1,output:.3,cacheRead:.05,cacheWrite:0},contextWindow:256e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@cf/ibm-granite/granite-4.0-h-micro":{id:"@cf/ibm-granite/granite-4.0-h-micro",name:"Granite 4.0 H Micro",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!1,input:["text"],cost:{input:.017,output:.112,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:131e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:@cf/meta/llama-3.3-70b-instruct-fp8-fast":{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct fp8 Fast",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!1,input:["text"],cost:{input:.293,output:2.253,cacheRead:0,cacheWrite:0},contextWindow:24e3,maxTokens:24e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:@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",reasoning:!1,input:["text","image"],cost:{input:.27,output:.85,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@cf/mistralai/mistral-small-3.1-24b-instruct":{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!1,input:["text","image"],cost:{input:.351,output:.555,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@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",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@cf/moonshotai/kimi-k2.7-code":{id:"@cf/moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@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",reasoning:!0,input:["text"],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:@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",reasoning:!0,input:["text"],cost:{input:.35,output:.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:@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",reasoning:!0,input:["text"],cost:{input:.2,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:@cf/qwen/qwen3-30b-a3b-fp8":{id:"@cf/qwen/qwen3-30b-a3b-fp8",name:"Qwen3 30B A3b fp8",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text"],cost:{input:.0509,output:.335,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:@cf/qwen/qwen3.8-27b":{id:"@cf/qwen/qwen3.8-27b",name:"Qwen3.8 27B",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text","image"],cost:{input:.45,output:3.2,cacheRead:.05,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:@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",reasoning:!0,input:["text"],cost:{input:.0605,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},type:"chat"},"chat:@cf/zai-org/glm-5.2":{id:"@cf/zai-org/glm-5.2",name:"Glm 5.2",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:@cf/zai-org/glm-5.3":{id:"@cf/zai-org/glm-5.3",name:"Glm 5.3",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:@cf/zai-org/glm-5.3-flash":{id:"@cf/zai-org/glm-5.3-flash",name:"Glm 5.3 Flash",api:"openai-completions",provider:"cloudflare-workers-ai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,supportsLongCacheRetention:!1,sendSessionAffinityHeaders:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var CLOUDFLARE_WORKERS_AI_MODELS=flattenChatModelCatalog("cloudflare-workers-ai",cloudflare_workers_ai_default),CLOUDFLARE_WORKERS_AI_IMAGE_MODELS=flattenImageModelCatalog("cloudflare-workers-ai",cloudflare_workers_ai_default),CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("cloudflare-workers-ai",cloudflare_workers_ai_default);var deepseek_default={"openai-completions":{"chat:deepseek-flash":{id:"deepseek-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",baseUrl:"https://api.deepseek.com",provider:"deepseek",reasoning:!0,thinkingLevelMap:{minimal:null,low:"low",medium:null,high:"high",max:"max"},input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,maxTokensField:"max_tokens",requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek",supportsStrictMode:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",baseUrl:"https://api.deepseek.com",provider:"deepseek",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:.044,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,maxTokensField:"max_tokens",requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek",supportsStrictMode:!0,supportsMidConvoSystemMessages:!0},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"}}};var DEEPSEEK_MODELS=flattenChatModelCatalog("deepseek",deepseek_default),DEEPSEEK_IMAGE_MODELS=flattenImageModelCatalog("deepseek",deepseek_default),DEEPSEEK_CLASSIFIER_MODELS=flattenClassifierModelCatalog("deepseek",deepseek_default);var fireworks_default={"anthropic-messages":{"chat:accounts/fireworks/models/deepseek-v4p1-flash":{id:"accounts/fireworks/models/deepseek-v4p1-flash",name:"DeepSeek V4.1 Flash",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/deepseek-v4p1-flash-1017":{id:"accounts/fireworks/models/deepseek-v4p1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/ember-1":{id:"accounts/fireworks/models/ember-1",name:"Ember-1",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/gpt-oss-120b":{id:"accounts/fireworks/models/gpt-oss-120b",name:"GPT OSS 120B",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:accounts/fireworks/models/inkling":{id:"accounts/fireworks/models/inkling",name:"Inkling",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:1,output:4.05,cacheRead:.17,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/minimax-m3":{id:"accounts/fireworks/models/minimax-m3",name:"MiniMax-M3",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:512e3,maxTokens:512e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:accounts/fireworks/models/minimax-m3p1-flash":{id:"accounts/fireworks/models/minimax-m3p1-flash",name:"MiniMax-M3.1-Flash",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:512e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/muse-spark-open":{id:"accounts/fireworks/models/muse-spark-open",name:"Muse Spark Open",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/nemotron-3-ultra-nvfp4":{id:"accounts/fireworks/models/nemotron-3-ultra-nvfp4",name:"Nemotron 3 Ultra 550B A55B",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:.6,output:2.4,cacheRead:.12,cacheWrite:0},contextWindow:262144,maxTokens:128e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},type:"chat"},"chat:accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b":{id:"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b",name:"Nemotron 3.5 Lightning 30B A3B",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:.05,output:.2,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},type:"chat"},"chat:accounts/fireworks/models/qwen3p8-2p4t-a95b":{id:"accounts/fireworks/models/qwen3p8-2p4t-a95b",name:"Qwen3.8 2.4T A95B",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},type:"chat"},"chat:accounts/fireworks/models/qwen3p8-max":{id:"accounts/fireworks/models/qwen3p8-max",name:"Qwen3.8 Max",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/deepseek-flash-latest":{id:"accounts/fireworks/routers/deepseek-flash-latest",name:"DeepSeek Flash Latest",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/deepseek-v4p1-flash-1017-spot":{id:"accounts/fireworks/routers/deepseek-v4p1-flash-1017-spot",name:"DeepSeek V4.1 Flash 1017 Spot",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.21,output:.84,cacheRead:.0042,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/deepseek-v4p1-flash-spot":{id:"accounts/fireworks/routers/deepseek-v4p1-flash-spot",name:"DeepSeek V4.1 Flash Spot",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:.21,output:.84,cacheRead:.0042,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/kimi-fast-latest":{id:"accounts/fireworks/routers/kimi-fast-latest",name:"Kimi Fast Latest",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:4.5,output:22.5,cacheRead:.45,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/kimi-latest":{id:"accounts/fireworks/routers/kimi-latest",name:"Kimi Latest",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/minimax-latest":{id:"accounts/fireworks/routers/minimax-latest",name:"MiniMax Latest",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:512e3,maxTokens:512e3,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:accounts/fireworks/routers/qwen-max-latest":{id:"accounts/fireworks/routers/qwen-max-latest",name:"Qwen Max Latest (Qwen3.8 Max)",api:"anthropic-messages",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{allowEmptySignature:!0,sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1,forceAdaptiveThinking:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:accounts/fireworks/models/glm-5p3":{id:"accounts/fireworks/models/glm-5p3",name:"GLM 5.3",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048573,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:accounts/fireworks/models/glm-5p3-flash":{id:"accounts/fireworks/models/glm-5p3-flash",name:"GLM 5.3 Flash",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048573,maxTokens:131072,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/models/kimi-k3":{id:"accounts/fireworks/models/kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"openai",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/glm-5p3-fast":{id:"accounts/fireworks/routers/glm-5p3-fast",name:"GLM 5.3 Fast",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text"],cost:{input:2.1,output:6.6,cacheRead:.39,cacheWrite:0},contextWindow:1048572,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:accounts/fireworks/routers/glm-5p3-spot":{id:"accounts/fireworks/routers/glm-5p3-spot",name:"GLM 5.3 Spot",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text"],cost:{input:.98,output:3.08,cacheRead:.182,cacheWrite:0},contextWindow:1048573,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:accounts/fireworks/routers/glm-fast-latest":{id:"accounts/fireworks/routers/glm-fast-latest",name:"GLM 5.3 Fast (Latest)",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text"],cost:{input:2.1,output:6.6,cacheRead:.39,cacheWrite:0},contextWindow:1048572,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:accounts/fireworks/routers/glm-flash-latest":{id:"accounts/fireworks/routers/glm-flash-latest",name:"GLM Flash Latest (GLM 5.3 Flash)",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048573,maxTokens:131072,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/glm-latest":{id:"accounts/fireworks/routers/glm-latest",name:"GLM Latest",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048573,maxTokens:262144,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:accounts/fireworks/routers/kimi-k3-fast":{id:"accounts/fireworks/routers/kimi-k3-fast",name:"Kimi K3 Fast",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text","image"],cost:{input:4.5,output:22.5,cacheRead:.45,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"openai",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:accounts/fireworks/routers/kimi-k3-spot":{id:"accounts/fireworks/routers/kimi-k3-spot",name:"Kimi K3 Spot",api:"openai-completions",provider:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",reasoning:!0,input:["text","image"],cost:{input:2.1,output:10.5,cacheRead:.21,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,sendSessionAffinityHeaders:!0,supportsLongCacheRetention:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"openai",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var FIREWORKS_MODELS=flattenChatModelCatalog("fireworks",fireworks_default),FIREWORKS_IMAGE_MODELS=flattenImageModelCatalog("fireworks",fireworks_default),FIREWORKS_CLASSIFIER_MODELS=flattenClassifierModelCatalog("fireworks",fireworks_default);var github_copilot_default={"anthropic-messages":{"chat:claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5.1":{id:"claude-fable-5.1",name:"Claude Fable 5.1",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-4.5":{id:"claude-haiku-4.5",name:"Claude Haiku 4.5 (latest)",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3,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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-5.5":{id:"claude-haiku-5.5",name:"Claude Haiku 5.5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4.8":{id:"claude-opus-4.8",name:"Claude Opus 4.8",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:64e3,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"},thinkingLevelMap:{xhigh:"xhigh",max:"max",minimal:"low"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:64e3,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"},thinkingLevelMap:{xhigh:"xhigh",max:"max",minimal:"low"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5.5":{id:"claude-opus-5.5",name:"Claude Opus 5.5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:32e3,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"},thinkingLevelMap:{max:"max",minimal:"low"},compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5.5":{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5",api:"anthropic-messages",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:gemini-3.8-flash":{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",api:"openai-completions",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,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:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",api:"openai-completions",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:65536,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:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,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:{supportsStrictMode:!0,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-responses":{"chat: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",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:2e5,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:1e6,maxTokens:128e3,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"},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,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"},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.5":{id:"grok-4.5",name:"Grok 4.5",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.6":{id:"grok-4.6",name:"Grok 4.6",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.7":{id:"grok-4.7",name:"Grok 4.7",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mai-code-1.1-flash":{id:"mai-code-1.1-flash",name:"MAI-Code-1.1-Flash",api:"openai-responses",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:128e3,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"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"typesafe-system-one":{"classifier:microsoft-decision-1":{type:"classifier",id:"microsoft-decision-1",name:"Microsoft-Decision-1",api:"typesafe-system-one",provider:"github-copilot",baseUrl:"https://api.individual.githubcopilot.com",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32768,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"}}}};var GITHUB_COPILOT_MODELS=flattenChatModelCatalog("github-copilot",github_copilot_default),GITHUB_COPILOT_IMAGE_MODELS=flattenImageModelCatalog("github-copilot",github_copilot_default),GITHUB_COPILOT_CLASSIFIER_MODELS=flattenClassifierModelCatalog("github-copilot",github_copilot_default);var google_default={"google-generative-ai":{"chat:deep-research-max-preview-04-2026":{id:"deep-research-max-preview-04-2026",name:"Deep Research Max Preview (Apr-21-2026)",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:131072,maxTokens:65536,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deep-research-preview-04-2026":{id:"deep-research-preview-04-2026",name:"Deep Research Preview (Apr-21-2026)",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:131072,maxTokens:65536,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-2.5-computer-use-preview-10-2025":{id:"gemini-2.5-computer-use-preview-10-2025",name:"Gemini 2.5 Computer Use Preview 10-2025",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:15,cacheRead:0,cacheWrite:0}]},contextWindow:128e3,maxTokens:64e3,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,tiers:[{inputTokensAbove:2e5,input:2.5,output:15,cacheRead:.25,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-flash-lite-preview":{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-pro-preview-customtools":{id:"gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash":{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash-lite":{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",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,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.6-flash":{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.7-flash":{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.8-flash":{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:32768,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.25,output:1.5,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-pro-latest":{id:"gemini-pro-latest",name:"Gemini Pro Latest",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-robotics-er-2-preview":{id:"gemini-robotics-er-2-preview",name:"Gemini Robotics-ER 2 Preview",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:0},contextWindow:131072,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemma-4-26b-a4b-it":{id:"gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B IT",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,thinkingLevelMap:{off:null,minimal:"MINIMAL",low:null,medium:null,high:"HIGH"},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemma-4-31b-it":{id:"gemma-4-31b-it",name:"Gemma 4 31B IT",api:"google-generative-ai",provider:"google",baseUrl:"https://generativelanguage.googleapis.com/v1beta",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,thinkingLevelMap:{off:null,minimal:"MINIMAL",low:null,medium:null,high:"HIGH"},inputLimits:{maxRequestBytes:20971520,images:{maxPerRequest:3600,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var GOOGLE_MODELS=flattenChatModelCatalog("google",google_default),GOOGLE_IMAGE_MODELS=flattenImageModelCatalog("google",google_default),GOOGLE_CLASSIFIER_MODELS=flattenClassifierModelCatalog("google",google_default);var google_vertex_default={"google-vertex":{"chat:gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",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,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-2.5-flash-lite":{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash-Lite",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,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",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,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-flash-lite":{id:"gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.1-pro-preview-customtools":{id:"gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash":{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash-lite":{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",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,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.6-flash":{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.7-flash":{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.8-flash":{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",api:"google-vertex",provider:"google-vertex",baseUrl:"https://{location}-aiplatform.googleapis.com",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var GOOGLE_VERTEX_MODELS=flattenChatModelCatalog("google-vertex",google_vertex_default),GOOGLE_VERTEX_IMAGE_MODELS=flattenImageModelCatalog("google-vertex",google_vertex_default),GOOGLE_VERTEX_CLASSIFIER_MODELS=flattenClassifierModelCatalog("google-vertex",google_vertex_default);var groq_default={"openai-completions":{"chat:llama-3.1-8b-instant":{id:"llama-3.1-8b-instant",name:"Llama 3.1 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:131072,maxTokens:131072,compat:{supportsStrictMode:!0},type:"chat"},"chat:llama-3.3-70b-versatile":{id:"llama-3.3-70b-versatile",name:"Llama 3.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:131072,maxTokens:32768,compat:{supportsStrictMode:!0},type:"chat"},"chat: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:.075,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat: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:.0375,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat: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:.0375,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:qwen/qwen3.6-27b":{id:"qwen/qwen3.6-27b",name:"Qwen3.6 27B",api:"openai-completions",provider:"groq",baseUrl:"https://api.groq.com/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:3,cacheRead:.3,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"default",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen/qwen3.8-27b":{id:"qwen/qwen3.8-27b",name:"Qwen3.8 27B",api:"openai-completions",provider:"groq",baseUrl:"https://api.groq.com/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.8,output:4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsStrictMode:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var GROQ_MODELS=flattenChatModelCatalog("groq",groq_default),GROQ_IMAGE_MODELS=flattenImageModelCatalog("groq",groq_default),GROQ_CLASSIFIER_MODELS=flattenClassifierModelCatalog("groq",groq_default);var huggingface_default={"openai-completions":{"chat:deepseek-ai/DeepSeek-R1":{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek-R1",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.7,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:3,output:5,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:deepseek-ai/DeepSeek-V3":{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek-V3",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.4,output:1.3,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:8192,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:deepseek-ai/DeepSeek-V3-0324":{id:"deepseek-ai/DeepSeek-V3-0324",name:"DeepSeek V3 0324",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.27,output:1.12,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:163840,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:deepseek-ai/DeepSeek-V3.1":{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek-V3.1",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.27,output:1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.28,output:.4,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:deepseek-ai/DeepSeek-V4-Flash":{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.14,output:.28,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:deepseek-ai/DeepSeek-V4-Flash-0731":{id:"deepseek-ai/DeepSeek-V4-Flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.14,output:.28,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-ai/DeepSeek-V4-Flash-Vision-Exp":{id:"deepseek-ai/DeepSeek-V4-Flash-Vision-Exp",name:"DeepSeek V4 Flash Vision Exp",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.44,output:1.32,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.435,output:.87,cacheRead:.003625,cacheWrite:0},contextWindow:1048576,maxTokens:393216,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:deepseek-ai/DeepSeek-V4-Pro-0813":{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash":{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash-1017":{id:"deepseek-ai/DeepSeek-V4.1-Flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-3-12b-it":{id:"google/gemma-3-12b-it",name:"Gemma 3 12B IT",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text","image"],cost:{input:.05,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-3-27b-it":{id:"google/gemma-3-27b-it",name:"Gemma 3 27B IT",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text","image"],cost:{input:.08,output:.16,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-3-4b-it":{id:"google/gemma-3-4b-it",name:"Gemma 3 4B IT",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text","image"],cost:{input:.05,output:.1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-4-26B-A4B-it":{id:"google/gemma-4-26B-A4B-it",name:"Gemma 4 26B A4B IT",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.13,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-4-31B-it":{id:"google/gemma-4-31B-it",name:"Gemma 4 31B IT",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.14,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta-llama/Llama-3.1-8B-Instruct":{id:"meta-llama/Llama-3.1-8B-Instruct",name:"Llama-3.1-8B-Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.06,output:.06,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:meta-llama/Llama-3.3-70B-Instruct":{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama-3.3-70B-Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M1-80k":{id:"MiniMaxAI/MiniMax-M1-80k",name:"MiniMax M1 80K",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.55,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:8e4,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M2":{id:"MiniMaxAI/MiniMax-M2",name:"MiniMax-M2",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M2.1":{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax-M2.1",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M2.7":{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax-M2.7",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:MiniMaxAI/MiniMax-M3":{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:524288,maxTokens:512e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMaxAI/MiniMax-M3.1-Flash":{id:"MiniMaxAI/MiniMax-M3.1-Flash",name:"MiniMax-M3.1-Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:512e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi-K2-Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!1,input:["text"],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:moonshotai/Kimi-K2-Thinking":{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi-K2-Thinking",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi-K2.5",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K2.6":{id:"moonshotai/Kimi-K2.6",name:"Kimi-K2.6",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K2.7-Code":{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K3":{id:"moonshotai/Kimi-K3",name:"Kimi K3",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.25,output:.69,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.1,output:.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:Qwen/Qwen2.5-Coder-32B-Instruct":{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen2.5-Coder-32B-Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.06,output:.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-235B-A22B":{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B-A22B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.2,output:.8,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-235B-A22B-Instruct-2507":{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B-A22B Instruct 2507",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.855,output:2.565,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.3,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-30B-A3B":{id:"Qwen/Qwen3-30B-A3B",name:"Qwen3 30B A3B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.12,output:.5,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-32B":{id:"Qwen/Qwen3-32B",name:"Qwen3 32B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.29,output:.59,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-8B":{id:"Qwen/Qwen3-8B",name:"Qwen3 8B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.07,output:.18,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:Qwen/Qwen3-Coder-30B-A3B-Instruct":{id:"Qwen/Qwen3-Coder-30B-A3B-Instruct",name:"Qwen3-Coder 30B-A3B Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.07,output:.26,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!1,input:["text"],cost:{input:2,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-Coder-Next":{id:"Qwen/Qwen3-Coder-Next",name:"Qwen3-Coder-Next",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text"],cost:{input:.2,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!1,input:["text"],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:Qwen/Qwen3-VL-235B-A22B-Instruct":{id:"Qwen/Qwen3-VL-235B-A22B-Instruct",name:"Qwen3 VL 235B A22B Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text","image"],cost:{input:.3,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3-VL-235B-A22B-Thinking":{id:"Qwen/Qwen3-VL-235B-A22B-Thinking",name:"Qwen3 VL 235B A22B Thinking",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.98,output:3.95,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3-VL-30B-A3B-Instruct":{id:"Qwen/Qwen3-VL-30B-A3B-Instruct",name:"Qwen3 VL 30B A3B Instruct",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!1,input:["text","image"],cost:{input:.2,output:.7,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.5-122B-A10B":{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen3.5 122B-A10B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.4,output:3.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.5-27B":{id:"Qwen/Qwen3.5-27B",name:"Qwen3.5 27B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.5-35B-A3B":{id:"Qwen/Qwen3.5-35B-A3B",name:"Qwen3.5 35B-A3B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text","image"],cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.5-9B":{id:"Qwen/Qwen3.5-9B",name:"Qwen3.5 9B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.17,output:.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.6-27B":{id:"Qwen/Qwen3.6-27B",name:"Qwen3.6 27B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.47,output:3.19,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.6-35B-A3B":{id:"Qwen/Qwen3.6-35B-A3B",name:"Qwen3.6 35B-A3B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.95,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.8-2.4T-A95B":{id:"Qwen/Qwen3.8-2.4T-A95B",name:"Qwen3.8 2.4T A95B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:2.5,output:6.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},type:"chat"},"chat:Qwen/Qwen3.8-27B":{id:"Qwen/Qwen3.8-27B",name:"Qwen3.8 27B",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.4,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:stepfun-ai/Step-3.5-Flash":{id:"stepfun-ai/Step-3.5-Flash",name:"Step 3.5 Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:stepfun-ai/Step-3.7-Flash":{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.15,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:tencent/Hy3":{id:"tencent/Hy3",name:"Hy3",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.14,output:.58,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:128e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:tencent/Hy4-preview":{id:"tencent/Hy4-preview",name:"Hy4 preview",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.834,output:2.501,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:thinkingmachines/Inkling":{id:"thinkingmachines/Inkling",name:"Inkling",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:1,output:4.05,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:thinkingmachines/Inkling-Small":{id:"thinkingmachines/Inkling-Small",name:"Inkling Small",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:524288,maxTokens:1048576,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:XiaomiMiMo/MiMo-V2.5":{id:"XiaomiMiMo/MiMo-V2.5",name:"MiMo-V2.5",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},type:"chat"},"chat:XiaomiMiMo/MiMo-V2.5-Pro":{id:"XiaomiMiMo/MiMo-V2.5-Pro",name:"MiMo-V2.5-Pro",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},type:"chat"},"chat:zai-org/GLM-4.5-Air":{id:"zai-org/GLM-4.5-Air",name:"GLM-4.5-Air",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.13,output:.85,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:98304,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:zai-org/GLM-4.5V":{id:"zai-org/GLM-4.5V",name:"GLM-4.5V",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:16384,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai-org/GLM-4.6":{id:"zai-org/GLM-4.6",name:"GLM-4.6",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:.55,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:zai-org/GLM-4.6V-Flash":{id:"zai-org/GLM-4.6V-Flash",name:"GLM-4.6V-Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:.9,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:zai-org/GLM-5.2":{id:"zai-org/GLM-5.2",name:"GLM-5.2",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},type:"chat"},"chat:zai-org/GLM-5.3":{id:"zai-org/GLM-5.3",name:"GLM-5.3",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:zai-org/GLM-5.3-Flash":{id:"zai-org/GLM-5.3-Flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"huggingface",baseUrl:"https://router.huggingface.co/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsDeveloperRole:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var HUGGINGFACE_MODELS=flattenChatModelCatalog("huggingface",huggingface_default),HUGGINGFACE_IMAGE_MODELS=flattenImageModelCatalog("huggingface",huggingface_default),HUGGINGFACE_CLASSIFIER_MODELS=flattenClassifierModelCatalog("huggingface",huggingface_default);var kimi_coding_default={"openai-completions":{"chat:k3":{id:"k3",name:"Kimi K3",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:k3-256k":{id:"k3-256k",name:"Kimi K3-256K",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:k3.1-pro":{id:"k3.1-pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:k3.1-pro-highspeed":{id:"k3.1-pro-highspeed",name:"Kimi K3.1 Pro Highspeed",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-for-coding":{id:"kimi-for-coding",name:"kimi-for-coding",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:1048576,maxTokens:32768,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-for-coding-highspeed":{id:"kimi-for-coding-highspeed",name:"Kimi For Coding HighSpeed",api:"openai-completions",provider:"kimi-coding",baseUrl:"https://api.kimi.com/coding/v1",reasoning:!0,input:["text","image"],cost:{input:1.9,output:8,cacheRead:.38,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsStrictMode:!1,supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},thinkingLevelMap:{off:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var KIMI_CODING_MODELS=flattenChatModelCatalog("kimi-coding",kimi_coding_default),KIMI_CODING_IMAGE_MODELS=flattenImageModelCatalog("kimi-coding",kimi_coding_default),KIMI_CODING_CLASSIFIER_MODELS=flattenClassifierModelCatalog("kimi-coding",kimi_coding_default);var meta_default={"openai-responses":{"chat:muse-spark-1.1":{id:"muse-spark-1.1",name:"Muse Spark 1.1",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.2":{id:"muse-spark-1.2",name:"Muse Spark 1.2",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.2-contributor":{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.3":{id:"muse-spark-1.3",name:"Muse Spark 1.3",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.3-contributor":{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-wonder-1.0":{id:"muse-wonder-1.0",name:"Muse Wonder",api:"openai-responses",provider:"meta",baseUrl:"https://api.meta.ai/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var META_MODELS=flattenChatModelCatalog("meta",meta_default),META_IMAGE_MODELS=flattenImageModelCatalog("meta",meta_default),META_CLASSIFIER_MODELS=flattenClassifierModelCatalog("meta",meta_default);var minimax_default={"anthropic-messages":{"chat: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,type:"chat"},"chat: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,type:"chat"},"chat:MiniMax-M3":{id:"MiniMax-M3",name:"MiniMax-M3",api:"anthropic-messages",provider:"minimax",baseUrl:"https://api.minimax.io/anthropic",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0,tiers:[{inputTokensAbove:512e3,input:.6,output:2.4,cacheRead:.12,cacheWrite:0}]},contextWindow:1e6,maxTokens:524288,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMax-M3.1-Flash":{id:"MiniMax-M3.1-Flash",name:"MiniMax-M3.1-Flash",api:"anthropic-messages",provider:"minimax",baseUrl:"https://api.minimax.io/anthropic",reasoning:!0,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:524288,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var MINIMAX_MODELS=flattenChatModelCatalog("minimax",minimax_default),MINIMAX_IMAGE_MODELS=flattenImageModelCatalog("minimax",minimax_default),MINIMAX_CLASSIFIER_MODELS=flattenClassifierModelCatalog("minimax",minimax_default);var minimax_cn_default={"anthropic-messages":{"chat: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:.3137,output:1.2549,cacheRead:.0627,cacheWrite:.3922},contextWindow:204800,maxTokens:131072,type:"chat"},"chat: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:.6275,output:2.5098,cacheRead:.0627,cacheWrite:.3922},contextWindow:204800,maxTokens:131072,type:"chat"},"chat:MiniMax-M3":{id:"MiniMax-M3",name:"MiniMax-M3",api:"anthropic-messages",provider:"minimax-cn",baseUrl:"https://api.minimaxi.com/anthropic",reasoning:!0,input:["text","image"],cost:{input:.3137,output:1.2549,cacheRead:.0627,cacheWrite:0,tiers:[{inputTokensAbove:512e3,input:.6275,output:2.5098,cacheRead:.1255,cacheWrite:0}]},contextWindow:1e6,maxTokens:524288,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMax-M3.1-Flash":{id:"MiniMax-M3.1-Flash",name:"MiniMax-M3.1-Flash",api:"anthropic-messages",provider:"minimax-cn",baseUrl:"https://api.minimaxi.com/anthropic",reasoning:!0,input:["text","image"],cost:{input:.1494,output:.5976,cacheRead:.0149,cacheWrite:0},contextWindow:1e6,maxTokens:524288,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var MINIMAX_CN_MODELS=flattenChatModelCatalog("minimax-cn",minimax_cn_default),MINIMAX_CN_IMAGE_MODELS=flattenImageModelCatalog("minimax-cn",minimax_cn_default),MINIMAX_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("minimax-cn",minimax_cn_default);var mistral_default={"mistral-conversations":{"chat:codestral-2508":{id:"codestral-2508",name:"Codestral 25.08",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text"],cost:{input:.3,output:.9,cacheRead:.03,cacheWrite:0},contextWindow:256e3,maxTokens:8192,type:"chat"},"chat: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:.03,cacheWrite:0},contextWindow:256e3,maxTokens:4096,type:"chat"},"chat:deepseek-v4-1-flash-1017":{id:"deepseek-v4-1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.007,cacheWrite:0},contextWindow:1048576,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat: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:.04,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat:devstral-latest":{id:"devstral-latest",name:"Devstral 2",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text"],cost:{input:.4,output:2,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat: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:.04,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat:glm-5-2":{id:"glm-5-2",name:"GLM-5.2",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat: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,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:labs-leanstral-1-5-1":{id:"labs-leanstral-1-5-1",name:"Leanstral 1.5",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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","image"],cost:{input:2,output:5,cacheRead:.2,cacheWrite:0},contextWindow:262144,maxTokens:16384,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:ministral-14b-2512":{id:"ministral-14b-2512",name:"Ministral 3 14B",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text","image"],cost:{input:.2,output:.2,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:ministral-3b-2512":{id:"ministral-3b-2512",name:"Ministral 3 3B",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text","image"],cost:{input:.1,output:.1,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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","image"],cost:{input:.1,output:.1,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:ministral-8b-2512":{id:"ministral-8b-2512",name:"Ministral 3 8B",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text","image"],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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","image"],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.05,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral-large-4":{id:"mistral-large-4",name:"Mistral Large 4",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text","image"],cost:{input:.7,output:2.1,cacheRead:.07,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral-large-4-0-8":{id:"mistral-large-4-0-8",name:"Mistral Large 4.0.8",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text","image"],cost:{input:.7,output:2.1,cacheRead:.07,cacheWrite:0},contextWindow:1048576,maxTokens:262144,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.05,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.04,cacheWrite:0},contextWindow:131072,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.04,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.01,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.015,cacheWrite:0},contextWindow:262144,maxTokens:256e3,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.015,cacheWrite:0},contextWindow:262144,maxTokens:256e3,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:open-mistral-nemo":{id:"open-mistral-nemo",name:"Open Mistral Nemo",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text"],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,type:"chat"},"chat: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:.015,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:voxtral-small-2507":{id:"voxtral-small-2507",name:"Voxtral Small",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text"],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:32768,maxTokens:32e3,type:"chat"},"chat:voxtral-small-latest":{id:"voxtral-small-latest",name:"Voxtral Small (latest)",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!1,input:["text"],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:32768,maxTokens:32e3,type:"chat"},"chat:zai-glm-5-2":{id:"zai-glm-5-2",name:"GLM-5.2",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:zai-glm-5-3":{id:"zai-glm-5-3",name:"GLM-5.3",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:zai-glm-5-3-flash":{id:"zai-glm-5-3-flash",name:"GLM-5.3-Flash",api:"mistral-conversations",provider:"mistral",baseUrl:"https://api.mistral.ai",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var MISTRAL_MODELS=flattenChatModelCatalog("mistral",mistral_default),MISTRAL_IMAGE_MODELS=flattenImageModelCatalog("mistral",mistral_default),MISTRAL_CLASSIFIER_MODELS=flattenClassifierModelCatalog("mistral",mistral_default);var moonshotai_default={"openai-completions":{"chat:kimi-k2.6":{id:"kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},thinkingLevelMap:{off:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code-highspeed":{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code HighSpeed",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.9,output:8,cacheRead:.38,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},thinkingLevelMap:{off:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro":{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro-highspeed":{id:"kimi-k3.1-pro-highspeed",name:"Kimi K3.1 Pro Highspeed",api:"openai-completions",provider:"moonshotai",baseUrl:"https://api.moonshot.ai/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var MOONSHOTAI_MODELS=flattenChatModelCatalog("moonshotai",moonshotai_default),MOONSHOTAI_IMAGE_MODELS=flattenImageModelCatalog("moonshotai",moonshotai_default),MOONSHOTAI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("moonshotai",moonshotai_default);var moonshotai_cn_default={"openai-completions":{"chat:kimi-k2.6":{id:"kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:.9711,output:4.0337,cacheRead:.1643,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:.9711,output:4.0337,cacheRead:.1942,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},thinkingLevelMap:{off:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code-highspeed":{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code HighSpeed",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:1.9421,output:8.0673,cacheRead:.3884,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"deepseek",supportsMidConvoSystemMessages:!0},thinkingLevelMap:{off:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro":{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:1.9437,output:10.1671,cacheRead:.1944,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro-highspeed":{id:"kimi-k3.1-pro-highspeed",name:"Kimi K3.1 Pro Highspeed",api:"openai-completions",provider:"moonshotai-cn",baseUrl:"https://api.moonshot.cn/v1",reasoning:!0,input:["text","image"],cost:{input:3.8874,output:20.3342,cacheRead:.1944,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",supportsStrictMode:!1,thinkingFormat:"openai",requiresReasoningContentOnAssistantMessages:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var MOONSHOTAI_CN_MODELS=flattenChatModelCatalog("moonshotai-cn",moonshotai_cn_default),MOONSHOTAI_CN_IMAGE_MODELS=flattenImageModelCatalog("moonshotai-cn",moonshotai_cn_default),MOONSHOTAI_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("moonshotai-cn",moonshotai_cn_default);var nvidia_default={"openai-completions":{"chat:deepseek-ai/deepseek-v4.1-flash":{id:"deepseek-ai/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/diffusiongemma-26b-a4b-it":{id:"google/diffusiongemma-26b-a4b-it",name:"DiffusionGemma 26B A4B IT",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:25e4,maxTokens:32768,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-3-12b-it":{id:"google/gemma-3-12b-it",name:"Gemma 3 12B IT",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!1,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-3-4b-it":{id:"google/gemma-3-4b-it",name:"Gemma 3 4B IT",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!1,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/llama-3.2-90b-vision-instruct":{id:"meta/llama-3.2-90b-vision-instruct",name:"Llama-3.2-90B-Vision-Instruct",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!1,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-glimmer-30b":{id:"meta/muse-glimmer-30b",name:"Muse Glimmer 30B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimaxai/minimax-m3.1-flash":{id:"minimaxai/minimax-m3.1-flash",name:"MiniMax-M3.1-Flash",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistralai/mistral-7b-instruct-v0.3":{id:"mistralai/mistral-7b-instruct-v0.3",name:"Mistral-7B-Instruct-v0.3",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:65536,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:moonshotai/kimi-k2.6":{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/cosmos-reason2-8b":{id:"nvidia/cosmos-reason2-8b",name:"Cosmos Reason2 8B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/llama-3.1-nemotron-70b-instruct":{id:"nvidia/llama-3.1-nemotron-70b-instruct",name:"Llama 3.1 Nemotron 70B Instruct",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!1,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:nvidia/llama-3.1-nemotron-ultra-253b-v1":{id:"nvidia/llama-3.1-nemotron-ultra-253b-v1",name:"Llama 3.1 Nemotron Ultra 253B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:nvidia/nemotron-3-nano-omni-30b-a3b-reasoning":{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning",name:"Nemotron 3 Nano Omni",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:65536,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/nemotron-3-ultra-550b-a55b":{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra 550B A55B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:nvidia/nemotron-3.5-lightning-30b-a3b":{id:"nvidia/nemotron-3.5-lightning-30b-a3b",name:"Nemotron 3.5 Lightning 30B A3B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:nvidia/nemotron-3.5-super-vl-120b-a12b":{id:"nvidia/nemotron-3.5-super-vl-120b-a12b",name:"Nemotron 3.5 Super VL 120B A12B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:poolside/laguna-xs-2.1":{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},type:"chat"},"chat:stepfun-ai/step-5-preview":{id:"stepfun-ai/step-5-preview",name:"Step 5 Preview",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:z-ai/glm-5.3-flash":{id:"z-ai/glm-5.3-flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,headers:{"NVCF-POLL-SECONDS":"3600"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,supportsStrictMode:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var NVIDIA_MODELS=flattenChatModelCatalog("nvidia",nvidia_default),NVIDIA_IMAGE_MODELS=flattenImageModelCatalog("nvidia",nvidia_default),NVIDIA_CLASSIFIER_MODELS=flattenClassifierModelCatalog("nvidia",nvidia_default);var openai_default={"openai-decisions":{"classifier:gpt-6-luna":{type:"classifier",id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-decisions",provider:"openai",baseUrl:"https://api.openai.com/v1",input:["text","image"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:.2,output:0,cacheRead:0,cacheWrite:0}]},contextWindow:922e3}},"openai-responses":{"chat:chat-latest":{id:"chat-latest",name:"Chat Latest",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.025,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5":{id:"gpt-5",name:"GPT-5",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-chat-latest":{id:"gpt-5-chat-latest",name:"GPT-5 Chat Latest",api:"openai-responses",baseUrl:"https://api.openai.com/v1",provider:"openai",reasoning:!1,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384,thinkingLevelMap:{off:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.3-codex-spark":{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsMidConvoSystemMessages:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsMidConvoSystemMessages:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsMidConvoSystemMessages:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5":{id:"gpt-5.5",name:"GPT-5.5",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsMidConvoSystemMessages:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-cyber":{id:"gpt-5.6-cyber",name:"GPT-5.6 Cyber",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:12.5,output:75,cacheRead:1.25,cacheWrite:15.625},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0,supportsMidConvoEffort:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0,supportsMidConvoEffort:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0,supportsMidConvoEffort:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0,supportsMidConvoEffort:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0,supportsExplicitPromptCacheMode:!0,supportsMidConvoEffort:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-daybreak-blue-latest":{id:"gpt-daybreak-blue-latest",name:"Daybreak Blue",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-daybreak-red-latest":{id:"gpt-daybreak-red-latest",name:"Daybreak Red",api:"openai-responses",provider:"openai",baseUrl:"https://api.openai.com/v1",reasoning:!0,input:["text","image"],cost:{input:12.5,output:75,cacheRead:1.25,cacheWrite:15.625},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsStrictMode:!0,supportsExplicitPromptCacheMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},type:"chat"},"chat: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,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},compat:{supportsStrictMode:!0},inputLimits:{maxRequestBytes:536870912,images:{maxPerRequest:1500,resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var OPENAI_MODELS=flattenChatModelCatalog("openai",openai_default),OPENAI_IMAGE_MODELS=flattenImageModelCatalog("openai",openai_default),OPENAI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("openai",openai_default);var openai_codex_default={"openai-codex-responses":{"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max",minimal:"low"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max",minimal:"low"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max",minimal:"low"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:272e3,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:5e5,maxTokens:128e3,thinkingLevelMap:{off:null,minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",api:"openai-codex-responses",provider:"openai-codex",baseUrl:"https://chatgpt.com/backend-api",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:5e5,maxTokens:128e3,thinkingLevelMap:{off:"none",minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},compat:{supportsOpenAIGrammarTools:!0,supportsAdditionalTools:!0,supportsToolSearch:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var OPENAI_CODEX_MODELS=flattenChatModelCatalog("openai-codex",openai_codex_default),OPENAI_CODEX_IMAGE_MODELS=flattenImageModelCatalog("openai-codex",openai_codex_default),OPENAI_CODEX_CLASSIFIER_MODELS=flattenClassifierModelCatalog("openai-codex",openai_codex_default);var opencode_default={"anthropic-messages":{"chat:claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5-1":{id:"claude-fable-5-1",name:"Claude Fable 5.1",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsMidConvoSystemMessages:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-5-5":{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5-5":{id:"claude-opus-5-5",name:"Claude Opus 5.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max",off:null},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,tiers:[{inputTokensAbove:2e5,input:6,output:22.5,cacheRead:.6,cacheWrite:7.5}]},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-4-6":{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3,thinkingLevelMap:{max:"max"},compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5-5":{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max",off:null},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoSystemMessages:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.5-plus":{id:"qwen3.5-plus",name:"Qwen3.5 Plus",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:262144,maxTokens:65536,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.6-plus":{id:"qwen3.6-plus",name:"Qwen3.6 Plus",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},contextWindow:262144,maxTokens:65536,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"anthropic-messages",provider:"opencode",baseUrl:"https://opencode.ai/inference/anthropic",reasoning:!0,input:["text","image"],cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:.2},contextWindow:1e6,maxTokens:131072,compat:{allowEmptySignature:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"google-generative-ai":{"chat:gemini-3-flash":{id:"gemini-3-flash",name:"Gemini 3 Flash",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash":{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.5-flash-lite":{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.6-flash":{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.7-flash":{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.8-flash":{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",api:"google-generative-ai",provider:"opencode",baseUrl:"https://opencode.ai/inference/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:beam-free":{id:"beam-free",name:"Beam Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},type:"chat"},"chat:big-pickle":{id:"big-pickle",name:"Big Pickle",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:32e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:crouton-alpha-free":{id:"crouton-alpha-free",name:"Crouton Alpha Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:27e4,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:1.74,output:3.48,cacheRead:.145,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,requiresReasoningContentOnAssistantMessages:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4.1-flash":{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsLongCacheRetention:!1,requiresReasoningContentOnAssistantMessages:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4.1-flash-free":{id:"deepseek-v4.1-flash-free",name:"DeepSeek V4.1 Flash Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:32e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",requiresReasoningContentOnAssistantMessages:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:flint-40b-free":{id:"flint-40b-free",name:"Flint 40B Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},type:"chat"},"chat:glm-5":{id:"glm-5",name:"GLM-5",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:glm-5.1":{id:"glm-5.1",name:"GLM-5.1",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3-flash":{id:"glm-5.3-flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.3-flash-free":{id:"glm-5.3-flash-free",name:"GLM-5.3-Flash Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:32e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsLongCacheRetention:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.6":{id:"kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,thinkingFormat:"deepseek",supportsReasoningEffort:!1,maxTokensField:"max_tokens",supportsLongCacheRetention:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-flash-free":{id:"mimo-v2.6-flash-free",name:"MiMo-V2.6-Flash Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:32e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax-m2.5":{id:"minimax-m2.5",name:"MiniMax-M2.5",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:minimax-m2.7":{id:"minimax-m2.7",name:"MiniMax-M2.7",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsLongCacheRetention:!1},type:"chat"},"chat:minimax-m3":{id:"minimax-m3",name:"MiniMax-M3",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:512e3,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral-large-4":{id:"mistral-large-4",name:"Mistral Large 4",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.68,output:2.09,cacheRead:.07,cacheWrite:0},contextWindow:524288,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nemotron-3.5-lightning-free":{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:nemotron-3.5-super-vl-free":{id:"nemotron-3.5-super-vl-free",name:"Nemotron 3.5 Super VL Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:pulse-alpha-free":{id:"pulse-alpha-free",name:"Pulse Alpha Free",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"openai-completions",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:2.5},contextWindow:262144,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-responses":{"chat:gpt-5":{id:"gpt-5",name:"GPT-5",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-codex":{id:"gpt-5-codex",name:"GPT-5 Codex",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat: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/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:272e3,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5":{id:"gpt-5.5",name:"GPT-5.5",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.5-pro":{id:"gpt-5.5-pro",name:"GPT-5.5 Pro",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT-6 Astra",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT-6 Sol",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0,supportsOpenAIGrammarTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.5":{id:"grok-4.5",name:"Grok 4.5",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.3,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:.6,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.6":{id:"grok-4.6",name:"Grok 4.6",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.7":{id:"grok-4.7",name:"Grok 4.7",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-build-0.1":{id:"grok-build-0.1",name:"Grok Build 0.1",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1,output:2,cacheRead:.2,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,compat:{sessionAffinityFormat:"openai-nosession",supportsReasoningEffort:!1},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.2":{id:"muse-spark-1.2",name:"Muse Spark 1.2",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.3":{id:"muse-spark-1.3",name:"Muse Spark 1.3",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-wonder-1.0":{id:"muse-wonder-1.0",name:"Muse Wonder",api:"openai-responses",provider:"opencode",baseUrl:"https://opencode.ai/inference/openai/v1",reasoning:!0,input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"typesafe-system-one":{"classifier:jev-1.13":{type:"classifier",id:"jev-1.13",name:"Jev 1.13",api:"typesafe-system-one",provider:"opencode",baseUrl:"https://opencode.ai/inference/systemone/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3},"classifier:jev-1.13-free":{type:"classifier",id:"jev-1.13-free",name:"Jev 1.13 Free",api:"typesafe-system-one",provider:"opencode",baseUrl:"https://opencode.ai/inference/systemone/v1",input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3}}};var OPENCODE_MODELS=flattenChatModelCatalog("opencode",opencode_default),OPENCODE_IMAGE_MODELS=flattenImageModelCatalog("opencode",opencode_default),OPENCODE_CLASSIFIER_MODELS=flattenClassifierModelCatalog("opencode",opencode_default);var opencode_go_default={"anthropic-messages":{"chat:claude-haiku-5-5":{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",api:"anthropic-messages",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/anthropic",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax-m3":{id:"minimax-m3",name:"MiniMax-M3",api:"anthropic-messages",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/anthropic",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0,tiers:[{inputTokensAbove:512e3,input:.6,output:2.4,cacheRead:.12,cacheWrite:0}]},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.7-plus":{id:"qwen3.7-plus",name:"Qwen3.7 Plus",api:"anthropic-messages",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/anthropic",reasoning:!0,input:["text","image"],cost:{input:.4,output:1.6,cacheRead:.04,cacheWrite:.5,tiers:[{inputTokensAbove:256e3,input:1.2,output:4.8,cacheRead:.12,cacheWrite:1.5}]},contextWindow:1e6,maxTokens:65536,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"anthropic-messages",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/anthropic",reasoning:!0,input:["text","image"],cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:.2},contextWindow:1e6,maxTokens:131072,compat:{allowEmptySignature:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"anthropic-messages",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/anthropic",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:2.5},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"google-generative-ai":{"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",api:"google-generative-ai",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/google/v1beta",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:65536,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-completions":{"chat:beam-free":{id:"beam-free",name:"Beam Free",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:.66,output:1.98,cacheRead:.022,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",max:"max"},type:"chat"},"chat:deepseek-v4.1-flash":{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.003,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3-flash":{id:"glm-5.3-flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:hy3":{id:"hy3",name:"Hy3",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:.14,output:.58,cacheRead:.035,cacheWrite:0},contextWindow:256e3,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:hy4":{id:"hy4",name:"Hy4",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.834,output:2.501,cacheRead:.042,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:hy4-preview":{id:"hy4-preview",name:"Hy4 preview",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:.834,output:2.501,cacheRead:.042,cacheWrite:0},contextWindow:1024e3,maxTokens:64e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},type:"chat"},"chat:iceman-contributor-free":{id:"iceman-contributor-free",name:"Iceman Contributor Free",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:null,xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro":{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens",supportsMidConvoSystemMessages:!0,supportsMidConvoToolAdditions:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:longcat-2.0":{id:"longcat-2.0",name:"LongCat-2.0",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:mimo-v2.5":{id:"mimo-v2.5",name:"MiMo V2.5",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.5-pro":{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text"],cost:{input:.435,output:.87,cacheRead:.003625,cacheWrite:0},contextWindow:1048576,maxTokens:128e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},type:"chat"},"chat:mimo-v2.6-flash":{id:"mimo-v2.6-flash",name:"MiMo-V2.6-Flash",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro":{id:"mimo-v2.6-pro",name:"MiMo-V2.6-Pro",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.435,output:.87,cacheRead:.003625,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax-m3.1-flash":{id:"minimax-m3.1-flash",name:"MiniMax M3.1 Flash",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:512e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:step-5-preview":{id:"step-5-preview",name:"Step 5 Preview",api:"openai-completions",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:1,output:2.7,cacheRead:.1,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"openai-responses":{"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",api:"openai-responses",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT-6 Luna",api:"openai-responses",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{sessionAffinityFormat:"openai-nosession",supportsMidConvoSystemMessages:!0,supportsAdditionalTools:!0},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.7":{id:"grok-4.7",name:"Grok 4.7",api:"openai-responses",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.2-contributor":{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",api:"openai-responses",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:muse-spark-1.3-contributor":{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",api:"openai-responses",provider:"opencode-go",baseUrl:"https://opencode.ai/inference/go/openai/v1",reasoning:!0,input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{sessionAffinityFormat:"openai-nosession"},thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var OPENCODE_GO_MODELS=flattenChatModelCatalog("opencode-go",opencode_go_default),OPENCODE_GO_IMAGE_MODELS=flattenImageModelCatalog("opencode-go",opencode_go_default),OPENCODE_GO_CLASSIFIER_MODELS=flattenClassifierModelCatalog("opencode-go",opencode_go_default);var openrouter_default={"anthropic-messages":{"chat:~anthropic/claude-fable-latest":{type:"chat",id:"~anthropic/claude-fable-latest",name:"Anthropic: Claude Fable Latest",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~anthropic/claude-haiku-latest":{type:"chat",id:"~anthropic/claude-haiku-latest",name:"Anthropic: Claude Haiku Latest",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~anthropic/claude-opus-latest":{type:"chat",id:"~anthropic/claude-opus-latest",name:"Anthropic: Claude Opus Latest",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~anthropic/claude-sonnet-latest":{type:"chat",id:"~anthropic/claude-sonnet-latest",name:"Anthropic: Claude Sonnet Latest",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-fable-5":{type:"chat",id:"anthropic/claude-fable-5",name:"Anthropic: Claude Fable 5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-fable-5.1":{type:"chat",id:"anthropic/claude-fable-5.1",name:"Anthropic: Claude Fable 5.1",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-haiku-4.5":{type:"chat",id:"anthropic/claude-haiku-4.5",name:"Anthropic: Claude Haiku 4.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-haiku-5.5":{type:"chat",id:"anthropic/claude-haiku-5.5",name:"Anthropic: Claude Haiku 5.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.1":{type:"chat",id:"anthropic/claude-opus-4.1",name:"Anthropic: Claude Opus 4.1",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.5":{type:"chat",id:"anthropic/claude-opus-4.5",name:"Anthropic: Claude Opus 4.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.6":{type:"chat",id:"anthropic/claude-opus-4.6",name:"Anthropic: Claude Opus 4.6",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.7":{type:"chat",id:"anthropic/claude-opus-4.7",name:"Anthropic: Claude Opus 4.7",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.8":{type:"chat",id:"anthropic/claude-opus-4.8",name:"Anthropic: Claude Opus 4.8",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-5":{type:"chat",id:"anthropic/claude-opus-5",name:"Anthropic: Claude Opus 5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-5.5":{type:"chat",id:"anthropic/claude-opus-5.5",name:"Anthropic: Claude Opus 5.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-4.5":{type:"chat",id:"anthropic/claude-sonnet-4.5",name:"Anthropic: Claude Sonnet 4.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,tiers:[{inputTokensAbove:2e5,input:6,output:22.5,cacheRead:.6,cacheWrite:7.5}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-4.6":{type:"chat",id:"anthropic/claude-sonnet-4.6",name:"Anthropic: Claude Sonnet 4.6",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-5":{type:"chat",id:"anthropic/claude-sonnet-5",name:"Anthropic: Claude Sonnet 5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-5.5":{type:"chat",id:"anthropic/claude-sonnet-5.5",name:"Anthropic: Claude Sonnet 5.5",api:"anthropic-messages",baseUrl:"https://openrouter.ai/api",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{forceAdaptiveThinking:!0,supportsTemperature:!1,supportsMidConvoEffort:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}}},"openai-completions":{"chat:~deepseek/deepseek-flash-latest":{type:"chat",id:"~deepseek/deepseek-flash-latest",name:"DeepSeek: DeepSeek Flash Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.006,output:.5,cacheRead:.005,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~deepseek/deepseek-pro-latest":{type:"chat",id:"~deepseek/deepseek-pro-latest",name:"DeepSeek: DeepSeek Pro Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.0927,output:8,cacheRead:.0927,cacheWrite:0},contextWindow:1048576,maxTokens:393216,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:~deepseek/deepseek-v4-flash-latest":{type:"chat",id:"~deepseek/deepseek-v4-flash-latest",name:"DeepSeek: DeepSeek V4 Flash Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.059,output:.3,cacheRead:.035,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0}},"chat:~google/gemini-flash-latest":{type:"chat",id:"~google/gemini-flash-latest",name:"Google: Gemini Flash Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~google/gemini-pro-latest":{type:"chat",id:"~google/gemini-pro-latest",name:"Google: Gemini Pro Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:.1875},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~moonshotai/kimi-latest":{type:"chat",id:"~moonshotai/kimi-latest",name:"MoonshotAI: Kimi Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.1548,output:10.551,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~openai/gpt-astra-latest":{type:"chat",id:"~openai/gpt-astra-latest",name:"OpenAI: GPT Astra Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~openai/gpt-luna-latest":{type:"chat",id:"~openai/gpt-luna-latest",name:"OpenAI: GPT Luna Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~openai/gpt-mini-latest":{type:"chat",id:"~openai/gpt-mini-latest",name:"OpenAI: GPT Mini Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~openai/gpt-sol-latest":{type:"chat",id:"~openai/gpt-sol-latest",name:"OpenAI: GPT Sol Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~openai/gpt-terra-latest":{type:"chat",id:"~openai/gpt-terra-latest",name:"OpenAI: GPT Terra Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~unbiased/pareto-latest":{type:"chat",id:"~unbiased/pareto-latest",name:"Pareto Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.8,output:3.2,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~x-ai/grok-latest":{type:"chat",id:"~x-ai/grok-latest",name:"xAI: Grok Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~z-ai/glm-flash-latest":{type:"chat",id:"~z-ai/glm-flash-latest",name:"Z.ai: GLM Flash Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.0285,output:.0923,cacheRead:.0285,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:~z-ai/glm-latest":{type:"chat",id:"~z-ai/glm-latest",name:"Z.ai: GLM Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.0699,output:1.4,cacheRead:.0689,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:aion-labs/aion-2.0":{type:"chat",id:"aion-labs/aion-2.0",name:"AionLabs: Aion-2.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.8,output:1.6,cacheRead:.2,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:aion-labs/aion-3.0":{type:"chat",id:"aion-labs/aion-3.0",name:"AionLabs: Aion-3.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:3,output:6,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:aion-labs/aion-3.0-mini":{type:"chat",id:"aion-labs/aion-3.0-mini",name:"AionLabs: Aion-3.0-Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.7,output:1.4,cacheRead:.18,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:aion-labs/aion-3.5":{type:"chat",id:"aion-labs/aion-3.5",name:"AionLabs: Aion 3.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:3,output:6,cacheRead:.75,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:aion-labs/aion-3.5-mini":{type:"chat",id:"aion-labs/aion-3.5-mini",name:"AionLabs: Aion 3.5 Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.7,output:1.4,cacheRead:.18,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:amazon/nova-2-lite-v1":{type:"chat",id:"amazon/nova-2-lite-v1",name:"Amazon: Nova 2 Lite",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65535,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:amazon/nova-lite-v1":{type:"chat",id:"amazon/nova-lite-v1",name:"Amazon: Nova Lite 1.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:amazon/nova-micro-v1":{type:"chat",id:"amazon/nova-micro-v1",name:"Amazon: Nova Micro 1.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.035,output:.14,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:5120,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:amazon/nova-premier-v1":{type:"chat",id:"amazon/nova-premier-v1",name:"Amazon: Nova Premier 1.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.625,cacheWrite:0},contextWindow:1e6,maxTokens:32e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:amazon/nova-pro-v1":{type:"chat",id:"amazon/nova-pro-v1",name:"Amazon: Nova Pro 1.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.8,output:3.2,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-fable-5:batch":{type:"chat",id:"anthropic/claude-fable-5:batch",name:"Anthropic: Claude Fable 5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-fable-5.1:batch":{type:"chat",id:"anthropic/claude-fable-5.1:batch",name:"Anthropic: Claude Fable 5.1 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.125,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-haiku-4.5:batch":{type:"chat",id:"anthropic/claude-haiku-4.5:batch",name:"Anthropic: Claude Haiku 4.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.5,output:2.5,cacheRead:.05,cacheWrite:.625},contextWindow:2e5,maxTokens:64e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-haiku-5.5:batch":{type:"chat",id:"anthropic/claude-haiku-5.5:batch",name:"Anthropic: Claude Haiku 5.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.05,output:.25,cacheRead:.005,cacheWrite:.0625,tiers:[{inputTokensAbove:1e5,input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125}]},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.1:batch":{type:"chat",id:"anthropic/claude-opus-4.1:batch",name:"Anthropic: Claude Opus 4.1 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:7.5,output:37.5,cacheRead:.75,cacheWrite:9.375},contextWindow:2e5,maxTokens:32e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.5:batch":{type:"chat",id:"anthropic/claude-opus-4.5:batch",name:"Anthropic: Claude Opus 4.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:2e5,maxTokens:64e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.6:batch":{type:"chat",id:"anthropic/claude-opus-4.6:batch",name:"Anthropic: Claude Opus 4.6 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.7:batch":{type:"chat",id:"anthropic/claude-opus-4.7:batch",name:"Anthropic: Claude Opus 4.7 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-4.8:batch":{type:"chat",id:"anthropic/claude-opus-4.8:batch",name:"Anthropic: Claude Opus 4.8 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-5:batch":{type:"chat",id:"anthropic/claude-opus-5:batch",name:"Anthropic: Claude Opus 5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-opus-5.5:batch":{type:"chat",id:"anthropic/claude-opus-5.5:batch",name:"Anthropic: Claude Opus 5.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-4.5:batch":{type:"chat",id:"anthropic/claude-sonnet-4.5:batch",name:"Anthropic: Claude Sonnet 4.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:1.875,tiers:[{inputTokensAbove:2e5,input:3,output:11.25,cacheRead:.3,cacheWrite:3.75}]},contextWindow:1e6,maxTokens:64e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-4.6:batch":{type:"chat",id:"anthropic/claude-sonnet-4.6:batch",name:"Anthropic: Claude Sonnet 4.6 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:1.875},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-5:batch":{type:"chat",id:"anthropic/claude-sonnet-5:batch",name:"Anthropic: Claude Sonnet 5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:anthropic/claude-sonnet-5.5:batch":{type:"chat",id:"anthropic/claude-sonnet-5.5:batch",name:"Anthropic: Claude Sonnet 5.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25},contextWindow:1e6,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,cacheControlFormat:"anthropic",sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat: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,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:bytedance-seed/seed-1.6":{type:"chat",id:"bytedance-seed/seed-1.6",name:"ByteDance Seed: Seed 1.6",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.5,output:4,cacheRead:0,cacheWrite:0}]},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:bytedance-seed/seed-1.6-flash":{type:"chat",id:"bytedance-seed/seed-1.6-flash",name:"ByteDance Seed: Seed 1.6 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.1,output:.8,cacheRead:0,cacheWrite:0}]},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:bytedance-seed/seed-2-1-turbo":{type:"chat",id:"bytedance-seed/seed-2-1-turbo",name:"ByteDance Seed: Seed 2.1 Turbo",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.5,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:bytedance-seed/seed-2.0-code":{type:"chat",id:"bytedance-seed/seed-2.0-code",name:"ByteDance Seed: Seed-2.0-Code",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:1,output:6,cacheRead:0,cacheWrite:0}]},contextWindow:262144,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:bytedance-seed/seed-2.0-lite":{type:"chat",id:"bytedance-seed/seed-2.0-lite",name:"ByteDance Seed: Seed-2.0-Lite",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.5,output:4,cacheRead:0,cacheWrite:0}]},contextWindow:262144,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:bytedance-seed/seed-2.0-mini":{type:"chat",id:"bytedance-seed/seed-2.0-mini",name:"ByteDance Seed: Seed-2.0-Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.1,output:.4,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.2,output:.8,cacheRead:0,cacheWrite:0}]},contextWindow:262144,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:cohere/command-a-plus":{type:"chat",id:"cohere/command-a-plus",name:"Cohere: Command A+",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.5,cacheRead:.15,cacheWrite:0},contextWindow:192e3,maxTokens:64e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:cohere/command-r-08-2024":{type:"chat",id:"cohere/command-r-08-2024",name:"Cohere: Command R (08-2024)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:cohere/command-r-plus-08-2024":{type:"chat",id:"cohere/command-r-plus-08-2024",name:"Cohere: Command R+ (08-2024)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:cohere/north-mini-code:free":{type:"chat",id:"cohere/north-mini-code:free",name:"Cohere: North Mini Code (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:64e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-chat":{type:"chat",id:"deepseek/deepseek-chat",name:"DeepSeek: DeepSeek V3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.2574,output:1.0287,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-chat-v3-0324":{type:"chat",id:"deepseek/deepseek-chat-v3-0324",name:"DeepSeek: DeepSeek V3 0324",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.29,output:1.14,cacheRead:.11,cacheWrite:0},contextWindow:128e3,maxTokens:115200,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-chat-v3.1":{type:"chat",id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek: DeepSeek V3.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.25,output:.95,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:147456,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-r1-0528":{type:"chat",id:"deepseek/deepseek-r1-0528",name:"DeepSeek: R1 0528",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.5,output:2.15,cacheRead:.35,cacheWrite:0},contextWindow:163840,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-v3.1-terminus":{type:"chat",id:"deepseek/deepseek-v3.1-terminus",name:"DeepSeek: DeepSeek V3.1 Terminus",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.27,output:1,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:147456,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-v3.2":{type:"chat",id:"deepseek/deepseek-v3.2",name:"DeepSeek: DeepSeek V3.2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.26,output:.38,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:147456,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-v3.2-exp":{type:"chat",id:"deepseek/deepseek-v3.2-exp",name:"DeepSeek: DeepSeek V3.2 Exp",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.27,output:.41,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:147456,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:deepseek/deepseek-v4-flash":{type:"chat",id:"deepseek/deepseek-v4-flash",name:"DeepSeek: DeepSeek V4 Flash 0423",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:null},input:["text"],cost:{input:.091,output:.182,cacheRead:.0182,cacheWrite:0},contextWindow:1048575,maxTokens:943717,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0}},"chat:deepseek/deepseek-v4-flash-0731":{type:"chat",id:"deepseek/deepseek-v4-flash-0731",name:"DeepSeek: DeepSeek V4 Flash 0731",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.059,output:.3,cacheRead:.035,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0}},"chat:deepseek/deepseek-v4-flash-vision-exp":{type:"chat",id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek: DeepSeek V4 Flash Vision Exp",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.2156,output:.6468,cacheRead:.00686,cacheWrite:0},contextWindow:1048576,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:deepseek/deepseek-v4-pro":{type:"chat",id:"deepseek/deepseek-v4-pro",name:"DeepSeek: DeepSeek V4 Pro 0423",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:null},input:["text"],cost:{input:1.6,output:3.2,cacheRead:.135,cacheWrite:0},contextWindow:1048576,maxTokens:393216,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0}},"chat:deepseek/deepseek-v4-pro-0813":{type:"chat",id:"deepseek/deepseek-v4-pro-0813",name:"DeepSeek: DeepSeek V4 Pro 0813",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.103,output:4.11,cacheRead:.098,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0}},"chat:deepseek/deepseek-v4.1-flash":{type:"chat",id:"deepseek/deepseek-v4.1-flash",name:"DeepSeek: DeepSeek V4.1 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.045,output:.5,cacheRead:.018,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:deepseek/deepseek-v4.1-flash-1017":{type:"chat",id:"deepseek/deepseek-v4.1-flash-1017",name:"DeepSeek: DeepSeek V4.1 Flash 1017",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048576,maxTokens:393216,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:deepseek/deepseek-v4.1-flash:batch":{type:"chat",id:"deepseek/deepseek-v4.1-flash:batch",name:"DeepSeek: DeepSeek V4.1 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.112,output:.336,cacheRead:.00336,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:dots-studio/dots-3-note-preview:free":{type:"chat",id:"dots-studio/dots-3-note-preview:free",name:"Dots Studio: Dots3-Note Preview (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:512e3,maxTokens:460800,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:elorian/glimpse":{type:"chat",id:"elorian/glimpse",name:"Elorian: Glimpse",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.6,output:3,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:256e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:fireworks/ember-1":{type:"chat",id:"fireworks/ember-1",name:"Fireworks: Ember-1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-2.5-flash":{type:"chat",id:"google/gemini-2.5-flash",name:"Google: Gemini 2.5 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.083333},contextWindow:1048576,maxTokens:65535,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-2.5-flash-lite":{type:"chat",id:"google/gemini-2.5-flash-lite",name:"Google: Gemini 2.5 Flash Lite",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:.083333},contextWindow:1048576,maxTokens:65535,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-2.5-pro":{type:"chat",id:"google/gemini-2.5-pro",name:"Google: Gemini 2.5 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375,tiers:[{inputTokensAbove:2e5,input:2.5,output:15,cacheRead:.25,cacheWrite:.375}]},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-2.5-pro-preview":{type:"chat",id:"google/gemini-2.5-pro-preview",name:"Google: Gemini 2.5 Pro Preview 06-05",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375,tiers:[{inputTokensAbove:2e5,input:2.5,output:15,cacheRead:.25,cacheWrite:.375}]},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3-flash-preview":{type:"chat",id:"google/gemini-3-flash-preview",name:"Google: Gemini 3 Flash Preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.083333},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3-flash-preview:batch":{type:"chat",id:"google/gemini-3-flash-preview:batch",name:"Google: Gemini 3 Flash Preview (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3-pro-image":{type:"chat",id:"google/gemini-3-pro-image",name:"Google: Nano Banana Pro (Gemini 3 Pro Image)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:.375},contextWindow:65536,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-flash-lite":{type:"chat",id:"google/gemini-3.1-flash-lite",name:"Google: Gemini 3.1 Flash Lite",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:.083333},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-flash-lite-preview":{type:"chat",id:"google/gemini-3.1-flash-lite-preview",name:"Google: Gemini 3.1 Flash Lite Preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:.083333},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-flash-lite:batch":{type:"chat",id:"google/gemini-3.1-flash-lite:batch",name:"Google: Gemini 3.1 Flash Lite (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.125,output:.75,cacheRead:.0125,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-pro-preview":{type:"chat",id:"google/gemini-3.1-pro-preview",name:"Google: Gemini 3.1 Pro Preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:.375,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:.375}]},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-pro-preview-customtools":{type:"chat",id:"google/gemini-3.1-pro-preview-customtools",name:"Google: Gemini 3.1 Pro Preview Custom Tools",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:.375,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:.375}]},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.1-pro-preview:batch":{type:"chat",id:"google/gemini-3.1-pro-preview:batch",name:"Google: Gemini 3.1 Pro Preview (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1,output:6,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:9,cacheRead:0,cacheWrite:0}]},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.5-flash":{type:"chat",id:"google/gemini-3.5-flash",name:"Google: Gemini 3.5 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:.083333},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.5-flash-lite":{type:"chat",id:"google/gemini-3.5-flash-lite",name:"Google: Gemini 3.5 Flash Lite",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.083333},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.5-flash-lite:batch":{type:"chat",id:"google/gemini-3.5-flash-lite:batch",name:"Google: Gemini 3.5 Flash Lite (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.15,output:1.25,cacheRead:.015,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.5-flash:batch":{type:"chat",id:"google/gemini-3.5-flash:batch",name:"Google: Gemini 3.5 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.6-flash":{type:"chat",id:"google/gemini-3.6-flash",name:"Google: Gemini 3.6 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.6-flash:batch":{type:"chat",id:"google/gemini-3.6-flash:batch",name:"Google: Gemini 3.6 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.375,output:1.875,cacheRead:.0375,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.7-flash":{type:"chat",id:"google/gemini-3.7-flash",name:"Google: Gemini 3.7 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.7-flash:batch":{type:"chat",id:"google/gemini-3.7-flash:batch",name:"Google: Gemini 3.7 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.375,output:1.875,cacheRead:.0375,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.8-flash":{type:"chat",id:"google/gemini-3.8-flash",name:"Google: Gemini 3.8 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.825,output:4.125,cacheRead:.0825,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-3.8-flash:batch":{type:"chat",id:"google/gemini-3.8-flash:batch",name:"Google: Gemini 3.8 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.375,output:1.875,cacheRead:.0375,cacheWrite:.041667},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-4-argon":{type:"chat",id:"google/gemini-4-argon",name:"Google: Gemini 4 Argon",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:.1875},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-4-argon:batch":{type:"chat",id:"google/gemini-4-argon:batch",name:"Google: Gemini 4 Argon (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:.1875},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemini-nano-banana-2.1":{type:"chat",id:"google/gemini-nano-banana-2.1",name:"Google: Nano Banana 2.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:58982,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-3-12b-it":{type:"chat",id:"google/gemma-3-12b-it",name:"Google: Gemma 3 12B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.05,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-3-27b-it":{type:"chat",id:"google/gemma-3-27b-it",name:"Google: Gemma 3 27B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.08,output:.35,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-4-26b-a4b-it":{type:"chat",id:"google/gemma-4-26b-a4b-it",name:"Google: Gemma 4 26B A4B ",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.058,output:.175,cacheRead:.029,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-4-26b-a4b-it:free":{type:"chat",id:"google/gemma-4-26b-a4b-it:free",name:"Google: Gemma 4 26B A4B (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-4-31b-it":{type:"chat",id:"google/gemma-4-31b-it",name:"Google: Gemma 4 31B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.2,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:google/gemma-4-31b-it:free":{type:"chat",id:"google/gemma-4-31b-it:free",name:"Google: Gemma 4 31B (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:ibm-granite/granite-4.2-8b":{type:"chat",id:"ibm-granite/granite-4.2-8b",name:"IBM: Granite 4.2 8B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},input:["text"],cost:{input:.06,output:.25,cacheRead:.015,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inception/mercury-2":{type:"chat",id:"inception/mercury-2",name:"Inception: Mercury 2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.25,output:.75,cacheRead:.025,cacheWrite:0},contextWindow:128e3,maxTokens:5e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inception/mercury-2.5":{type:"chat",id:"inception/mercury-2.5",name:"Inception: Mercury 2.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.04,output:.15,cacheRead:.004,cacheWrite:0},contextWindow:26e4,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inception/mercury-3":{type:"chat",id:"inception/mercury-3",name:"Inception: Mercury 3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.1,output:.35,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inclusionai/ling-3.0-flash":{type:"chat",id:"inclusionai/ling-3.0-flash",name:"inclusionAI: Ling 3.0 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.021,output:.063,cacheRead:.0042,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inclusionai/ling-3.0-flash-vl":{type:"chat",id:"inclusionai/ling-3.0-flash-vl",name:"inclusionAI: Ling 3.0 Flash VL",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.06,output:.18,cacheRead:.012,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:inclusionai/ling-3.0-tiny":{type:"chat",id:"inclusionai/ling-3.0-tiny",name:"inclusionAI: Ling 3.0 Tiny",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.015,output:.045,cacheRead:.003,cacheWrite:0},contextWindow:262144,maxTokens:25e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:inclusionai/ling-3.1-flash":{type:"chat",id:"inclusionai/ling-3.1-flash",name:"inclusionAI: Ling 3.1 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.075,output:.225,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:liquid/lfm-2.5-2.6b":{type:"chat",id:"liquid/lfm-2.5-2.6b",name:"LiquidAI: LFM2.5-2.6B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.35,output:.5,cacheRead:.04,cacheWrite:0},contextWindow:128e3,maxTokens:8192,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:liquid/lfm-2.5-2.6b:free":{type:"chat",id:"liquid/lfm-2.5-2.6b:free",name:"LiquidAI: LFM2.5-2.6B (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:8192,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:liquid/lfm-2.5-24b-a2b":{type:"chat",id:"liquid/lfm-2.5-24b-a2b",name:"LiquidAI: LFM2.5-24B-A2B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.05,output:.7,cacheRead:.025,cacheWrite:0},contextWindow:128e3,maxTokens:8192,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:meituan/longcat-2.0":{type:"chat",id:"meituan/longcat-2.0",name:"Meituan: LongCat 2.0",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048756,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:meta-llama/llama-3.1-8b-instruct":{type:"chat",id:"meta-llama/llama-3.1-8b-instruct",name:"Meta: Llama 3.1 8B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.05,output:.08,cacheRead:.025,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:meta-llama/llama-3.3-70b-instruct":{type:"chat",id:"meta-llama/llama-3.3-70b-instruct",name:"Meta: Llama 3.3 70B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.2,output:.52,cacheRead:.1,cacheWrite:0},contextWindow:131072,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:meta-llama/llama-4-maverick":{type:"chat",id:"meta-llama/llama-4-maverick",name:"Meta: Llama 4 Maverick",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.35,output:1,cacheRead:.17,cacheWrite:0},contextWindow:524288,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta-llama/llama-4-scout":{type:"chat",id:"meta-llama/llama-4-scout",name:"Meta: Llama 4 Scout",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:327680,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-glimmer-30b":{type:"chat",id:"meta/muse-glimmer-30b",name:"Meta: Muse Glimmer 30B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-1.1":{type:"chat",id:"meta/muse-spark-1.1",name:"Meta: Muse Spark 1.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-1.2":{type:"chat",id:"meta/muse-spark-1.2",name:"Meta: Muse Spark 1.2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-1.2-contributor":{type:"chat",id:"meta/muse-spark-1.2-contributor",name:"Meta: Muse Spark 1.2 Contributor",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-1.3":{type:"chat",id:"meta/muse-spark-1.3",name:"Meta: Muse Spark 1.3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-1.3-contributor":{type:"chat",id:"meta/muse-spark-1.3-contributor",name:"Meta: Muse Spark 1.3 Contributor",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-spark-open":{type:"chat",id:"meta/muse-spark-open",name:"Meta: Muse Spark Open",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:meta/muse-wonder":{type:"chat",id:"meta/muse-wonder",name:"Meta: Muse Wonder",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:minimax/minimax-m1":{type:"chat",id:"minimax/minimax-m1",name:"MiniMax: MiniMax M1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.55,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:4e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:minimax/minimax-m2":{type:"chat",id:"minimax/minimax-m2",name:"MiniMax: MiniMax M2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.255,output:1.02,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:minimax/minimax-m2.1":{type:"chat",id:"minimax/minimax-m2.1",name:"MiniMax: MiniMax M2.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:minimax/minimax-m2.5":{type:"chat",id:"minimax/minimax-m2.5",name:"MiniMax: MiniMax M2.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.27,output:.95,cacheRead:.03,cacheWrite:0},contextWindow:198e3,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:minimax/minimax-m2.7":{type:"chat",id:"minimax/minimax-m2.7",name:"MiniMax: MiniMax M2.7",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:minimax/minimax-m3":{type:"chat",id:"minimax/minimax-m3",name:"MiniMax: MiniMax M3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:524288,maxTokens:512e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:minimax/minimax-m3.1-flash":{type:"chat",id:"minimax/minimax-m3.1-flash",name:"MiniMax: MiniMax M3.1 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:1048576,maxTokens:524288,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/codestral-2508":{type:"chat",id:"mistralai/codestral-2508",name:"Mistral: Codestral 2508",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.3,output:.9,cacheRead:.03,cacheWrite:0},contextWindow:256e3,maxTokens:204800,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/devstral-2512":{type:"chat",id:"mistralai/devstral-2512",name:"Mistral: Devstral 2 2512",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.4,output:2,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/ministral-14b-2512":{type:"chat",id:"mistralai/ministral-14b-2512",name:"Mistral: Ministral 3 14B 2512",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.2,output:.2,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/ministral-3b-2512":{type:"chat",id:"mistralai/ministral-3b-2512",name:"Mistral: Ministral 3 3B 2512",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.1,output:.1,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:104857,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/ministral-8b-2512":{type:"chat",id:"mistralai/ministral-8b-2512",name:"Mistral: Ministral 3 8B 2512",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-large":{type:"chat",id:"mistralai/mistral-large",name:"Mistral Large",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:128e3,maxTokens:102400,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/mistral-large-2407":{type:"chat",id:"mistralai/mistral-large-2407",name:"Mistral Large 2407",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:131072,maxTokens:104857,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/mistral-large-2512":{type:"chat",id:"mistralai/mistral-large-2512",name:"Mistral: Mistral Large 3 2512",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.5,output:1.5,cacheRead:.05,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-large-4-0":{type:"chat",id:"mistralai/mistral-large-4-0",name:"Mistral: Mistral Large 4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.7,output:2.1,cacheRead:.07,cacheWrite:0},contextWindow:1048576,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-medium-3":{type:"chat",id:"mistralai/mistral-medium-3",name:"Mistral: Mistral Medium 3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.4,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:104857,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-medium-3-5":{type:"chat",id:"mistralai/mistral-medium-3-5",name:"Mistral: Mistral Medium 3.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-medium-3-5:batch":{type:"chat",id:"mistralai/mistral-medium-3-5:batch",name:"Mistral: Mistral Medium 3.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.75,output:3.75,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-medium-3.1":{type:"chat",id:"mistralai/mistral-medium-3.1",name:"Mistral: Mistral Medium 3.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.4,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:104857,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-nemo":{type:"chat",id:"mistralai/mistral-nemo",name:"Mistral: Mistral Nemo",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.029,output:.03,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/mistral-saba":{type:"chat",id:"mistralai/mistral-saba",name:"Mistral: Saba",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.2,output:.6,cacheRead:.02,cacheWrite:0},contextWindow:32768,maxTokens:26214,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/mistral-small-2603":{type:"chat",id:"mistralai/mistral-small-2603",name:"Mistral: Mistral Small 4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:209715,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-small-3.1-24b-instruct":{type:"chat",id:"mistralai/mistral-small-3.1-24b-instruct",name:"Mistral: Mistral Small 3.1 24B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.351,output:.555,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:102400,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mistral-small-3.2-24b-instruct":{type:"chat",id:"mistralai/mistral-small-3.2-24b-instruct",name:"Mistral: Mistral Small 3.2 24B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.075,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:mistralai/mixtral-8x22b-instruct":{type:"chat",id:"mistralai/mixtral-8x22b-instruct",name:"Mistral: Mixtral 8x22B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:65536,maxTokens:52428,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:mistralai/voxtral-small-24b-2507":{type:"chat",id:"mistralai/voxtral-small-24b-2507",name:"Mistral: Voxtral Small 24B 2507",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:32768,maxTokens:26214,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:moonshotai/kimi-k2":{type:"chat",id:"moonshotai/kimi-k2",name:"MoonshotAI: Kimi K2 0711",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.57,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:98304,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:moonshotai/kimi-k2-0905":{type:"chat",id:"moonshotai/kimi-k2-0905",name:"MoonshotAI: Kimi K2 0905",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.6,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:98304,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:moonshotai/kimi-k2-thinking":{type:"chat",id:"moonshotai/kimi-k2-thinking",name:"MoonshotAI: Kimi K2 Thinking",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:98304,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:moonshotai/kimi-k2.5":{type:"chat",id:"moonshotai/kimi-k2.5",name:"MoonshotAI: Kimi K2.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.41,output:2.06,cacheRead:.07,cacheWrite:0},contextWindow:262144,maxTokens:4096,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:moonshotai/kimi-k2.6":{type:"chat",id:"moonshotai/kimi-k2.6",name:"MoonshotAI: Kimi K2.6",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.65,output:3.41,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,requiresReasoningContentOnAssistantMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:moonshotai/kimi-k2.7-code":{type:"chat",id:"moonshotai/kimi-k2.7-code",name:"MoonshotAI: Kimi K2.7 Code",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:.6,output:3.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:moonshotai/kimi-k3":{type:"chat",id:"moonshotai/kimi-k3",name:"MoonshotAI: Kimi K3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.192,output:16,cacheRead:.182,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:moonshotai/kimi-k3:batch":{type:"chat",id:"moonshotai/kimi-k3:batch",name:"MoonshotAI: Kimi K3 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:2.28,output:11.4,cacheRead:.228,cacheWrite:0},contextWindow:1048576,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:moonshotai/kimi-k3.1-pro":{type:"chat",id:"moonshotai/kimi-k3.1-pro",name:"MoonshotAI: Kimi K3.1 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:nex-agi/nex-n2.5-pro":{type:"chat",id:"nex-agi/nex-n2.5-pro",name:"Nex AGI: Nex-N2.5-Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.075,output:.25,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:nvidia/nemotron-3-nano-30b-a3b":{type:"chat",id:"nvidia/nemotron-3-nano-30b-a3b",name:"NVIDIA: Nemotron 3 Nano 30B A3B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.06,output:.24,cacheRead:.012,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free":{type:"chat",id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",name:"NVIDIA: Nemotron 3 Nano Omni (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:nvidia/nemotron-3-super-120b-a12b":{type:"chat",id:"nvidia/nemotron-3-super-120b-a12b",name:"NVIDIA: Nemotron 3 Super",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:null,xhigh:null,max:null},input:["text"],cost:{input:.3,output:2.4,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3-ultra-550b-a55b":{type:"chat",id:"nvidia/nemotron-3-ultra-550b-a55b",name:"NVIDIA: Nemotron 3 Ultra",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.6,output:2.4,cacheRead:.12,cacheWrite:0},contextWindow:202800,maxTokens:182520,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3-ultra-550b-a55b:free":{type:"chat",id:"nvidia/nemotron-3-ultra-550b-a55b:free",name:"NVIDIA: Nemotron 3 Ultra (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3.5-lightning":{type:"chat",id:"nvidia/nemotron-3.5-lightning",name:"NVIDIA: Nemotron 3.5 Lightning",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.07,output:.2,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3.5-lightning:free":{type:"chat",id:"nvidia/nemotron-3.5-lightning:free",name:"NVIDIA: Nemotron 3.5 Lightning (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:nvidia/nemotron-3.5-super-vl":{type:"chat",id:"nvidia/nemotron-3.5-super-vl",name:"NVIDIA: Nemotron 3.5 Super VL",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.02,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:nvidia/nemotron-3.5-super-vl:free":{type:"chat",id:"nvidia/nemotron-3.5-super-vl:free",name:"NVIDIA: Nemotron 3.5 Super VL (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-3.5-turbo-0613":{type:"chat",id:"openai/gpt-3.5-turbo-0613",name:"OpenAI: GPT-3.5 Turbo (older v0613)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:1,output:2,cacheRead:0,cacheWrite:0},contextWindow:4095,maxTokens:3685,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-3.5-turbo-16k":{type:"chat",id:"openai/gpt-3.5-turbo-16k",name:"OpenAI: GPT-3.5 Turbo 16k",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:3,output:4,cacheRead:0,cacheWrite:0},contextWindow:16385,maxTokens:4096,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-4":{type:"chat",id:"openai/gpt-4",name:"OpenAI: GPT-4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8191,maxTokens:4096,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-4-turbo:batch":{type:"chat",id:"openai/gpt-4-turbo:batch",name:"OpenAI: GPT-4 Turbo (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1":{type:"chat",id:"openai/gpt-4.1",name:"OpenAI: GPT-4.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1-mini":{type:"chat",id:"openai/gpt-4.1-mini",name:"OpenAI: GPT-4.1 Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1-mini:batch":{type:"chat",id:"openai/gpt-4.1-mini:batch",name:"OpenAI: GPT-4.1 Mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.2,output:.8,cacheRead:.05,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1-nano":{type:"chat",id:"openai/gpt-4.1-nano",name:"OpenAI: GPT-4.1 Nano",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:942818,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1-nano:batch":{type:"chat",id:"openai/gpt-4.1-nano:batch",name:"OpenAI: GPT-4.1 Nano (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.05,output:.2,cacheRead:.0125,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4.1:batch":{type:"chat",id:"openai/gpt-4.1:batch",name:"OpenAI: GPT-4.1 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:1,output:4,cacheRead:.25,cacheWrite:0},contextWindow:1047576,maxTokens:32768,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o":{type:"chat",id:"openai/gpt-4o",name:"OpenAI: GPT-4o",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-2024-05-13":{type:"chat",id:"openai/gpt-4o-2024-05-13",name:"OpenAI: GPT-4o (2024-05-13)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-2024-08-06":{type:"chat",id:"openai/gpt-4o-2024-08-06",name:"OpenAI: GPT-4o (2024-08-06)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-2024-11-20":{type:"chat",id:"openai/gpt-4o-2024-11-20",name:"OpenAI: GPT-4o (2024-11-20)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-mini":{type:"chat",id:"openai/gpt-4o-mini",name:"OpenAI: GPT-4o-mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-mini-2024-07-18":{type:"chat",id:"openai/gpt-4o-mini-2024-07-18",name:"OpenAI: GPT-4o-mini (2024-07-18)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o-mini:batch":{type:"chat",id:"openai/gpt-4o-mini:batch",name:"OpenAI: GPT-4o-mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.075,output:.3,cacheRead:.0375,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-4o:batch":{type:"chat",id:"openai/gpt-4o:batch",name:"OpenAI: GPT-4o (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:1.25,output:5,cacheRead:.625,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5":{type:"chat",id:"openai/gpt-5",name:"OpenAI: GPT-5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-mini":{type:"chat",id:"openai/gpt-5-mini",name:"OpenAI: GPT-5 Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-mini:batch":{type:"chat",id:"openai/gpt-5-mini:batch",name:"OpenAI: GPT-5 Mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.125,output:1,cacheRead:.0125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-nano":{type:"chat",id:"openai/gpt-5-nano",name:"OpenAI: GPT-5 Nano",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-nano:batch":{type:"chat",id:"openai/gpt-5-nano:batch",name:"OpenAI: GPT-5 Nano (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.025,output:.2,cacheRead:.0025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-pro":{type:"chat",id:"openai/gpt-5-pro",name:"OpenAI: GPT-5 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5-pro:batch":{type:"chat",id:"openai/gpt-5-pro:batch",name:"OpenAI: GPT-5 Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:7.5,output:60,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5:batch":{type:"chat",id:"openai/gpt-5:batch",name:"OpenAI: GPT-5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.625,output:5,cacheRead:.0625,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.1":{type:"chat",id:"openai/gpt-5.1",name:"OpenAI: GPT-5.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.1-codex":{type:"chat",id:"openai/gpt-5.1-codex",name:"OpenAI: GPT-5.1-Codex",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.1-codex-max":{type:"chat",id:"openai/gpt-5.1-codex-max",name:"OpenAI: GPT-5.1-Codex-Max",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.1-codex-mini":{type:"chat",id:"openai/gpt-5.1-codex-mini",name:"OpenAI: GPT-5.1-Codex-Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.25,output:2,cacheRead:.03,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.1:batch":{type:"chat",id:"openai/gpt-5.1:batch",name:"OpenAI: GPT-5.1 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.625,output:5,cacheRead:.0625,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2":{type:"chat",id:"openai/gpt-5.2",name:"OpenAI: GPT-5.2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2-chat":{type:"chat",id:"openai/gpt-5.2-chat",name:"OpenAI: GPT-5.2 Chat",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2-codex":{type:"chat",id:"openai/gpt-5.2-codex",name:"OpenAI: GPT-5.2-Codex",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2-pro":{type:"chat",id:"openai/gpt-5.2-pro",name:"OpenAI: GPT-5.2 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2-pro:batch":{type:"chat",id:"openai/gpt-5.2-pro:batch",name:"OpenAI: GPT-5.2 Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:10.5,output:84,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.2:batch":{type:"chat",id:"openai/gpt-5.2:batch",name:"OpenAI: GPT-5.2 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.875,output:7,cacheRead:.0875,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.3-codex":{type:"chat",id:"openai/gpt-5.3-codex",name:"OpenAI: GPT-5.3-Codex",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4":{type:"chat",id:"openai/gpt-5.4",name:"OpenAI: GPT-5.4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-mini":{type:"chat",id:"openai/gpt-5.4-mini",name:"OpenAI: GPT-5.4 Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-mini:batch":{type:"chat",id:"openai/gpt-5.4-mini:batch",name:"OpenAI: GPT-5.4 Mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.375,output:2.25,cacheRead:.0375,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-nano":{type:"chat",id:"openai/gpt-5.4-nano",name:"OpenAI: GPT-5.4 Nano",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-nano:batch":{type:"chat",id:"openai/gpt-5.4-nano:batch",name:"OpenAI: GPT-5.4 Nano (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.1,output:.625,cacheRead:.01,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-pro":{type:"chat",id:"openai/gpt-5.4-pro",name:"OpenAI: GPT-5.4 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4-pro:batch":{type:"chat",id:"openai/gpt-5.4-pro:batch",name:"OpenAI: GPT-5.4 Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:15,output:90,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:30,output:135,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.4:batch":{type:"chat",id:"openai/gpt-5.4:batch",name:"OpenAI: GPT-5.4 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.25,output:7.5,cacheRead:.125,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:2.5,output:11.25,cacheRead:.25,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.5":{type:"chat",id:"openai/gpt-5.5",name:"OpenAI: GPT-5.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.5-pro":{type:"chat",id:"openai/gpt-5.5-pro",name:"OpenAI: GPT-5.5 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.5-pro:batch":{type:"chat",id:"openai/gpt-5.5-pro:batch",name:"OpenAI: GPT-5.5 Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:15,output:90,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:30,output:135,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.5:batch":{type:"chat",id:"openai/gpt-5.5:batch",name:"OpenAI: GPT-5.5 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-luna":{type:"chat",id:"openai/gpt-5.6-luna",name:"OpenAI: GPT-5.6 Luna",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-luna-pro":{type:"chat",id:"openai/gpt-5.6-luna-pro",name:"OpenAI: GPT-5.6 Luna Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-luna-pro:batch":{type:"chat",id:"openai/gpt-5.6-luna-pro:batch",name:"OpenAI: GPT-5.6 Luna Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.6,cacheRead:.01,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:.2,output:.9,cacheRead:.02,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-luna:batch":{type:"chat",id:"openai/gpt-5.6-luna:batch",name:"OpenAI: GPT-5.6 Luna (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.6,cacheRead:.01,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:.2,output:.9,cacheRead:.02,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-sol":{type:"chat",id:"openai/gpt-5.6-sol",name:"OpenAI: GPT-5.6 Sol",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-sol-pro":{type:"chat",id:"openai/gpt-5.6-sol-pro",name:"OpenAI: GPT-5.6 Sol Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-sol-pro:batch":{type:"chat",id:"openai/gpt-5.6-sol-pro:batch",name:"OpenAI: GPT-5.6 Sol Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-sol:batch":{type:"chat",id:"openai/gpt-5.6-sol:batch",name:"OpenAI: GPT-5.6 Sol (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-terra":{type:"chat",id:"openai/gpt-5.6-terra",name:"OpenAI: GPT-5.6 Terra",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-terra-pro":{type:"chat",id:"openai/gpt-5.6-terra-pro",name:"OpenAI: GPT-5.6 Terra Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-terra-pro:batch":{type:"chat",id:"openai/gpt-5.6-terra-pro:batch",name:"OpenAI: GPT-5.6 Terra Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:6,cacheRead:.1,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:2,output:9,cacheRead:.2,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-5.6-terra:batch":{type:"chat",id:"openai/gpt-5.6-terra:batch",name:"OpenAI: GPT-5.6 Terra (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:6,cacheRead:.1,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:2,output:9,cacheRead:.2,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-astra":{type:"chat",id:"openai/gpt-6-astra",name:"OpenAI: GPT-6 Astra",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-astra-pro":{type:"chat",id:"openai/gpt-6-astra-pro",name:"OpenAI: GPT-6 Astra Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-astra-pro:batch":{type:"chat",id:"openai/gpt-6-astra-pro:batch",name:"OpenAI: GPT-6 Astra Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,tiers:[{inputTokensAbove:272e3,input:10,output:37.5,cacheRead:1,cacheWrite:12.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-astra:batch":{type:"chat",id:"openai/gpt-6-astra:batch",name:"OpenAI: GPT-6 Astra (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,tiers:[{inputTokensAbove:272e3,input:10,output:37.5,cacheRead:1,cacheWrite:12.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-luna":{type:"chat",id:"openai/gpt-6-luna",name:"OpenAI: GPT-6 Luna",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-luna-pro":{type:"chat",id:"openai/gpt-6-luna-pro",name:"OpenAI: GPT-6 Luna Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-luna-pro:batch":{type:"chat",id:"openai/gpt-6-luna-pro:batch",name:"OpenAI: GPT-6 Luna Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.05,output:.25,cacheRead:.005,cacheWrite:.0625,tiers:[{inputTokensAbove:272e3,input:.1,output:.375,cacheRead:.01,cacheWrite:.125}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-luna:batch":{type:"chat",id:"openai/gpt-6-luna:batch",name:"OpenAI: GPT-6 Luna (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.05,output:.25,cacheRead:.005,cacheWrite:.0625,tiers:[{inputTokensAbove:272e3,input:.1,output:.375,cacheRead:.01,cacheWrite:.125}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-sol":{type:"chat",id:"openai/gpt-6-sol",name:"OpenAI: GPT-6 Sol",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-sol-pro":{type:"chat",id:"openai/gpt-6-sol-pro",name:"OpenAI: GPT-6 Sol Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-sol-pro:batch":{type:"chat",id:"openai/gpt-6-sol-pro:batch",name:"OpenAI: GPT-6 Sol Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.2,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6-sol:batch":{type:"chat",id:"openai/gpt-6-sol:batch",name:"OpenAI: GPT-6 Sol (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.2,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-sol":{type:"chat",id:"openai/gpt-6.1-sol",name:"OpenAI: GPT-6.1 Sol",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-sol-pro":{type:"chat",id:"openai/gpt-6.1-sol-pro",name:"OpenAI: GPT-6.1 Sol Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-sol-pro:batch":{type:"chat",id:"openai/gpt-6.1-sol-pro:batch",name:"OpenAI: GPT-6.1 Sol Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-sol:batch":{type:"chat",id:"openai/gpt-6.1-sol:batch",name:"OpenAI: GPT-6.1 Sol (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-terra":{type:"chat",id:"openai/gpt-6.1-terra",name:"OpenAI: GPT-6.1 Terra",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0,supportsMidConvoSystemMessages:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-terra-pro":{type:"chat",id:"openai/gpt-6.1-terra-pro",name:"OpenAI: GPT-6.1 Terra Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-terra-pro:batch":{type:"chat",id:"openai/gpt-6.1-terra-pro:batch",name:"OpenAI: GPT-6.1 Terra Pro (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.5,output:2.5,cacheRead:.025,cacheWrite:.625,tiers:[{inputTokensAbove:272e3,input:1,output:3.75,cacheRead:.05,cacheWrite:1.25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-6.1-terra:batch":{type:"chat",id:"openai/gpt-6.1-terra:batch",name:"OpenAI: GPT-6.1 Terra (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.5,output:2.5,cacheRead:.025,cacheWrite:.625,tiers:[{inputTokensAbove:272e3,input:1,output:3.75,cacheRead:.05,cacheWrite:1.25}]},contextWindow:105e4,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-audio":{type:"chat",id:"openai/gpt-audio",name:"OpenAI: GPT Audio",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-audio-mini":{type:"chat",id:"openai/gpt-audio-mini",name:"OpenAI: GPT Audio Mini",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.6,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-chat-latest":{type:"chat",id:"openai/gpt-chat-latest",name:"OpenAI: GPT Chat Latest",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/gpt-oss-120b":{type:"chat",id:"openai/gpt-oss-120b",name:"OpenAI: gpt-oss-120b",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-oss-120b:batch":{type:"chat",id:"openai/gpt-oss-120b:batch",name:"OpenAI: gpt-oss-120b (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.0296,output:.136,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-oss-20b":{type:"chat",id:"openai/gpt-oss-20b",name:"OpenAI: gpt-oss-20b",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.03,output:.13,cacheRead:.03,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-oss-20b:batch":{type:"chat",id:"openai/gpt-oss-20b:batch",name:"OpenAI: gpt-oss-20b (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text"],cost:{input:.024,output:.112,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/gpt-oss-safeguard-20b":{type:"chat",id:"openai/gpt-oss-safeguard-20b",name:"OpenAI: gpt-oss-safeguard-20b",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.075,output:.3,cacheRead:.0375,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/o3":{type:"chat",id:"openai/o3",name:"OpenAI: o3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/o3-mini:batch":{type:"chat",id:"openai/o3-mini:batch",name:"OpenAI: o3 Mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.55,output:2.2,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:openai/o3-pro":{type:"chat",id:"openai/o3-pro",name:"OpenAI: o3 Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/o3:batch":{type:"chat",id:"openai/o3:batch",name:"OpenAI: o3 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:1,output:4,cacheRead:.25,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openai/o4-mini:batch":{type:"chat",id:"openai/o4-mini:batch",name:"OpenAI: o4 Mini (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:.55,output:2.2,cacheRead:.1375,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,compat:{thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openrouter/auto":{type:"chat",id:"openrouter/auto",name:"Auto Router",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:4096,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openrouter/auto-beta":{type:"chat",id:"openrouter/auto-beta",name:"Auto Router (Beta)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openrouter/free":{type:"chat",id:"openrouter/free",name:"Free Models Router",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:4096,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:openrouter/fusion":{id:"openrouter/fusion",name:"OpenRouter: Fusion",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:3e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},type:"chat"},"chat:openrouter/pareto-code":{type:"chat",id:"openrouter/pareto-code",name:"Pareto Code Router",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:4096,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:particle-ai/particle-1":{type:"chat",id:"particle-ai/particle-1",name:"Particle AI: Particle-1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:.05,output:.5,cacheRead:.003,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:perceptron/perceptron-mk1.5":{type:"chat",id:"perceptron/perceptron-mk1.5",name:"Perceptron: Perceptron Mk1.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.15,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:36864,maxTokens:8192,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:prism-ml/ternary-bonsai-2-27b":{type:"chat",id:"prism-ml/ternary-bonsai-2-27b",name:"PrismML: Ternary Bonsai 2 27B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:"medium",high:null,xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.075,output:.5,cacheRead:.0375,cacheWrite:0},contextWindow:262144,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:prism-ml/ternary-bonsai-2-9b":{type:"chat",id:"prism-ml/ternary-bonsai-2-9b",name:"PrismML: Ternary Bonsai 2 9B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.08,output:.13,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen-2.5-72b-instruct":{type:"chat",id:"qwen/qwen-2.5-72b-instruct",name:"Qwen2.5 72B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.36,output:.4,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen-2.5-7b-instruct":{type:"chat",id:"qwen/qwen-2.5-7b-instruct",name:"Qwen: Qwen2.5 7B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.1,output:.2,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:29491,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen-plus":{type:"chat",id:"qwen/qwen-plus",name:"Qwen: Qwen-Plus",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.26,output:.78,cacheRead:.052,cacheWrite:.325,tiers:[{inputTokensAbove:256e3,input:.78,output:2.34,cacheRead:.156,cacheWrite:.975}]},contextWindow:1e6,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-14b":{type:"chat",id:"qwen/qwen3-14b",name:"Qwen: Qwen3 14B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.12,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-235b-a22b-2507":{type:"chat",id:"qwen/qwen3-235b-a22b-2507",name:"Qwen: Qwen3 235B A22B Instruct 2507",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.14,output:.8,cacheRead:.05,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-235b-a22b-thinking-2507":{type:"chat",id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen: Qwen3 235B A22B Thinking 2507",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.45,output:3.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-30b-a3b":{type:"chat",id:"qwen/qwen3-30b-a3b",name:"Qwen: Qwen3 30B A3B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.12,output:.5,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-30b-a3b-instruct-2507":{type:"chat",id:"qwen/qwen3-30b-a3b-instruct-2507",name:"Qwen: Qwen3 30B A3B Instruct 2507",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.1,output:.3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-32b":{type:"chat",id:"qwen/qwen3-32b",name:"Qwen: Qwen3 32B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.08,output:.28,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-coder":{type:"chat",id:"qwen/qwen3-coder",name:"Qwen: Qwen3 Coder 480B A35B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.3,output:1,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-coder-30b-a3b-instruct":{type:"chat",id:"qwen/qwen3-coder-30b-a3b-instruct",name:"Qwen: Qwen3 Coder 30B A3B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-coder-flash":{type:"chat",id:"qwen/qwen3-coder-flash",name:"Qwen: Qwen3 Coder Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.195,output:.975,cacheRead:.039,cacheWrite:.24375,tiers:[{inputTokensAbove:32e3,input:.325,output:1.625,cacheRead:.065,cacheWrite:.40625},{inputTokensAbove:128e3,input:.52,output:2.6,cacheRead:.104,cacheWrite:.65}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-coder-next":{type:"chat",id:"qwen/qwen3-coder-next",name:"Qwen: Qwen3 Coder Next",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.12,output:.8,cacheRead:.07,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-next-80b-a3b-instruct":{type:"chat",id:"qwen/qwen3-next-80b-a3b-instruct",name:"Qwen: Qwen3 Next 80B A3B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.09,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3-vl-235b-a22b-instruct":{type:"chat",id:"qwen/qwen3-vl-235b-a22b-instruct",name:"Qwen: Qwen3 VL 235B A22B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.21,output:1.9,cacheRead:.1,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3-vl-30b-a3b-instruct":{type:"chat",id:"qwen/qwen3-vl-30b-a3b-instruct",name:"Qwen: Qwen3 VL 30B A3B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3-vl-30b-a3b-thinking":{type:"chat",id:"qwen/qwen3-vl-30b-a3b-thinking",name:"Qwen: Qwen3 VL 30B A3B Thinking",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:.29,output:1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3-vl-8b-instruct":{type:"chat",id:"qwen/qwen3-vl-8b-instruct",name:"Qwen: Qwen3 VL 8B Instruct",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.25,output:.75,cacheRead:.12,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-122b-a10b":{type:"chat",id:"qwen/qwen3.5-122b-a10b",name:"Qwen: Qwen3.5-122B-A10B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.26,output:2.08,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-27b":{type:"chat",id:"qwen/qwen3.5-27b",name:"Qwen: Qwen3.5-27B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.26,output:2.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-35b-a3b":{type:"chat",id:"qwen/qwen3.5-35b-a3b",name:"Qwen: Qwen3.5-35B-A3B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.14,output:1,cacheRead:.05,cacheWrite:0},contextWindow:262144,maxTokens:81920,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-397b-a17b":{type:"chat",id:"qwen/qwen3.5-397b-a17b",name:"Qwen: Qwen3.5 397B A17B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.5,output:3.6,cacheRead:.3,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-9b":{type:"chat",id:"qwen/qwen3.5-9b",name:"Qwen: Qwen3.5-9B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.17,output:.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-flash-02-23":{type:"chat",id:"qwen/qwen3.5-flash-02-23",name:"Qwen: Qwen3.5-Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.065,output:.26,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-plus-02-15":{type:"chat",id:"qwen/qwen3.5-plus-02-15",name:"Qwen: Qwen3.5 Plus 2026-02-15",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.26,output:1.56,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:256e3,input:.325,output:1.95,cacheRead:0,cacheWrite:0}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.5-plus-20260420":{type:"chat",id:"qwen/qwen3.5-plus-20260420",name:"Qwen: Qwen3.5 Plus 2026-04-20",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.8,cacheRead:0,cacheWrite:.375,tiers:[{inputTokensAbove:256e3,input:.375,output:2.25,cacheRead:0,cacheWrite:.46875}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.6-27b":{type:"chat",id:"qwen/qwen3.6-27b",name:"Qwen: Qwen3.6 27B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.45,output:2.7,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.6-35b-a3b":{type:"chat",id:"qwen/qwen3.6-35b-a3b",name:"Qwen: Qwen3.6 35B A3B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.1,output:.9,cacheRead:.025,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.6-flash":{type:"chat",id:"qwen/qwen3.6-flash",name:"Qwen: Qwen3.6 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.1875,output:1.125,cacheRead:0,cacheWrite:.234375,tiers:[{inputTokensAbove:256e3,input:.75,output:3,cacheRead:0,cacheWrite:.9375}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.6-plus":{type:"chat",id:"qwen/qwen3.6-plus",name:"Qwen: Qwen3.6 Plus",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.325,output:1.95,cacheRead:0,cacheWrite:.40625,tiers:[{inputTokensAbove:256e3,input:1.3,output:3.9,cacheRead:0,cacheWrite:1.625}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.7-flash":{type:"chat",id:"qwen/qwen3.7-flash",name:"Qwen: Qwen3.7 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.03,output:.13,cacheRead:.006,cacheWrite:.038,tiers:[{inputTokensAbove:32e3,input:.1,output:.4,cacheRead:.02,cacheWrite:.125},{inputTokensAbove:256e3,input:.2,output:.8,cacheRead:.04,cacheWrite:.25}]},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.7-max":{type:"chat",id:"qwen/qwen3.7-max",name:"Qwen: Qwen3.7 Max",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:1.475,output:4.425,cacheRead:.295,cacheWrite:1.84375},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3.7-plus":{type:"chat",id:"qwen/qwen3.7-plus",name:"Qwen: Qwen3.7 Plus",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.32,output:1.28,cacheRead:.064,cacheWrite:.4,tiers:[{inputTokensAbove:256e3,input:.96,output:3.84,cacheRead:.192,cacheWrite:1.2}]},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.7-plus:batch":{type:"chat",id:"qwen/qwen3.7-plus:batch",name:"Qwen: Qwen3.7 Plus (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.23,output:.92,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.8-2.4t-a95b":{type:"chat",id:"qwen/qwen3.8-2.4t-a95b",name:"Qwen: Qwen3.8 2.4T A95B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},input:["text"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:qwen/qwen3.8-27b":{type:"chat",id:"qwen/qwen3.8-27b",name:"Qwen: Qwen3.8 27B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},input:["text","image"],cost:{input:.15,output:1.875,cacheRead:.0375,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.8-flash":{type:"chat",id:"qwen/qwen3.8-flash",name:"Qwen: Qwen3.8 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.8-max-0902":{type:"chat",id:"qwen/qwen3.8-max-0902",name:"Qwen: Qwen3.8 Max (0902)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.8-max-prime":{type:"chat",id:"qwen/qwen3.8-max-prime",name:"Qwen: Qwen3.8 Max Prime",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:4,output:12,cacheRead:.5,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:qwen/qwen3.8-omni-flash":{type:"chat",id:"qwen/qwen3.8-omni-flash",name:"Qwen: Qwen3.8 Omni Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:recursive/flint-v1.0:free":{type:"chat",id:"recursive/flint-v1.0:free",name:"Recursive: Flint (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:reflection/beam-1.0-501b-a23b":{type:"chat",id:"reflection/beam-1.0-501b-a23b",name:"Reflection: Beam 1.0 501B A23B",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text"],cost:{input:.25,output:1,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:rekaai/reka-edge":{type:"chat",id:"rekaai/reka-edge",name:"Reka Edge",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:14745,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:relace/relace-search":{type:"chat",id:"relace/relace-search",name:"Relace: Relace Search",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:ricursiveai/ripple-65b-preview":{type:"chat",id:"ricursiveai/ripple-65b-preview",name:"ricursiveAI/Ripple-65B-Preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text"],cost:{input:.2,output:.6,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:sakana/fugu-max":{type:"chat",id:"sakana/fugu-max",name:"Sakana: Fugu Max",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:sakana/fugu-ultra":{type:"chat",id:"sakana/fugu-ultra",name:"Sakana: Fugu Ultra",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:sakana/fugu-ultra-v2":{type:"chat",id:"sakana/fugu-ultra-v2",name:"Sakana: Fugu Ultra v2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:sakana/sakana-namazu":{type:"chat",id:"sakana/sakana-namazu",name:"Sakana: Sakana Namazu",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.95,output:4,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:stealth/crouton-alpha":{type:"chat",id:"stealth/crouton-alpha",name:"Crouton Alpha",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:stepfun/step-3.5-flash":{type:"chat",id:"stepfun/step-3.5-flash",name:"StepFun: Step 3.5 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text"],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:stepfun/step-3.7-flash":{type:"chat",id:"stepfun/step-3.7-flash",name:"StepFun: Step 3.7 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.2,output:1.15,cacheRead:.04,cacheWrite:0},contextWindow:256e3,maxTokens:230400,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:stepfun/step-5-preview":{type:"chat",id:"stepfun/step-5-preview",name:"StepFun: Step 5 Preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1,output:2.7,cacheRead:.1,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:tencent/hy3":{type:"chat",id:"tencent/hy3",name:"Tencent: Hy3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},input:["text"],cost:{input:.132,output:.528,cacheRead:.033,cacheWrite:0},contextWindow:262144,maxTokens:128e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:tencent/hy3-preview":{type:"chat",id:"tencent/hy3-preview",name:"Tencent: Hy3 preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},input:["text"],cost:{input:.18,output:.6,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:tencent/hy4":{type:"chat",id:"tencent/hy4",name:"Tencent: Hy4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:.417,output:1.2505,cacheRead:.021,cacheWrite:0},contextWindow:1048576,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:tencent/hy4-preview":{type:"chat",id:"tencent/hy4-preview",name:"Tencent: Hy4 preview",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:null},input:["text"],cost:{input:.834,output:2.501,cacheRead:.042,cacheWrite:0},contextWindow:1048576,maxTokens:64e3,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:thinkingmachines/inkling":{type:"chat",id:"thinkingmachines/inkling",name:"Thinking Machines: Inkling",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:1,output:4.05,cacheRead:.17,cacheWrite:0},contextWindow:524288,maxTokens:471859,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:thinkingmachines/inkling-small":{type:"chat",id:"thinkingmachines/inkling-small",name:"Thinking Machines: Inkling Small",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.45,output:1.2,cacheRead:.1,cacheWrite:0},contextWindow:524288,maxTokens:262144,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:typesafe/jev-router":{type:"chat",id:"typesafe/jev-router",name:"TypeSafe: Jev Router",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:unbiased/pareto-26.10":{type:"chat",id:"unbiased/pareto-26.10",name:"Pareto 26.10",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:.8,output:3.2,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:unbiased/pareto-26.9":{type:"chat",id:"unbiased/pareto-26.9",name:"Pareto 26.9",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!1,input:["text","image"],cost:{input:2.5,output:7.5,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:upstage/solar-mini4":{type:"chat",id:"upstage/solar-mini4",name:"Upstage: Solar Mini 4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text"],cost:{input:.05,output:.2,cacheRead:.005,cacheWrite:0},contextWindow:524288,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:upstage/solar-pro4":{type:"chat",id:"upstage/solar-pro4",name:"Upstage: Solar Pro 4",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text"],cost:{input:.15,output:.6,cacheRead:.03,cacheWrite:0},contextWindow:524288,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:x-ai/grok-4.20":{type:"chat",id:"x-ai/grok-4.20",name:"SpaceXAI: Grok 4.20",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:18e5,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.3":{type:"chat",id:"x-ai/grok-4.3",name:"SpaceXAI: Grok 4.3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:1e6,maxTokens:9e5,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.3:batch":{type:"chat",id:"x-ai/grok-4.3:batch",name:"SpaceXAI: Grok 4.3 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:1,output:2,cacheRead:.16,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.32,cacheWrite:0}]},contextWindow:1e6,maxTokens:9e5,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.5":{type:"chat",id:"x-ai/grok-4.5",name:"SpaceXAI: Grok 4.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],cost:{input:2,output:6,cacheRead:.3,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:.6,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.6":{type:"chat",id:"x-ai/grok-4.6",name:"SpaceXAI: Grok 4.6",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.6:batch":{type:"chat",id:"x-ai/grok-4.6:batch",name:"SpaceXAI: Grok 4.6 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.6,output:4.8,cacheRead:.4,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:3.2,output:9.6,cacheRead:.8,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.7":{type:"chat",id:"x-ai/grok-4.7",name:"SpaceXAI: Grok 4.7",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-4.7:batch":{type:"chat",id:"x-ai/grok-4.7:batch",name:"SpaceXAI: Grok 4.7 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],cost:{input:1.6,output:4.8,cacheRead:.4,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:3.2,output:9.6,cacheRead:.8,cacheWrite:0}]},contextWindow:5e5,maxTokens:45e4,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:x-ai/grok-build-0.1":{type:"chat",id:"x-ai/grok-build-0.1",name:"SpaceXAI: Grok Build 0.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null},input:["text","image"],cost:{input:1,output:2,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.4,cacheWrite:0}]},contextWindow:256e3,maxTokens:230400,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:xiaomi/mimo-v2.5":{type:"chat",id:"xiaomi/mimo-v2.5",name:"Xiaomi: MiMo-V2.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:xiaomi/mimo-v2.5-pro":{type:"chat",id:"xiaomi/mimo-v2.5-pro",name:"Xiaomi: MiMo-V2.5-Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.48,output:1.8,cacheRead:.096,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:xiaomi/mimo-v2.6-flash":{type:"chat",id:"xiaomi/mimo-v2.6-flash",name:"Xiaomi: MiMo-V2.6-Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:xiaomi/mimo-v2.6-pro":{type:"chat",id:"xiaomi/mimo-v2.6-pro",name:"Xiaomi: MiMo-V2.6-Pro",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.435,output:.87,cacheRead:.0036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:xiaomi/mimo-v2.6-pro-ultraspeed":{type:"chat",id:"xiaomi/mimo-v2.6-pro-ultraspeed",name:"Xiaomi: MiMo-V2.6-Pro-UltraSpeed",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:4.35,output:8.7,cacheRead:.036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:xingchen-agi/xing4.0-29b-a4b:free":{type:"chat",id:"xingchen-agi/xing4.0-29b-a4b:free",name:"XingChen: Xing4.0 29B A4B (free)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:235929,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-4.5":{type:"chat",id:"z-ai/glm-4.5",name:"Z.ai: GLM 4.5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:131072,maxTokens:98304,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-4.5-air":{type:"chat",id:"z-ai/glm-4.5-air",name:"Z.ai: GLM 4.5 Air",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.13,output:.85,cacheRead:.025,cacheWrite:0},contextWindow:131072,maxTokens:98304,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-4.5v":{type:"chat",id:"z-ai/glm-4.5v",name:"Z.ai: GLM 4.5V",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.6,output:1.8,cacheRead:.11,cacheWrite:0},contextWindow:65536,maxTokens:16384,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-4.6":{type:"chat",id:"z-ai/glm-4.6",name:"Z.ai: GLM 4.6",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.5,output:2,cacheRead:.1,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-4.6v":{type:"chat",id:"z-ai/glm-4.6v",name:"Z.ai: GLM 4.6V",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:.3,output:.9,cacheRead:.055,cacheWrite:0},contextWindow:131072,maxTokens:32768,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-4.7":{type:"chat",id:"z-ai/glm-4.7",name:"Z.ai: GLM 4.7",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-4.7-flash":{type:"chat",id:"z-ai/glm-4.7-flash",name:"Z.ai: GLM 4.7 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.0605,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:117964,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5":{type:"chat",id:"z-ai/glm-5",name:"Z.ai: GLM 5",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:.6,output:1.9,cacheRead:.119,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5-turbo":{type:"chat",id:"z-ai/glm-5-turbo",name:"Z.ai: GLM 5 Turbo",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5.1":{type:"chat",id:"z-ai/glm-5.1",name:"Z.ai: GLM 5.1",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5.2":{type:"chat",id:"z-ai/glm-5.2",name:"Z.ai: GLM 5.2",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:"xhigh",max:null},input:["text"],cost:{input:.006,output:6.8,cacheRead:.005,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5.3":{type:"chat",id:"z-ai/glm-5.3",name:"Z.ai: GLM 5.3",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.0699,output:1.4,cacheRead:.0689,cacheWrite:0},contextWindow:1048576,maxTokens:943718,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5.3-flash":{type:"chat",id:"z-ai/glm-5.3-flash",name:"Z.ai: GLM 5.3 Flash",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048575,maxTokens:943717,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-5.3-flash:batch":{type:"chat",id:"z-ai/glm-5.3-flash:batch",name:"Z.ai: GLM 5.3 Flash (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.05,output:.18,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-5.3-flashx":{type:"chat",id:"z-ai/glm-5.3-flashx",name:"Z.ai: GLM 5.3 FlashX",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.37,output:1.25,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-5.3-flashx-legal":{type:"chat",id:"z-ai/glm-5.3-flashx-legal",name:"Z.ai: GLM 5.3 FlashX Legal",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],cost:{input:.37,output:1.25,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"chat:z-ai/glm-5.3-prime":{type:"chat",id:"z-ai/glm-5.3-prime",name:"Z.ai: GLM 5.3 Prime",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:2.8,output:8.8,cacheRead:.56,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5.3:batch":{type:"chat",id:"z-ai/glm-5.3:batch",name:"Z.ai: GLM 5.3 (batch)",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],cost:{input:.45,output:2,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0}},"chat:z-ai/glm-5v-turbo":{type:"chat",id:"z-ai/glm-5v-turbo",name:"Z.ai: GLM 5V Turbo",api:"openai-completions",baseUrl:"https://openrouter.ai/api/v1",provider:"openrouter",reasoning:!0,input:["text","image"],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072,compat:{supportsDeveloperRole:!1,thinkingFormat:"openrouter",supportsStrictMode:!0,sendSessionAffinityHeaders:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}}},"openrouter-images":{"image:black-forest-labs/flux-3-image":{type:"image",id:"black-forest-labs/flux-3-image",name:"Black Forest Labs: FLUX 3 Image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:black-forest-labs/flux-3-image-klein":{type:"image",id:"black-forest-labs/flux-3-image-klein",name:"Black Forest Labs: FLUX 3 Image Klein",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:black-forest-labs/flux.2-flex":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:black-forest-labs/flux.2-klein-4b":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:black-forest-labs/flux.2-max":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:black-forest-labs/flux.2-pro":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:bytedance-seed/seedream-4.5":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:bytedance-seed/seedream-5-0-flash":{type:"image",id:"bytedance-seed/seedream-5-0-flash",name:"ByteDance Seed: Seedream 5.0 Flash",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:bytedance-seed/seedream-5-0-lite":{type:"image",id:"bytedance-seed/seedream-5-0-lite",name:"ByteDance Seed: Seedream 5.0 Lite",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:bytedance-seed/seedream-5-0-pro":{type:"image",id:"bytedance-seed/seedream-5-0-pro",name:"ByteDance Seed: Seedream 5.0 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-2.5-flash-image":{type:"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:.083333},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-3-pro-image":{type:"image",id:"google/gemini-3-pro-image",name:"Google: Nano Banana Pro (Gemini 3 Pro Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:2,output:12,cacheRead:.2,cacheWrite:.375},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-3-pro-image-preview":{type:"image",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:.2,cacheWrite:.375},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-3.1-flash-image":{type:"image",id:"google/gemini-3.1-flash-image",name:"Google: Nano Banana 2 (Gemini 3.1 Flash Image)",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-3.1-flash-image-preview":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-3.1-flash-lite-image":{type:"image",id:"google/gemini-3.1-flash-lite-image",name:"Google: Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:google/gemini-nano-banana-2.1":{type:"image",id:"google/gemini-nano-banana-2.1",name:"Google: Nano Banana 2.1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["image","text"],output:["image","text"],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:krea/k3-edit":{type:"image",id:"krea/k3-edit",name:"Krea: K3 Edit",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:krea/krea-2-large":{type:"image",id:"krea/krea-2-large",name:"Krea: Krea 2 Large",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:krea/krea-2-medium":{type:"image",id:"krea/krea-2-medium",name:"Krea: Krea 2 Medium",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:krea/krea-2-medium-turbo":{type:"image",id:"krea/krea-2-medium-turbo",name:"Krea: Krea 2 Medium Turbo",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:meta/muse-image":{type:"image",id:"meta/muse-image",name:"Meta: Muse Image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:microsoft/mai-image-2.5":{type:"image",id:"microsoft/mai-image-2.5",name:"Microsoft AI: MAI-Image-2.5",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:microsoft/mai-image-2.5-pro":{type:"image",id:"microsoft/mai-image-2.5-pro",name:"Microsoft AI: MAI-Image-2.5 Pro",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:microsoft/mai-image-2.6":{type:"image",id:"microsoft/mai-image-2.6",name:"Microsoft AI: MAI-Image-2.6",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:5,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:microsoft/mai-image-2.6-flash":{type:"image",id:"microsoft/mai-image-2.6-flash",name:"Microsoft AI: MAI-Image-2.6 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:1.75,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-5-image":{type:"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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-5-image-mini":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-5.4-image-2":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-1":{type:"image",id:"openai/gpt-image-1",name:"OpenAI: GPT Image 1",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-1-mini":{type:"image",id:"openai/gpt-image-1-mini",name:"OpenAI: GPT Image 1 Mini",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:2.5,output:2.5,cacheRead:.25,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-2":{type:"image",id:"openai/gpt-image-2",name:"OpenAI: GPT Image 2",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-2.5-flare":{type:"image",id:"openai/gpt-image-2.5-flare",name:"OpenAI: GPT Image 2.5 Flare",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-2.5-sunburst":{type:"image",id:"openai/gpt-image-2.5-sunburst",name:"OpenAI: GPT Image 2.5 Sunburst",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-2.6-flare":{type:"image",id:"openai/gpt-image-2.6-flare",name:"OpenAI: GPT Image 2.6 Flare",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:10},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openai/gpt-image-2.6-sunburst":{type:"image",id:"openai/gpt-image-2.6-sunburst",name:"OpenAI: GPT Image 2.6 Sunburst",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["image"],cost:{input:8,output:8,cacheRead:2,cacheWrite:10},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openrouter/auto":{type:"image",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:0,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:openrouter/auto-beta":{type:"image",id:"openrouter/auto-beta",name:"Auto Router (Beta)",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],output:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:qwen/qwen-image-2.1-pro":{type:"image",id:"qwen/qwen-image-2.1-pro",name:"Qwen: Qwen Image 2.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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:qwen/qwen-image-2.1-turbo":{type:"image",id:"qwen/qwen-image-2.1-turbo",name:"Qwen: Qwen Image 2.1 Turbo",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:qwen/qwen-image-3":{type:"image",id:"qwen/qwen-image-3",name:"Qwen: Qwen Image 3",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:qwen/qwen-image-3-pro":{type:"image",id:"qwen/qwen-image-3-pro",name:"Qwen: Qwen Image 3 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v3":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-pro":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-pro-vector":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-styles":{type:"image",id:"recraft/recraft-v4-styles",name:"Recraft: Recraft V4 Styles",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-styles-pro":{type:"image",id:"recraft/recraft-v4-styles-pro",name:"Recraft: Recraft V4 Styles 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-styles-pro-vector":{type:"image",id:"recraft/recraft-v4-styles-pro-vector",name:"Recraft: Recraft V4 Styles 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-styles-vector":{type:"image",id:"recraft/recraft-v4-styles-vector",name:"Recraft: Recraft V4 Styles 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4-vector":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1-flash":{type:"image",id:"recraft/recraft-v4.1-flash",name:"Recraft: Recraft V4.1 Flash",api:"openrouter-images",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],output:["image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"image:recraft/recraft-v4.1-pro":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1-pro-vector":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1-utility":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1-utility-pro":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:recraft/recraft-v4.1-vector":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:sourceful/riverflow-v2-fast":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:sourceful/riverflow-v2-pro":{type:"image",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:sourceful/riverflow-v2.5-fast":{type:"image",id:"sourceful/riverflow-v2.5-fast",name:"Sourceful: Riverflow V2.5 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:sourceful/riverflow-v2.5-pro":{type:"image",id:"sourceful/riverflow-v2.5-pro",name:"Sourceful: Riverflow V2.5 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:sourceful/riverflow-v2.6-pro":{type:"image",id:"sourceful/riverflow-v2.6-pro",name:"Sourceful: Riverflow V2.6 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:tencent/hy-image-v3.5-preview":{type:"image",id:"tencent/hy-image-v3.5-preview",name:"Tencent: Hy Image 3.5 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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}},"image:x-ai/grok-imagine-image-2.0":{type:"image",id:"x-ai/grok-imagine-image-2.0",name:"xAI: Grok Imagine Image 2.0",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},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}}}},"typesafe-system-one":{"classifier:~liquid/d1-latest":{type:"classifier",id:"~liquid/d1-latest",name:"LiquidAI: d1 Latest",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:.02,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:~liquid/d1-ultra-latest":{type:"classifier",id:"~liquid/d1-ultra-latest",name:"LiquidAI: d1-ultra Latest",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:.042,cacheWrite:0},contextWindow:32768,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:~perplexity/pplx-decider-flash-latest":{type:"classifier",id:"~perplexity/pplx-decider-flash-latest",name:"Perplexity: Decider Flash Latest",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:~perplexity/pplx-decider-latest":{type:"classifier",id:"~perplexity/pplx-decider-latest",name:"Perplexity: Decider Latest",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:~typesafe/jev-latest":{type:"classifier",id:"~typesafe/jev-latest",name:"TypeSafe: Jev Latest",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:baseten/elephant-1":{type:"classifier",id:"baseten/elephant-1",name:"Baseten: Elephant 1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.035,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:baseten/joey-1":{type:"classifier",id:"baseten/joey-1",name:"Baseten: Joey 1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:baseten/mammoth-1":{type:"classifier",id:"baseten/mammoth-1",name:"Baseten: Mammoth 1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:cloudflare/clairic":{type:"classifier",id:"cloudflare/clairic",name:"Cloudflare: Clairic",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:cloudflare/clef":{type:"classifier",id:"cloudflare/clef",name:"Cloudflare: Clef",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.192,output:0,cacheRead:0,cacheWrite:0},contextWindow:65537,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:cloudflare/clef-flash":{type:"classifier",id:"cloudflare/clef-flash",name:"Cloudflare: Clef Flash",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.038,output:0,cacheRead:0,cacheWrite:0},contextWindow:24576,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:cloudflare/clef-omni":{type:"classifier",id:"cloudflare/clef-omni",name:"Cloudflare: Clef Omni",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.15,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:inception/mercury-decide":{type:"classifier",id:"inception/mercury-decide",name:"Inception: Mercury Decide",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:jaredpalmer/kev-4b":{type:"classifier",id:"jaredpalmer/kev-4b",name:"Jared Palmer: Kev 4B",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:8192,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:liquid/d1":{type:"classifier",id:"liquid/d1",name:"LiquidAI: d1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:.02,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:liquid/d1-ultra":{type:"classifier",id:"liquid/d1-ultra",name:"LiquidAI: d1-ultra",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:.042,cacheWrite:0},contextWindow:32768,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:liquid/d1.1":{type:"classifier",id:"liquid/d1.1",name:"LiquidAI: d1.1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:.02,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:microsoft/microsoft-decision-1":{type:"classifier",id:"microsoft/microsoft-decision-1",name:"Microsoft: Microsoft-Decision-1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32768,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:morph/reflex":{type:"classifier",id:"morph/reflex",name:"Morph: Reflex",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:.008,cacheWrite:0},contextWindow:65536,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:nace-ai/drex-max":{type:"classifier",id:"nace-ai/drex-max",name:"Nace.AI: Drex Max",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.06,output:0,cacheRead:.06,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:nace-ai/drex-v1.5":{type:"classifier",id:"nace-ai/drex-v1.5",name:"Nace.AI: Drex v1.5",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.04,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:nace-ai/drex-v2.0":{type:"classifier",id:"nace-ai/drex-v2.0",name:"Nace.AI: Drex v2.0",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.06,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:openai/gpt-6-luna-decisions":{type:"classifier",id:"openai/gpt-6-luna-decisions",name:"OpenAI: GPT-6 Luna Decisions",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0},contextWindow:105e4,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:perplexity/pplx-decider-flash-v1.2":{type:"classifier",id:"perplexity/pplx-decider-flash-v1.2",name:"Perplexity: Decider Flash V1.2",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:perplexity/pplx-decider-v1.2":{type:"classifier",id:"perplexity/pplx-decider-v1.2",name:"Perplexity: Decider V1.2",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:respan/span-01":{type:"classifier",id:"respan/span-01",name:"Respan: Span-01",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:4096,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:respan/span-01-lite":{type:"classifier",id:"respan/span-01-lite",name:"Respan: Span-01 Lite",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4096,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:respan/span-01-lite:free":{type:"classifier",id:"respan/span-01-lite:free",name:"Respan: Span-01 Lite (free)",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4096,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:respan/span-02":{type:"classifier",id:"respan/span-02",name:"Respan: Span-02",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:scaledown/classify-1":{type:"classifier",id:"scaledown/classify-1",name:"ScaleDown: Classify-1",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.04,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:togethercomputer/tev1-4b-experimental":{type:"classifier",id:"togethercomputer/tev1-4b-experimental",name:"Together: Tev1 4B Experimental",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32768,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:typesafe/jev-1.13":{type:"classifier",id:"typesafe/jev-1.13",name:"TypeSafe: Jev 1.13",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:typesafe/jev-1.14":{type:"classifier",id:"typesafe/jev-1.14",name:"TypeSafe: Jev 1.14",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text","image"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:upstage/solar-decide":{type:"classifier",id:"upstage/solar-decide",name:"Upstage: Solar Decide",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.05,output:0,cacheRead:.05,cacheWrite:0},contextWindow:524288,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}},"classifier:upstage/solar-decide-flash":{type:"classifier",id:"upstage/solar-decide-flash",name:"Upstage: Solar Decide Flash",api:"typesafe-system-one",provider:"openrouter",baseUrl:"https://openrouter.ai/api/v1",input:["text"],cost:{input:.05,output:0,cacheRead:.05,cacheWrite:0},contextWindow:524288,compat:{imageInput:"state-image-urls",sendImageOptInHeader:!1}}}};var OPENROUTER_MODELS=flattenChatModelCatalog("openrouter",openrouter_default),OPENROUTER_IMAGE_MODELS=flattenImageModelCatalog("openrouter",openrouter_default),OPENROUTER_CLASSIFIER_MODELS=flattenClassifierModelCatalog("openrouter",openrouter_default);var qwen_token_plan_default={"openai-completions":{"chat:deepseek-v3.2":{id:"deepseek-v3.2",name:"DeepSeek V3.2",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:deepseek-v4-flash":{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-flash-0731":{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro-0813":{id:"deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4.1-flash":{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4.1-flash-1017":{id:"deepseek-v4.1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5":{id:"glm-5",name:"GLM-5",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:16384,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.1":{id:"glm-5.1",name:"GLM-5.1",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:128e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:98304,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.6":{id:"kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMax-M2.5":{id:"MiniMax-M2.5",name:"MiniMax-M2.5",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:32768,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.6-flash":{id:"qwen3.6-flash",name:"Qwen3.6 Flash",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.6-plus":{id:"qwen3.6-plus",name:"Qwen3.6 Plus",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.7-max":{id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.7-plus":{id:"qwen3.7-plus",name:"Qwen3.7 Plus",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"openai-completions",provider:"qwen-token-plan",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var QWEN_TOKEN_PLAN_MODELS=flattenChatModelCatalog("qwen-token-plan",qwen_token_plan_default),QWEN_TOKEN_PLAN_IMAGE_MODELS=flattenImageModelCatalog("qwen-token-plan",qwen_token_plan_default),QWEN_TOKEN_PLAN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("qwen-token-plan",qwen_token_plan_default);var qwen_token_plan_cn_default={"openai-completions":{"chat:deepseek-v3.2":{id:"deepseek-v3.2",name:"DeepSeek V3.2",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:deepseek-v4-flash":{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-flash-0731":{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro-0813":{id:"deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4.1-flash":{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4.1-flash-1017":{id:"deepseek-v4.1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5":{id:"glm-5",name:"GLM-5",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:16384,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.1":{id:"glm-5.1",name:"GLM-5.1",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:128e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:98304,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.6":{id:"kimi-k2.6",name:"Kimi K2.6",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k2.7-code":{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMax-M2.5":{id:"MiniMax-M2.5",name:"MiniMax-M2.5",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:32768,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.6-flash":{id:"qwen3.6-flash",name:"Qwen3.6 Flash",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.6-plus":{id:"qwen3.6-plus",name:"Qwen3.6 Plus",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.7-max":{id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.7-plus":{id:"qwen3.7-plus",name:"Qwen3.7 Plus",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"openai-completions",provider:"qwen-token-plan-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var QWEN_TOKEN_PLAN_CN_MODELS=flattenChatModelCatalog("qwen-token-plan-cn",qwen_token_plan_cn_default),QWEN_TOKEN_PLAN_CN_IMAGE_MODELS=flattenImageModelCatalog("qwen-token-plan-cn",qwen_token_plan_cn_default),QWEN_TOKEN_PLAN_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("qwen-token-plan-cn",qwen_token_plan_cn_default);var qwen_token_plan_individual_default={"openai-completions":{"chat:deepseek-v4-flash-0731":{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro-0813":{id:"deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:qwen3.6-flash":{id:"qwen3.6-flash",name:"Qwen3.6 Flash",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.7-max":{id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.7-plus":{id:"qwen3.7-plus",name:"Qwen3.7 Plus",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"openai-completions",provider:"qwen-token-plan-individual",baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS=flattenChatModelCatalog("qwen-token-plan-individual",qwen_token_plan_individual_default),QWEN_TOKEN_PLAN_INDIVIDUAL_IMAGE_MODELS=flattenImageModelCatalog("qwen-token-plan-individual",qwen_token_plan_individual_default),QWEN_TOKEN_PLAN_INDIVIDUAL_CLASSIFIER_MODELS=flattenClassifierModelCatalog("qwen-token-plan-individual",qwen_token_plan_individual_default);var qwen_token_plan_individual_cn_default={"openai-completions":{"chat:deepseek-v4-flash-0731":{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro":{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:deepseek-v4-pro-0813":{id:"deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},type:"chat"},"chat:qwen3.6-flash":{id:"qwen3.6-flash",name:"Qwen3.6 Flash",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.7-max":{id:"qwen3.7-max",name:"Qwen3.7 Max",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},type:"chat"},"chat:qwen3.7-plus":{id:"qwen3.7-plus",name:"Qwen3.7 Plus",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!1},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-flash":{id:"qwen3.8-flash",name:"Qwen3.8 Flash",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:qwen3.8-max":{id:"qwen3.8-max",name:"Qwen3.8 Max",api:"openai-completions",provider:"qwen-token-plan-individual-cn",baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStrictMode:!0,thinkingFormat:"qwen",supportsDeveloperRole:!1,supportsStore:!1,supportsReasoningEffort:!0},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:null,xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS=flattenChatModelCatalog("qwen-token-plan-individual-cn",qwen_token_plan_individual_cn_default),QWEN_TOKEN_PLAN_INDIVIDUAL_CN_IMAGE_MODELS=flattenImageModelCatalog("qwen-token-plan-individual-cn",qwen_token_plan_individual_cn_default),QWEN_TOKEN_PLAN_INDIVIDUAL_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("qwen-token-plan-individual-cn",qwen_token_plan_individual_cn_default);var radius_default={"pi-messages":{"chat:balanced":{id:"balanced",name:"Balanced",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1048576,maxTokens:262144,lab:"Moonshot AI",cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:cheap":{id:"cheap",name:"Cheap",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:131072,lab:"DeepSeek",cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",reasoning:!0,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-fable-5-1":{id:"claude-fable-5-1",name:"Claude Fable 5.1",reasoning:!0,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",reasoning:!0,input:["text","image"],contextWindow:2e5,maxTokens:64e3,lab:"Anthropic",cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-haiku-5-5":{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",reasoning:!0,thinkingLevelMap:{minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5",reasoning:!0,input:["text","image"],contextWindow:2e5,maxTokens:64e3,lab:"Anthropic",cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",reasoning:!0,thinkingLevelMap:{xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",reasoning:!0,thinkingLevelMap:{xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-opus-5-5":{id:"claude-opus-5-5",name:"Claude Opus 5.5",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",reasoning:!0,input:["text","image"],contextWindow:2e5,maxTokens:64e3,lab:"Anthropic",cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",reasoning:!0,thinkingLevelMap:{xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:claude-sonnet-5-5":{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:128e3,lab:"Anthropic",cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},enabled:!0,providers:[{id:"anthropic",name:"Anthropic",credential:"radius",source:"radius"}],promptCache:{short:300,long:3600},api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek-v4.1-flash":{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:131072,lab:"DeepSeek",cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-3.8-flash":{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],contextWindow:1048576,maxTokens:65536,lab:"Google",cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gemini-4-argon":{id:"gemini-4-argon",name:"Gemini 4 Argon",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},input:["text","image"],contextWindow:1048576,maxTokens:32768,lab:"Google",cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text"],contextWindow:1048576,maxTokens:128e3,lab:"Z.ai",cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",type:"chat"},"chat:glm-5.3-flash":{id:"glm-5.3-flash",name:"GLM-5.3 Flash",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1048576,maxTokens:131072,lab:"Z.ai",cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-luna":{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-sol":{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-5.6-terra":{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:18,cacheRead:.4,cacheWrite:5}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-astra":{id:"gpt-6-astra",name:"GPT 6 Astra",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-luna":{id:"gpt-6-luna",name:"GPT 6 Luna",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:105e4,maxTokens:128e3,lab:"OpenAI",cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6-sol":{id:"gpt-6-sol",name:"GPT 6 Sol",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:105e4,maxTokens:128e3,lab:"OpenAI",cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-sol":{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:gpt-6.1-terra":{id:"gpt-6.1-terra",name:"GPT 6.1 Terra",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.7":{id:"grok-4.7",name:"Grok 4.7",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},input:["text","image"],contextWindow:5e5,maxTokens:45e4,lab:"xAI",cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3":{id:"kimi-k3",name:"Kimi K3",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1048576,maxTokens:262144,lab:"Moonshot AI",cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:kimi-k3.1-pro":{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},input:["text","image"],contextWindow:1048576,maxTokens:131072,lab:"Moonshot AI",cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax-m3":{id:"minimax-m3",name:"MiniMax M3",reasoning:!0,input:["text","image"],contextWindow:524288,maxTokens:131072,lab:"MiniMax",cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax-m3.1-flash":{id:"minimax-m3.1-flash",name:"MiniMax M3.1 Flash",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:1e6,maxTokens:524288,lab:"MiniMax",cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral-large-4":{id:"mistral-large-4",name:"Mistral Large 4",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},input:["text","image"],contextWindow:1048576,maxTokens:262144,lab:"Mistral AI",cost:{input:.7,output:2.1,cacheRead:.07,cacheWrite:0},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:precise":{id:"precise",name:"Precise",reasoning:!0,thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},input:["text","image"],contextWindow:272e3,maxTokens:128e3,lab:"OpenAI",cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},enabled:!0,providers:[{id:"openrouter",name:"OpenRouter",credential:"radius",source:"radius"}],api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:recursive/flint":{id:"recursive/flint",name:"Flint (free, trains on data)",reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:null,xhigh:null,max:null},input:["text"],contextWindow:262144,maxTokens:65536,lab:"Recursive",cost:{input:0,output:0,cacheRead:0,cacheWrite:0},enabled:!0,providers:[{id:"recursive",name:"Recursive",credential:"radius",source:"radius"}],free:!0,api:"pi-messages",provider:"radius",baseUrl:"https://radius.pi.dev/v1",type:"chat"}}};var RADIUS_MODELS=flattenChatModelCatalog("radius",radius_default),RADIUS_IMAGE_MODELS=flattenImageModelCatalog("radius",radius_default),RADIUS_CLASSIFIER_MODELS=flattenClassifierModelCatalog("radius",radius_default);var together_default={"openai-completions":{"chat:deepseek-ai/DeepSeek-V4-Pro-0813":{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro 0813",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:1.32,output:3.96,cacheRead:.13,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null,high:"high",xhigh:null},type:"chat"},"chat:deepseek-ai/DeepSeek-V4.1-Flash":{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048576,maxTokens:384e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta-models/Muse-Spark-Open-816B-A42B":{id:"meta-models/Muse-Spark-Open-816B-A42B",name:"Muse Spark Open",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:MiniMaxAI/MiniMax-M3":{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:524288,maxTokens:524288,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K3":{id:"moonshotai/Kimi-K3",name:"Kimi K3",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/Kimi-K3.1-Pro":{id:"moonshotai/Kimi-K3.1-Pro",name:"Kimi K3.1 Pro",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/NVIDIA-Nemotron-3.5-Super-VL":{id:"nvidia/NVIDIA-Nemotron-3.5-Super-VL",name:"Nemotron 3.5 Super VL 120B A12B",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"openai",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:null,max:null},type:"chat"},"chat:Qwen/Qwen3.5-9B":{id:"Qwen/Qwen3.5-9B",name:"Qwen3.5 9B",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.17,output:.25,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:Qwen/Qwen3.6-Plus":{id:"Qwen/Qwen3.6-Plus",name:"Qwen3.6 Plus",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},type:"chat"},"chat:Qwen/Qwen3.7-Max":{id:"Qwen/Qwen3.7-Max",name:"Qwen3.7 Max",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:2.5,output:7.5,cacheRead:.5,cacheWrite:0},contextWindow:1e6,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},type:"chat"},"chat:reflection/Beam-1.0-501B-A23B":{id:"reflection/Beam-1.0-501B-A23B",name:"Beam 1.0 501B A23B",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:.4,output:1.2,cacheRead:.04,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},type:"chat"},"chat:thinkingmachines/Inkling":{id:"thinkingmachines/Inkling",name:"Inkling",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1,output:4.05,cacheRead:.17,cacheWrite:0},contextWindow:524288,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai-org/GLM-5.2":{id:"zai-org/GLM-5.2",name:"GLM-5.2",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048575,maxTokens:164e3,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},type:"chat"},"chat:zai-org/GLM-5.3":{id:"zai-org/GLM-5.3",name:"GLM-5.3",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1048575,maxTokens:262144,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},type:"chat"},"chat:zai-org/GLM-5.3-Flash":{id:"zai-org/GLM-5.3-Flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"together",baseUrl:"https://api.together.ai/v1",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1048575,maxTokens:4e5,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"together",supportsLongCacheRetention:!1,supportsStrictMode:!1},thinkingLevelMap:{minimal:null,low:null,medium:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var TOGETHER_MODELS=flattenChatModelCatalog("together",together_default),TOGETHER_IMAGE_MODELS=flattenImageModelCatalog("together",together_default),TOGETHER_CLASSIFIER_MODELS=flattenClassifierModelCatalog("together",together_default);var typesafe_default={"typesafe-system-one":{"classifier:jev-latest":{type:"classifier",id:"jev-latest",name:"Jev",api:"typesafe-system-one",provider:"typesafe",baseUrl:"https://api.typesafe.ai/v1/",input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:64e3,compat:{imageInput:"assets",sendImageOptInHeader:!0}}}};var TYPESAFE_MODELS=flattenChatModelCatalog("typesafe",typesafe_default),TYPESAFE_IMAGE_MODELS=flattenImageModelCatalog("typesafe",typesafe_default),TYPESAFE_CLASSIFIER_MODELS=flattenClassifierModelCatalog("typesafe",typesafe_default);var vercel_ai_gateway_default={"anthropic-messages":{"chat:alibaba/qwen-3-14b":{id:"alibaba/qwen-3-14b",name:"Qwen3-14B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.12,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,type:"chat"},"chat:alibaba/qwen-3-235b":{id:"alibaba/qwen-3-235b",name:"Qwen3 235B A22B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.22,output:.88,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384,type:"chat"},"chat:alibaba/qwen-3-30b":{id:"alibaba/qwen-3-30b",name:"Qwen3-30B-A3B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.12,output:.5,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384,type:"chat"},"chat:alibaba/qwen-3-32b":{id:"alibaba/qwen-3-32b",name:"Qwen 3 32B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:alibaba/qwen3-coder":{id:"alibaba/qwen3-coder",name:"Qwen3 Coder 480B A35B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.22,output:1.8,cacheRead:.022,cacheWrite:0},contextWindow:262144,maxTokens:32768,type:"chat"},"chat:alibaba/qwen3-coder-30b-a3b":{id:"alibaba/qwen3-coder-30b-a3b",name:"Qwen 3 Coder 30B A3B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:8192,type:"chat"},"chat:alibaba/qwen3-coder-next":{id:"alibaba/qwen3-coder-next",name:"Qwen3 Coder Next",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,type:"chat"},"chat:alibaba/qwen3-max-thinking":{id:"alibaba/qwen3-max-thinking",name:"Qwen 3 Max Thinking",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0,tiers:[{inputTokensAbove:32e3,input:2.4,output:12,cacheRead:.48,cacheWrite:0},{inputTokensAbove:128e3,input:3,output:15,cacheRead:.6,cacheWrite:0}]},contextWindow:256e3,maxTokens:65536,type:"chat"},"chat:alibaba/qwen3-next-80b-a3b-instruct":{id:"alibaba/qwen3-next-80b-a3b-instruct",name:"Qwen3 Next 80B A3B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262114,maxTokens:262114,type:"chat"},"chat:alibaba/qwen3-next-80b-a3b-thinking":{id:"alibaba/qwen3-next-80b-a3b-thinking",name:"Qwen3 Next 80B A3B Thinking",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat:alibaba/qwen3-vl-instruct":{id:"alibaba/qwen3-vl-instruct",name:"Qwen3 VL 235B A22B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:.88,cacheRead:.11,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.5-flash":{id:"alibaba/qwen3.5-flash",name:"Qwen 3.5 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:.125},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.5-plus":{id:"alibaba/qwen3.5-plus",name:"Qwen 3.5 Plus",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.4,output:2.4,cacheRead:.04,cacheWrite:.5,tiers:[{inputTokensAbove:256e3,input:.5,output:3,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.6-27b":{id:"alibaba/qwen3.6-27b",name:"Qwen 3.6 27B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.6-plus":{id:"alibaba/qwen3.6-plus",name:"Qwen 3.6 Plus",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625,tiers:[{inputTokensAbove:255999,input:2,output:6,cacheRead:.2,cacheWrite:2.5}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.7-flash":{id:"alibaba/qwen3.7-flash",name:"Qwen 3.7 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.03,output:.13,cacheRead:.006,cacheWrite:.038,tiers:[{inputTokensAbove:31999,input:.1,output:.4,cacheRead:.02,cacheWrite:.125},{inputTokensAbove:255999,input:.2,output:.8,cacheRead:.04,cacheWrite:.25}]},contextWindow:991e3,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.7-max":{id:"alibaba/qwen3.7-max",name:"Qwen 3.7 Max",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:7.5,cacheRead:.5,cacheWrite:3.125},contextWindow:991e3,maxTokens:64e3,type:"chat"},"chat:alibaba/qwen3.7-plus":{id:"alibaba/qwen3.7-plus",name:"Qwen 3.7 Plus",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.4,output:1.6,cacheRead:.08,cacheWrite:.5,tiers:[{inputTokensAbove:255999,input:1.2,output:4.8,cacheRead:.24,cacheWrite:1.5}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-2.4t-a95b":{id:"alibaba/qwen3.8-2.4t-a95b",name:"Qwen3.8 2.4T A95B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-27b":{id:"alibaba/qwen3.8-27b",name:"Qwen3.8 27B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:3,cacheRead:.1,cacheWrite:.625},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-flash":{id:"alibaba/qwen3.8-flash",name:"Qwen 3.8 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:.2},contextWindow:991e3,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-max":{id:"alibaba/qwen3.8-max",name:"Qwen 3.8 Max",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-max-0902":{id:"alibaba/qwen3.8-max-0902",name:"Qwen3.8 Max 0902",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.25,cacheWrite:2.5},contextWindow:991e3,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-max-prime":{id:"alibaba/qwen3.8-max-prime",name:"Qwen 3.8 Max Prime",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:12,cacheRead:.5,cacheWrite:5},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:alibaba/qwen3.8-omni-flash":{id:"alibaba/qwen3.8-omni-flash",name:"Qwen 3.8 Omni Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.47,cacheRead:.016,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:amazon/nova-2-lite":{id:"amazon/nova-2-lite",name:"Nova 2 Lite",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.33,output:2.75,cacheRead:.0825,cacheWrite:0},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:amazon/nova-lite":{id:"amazon/nova-lite",name:"Nova Lite",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.06,output:.24,cacheRead:.015,cacheWrite:0},contextWindow:3e5,maxTokens:8192,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:amazon/nova-micro":{id:"amazon/nova-micro",name:"Nova Micro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.035,output:.14,cacheRead:.0087,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:amazon/nova-pro":{id:"amazon/nova-pro",name:"Nova Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.8,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:3e5,maxTokens:8192,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-fable-5":{id:"anthropic/claude-fable-5",name:"Claude Fable 5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-fable-5-batch":{id:"anthropic/claude-fable-5-batch",name:"Claude Fable 5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-fable-5.1":{id:"anthropic/claude-fable-5.1",name:"Claude Fable 5.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:10,output:50,cacheRead:.25,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-fable-5.1-batch":{id:"anthropic/claude-fable-5.1-batch",name:"Claude Fable 5.1 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:5,output:25,cacheRead:.125,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{off:null,xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-haiku-4.5":{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-haiku-4.5-batch":{id:"anthropic/claude-haiku-4.5-batch",name:"Claude Haiku 4.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:2.5,cacheRead:.05,cacheWrite:.625},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-haiku-5.5":{id:"anthropic/claude-haiku-5.5",name:"Claude Haiku 5.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:1e5,input:.5,output:2.5,cacheRead:.05,cacheWrite:.625}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-haiku-5.5-batch":{id:"anthropic/claude-haiku-5.5-batch",name:"Claude Haiku 5.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:.05,output:.25,cacheRead:.005,cacheWrite:.0625,tiers:[{inputTokensAbove:1e5,input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.5":{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.5-batch":{id:"anthropic/claude-opus-4.5-batch",name:"Claude Opus 4.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:2e5,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.6":{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.6-batch":{id:"anthropic/claude-opus-4.6-batch",name:"Claude Opus 4.6 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.7":{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.7-batch":{id:"anthropic/claude-opus-4.7-batch",name:"Claude Opus 4.7 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.8":{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.8-batch":{id:"anthropic/claude-opus-4.8-batch",name:"Claude Opus 4.8 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-4.8-fast":{id:"anthropic/claude-opus-4.8-fast",name:"Claude Opus 4.8 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5":{id:"anthropic/claude-opus-5",name:"Claude Opus 5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5-batch":{id:"anthropic/claude-opus-5-batch",name:"Claude Opus 5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2.5,output:12.5,cacheRead:.25,cacheWrite:3.125},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5-fast":{id:"anthropic/claude-opus-5-fast",name:"Claude Opus 5 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5.5":{id:"anthropic/claude-opus-5.5",name:"Claude Opus 5.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:4,output:20,cacheRead:.2,cacheWrite:5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5.5-batch":{id:"anthropic/claude-opus-5.5-batch",name:"Claude Opus 5.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-opus-5.5-fast":{id:"anthropic/claude-opus-5.5-fast",name:"Claude Opus 5.5 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:8,output:40,cacheRead:.4,cacheWrite:10},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-4.5":{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,tiers:[{inputTokensAbove:2e5,input:6,output:22.5,cacheRead:.6,cacheWrite:7.5}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-4.5-batch":{id:"anthropic/claude-sonnet-4.5-batch",name:"Claude Sonnet 4.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:1.875,tiers:[{inputTokensAbove:2e5,input:3,output:11.25,cacheRead:.3,cacheWrite:3.75}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-4.6":{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-4.6-batch":{id:"anthropic/claude-sonnet-4.6-batch",name:"Claude Sonnet 4.6 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0},cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:1.875},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-5":{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-5-batch":{id:"anthropic/claude-sonnet-5-batch",name:"Claude Sonnet 5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-5.5":{id:"anthropic/claude-sonnet-5.5",name:"Claude Sonnet 5.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:anthropic/claude-sonnet-5.5-batch":{id:"anthropic/claude-sonnet-5.5-batch",name:"Claude Sonnet 5.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0,forceAdaptiveThinking:!0,supportsTemperature:!1},cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",max:"max"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:bytedance/seed-1.6":{id:"bytedance/seed-1.6",name:"Seed 1.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:2,cacheRead:.05,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.5,output:4,cacheRead:.05,cacheWrite:0}]},contextWindow:256e3,maxTokens:32e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:bytedance/seed-1.8":{id:"bytedance/seed-1.8",name:"Bytedance Seed 1.8",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:2,cacheRead:.05,cacheWrite:0,tiers:[{inputTokensAbove:128e3,input:.5,output:4,cacheRead:.05,cacheWrite:0}]},contextWindow:256e3,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:bytedance/seed-2.1-turbo":{id:"bytedance/seed-2.1-turbo",name:"Seed 2.1 Turbo",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:2.5,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:callstack/apex":{id:"callstack/apex",name:"Apex",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:3,cacheRead:.2,cacheWrite:0},contextWindow:262144,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:cohere/command-a":{id:"cohere/command-a",name:"Command A",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8e3,type:"chat"},"chat:deepseek/deepseek-r1":{id:"deepseek/deepseek-r1",name:"DeepSeek-R1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:deepseek/deepseek-v3.1":{id:"deepseek/deepseek-v3.1",name:"DeepSeek V3.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.25,output:.95,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:128e3,type:"chat"},"chat:deepseek/deepseek-v3.2":{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3,type:"chat"},"chat:deepseek/deepseek-v3.2-thinking":{id:"deepseek/deepseek-v3.2-thinking",name:"DeepSeek V3.2 Thinking",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3,type:"chat"},"chat:deepseek/deepseek-v4-flash":{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.13,output:.26,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,type:"chat"},"chat:deepseek/deepseek-v4-flash-0731":{id:"deepseek/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.13,output:.26,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,type:"chat"},"chat:deepseek/deepseek-v4-flash-vision-exp":{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision Exp",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2156,output:.6468,cacheRead:.0068,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek/deepseek-v4-pro":{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.32,output:3.96,cacheRead:.132,cacheWrite:0},contextWindow:1048600,maxTokens:1048600,type:"chat"},"chat:deepseek/deepseek-v4-pro-0813":{id:"deepseek/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.66,output:1.98,cacheRead:.066,cacheWrite:0},contextWindow:1e6,maxTokens:384e3,type:"chat"},"chat:deepseek/deepseek-v4.1-flash":{id:"deepseek/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.007,cacheWrite:0},contextWindow:1048576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek/deepseek-v4.1-flash-1017":{id:"deepseek/deepseek-v4.1-flash-1017",name:"DeepSeek V4.1 Flash 1017",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.007,cacheWrite:0},contextWindow:1048576,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek/deepseek-v4.1-flash-1017-fast":{id:"deepseek/deepseek-v4.1-flash-1017-fast",name:"DeepSeek V4.1 Flash 1017 Fast",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.4,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:deepseek/deepseek-v4.1-flash-fast":{id:"deepseek/deepseek-v4.1-flash-fast",name:"DeepSeek V4.1 Flash Fast",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.4,cacheRead:.014,cacheWrite:0},contextWindow:1048576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:fireworks/ember-1":{id:"fireworks/ember-1",name:"Ember-1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-flash-batch":{id:"google/gemini-2.5-flash-batch",name:"Gemini 2.5 Flash (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:1.25,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-flash-lite":{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-flash-lite-batch":{id:"google/gemini-2.5-flash-lite-batch",name:"Gemini 2.5 Flash Lite (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.2,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:15,cacheRead:.25,cacheWrite:0}]},contextWindow:1048576,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-2.5-pro-batch":{id:"google/gemini-2.5-pro-batch",name:"Gemini 2.5 Pro (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.625,output:5,cacheRead:.125,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:1.25,output:7.5,cacheRead:.25,cacheWrite:0}]},contextWindow:1048576,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3-flash":{id:"google/gemini-3-flash",name:"Gemini 3 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:.5,output:3,cacheRead:.05,cacheWrite:0}]},contextWindow:1e6,maxTokens:65e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3-flash-batch":{id:"google/gemini-3-flash-batch",name:"Gemini 3 Flash (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:1.5,cacheRead:.05,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:.25,output:1.5,cacheRead:.05,cacheWrite:0}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.1-flash-lite":{id:"google/gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:1.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.1-flash-lite-batch":{id:"google/gemini-3.1-flash-lite-batch",name:"Gemini 3.1 Flash Lite (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.125,output:.75,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.1-pro-preview":{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:12,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:18,cacheRead:.4,cacheWrite:0}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.1-pro-preview-batch":{id:"google/gemini-3.1-pro-preview-batch",name:"Gemini 3.1 Pro Preview (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:6,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:9,cacheRead:.4,cacheWrite:0}]},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.5-flash":{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.5-flash-batch":{id:"google/gemini-3.5-flash-batch",name:"Gemini 3.5 Flash (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.5-flash-lite":{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.5-flash-lite-batch":{id:"google/gemini-3.5-flash-lite-batch",name:"Gemini 3.5 Flash Lite (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:1.25,cacheRead:.015,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.6-flash":{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.6-flash-batch":{id:"google/gemini-3.6-flash-batch",name:"Gemini 3.6 Flash (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.375,output:1.875,cacheRead:.0375,cacheWrite:0},contextWindow:1e6,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.7-flash":{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.7-flash-batch":{id:"google/gemini-3.7-flash-batch",name:"Gemini 3.7 Flash (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.375,output:1.875,cacheRead:.0375,cacheWrite:0},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-3.8-flash":{id:"google/gemini-3.8-flash",name:"Gemini 3.8 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.75,output:3.75,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:65535,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemini-4-argon":{id:"google/gemini-4-argon",name:"Gemini 4 Argon",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.1,cacheWrite:0},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-4-26b-a4b-it":{id:"google/gemma-4-26b-a4b-it",name:"Google Gemma 4 26B A4B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:google/gemma-4-31b-it":{id:"google/gemma-4-31b-it",name:"Gemma 4 31B IT",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.14,output:.4,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:inception/mercury-2":{id:"inception/mercury-2",name:"Mercury 2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.25,output:.75,cacheRead:.025,cacheWrite:0},contextWindow:128e3,maxTokens:128e3,type:"chat"},"chat:inception/mercury-2.5":{id:"inception/mercury-2.5",name:"Mercury 2.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.04,output:.15,cacheRead:.004,cacheWrite:0},contextWindow:26e4,maxTokens:65536,type:"chat"},"chat:inception/mercury-3":{id:"inception/mercury-3",name:"Mercury 3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.35,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:131072,type:"chat"},"chat:inception/mercury-coder-small":{id:"inception/mercury-coder-small",name:"Mercury Coder Small Beta",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:16384,type:"chat"},"chat:inclusionai/ling-3.0-flash":{id:"inclusionai/ling-3.0-flash",name:"Ling 3.0 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.021,output:.063,cacheRead:.0042,cacheWrite:0},contextWindow:256e3,maxTokens:32e3,type:"chat"},"chat:inclusionai/ling-3.0-flash-fin":{id:"inclusionai/ling-3.0-flash-fin",name:"Ling 3.0 Flash Fin",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.075,output:.22,cacheRead:.015,cacheWrite:0},contextWindow:256e3,maxTokens:32e3,type:"chat"},"chat:inclusionai/ling-3.0-flash-sante":{id:"inclusionai/ling-3.0-flash-sante",name:"Ling 3.0 Flash Sante",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.075,output:.22,cacheRead:.015,cacheWrite:0},contextWindow:256e3,maxTokens:32e3,type:"chat"},"chat:inclusionai/ling-3.0-flash-vl":{id:"inclusionai/ling-3.0-flash-vl",name:"Ling 3.0 Flash VL",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.075,output:.22,cacheRead:.015,cacheWrite:0},contextWindow:256e3,maxTokens:32e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:inclusionai/ling-3.1-flash":{id:"inclusionai/ling-3.1-flash",name:"Ling 3.1 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:.9,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:32768,type:"chat"},"chat:inclusionai/ling-3.1-flash-1019":{id:"inclusionai/ling-3.1-flash-1019",name:"Ling 3.1 Flash 1019",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:.9,cacheRead:.06,cacheWrite:0},contextWindow:1e6,maxTokens:262144,type:"chat"},"chat:interfaze/interfaze-beta":{id:"interfaze/interfaze-beta",name:"Interfaze Beta",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.5,output:3.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:32e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:liquid/lfm2.5-24b-a2b":{id:"liquid/lfm2.5-24b-a2b",name:"LFM2.5-24B-A2B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.7,cacheRead:.025,cacheWrite:0},contextWindow:128e3,maxTokens:8200,type:"chat"},"chat:meituan/longcat-2.5":{id:"meituan/longcat-2.5",name:"LongCat 2.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.006,cacheWrite:0},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/llama-3.1-70b":{id:"meta/llama-3.1-70b",name:"Llama 3.1 70B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:meta/llama-3.1-8b":{id:"meta/llama-3.1-8b",name:"Llama 3.1 8B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.22,output:.22,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:meta/llama-3.3-70b":{id:"meta/llama-3.3-70b",name:"Llama 3.3 70B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,type:"chat"},"chat:meta/llama-4-maverick":{id:"meta/llama-4-maverick",name:"Llama 4 Maverick 17B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.24,output:.97,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/llama-4-scout":{id:"meta/llama-4-scout",name:"Llama 4 Scout 17B Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.17,output:.66,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-glimmer-30b":{id:"meta/muse-glimmer-30b",name:"Muse Glimmer 30B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.35,output:1.5,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-1.1":{id:"meta/muse-spark-1.1",name:"Muse Spark 1.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-1.2":{id:"meta/muse-spark-1.2",name:"Muse Spark 1.2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-1.2-contributor":{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-1.3":{id:"meta/muse-spark-1.3",name:"Muse Spark 1.3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-1.3-contributor":{id:"meta/muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.2,cacheRead:.002,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-spark-open":{id:"meta/muse-spark-open",name:"Muse Spark Open",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:4.25,cacheRead:.15,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:meta/muse-wonder-1.0":{id:"meta/muse-wonder-1.0",name:"Muse Wonder",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax/minimax-m2":{id:"minimax/minimax-m2",name:"MiniMax M2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:205e3,maxTokens:205e3,type:"chat"},"chat:minimax/minimax-m2.1":{id:"minimax/minimax-m2.1",name:"MiniMax M2.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072,type:"chat"},"chat:minimax/minimax-m2.1-lightning":{id:"minimax/minimax-m2.1-lightning",name:"MiniMax M2.1 Lightning",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072,type:"chat"},"chat:minimax/minimax-m2.5":{id:"minimax/minimax-m2.5",name:"MiniMax M2.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3,type:"chat"},"chat:minimax/minimax-m2.5-highspeed":{id:"minimax/minimax-m2.5-highspeed",name:"MiniMax M2.5 High Speed",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3,type:"chat"},"chat:minimax/minimax-m2.7":{id:"minimax/minimax-m2.7",name:"MiniMax M2.7",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131e3,type:"chat"},"chat:minimax/minimax-m2.7-highspeed":{id:"minimax/minimax-m2.7-highspeed",name:"MiniMax M2.7 High Speed",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131100,type:"chat"},"chat:minimax/minimax-m3":{id:"minimax/minimax-m3",name:"MiniMax M3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:512e3,maxTokens:512e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:minimax/minimax-m3.1-flash":{id:"minimax/minimax-m3.1-flash",name:"MiniMax-M3.1-Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/codestral":{id:"mistral/codestral",name:"Mistral Codestral",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:.9,cacheRead:.03,cacheWrite:0},contextWindow:128e3,maxTokens:4e3,type:"chat"},"chat:mistral/ministral-14b":{id:"mistral/ministral-14b",name:"Ministral 14B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:.2,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/ministral-3b":{id:"mistral/ministral-3b",name:"Ministral 3B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.1,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:4e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/ministral-8b":{id:"mistral/ministral-8b",name:"Ministral 8B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/mistral-large-3":{id:"mistral/mistral-large-3",name:"Mistral Large 3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.5,output:1.5,cacheRead:.05,cacheWrite:0},contextWindow:262144,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/mistral-large-4":{id:"mistral/mistral-large-4",name:"Mistral Large 4",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.7,output:2.1,cacheRead:.07,cacheWrite:0},contextWindow:1048576,maxTokens:262144,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/mistral-medium-3.5":{id:"mistral/mistral-medium-3.5",name:"Mistral Medium Latest",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.5,output:7.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mistral/mistral-nemo":{id:"mistral/mistral-nemo",name:"Mistral Nemo 12B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.029,output:.03,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,type:"chat"},"chat:mistral/mistral-small":{id:"mistral/mistral-small",name:"Mistral Small",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mixedbread/toast-1":{id:"mixedbread/toast-1",name:"Toast 1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.3,output:.72,cacheRead:.036,cacheWrite:0},contextWindow:131e3,maxTokens:4e3,type:"chat"},"chat:moonshotai/kimi-k2":{id:"moonshotai/kimi-k2",name:"Kimi K2 Instruct",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.57,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,type:"chat"},"chat:moonshotai/kimi-k2.5":{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.6,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k2.6":{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262e3,maxTokens:262e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k2.7-code":{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.95,output:4,cacheRead:.19,cacheWrite:0},contextWindow:256e3,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k2.7-code-highspeed":{id:"moonshotai/kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code High Speed",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.9,output:8,cacheRead:.38,cacheWrite:0},contextWindow:262144,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k3":{id:"moonshotai/kimi-k3",name:"Kimi K3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3,output:15,cacheRead:.3,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k3-fast":{id:"moonshotai/kimi-k3-fast",name:"Kimi K3 Fast",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4.5,output:22.5,cacheRead:.45,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k3.1-pro":{id:"moonshotai/kimi-k3.1-pro",name:"Kimi K3.1 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:moonshotai/kimi-k3.1-pro-highspeed":{id:"moonshotai/kimi-k3.1-pro-highspeed",name:"Kimi K3.1 Pro Highspeed",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.2,cacheWrite:4},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/nemotron-3-nano-30b-a3b":{id:"nvidia/nemotron-3-nano-30b-a3b",name:"Nemotron 3 Nano 30B A3B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.2,cacheRead:.025,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat:nvidia/nemotron-3-super-120b-a12b":{id:"nvidia/nemotron-3-super-120b-a12b",name:"NVIDIA Nemotron 3 Super 120B A12B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.65,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:32e3,type:"chat"},"chat:nvidia/nemotron-3-ultra-550b-a55b":{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.4,cacheRead:.12,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,type:"chat"},"chat:nvidia/nemotron-3.5-lightning":{id:"nvidia/nemotron-3.5-lightning",name:"Nemotron 3.5 Lightning 30B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.2,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:131072,type:"chat"},"chat:nvidia/nemotron-3.5-lightning-free":{id:"nvidia/nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65e3,type:"chat"},"chat:nvidia/nemotron-3.5-super-vl":{id:"nvidia/nemotron-3.5-super-vl",name:"NVIDIA Nemotron 3.5 Super VL",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:.5,cacheRead:.04,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/nemotron-nano-12b-v2-vl":{id:"nvidia/nemotron-nano-12b-v2-vl",name:"Nvidia Nemotron Nano 12B V2 VL",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:nvidia/nemotron-nano-9b-v2":{id:"nvidia/nemotron-nano-9b-v2",name:"Nvidia Nemotron Nano 9B V2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.06,output:.23,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072,type:"chat"},"chat:openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-batch":{id:"openai/gpt-4.1-batch",name:"GPT-4.1 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:4,cacheRead:.25,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-fast":{id:"openai/gpt-4.1-fast",name:"GPT-4.1 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3.5,output:14,cacheRead:.875,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-mini-batch":{id:"openai/gpt-4.1-mini-batch",name:"GPT-4.1 mini (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:.8,cacheRead:.05,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-mini-fast":{id:"openai/gpt-4.1-mini-fast",name:"GPT-4.1 mini (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.7,output:2.8,cacheRead:.175,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4.1-nano":{id:"openai/gpt-4.1-nano",name:"GPT-4.1 nano",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:32768,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o":{id:"openai/gpt-4o",name:"GPT-4o",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o-batch":{id:"openai/gpt-4o-batch",name:"GPT-4o (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:5,cacheRead:.625,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o-fast":{id:"openai/gpt-4o-fast",name:"GPT-4o (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4.25,output:17,cacheRead:2.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o-mini-batch":{id:"openai/gpt-4o-mini-batch",name:"GPT-4o mini (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.075,output:.3,cacheRead:.0375,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-4o-mini-fast":{id:"openai/gpt-4o-mini-fast",name:"GPT-4o mini (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:1,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-batch":{id:"openai/gpt-5-batch",name:"GPT-5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.625,output:5,cacheRead:.0625,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5-Codex",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-fast":{id:"openai/gpt-5-fast",name:"GPT-5 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:20,cacheRead:.25,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-mini-batch":{id:"openai/gpt-5-mini-batch",name:"GPT-5 mini (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.125,output:1,cacheRead:.0125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-mini-fast":{id:"openai/gpt-5-mini-fast",name:"GPT-5 mini (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.45,output:3.6,cacheRead:.045,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 nano",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-nano-batch":{id:"openai/gpt-5-nano-batch",name:"GPT-5 nano (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.025,output:.2,cacheRead:.0025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5-pro-batch":{id:"openai/gpt-5-pro-batch",name:"GPT-5 pro (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:7.5,output:60,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.25,output:2,cacheRead:.03,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.1-thinking":{id:"openai/gpt-5.1-thinking",name:"GPT 5.1 Thinking",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.1-thinking-fast":{id:"openai/gpt-5.1-thinking-fast",name:"GPT 5.1 Thinking (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:20,cacheRead:.25,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT 5.2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.2-batch":{id:"openai/gpt-5.2-batch",name:"GPT 5.2 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.875,output:7,cacheRead:.0875,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT 5.2 Codex",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.2-fast":{id:"openai/gpt-5.2-fast",name:"GPT 5.2 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3.5,output:28,cacheRead:.35,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT 5.2 ",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT 5.3 Codex",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.3-codex-fast":{id:"openai/gpt-5.3-codex-fast",name:"GPT 5.3 Codex (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3.5,output:28,cacheRead:.35,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT 5.4",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-batch":{id:"openai/gpt-5.4-batch",name:"GPT 5.4 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:7.5,cacheRead:.125,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:2.5,output:11.25,cacheRead:.25,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-fast":{id:"openai/gpt-5.4-fast",name:"GPT 5.4 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-mini":{id:"openai/gpt-5.4-mini",name:"GPT 5.4 Mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-mini-batch":{id:"openai/gpt-5.4-mini-batch",name:"GPT 5.4 Mini (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.375,output:2.25,cacheRead:.0375,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-mini-fast":{id:"openai/gpt-5.4-mini-fast",name:"GPT 5.4 Mini (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.5,output:9,cacheRead:.15,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-nano":{id:"openai/gpt-5.4-nano",name:"GPT 5.4 Nano",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-nano-batch":{id:"openai/gpt-5.4-nano-batch",name:"GPT 5.4 Nano (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.625,cacheRead:.01,cacheWrite:0},contextWindow:4e5,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT 5.4 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.5":{id:"openai/gpt-5.5",name:"GPT 5.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.5-batch":{id:"openai/gpt-5.5-batch",name:"GPT 5.5 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:5,output:22.5,cacheRead:.5,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.5-fast":{id:"openai/gpt-5.5-fast",name:"GPT 5.5 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:12.5,output:75,cacheRead:1.25,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.5-pro":{id:"openai/gpt-5.5-pro",name:"GPT 5.5 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:30,output:180,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:60,output:270,cacheRead:0,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh",off:null,minimal:null,low:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.5-pro-batch":{id:"openai/gpt-5.5-pro-batch",name:"GPT 5.5 Pro (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:15,output:90,cacheRead:0,cacheWrite:0,tiers:[{inputTokensAbove:271999,input:30,output:135,cacheRead:0,cacheWrite:0}]},contextWindow:1e6,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-luna":{id:"openai/gpt-5.6-luna",name:"GPT 5.6 Luna",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:271999,input:.4,output:1.8,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-luna-batch":{id:"openai/gpt-5.6-luna-batch",name:"GPT 5.6 Luna (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.6,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:271999,input:.2,output:.9,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-luna-fast":{id:"openai/gpt-5.6-luna-fast",name:"GPT 5.6 Luna (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.4,output:2.4,cacheRead:.04,cacheWrite:.5,tiers:[{inputTokensAbove:271999,input:.8,output:3.6,cacheRead:.08,cacheWrite:1}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-sol":{id:"openai/gpt-5.6-sol",name:"GPT 5.6 Sol",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:271999,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-sol-batch":{id:"openai/gpt-5.6-sol-batch",name:"GPT 5.6 Sol (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:271999,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-sol-fast":{id:"openai/gpt-5.6-sol-fast",name:"GPT 5.6 Sol (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:8,output:40,cacheRead:.8,cacheWrite:10,tiers:[{inputTokensAbove:271999,input:16,output:60,cacheRead:1.6,cacheWrite:20}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-terra":{id:"openai/gpt-5.6-terra",name:"GPT 5.6 Terra",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:271999,input:4,output:18,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-terra-batch":{id:"openai/gpt-5.6-terra-batch",name:"GPT 5.6 Terra (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:6,cacheRead:.1,cacheWrite:1.25,tiers:[{inputTokensAbove:271999,input:2,output:9,cacheRead:.2,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-5.6-terra-fast":{id:"openai/gpt-5.6-terra-fast",name:"GPT 5.6 Terra (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:24,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:271999,input:8,output:36,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-astra":{id:"openai/gpt-6-astra",name:"GPT-6 Astra",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:10,output:50,cacheRead:1,cacheWrite:12.5,tiers:[{inputTokensAbove:272e3,input:20,output:75,cacheRead:2,cacheWrite:25}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-astra-batch":{id:"openai/gpt-6-astra-batch",name:"GPT-6 Astra (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,tiers:[{inputTokensAbove:272e3,input:10,output:37.5,cacheRead:1,cacheWrite:12.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-astra-fast":{id:"openai/gpt-6-astra-fast",name:"GPT-6 Astra (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:20,output:100,cacheRead:2,cacheWrite:25,tiers:[{inputTokensAbove:272e3,input:40,output:150,cacheRead:4,cacheWrite:50}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-luna":{id:"openai/gpt-6-luna",name:"GPT-6 Luna",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.5,cacheRead:.01,cacheWrite:.125,tiers:[{inputTokensAbove:272e3,input:.2,output:.75,cacheRead:.02,cacheWrite:.25}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-luna-batch":{id:"openai/gpt-6-luna-batch",name:"GPT-6 Luna (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.05,output:.25,cacheRead:.005,cacheWrite:.0625,tiers:[{inputTokensAbove:272e3,input:.1,output:.375,cacheRead:.01,cacheWrite:.125}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-luna-fast":{id:"openai/gpt-6-luna-fast",name:"GPT-6 Luna (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:1,cacheRead:.02,cacheWrite:.25,tiers:[{inputTokensAbove:272e3,input:.4,output:1.5,cacheRead:.04,cacheWrite:.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-sol":{id:"openai/gpt-6-sol",name:"GPT-6 Sol",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.2,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.4,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-sol-batch":{id:"openai/gpt-6-sol-batch",name:"GPT-6 Sol (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.2,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6-sol-fast":{id:"openai/gpt-6-sol-fast",name:"GPT-6 Sol (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.4,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.8,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6.1-sol":{id:"openai/gpt-6.1-sol",name:"GPT-6.1 Sol",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6.1-sol-batch":{id:"openai/gpt-6.1-sol-batch",name:"GPT-6.1 Sol (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6.1-sol-fast":{id:"openai/gpt-6.1-sol-fast",name:"GPT-6.1 Sol (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.2,cacheWrite:5,tiers:[{inputTokensAbove:272e3,input:8,output:30,cacheRead:.4,cacheWrite:10}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6.1-terra":{id:"openai/gpt-6.1-terra",name:"GPT-6.1 Terra",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:5,cacheRead:.05,cacheWrite:1.25,tiers:[{inputTokensAbove:272e3,input:2,output:7.5,cacheRead:.1,cacheWrite:2.5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-6.1-terra-fast":{id:"openai/gpt-6.1-terra-fast",name:"GPT-6.1 Terra (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:10,cacheRead:.1,cacheWrite:2.5,tiers:[{inputTokensAbove:272e3,input:4,output:15,cacheRead:.2,cacheWrite:5}]},contextWindow:105e4,maxTokens:128e3,thinkingLevelMap:{xhigh:"xhigh"},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.1,output:.5,cacheRead:.1,cacheWrite:0},contextWindow:131072,maxTokens:131072,type:"chat"},"chat:openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.03,output:.14,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192,type:"chat"},"chat:openai/gpt-oss-safeguard-120b":{id:"openai/gpt-oss-safeguard-120b",name:"GPT OSS Safeguard 120B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16e3,type:"chat"},"chat:openai/gpt-oss-safeguard-20b":{id:"openai/gpt-oss-safeguard-20b",name:"GPT OSS Safeguard 20B",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.07,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16e3,type:"chat"},"chat:openai/o1":{id:"openai/o1",name:"o1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/o3":{id:"openai/o3",name:"o3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/o3-fast":{id:"openai/o3-fast",name:"o3 (Fast)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:3.5,output:14,cacheRead:.875,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/o3-mini":{id:"openai/o3-mini",name:"o3-mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,type:"chat"},"chat:openai/o3-pro":{id:"openai/o3-pro",name:"o3 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:openai/o4-mini":{id:"openai/o4-mini",name:"o4-mini",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:particle/particle-1":{id:"particle/particle-1",name:"Particle-1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.125,output:.5,cacheRead:.015,cacheWrite:0},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:poolside/laguna-s-2.1":{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.09,output:.18,cacheRead:.009,cacheWrite:0},contextWindow:1e6,maxTokens:131072,type:"chat"},"chat:quiverai/arrow-2":{id:"quiverai/arrow-2",name:"Arrow 2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4,output:20,cacheRead:.4,cacheWrite:5},contextWindow:131072,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:quiverai/arrow-2-telos":{id:"quiverai/arrow-2-telos",name:"Arrow 2 Telos",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:6,output:30,cacheRead:.6,cacheWrite:7.5},contextWindow:131072,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:reflection/beam":{id:"reflection/beam",name:"Beam 1.0",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,type:"chat"},"chat:reflection/beam-free":{id:"reflection/beam-free",name:"Beam 1.0 (Free)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,type:"chat"},"chat:sakana/fugu-max":{id:"sakana/fugu-max",name:"Fugu Max",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.25,cacheWrite:0},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:sakana/fugu-ultra":{id:"sakana/fugu-ultra",name:"Fugu Ultra",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:sakana/fugu-ultra-v2":{id:"sakana/fugu-ultra-v2",name:"Fugu Ultra v2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:5,output:30,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:272e3,input:10,output:45,cacheRead:1,cacheWrite:0}]},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:sakana/namazu":{id:"sakana/namazu",name:"Sakana Namazu",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.95,output:4,cacheRead:.15,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-multi-agent":{id:"spacexai/grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-multi-agent-batch":{id:"spacexai/grok-4.20-multi-agent-batch",name:"Grok 4.20 Multi-Agent (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2,cacheRead:.16,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.32,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-multi-agent-beta":{id:"spacexai/grok-4.20-multi-agent-beta",name:"Grok 4.20 Multi Agent Beta",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-non-reasoning":{id:"spacexai/grok-4.20-non-reasoning",name:"Grok 4.20 Non-Reasoning",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-non-reasoning-batch":{id:"spacexai/grok-4.20-non-reasoning-batch",name:"Grok 4.20 Non-Reasoning (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2,cacheRead:.16,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.32,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-non-reasoning-beta":{id:"spacexai/grok-4.20-non-reasoning-beta",name:"Grok 4.20 Beta Non-Reasoning",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!1,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-reasoning":{id:"spacexai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-reasoning-batch":{id:"spacexai/grok-4.20-reasoning-batch",name:"Grok 4.20 Reasoning (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2,cacheRead:.16,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.32,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.20-reasoning-beta":{id:"spacexai/grok-4.20-reasoning-beta",name:"Grok 4.20 Beta Reasoning",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:2e6,maxTokens:2e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.3":{id:"spacexai/grok-4.3",name:"Grok 4.3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.3-batch":{id:"spacexai/grok-4.3-batch",name:"Grok 4.3 (Batch)",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2,cacheRead:.16,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.32,cacheWrite:0}]},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.5":{id:"spacexai/grok-4.5",name:"Grok 4.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.3,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:.6,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.6":{id:"spacexai/grok-4.6",name:"Grok 4.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-4.7":{id:"spacexai/grok-4.7",name:"Grok 4.7",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-build-0.1":{id:"spacexai/grok-build-0.1",name:"Grok Build 0.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2,output:4,cacheRead:.4,cacheWrite:0}]},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:spacexai/grok-voice-3.0":{id:"spacexai/grok-voice-3.0",name:"Grok Voice 3.0",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4096,maxTokens:4096,type:"chat"},"chat:stealth/glyph-cluster":{id:"stealth/glyph-cluster",name:"Glyph Cluster",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,type:"chat"},"chat:stepfun/step-3.7-flash":{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.2,output:1.15,cacheRead:.04,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:stepfun/step-5-preview":{id:"stepfun/step-5-preview",name:"Step 5 Preview",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:2.7,cacheRead:.1,cacheWrite:0},contextWindow:1048576,maxTokens:1048576,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:tencent/hy3":{id:"tencent/hy3",name:"Tencent Hy3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.14,output:.58,cacheRead:.035,cacheWrite:0},contextWindow:262144,maxTokens:262144,type:"chat"},"chat:tencent/hy4":{id:"tencent/hy4",name:"Tencent Hy4",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.417,output:1.2505,cacheRead:.021,cacheWrite:0},contextWindow:1024e3,maxTokens:64e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:tencent/hy4-preview":{id:"tencent/hy4-preview",name:"Tencent Hy4 Preview",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.834,output:2.501,cacheRead:.042,cacheWrite:0},contextWindow:1024e3,maxTokens:64e3,type:"chat"},"chat:thinkingmachines/inkling":{id:"thinkingmachines/inkling",name:"Inkling",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1,output:4.05,cacheRead:.17,cacheWrite:0},contextWindow:256e3,maxTokens:256e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:thinkingmachines/inkling-small":{id:"thinkingmachines/inkling-small",name:"Inkling Small",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.45,output:1.2,cacheRead:.1,cacheWrite:0},contextWindow:1e6,maxTokens:1e6,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:xiaomi/mimo-v2.6-flash":{id:"xiaomi/mimo-v2.6-flash",name:"MiMo V2.6 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:xiaomi/mimo-v2.6-pro":{id:"xiaomi/mimo-v2.6-pro",name:"MiMo V2.6 Pro",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.435,output:.87,cacheRead:.0036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:xiaomi/mimo-v2.6-pro-ultraspeed":{id:"xiaomi/mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:4.35,output:8.7,cacheRead:.036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai/glm-4.5":{id:"zai/glm-4.5",name:"GLM 4.5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:128e3,maxTokens:96e3,type:"chat"},"chat:zai/glm-4.5-air":{id:"zai/glm-4.5-air",name:"GLM 4.5 Air",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.2,output:1.1,cacheRead:.03,cacheWrite:0},contextWindow:128e3,maxTokens:96e3,type:"chat"},"chat:zai/glm-4.5v":{id:"zai/glm-4.5v",name:"GLM 4.5V",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.6,output:1.8,cacheRead:.11,cacheWrite:0},contextWindow:66e3,maxTokens:16e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai/glm-4.6":{id:"zai/glm-4.6",name:"GLM 4.6",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:2e5,maxTokens:96e3,type:"chat"},"chat:zai/glm-4.7":{id:"zai/glm-4.7",name:"GLM 4.7",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.6,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:12e4,type:"chat"},"chat:zai/glm-4.7-flash":{id:"zai/glm-4.7-flash",name:"GLM 4.7 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.07,output:.4,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131e3,type:"chat"},"chat:zai/glm-4.7-flashx":{id:"zai/glm-4.7-flashx",name:"GLM 4.7 FlashX",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:.06,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:2e5,maxTokens:128e3,type:"chat"},"chat:zai/glm-5":{id:"zai/glm-5",name:"GLM 5",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1,output:3.2,cacheRead:0,cacheWrite:0},contextWindow:202800,maxTokens:131100,type:"chat"},"chat:zai/glm-5-turbo":{id:"zai/glm-5-turbo",name:"GLM 5 Turbo",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202800,maxTokens:131100,type:"chat"},"chat:zai/glm-5.1":{id:"zai/glm-5.1",name:"GLM 5.1",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202800,maxTokens:64e3,type:"chat"},"chat:zai/glm-5.2":{id:"zai/glm-5.2",name:"GLM 5.2",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,type:"chat"},"chat:zai/glm-5.2-fast":{id:"zai/glm-5.2-fast",name:"GLM 5.2 Fast",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:2.8,output:8.8,cacheRead:.56,cacheWrite:0},contextWindow:1e6,maxTokens:128e3,type:"chat"},"chat:zai/glm-5.3":{id:"zai/glm-5.3",name:"GLM 5.3",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:1.4,output:4.4,cacheRead:.14,cacheWrite:0},contextWindow:1e6,maxTokens:1e6,type:"chat"},"chat:zai/glm-5.3-fast":{id:"zai/glm-5.3-fast",name:"GLM 5.3 Fast",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text"],compat:{allowEmptySignature:!0},cost:{input:2.1,output:6.6,cacheRead:.21,cacheWrite:0},contextWindow:1048576,maxTokens:262144,type:"chat"},"chat:zai/glm-5.3-flash":{id:"zai/glm-5.3-flash",name:"GLM 5.3 Flash",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:131e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai/glm-5.3-flashx":{id:"zai/glm-5.3-flashx",name:"GLM 5.3 FlashX",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.37,output:1.25,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai/glm-5.3-flashx-legal":{id:"zai/glm-5.3-flashx-legal",name:"GLM 5.3 FlashX Legal",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:.37,output:1.25,cacheRead:.075,cacheWrite:0},contextWindow:1e6,maxTokens:131072,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:zai/glm-5v-turbo":{id:"zai/glm-5v-turbo",name:"GLM 5V Turbo",api:"anthropic-messages",baseUrl:"https://ai-gateway.vercel.sh",provider:"vercel-ai-gateway",reasoning:!0,input:["text","image"],compat:{allowEmptySignature:!0},cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:2e5,maxTokens:128e3,inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}},"typesafe-system-one":{"classifier:baseten/elephant-1":{type:"classifier",id:"baseten/elephant-1",name:"Elephant-1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.035,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384},"classifier:baseten/joey-1":{type:"classifier",id:"baseten/joey-1",name:"Joey-1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384},"classifier:baseten/mammoth-1":{type:"classifier",id:"baseten/mammoth-1",name:"Mammoth-1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0},contextWindow:16384},"classifier:convaiinnovations/laya":{type:"classifier",id:"convaiinnovations/laya",name:"Laya",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.0105,output:0,cacheRead:0,cacheWrite:0},contextWindow:8192},"classifier:liquid/d1":{type:"classifier",id:"liquid/d1",name:"Liquid d1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536},"classifier:liquid/d1-ultra":{type:"classifier",id:"liquid/d1-ultra",name:"Liquid d1 Ultra",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32768},"classifier:microsoft/microsoft-decision-1":{type:"classifier",id:"microsoft/microsoft-decision-1",name:"Decision-1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32768},"classifier:openai/gpt-6-luna-decisions":{type:"classifier",id:"openai/gpt-6-luna-decisions",name:"GPT-6 Luna Decisions",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.1,output:0,cacheRead:0,cacheWrite:0},contextWindow:105e4},"classifier:perplexity/pplx-decider-flash-v1.2":{type:"classifier",id:"perplexity/pplx-decider-flash-v1.2",name:"Decider Flash V1.2 4B",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.01,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144},"classifier:perplexity/pplx-decider-v1.2":{type:"classifier",id:"perplexity/pplx-decider-v1.2",name:"Decider V1.2 27B",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.02,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144},"classifier:scaledown/scaledown-classify-1":{type:"classifier",id:"scaledown/scaledown-classify-1",name:"Classify-1",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.05,output:0,cacheRead:0,cacheWrite:0},contextWindow:4096},"classifier:typesafe-ai/jev":{type:"classifier",id:"typesafe-ai/jev",name:"Jev",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3},"classifier:typesafe-ai/jev-1.13.0":{type:"classifier",id:"typesafe-ai/jev-1.13.0",name:"Jev 1.13.0",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3},"classifier:typesafe-ai/jev-1.14.0":{type:"classifier",id:"typesafe-ai/jev-1.14.0",name:"Jev 1.14.0",api:"typesafe-system-one",provider:"vercel-ai-gateway",baseUrl:"https://ai-gateway.vercel.sh/typesafe/v1",input:["text"],cost:{input:.042,output:0,cacheRead:0,cacheWrite:0},contextWindow:32e3}}};var VERCEL_AI_GATEWAY_MODELS=flattenChatModelCatalog("vercel-ai-gateway",vercel_ai_gateway_default),VERCEL_AI_GATEWAY_IMAGE_MODELS=flattenImageModelCatalog("vercel-ai-gateway",vercel_ai_gateway_default),VERCEL_AI_GATEWAY_CLASSIFIER_MODELS=flattenClassifierModelCatalog("vercel-ai-gateway",vercel_ai_gateway_default);var xai_default={"openai-responses":{"chat:grok-4.3":{id:"grok-4.3",name:"Grok 4.3",api:"openai-responses",provider:"xai",baseUrl:"https://api.x.ai/v1",reasoning:!0,input:["text","image"],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:2.5,output:5,cacheRead:.4,cacheWrite:0}]},contextWindow:1e6,maxTokens:3e4,compat:{supportsLongCacheRetention:!1},thinkingLevelMap:{off:"none",minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.5":{id:"grok-4.5",name:"Grok 4.5",api:"openai-responses",provider:"xai",baseUrl:"https://api.x.ai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.3,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:.6,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.6":{id:"grok-4.6",name:"Grok 4.6",api:"openai-responses",provider:"xai",baseUrl:"https://api.x.ai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:grok-4.7":{id:"grok-4.7",name:"Grok 4.7",api:"openai-responses",provider:"xai",baseUrl:"https://api.x.ai/v1",reasoning:!0,input:["text","image"],cost:{input:2,output:6,cacheRead:.5,cacheWrite:0,tiers:[{inputTokensAbove:2e5,input:4,output:12,cacheRead:1,cacheWrite:0}]},contextWindow:5e5,maxTokens:5e5,compat:{supportsLongCacheRetention:!1},thinkingLevelMap:{off:null,minimal:null,low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var XAI_MODELS=flattenChatModelCatalog("xai",xai_default),XAI_IMAGE_MODELS=flattenImageModelCatalog("xai",xai_default),XAI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("xai",xai_default);var xiaomi_default={"openai-completions":{"chat:mimo-v2.6-flash":{id:"mimo-v2.6-flash",name:"MiMo-V2.6-Flash",api:"openai-completions",provider:"xiaomi",baseUrl:"https://api.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro":{id:"mimo-v2.6-pro",name:"MiMo-V2.6-Pro",api:"openai-completions",provider:"xiaomi",baseUrl:"https://api.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:.435,output:.87,cacheRead:.0036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro-ultraspeed":{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo-V2.6-Pro-UltraSpeed",api:"openai-completions",provider:"xiaomi",baseUrl:"https://api.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:4.35,output:8.7,cacheRead:.036,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var XIAOMI_MODELS=flattenChatModelCatalog("xiaomi",xiaomi_default),XIAOMI_IMAGE_MODELS=flattenImageModelCatalog("xiaomi",xiaomi_default),XIAOMI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("xiaomi",xiaomi_default);var xiaomi_token_plan_ams_default={"openai-completions":{"chat:mimo-v2.6-flash":{id:"mimo-v2.6-flash",name:"MiMo-V2.6-Flash",api:"openai-completions",provider:"xiaomi-token-plan-ams",baseUrl:"https://token-plan-ams.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro":{id:"mimo-v2.6-pro",name:"MiMo-V2.6-Pro",api:"openai-completions",provider:"xiaomi-token-plan-ams",baseUrl:"https://token-plan-ams.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var XIAOMI_TOKEN_PLAN_AMS_MODELS=flattenChatModelCatalog("xiaomi-token-plan-ams",xiaomi_token_plan_ams_default),XIAOMI_TOKEN_PLAN_AMS_IMAGE_MODELS=flattenImageModelCatalog("xiaomi-token-plan-ams",xiaomi_token_plan_ams_default),XIAOMI_TOKEN_PLAN_AMS_CLASSIFIER_MODELS=flattenClassifierModelCatalog("xiaomi-token-plan-ams",xiaomi_token_plan_ams_default);var xiaomi_token_plan_cn_default={"openai-completions":{"chat:mimo-v2.6-flash":{id:"mimo-v2.6-flash",name:"MiMo-V2.6-Flash",api:"openai-completions",provider:"xiaomi-token-plan-cn",baseUrl:"https://token-plan-cn.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro":{id:"mimo-v2.6-pro",name:"MiMo-V2.6-Pro",api:"openai-completions",provider:"xiaomi-token-plan-cn",baseUrl:"https://token-plan-cn.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var XIAOMI_TOKEN_PLAN_CN_MODELS=flattenChatModelCatalog("xiaomi-token-plan-cn",xiaomi_token_plan_cn_default),XIAOMI_TOKEN_PLAN_CN_IMAGE_MODELS=flattenImageModelCatalog("xiaomi-token-plan-cn",xiaomi_token_plan_cn_default),XIAOMI_TOKEN_PLAN_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("xiaomi-token-plan-cn",xiaomi_token_plan_cn_default);var xiaomi_token_plan_sgp_default={"openai-completions":{"chat:mimo-v2.6-flash":{id:"mimo-v2.6-flash",name:"MiMo-V2.6-Flash",api:"openai-completions",provider:"xiaomi-token-plan-sgp",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:mimo-v2.6-pro":{id:"mimo-v2.6-pro",name:"MiMo-V2.6-Pro",api:"openai-completions",provider:"xiaomi-token-plan-sgp",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1",reasoning:!0,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:131072,compat:{supportsStrictMode:!0,supportsReasoningEffort:!1,requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:"deepseek"},thinkingLevelMap:{off:"off",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:null},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"}}};var XIAOMI_TOKEN_PLAN_SGP_MODELS=flattenChatModelCatalog("xiaomi-token-plan-sgp",xiaomi_token_plan_sgp_default),XIAOMI_TOKEN_PLAN_SGP_IMAGE_MODELS=flattenImageModelCatalog("xiaomi-token-plan-sgp",xiaomi_token_plan_sgp_default),XIAOMI_TOKEN_PLAN_SGP_CLASSIFIER_MODELS=flattenClassifierModelCatalog("xiaomi-token-plan-sgp",xiaomi_token_plan_sgp_default);var zai_default={"openai-completions":{"chat: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",reasoning:!0,input:["text"],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:204800,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat: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",reasoning:!0,input:["text"],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:2e5,maxTokens:131072,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat:glm-5.2":{id:"glm-5.2",name:"GLM-5.2",api:"openai-completions",provider:"zai",baseUrl:"https://api.z.ai/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat:glm-5.2-highspeed":{id:"glm-5.2-highspeed",name:"GLM-5.2 Highspeed",api:"openai-completions",provider:"zai",baseUrl:"https://api.z.ai/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:"none",minimal:null,low:null,medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"zai",baseUrl:"https://api.z.ai/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat:glm-5.3-flash":{id:"glm-5.3-flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"zai",baseUrl:"https://api.z.ai/api/coding/paas/v4",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.3-highspeed":{id:"glm-5.3-highspeed",name:"GLM-5.3 Highspeed",api:"openai-completions",provider:"zai",baseUrl:"https://api.z.ai/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"}}};var ZAI_MODELS=flattenChatModelCatalog("zai",zai_default),ZAI_IMAGE_MODELS=flattenImageModelCatalog("zai",zai_default),ZAI_CLASSIFIER_MODELS=flattenClassifierModelCatalog("zai",zai_default);var zai_coding_cn_default={"openai-completions":{"chat:glm-4.6v":{id:"glm-4.6v",name:"GLM-4.6V",api:"openai-completions",provider:"zai-coding-cn",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",reasoning:!0,input:["text","image"],cost:{input:.3,output:.9,cacheRead:.05,cacheWrite:0},contextWindow:128e3,maxTokens:32768,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.3":{id:"glm-5.3",name:"GLM-5.3",api:"openai-completions",provider:"zai-coding-cn",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"},"chat:glm-5.3-flash":{id:"glm-5.3-flash",name:"GLM-5.3-Flash",api:"openai-completions",provider:"zai-coding-cn",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",reasoning:!0,input:["text","image"],cost:{input:.15,output:.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},inputLimits:{images:{resize:{maxWidth:2e3,maxHeight:2e3,maxBytes:4718592,jpegQuality:80}}},type:"chat"},"chat:glm-5.3-highspeed":{id:"glm-5.3-highspeed",name:"GLM-5.3 Highspeed",api:"openai-completions",provider:"zai-coding-cn",baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",reasoning:!0,input:["text"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:131072,thinkingLevelMap:{off:null,minimal:null,low:"low",medium:null,high:"high",xhigh:null,max:"max"},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:"max_tokens",thinkingFormat:"zai",supportsStrictMode:!0,zaiToolStream:!0},type:"chat"}}};var ZAI_CODING_CN_MODELS=flattenChatModelCatalog("zai-coding-cn",zai_coding_cn_default),ZAI_CODING_CN_IMAGE_MODELS=flattenImageModelCatalog("zai-coding-cn",zai_coding_cn_default),ZAI_CODING_CN_CLASSIFIER_MODELS=flattenClassifierModelCatalog("zai-coding-cn",zai_coding_cn_default);var MODELS={"amazon-bedrock":AMAZON_BEDROCK_MODELS,"ant-ling":ANT_LING_MODELS,anthropic:ANTHROPIC_MODELS,azure:AZURE_MODELS,baseten:BASETEN_MODELS,cerebras:CEREBRAS_MODELS,"cloudflare-ai-gateway":CLOUDFLARE_AI_GATEWAY_MODELS,"cloudflare-workers-ai":CLOUDFLARE_WORKERS_AI_MODELS,deepseek:DEEPSEEK_MODELS,fireworks:FIREWORKS_MODELS,"github-copilot":GITHUB_COPILOT_MODELS,google:GOOGLE_MODELS,"google-vertex":GOOGLE_VERTEX_MODELS,groq:GROQ_MODELS,huggingface:HUGGINGFACE_MODELS,"kimi-coding":KIMI_CODING_MODELS,meta:META_MODELS,minimax:MINIMAX_MODELS,"minimax-cn":MINIMAX_CN_MODELS,mistral:MISTRAL_MODELS,moonshotai:MOONSHOTAI_MODELS,"moonshotai-cn":MOONSHOTAI_CN_MODELS,nvidia:NVIDIA_MODELS,openai:OPENAI_MODELS,"openai-codex":OPENAI_CODEX_MODELS,opencode:OPENCODE_MODELS,"opencode-go":OPENCODE_GO_MODELS,openrouter:OPENROUTER_MODELS,"qwen-token-plan":QWEN_TOKEN_PLAN_MODELS,"qwen-token-plan-cn":QWEN_TOKEN_PLAN_CN_MODELS,"qwen-token-plan-individual":QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS,"qwen-token-plan-individual-cn":QWEN_TOKEN_PLAN_INDIVIDUAL_CN_MODELS,radius:RADIUS_MODELS,together:TOGETHER_MODELS,typesafe:TYPESAFE_MODELS,"vercel-ai-gateway":VERCEL_AI_GATEWAY_MODELS,xai:XAI_MODELS,xiaomi:XIAOMI_MODELS,"xiaomi-token-plan-ams":XIAOMI_TOKEN_PLAN_AMS_MODELS,"xiaomi-token-plan-cn":XIAOMI_TOKEN_PLAN_CN_MODELS,"xiaomi-token-plan-sgp":XIAOMI_TOKEN_PLAN_SGP_MODELS,zai:ZAI_MODELS,"zai-coding-cn":ZAI_CODING_CN_MODELS},IMAGE_MODELS={"amazon-bedrock":AMAZON_BEDROCK_IMAGE_MODELS,"ant-ling":ANT_LING_IMAGE_MODELS,anthropic:ANTHROPIC_IMAGE_MODELS,azure:AZURE_IMAGE_MODELS,baseten:BASETEN_IMAGE_MODELS,cerebras:CEREBRAS_IMAGE_MODELS,"cloudflare-ai-gateway":CLOUDFLARE_AI_GATEWAY_IMAGE_MODELS,"cloudflare-workers-ai":CLOUDFLARE_WORKERS_AI_IMAGE_MODELS,deepseek:DEEPSEEK_IMAGE_MODELS,fireworks:FIREWORKS_IMAGE_MODELS,"github-copilot":GITHUB_COPILOT_IMAGE_MODELS,google:GOOGLE_IMAGE_MODELS,"google-vertex":GOOGLE_VERTEX_IMAGE_MODELS,groq:GROQ_IMAGE_MODELS,huggingface:HUGGINGFACE_IMAGE_MODELS,"kimi-coding":KIMI_CODING_IMAGE_MODELS,meta:META_IMAGE_MODELS,minimax:MINIMAX_IMAGE_MODELS,"minimax-cn":MINIMAX_CN_IMAGE_MODELS,mistral:MISTRAL_IMAGE_MODELS,moonshotai:MOONSHOTAI_IMAGE_MODELS,"moonshotai-cn":MOONSHOTAI_CN_IMAGE_MODELS,nvidia:NVIDIA_IMAGE_MODELS,openai:OPENAI_IMAGE_MODELS,"openai-codex":OPENAI_CODEX_IMAGE_MODELS,opencode:OPENCODE_IMAGE_MODELS,"opencode-go":OPENCODE_GO_IMAGE_MODELS,openrouter:OPENROUTER_IMAGE_MODELS,"qwen-token-plan":QWEN_TOKEN_PLAN_IMAGE_MODELS,"qwen-token-plan-cn":QWEN_TOKEN_PLAN_CN_IMAGE_MODELS,"qwen-token-plan-individual":QWEN_TOKEN_PLAN_INDIVIDUAL_IMAGE_MODELS,"qwen-token-plan-individual-cn":QWEN_TOKEN_PLAN_INDIVIDUAL_CN_IMAGE_MODELS,radius:RADIUS_IMAGE_MODELS,together:TOGETHER_IMAGE_MODELS,typesafe:TYPESAFE_IMAGE_MODELS,"vercel-ai-gateway":VERCEL_AI_GATEWAY_IMAGE_MODELS,xai:XAI_IMAGE_MODELS,xiaomi:XIAOMI_IMAGE_MODELS,"xiaomi-token-plan-ams":XIAOMI_TOKEN_PLAN_AMS_IMAGE_MODELS,"xiaomi-token-plan-cn":XIAOMI_TOKEN_PLAN_CN_IMAGE_MODELS,"xiaomi-token-plan-sgp":XIAOMI_TOKEN_PLAN_SGP_IMAGE_MODELS,zai:ZAI_IMAGE_MODELS,"zai-coding-cn":ZAI_CODING_CN_IMAGE_MODELS},CLASSIFIER_MODELS={"amazon-bedrock":AMAZON_BEDROCK_CLASSIFIER_MODELS,"ant-ling":ANT_LING_CLASSIFIER_MODELS,anthropic:ANTHROPIC_CLASSIFIER_MODELS,azure:AZURE_CLASSIFIER_MODELS,baseten:BASETEN_CLASSIFIER_MODELS,cerebras:CEREBRAS_CLASSIFIER_MODELS,"cloudflare-ai-gateway":CLOUDFLARE_AI_GATEWAY_CLASSIFIER_MODELS,"cloudflare-workers-ai":CLOUDFLARE_WORKERS_AI_CLASSIFIER_MODELS,deepseek:DEEPSEEK_CLASSIFIER_MODELS,fireworks:FIREWORKS_CLASSIFIER_MODELS,"github-copilot":GITHUB_COPILOT_CLASSIFIER_MODELS,google:GOOGLE_CLASSIFIER_MODELS,"google-vertex":GOOGLE_VERTEX_CLASSIFIER_MODELS,groq:GROQ_CLASSIFIER_MODELS,huggingface:HUGGINGFACE_CLASSIFIER_MODELS,"kimi-coding":KIMI_CODING_CLASSIFIER_MODELS,meta:META_CLASSIFIER_MODELS,minimax:MINIMAX_CLASSIFIER_MODELS,"minimax-cn":MINIMAX_CN_CLASSIFIER_MODELS,mistral:MISTRAL_CLASSIFIER_MODELS,moonshotai:MOONSHOTAI_CLASSIFIER_MODELS,"moonshotai-cn":MOONSHOTAI_CN_CLASSIFIER_MODELS,nvidia:NVIDIA_CLASSIFIER_MODELS,openai:OPENAI_CLASSIFIER_MODELS,"openai-codex":OPENAI_CODEX_CLASSIFIER_MODELS,opencode:OPENCODE_CLASSIFIER_MODELS,"opencode-go":OPENCODE_GO_CLASSIFIER_MODELS,openrouter:OPENROUTER_CLASSIFIER_MODELS,"qwen-token-plan":QWEN_TOKEN_PLAN_CLASSIFIER_MODELS,"qwen-token-plan-cn":QWEN_TOKEN_PLAN_CN_CLASSIFIER_MODELS,"qwen-token-plan-individual":QWEN_TOKEN_PLAN_INDIVIDUAL_CLASSIFIER_MODELS,"qwen-token-plan-individual-cn":QWEN_TOKEN_PLAN_INDIVIDUAL_CN_CLASSIFIER_MODELS,radius:RADIUS_CLASSIFIER_MODELS,together:TOGETHER_CLASSIFIER_MODELS,typesafe:TYPESAFE_CLASSIFIER_MODELS,"vercel-ai-gateway":VERCEL_AI_GATEWAY_CLASSIFIER_MODELS,xai:XAI_CLASSIFIER_MODELS,xiaomi:XIAOMI_CLASSIFIER_MODELS,"xiaomi-token-plan-ams":XIAOMI_TOKEN_PLAN_AMS_CLASSIFIER_MODELS,"xiaomi-token-plan-cn":XIAOMI_TOKEN_PLAN_CN_CLASSIFIER_MODELS,"xiaomi-token-plan-sgp":XIAOMI_TOKEN_PLAN_SGP_CLASSIFIER_MODELS,zai:ZAI_CLASSIFIER_MODELS,"zai-coding-cn":ZAI_CODING_CN_CLASSIFIER_MODELS};var manifest_default={schemaVersion:6,generatedAt:"2026-11-05T09:47:42.244Z",structureHash:"361f6bff3b1cd18bc20ac5a04de2d4259cf0cda7a2ccbddcb014f73c40de5152",files:{"amazon-bedrock.json":"7688f295f84a50aa390255a68c2e8fdc7ec0768f5737ab40358844d597e89803","ant-ling.json":"628feab3ef6c7d80ce96f75999804e1d9f05fec3851e5302e30fff3b69db90f6","anthropic.json":"b075e002cad7fb74cbe9cc199357ca156991c429963b827de3d1fb88d594f3fc","azure.json":"9171f3122524c248862d24961e2716812b1d18827cad4c0edfb99b8f75e96fbe","baseten.json":"d8944e6c7086f8442e1494cb78f88a8c623bc267ec24337d5dccc5b87a01e5fd","cerebras.json":"2eb969b2956844f9a641d3de52c19f1791293c58f607282fb3b0ebfe85ff66f8","cloudflare-ai-gateway.json":"fabc979d62c7c8503d5b186e5fb7267e3d008d7b5a3091d62c3decd6baa8972b","cloudflare-workers-ai.json":"0dc5eda87ff6de3ee75ee6d547a60162319bb2d51ed09b1e7d47d8ae9ef8548e","deepseek.json":"10a296fb3e898f7715c80890c8af0af4f5fd58f22dbcd6612fdc5d762157ccdc","fireworks.json":"4c8b4942ce08b55df711ac8b1eea65bbf28135b2bf2f475c95f11b2e7aa1012d","github-copilot.json":"075f19a4019990cd22b3439730638b7944db696d528f59e3dbee280a0de50401","google-vertex.json":"bc32e24bfd8ab0caedda4c11a7527a1dcc7f783ff5326ce4c72a13bd7ab47d9b","google.json":"61a36b42e1436b84c8ed8d738ecb1a2a9d9267f876f7c612407a349b7ca4c301","groq.json":"087df37206e9eed8b10f1e558e4c496289bef60074b7e8afba4f20fb102b4ec2","huggingface.json":"cf34e226723c542afc4d024a1b1270b911738410dc5cf706fef5d9d4a0e08171","kimi-coding.json":"04e7914391e8e986d04b5cc8f84c49267d148a53a2d92bf968b7570dd8ff09b9","meta.json":"563f5ec07973f52ab8c3eb26ef91a36ad8a79e950b37174935666cdcb624bf35","minimax-cn.json":"fa15d1f67a07046d38e191af9bd97ed922ba45a99a11af4ad281151cc6b762aa","minimax.json":"1e0459dda3858ea24151182106fc4179b95f43a0a8dffc1c3d2e7db4c2d9206e","mistral.json":"013b34618e8f9a3968e0442e7e1339cc2a1bbad467f04bab0b8589a9c451b780","moonshotai-cn.json":"1a15468b1edf9205956e4c5ea41fc4cacc14eabf00523b9143e23a38264f57f7","moonshotai.json":"f31cdf2e6c81a403c4cb0e6b7e759ceff2820f966b08dbec80cfafa3f80dfc63","nvidia.json":"2a6a5fa3c0e256ce19878daf4f0ba1166dbd4ab418d9e2d1076d23ab8996a3b7","openai-codex.json":"dd30453068f310317abf35d9adc6d841339a1351f0c6925a6aff45d975e0257c","openai.json":"df2fe1f312051bbe29801ef903ab370c701a74a680f1370e96eb465eacd1d82d","opencode-go.json":"a3e6af9fdb6d6992958a5eb1f3f25cde2dd4df48f9d8f672facded3f19b382ce","opencode.json":"c43bac9c67c7564e6523f315a0a76b80c73759c6618c9718eb6fde80ec352332","openrouter.json":"0e992b857333568c6c3e4946e3c03a0dd4c46347521ea6af0441248ed37ae287","qwen-token-plan-cn.json":"80824536f0c3cd83ab27424df2d664738cbe3f971b4e568a625432288fa53229","qwen-token-plan-individual-cn.json":"fb74899c770572efbb27eb8d3398a07edaa4d62229655f9a0702ae01af22ac95","qwen-token-plan-individual.json":"f83c5ae4dce709924ad03a10c5f9c09a42b3670cb6ee2ed32590b9e0fcbaf8a9","qwen-token-plan.json":"0630bf7fea9d8579c7ac990e32c40c3685f9db20b6dbfaf745b361fe5203113c","radius.json":"a503fa5f4e51ab66d9e75a5611d2418f11e76baf830a08efce4ae1a4447c5622","together.json":"e421d8042975509d5b73eb3bb8f1612b9ee6b7c3764a3a6aa4866bc1ba661bd0","typesafe.json":"631b03f70597ad656e8f45a393ab46bd4137459b9b499708ac3d5d9d9decd3f2","vercel-ai-gateway.json":"0e6a61d35e564b7eb5ed156d1993ef48cfb99d23bee329abe07d704ab8ff05ac","xai.json":"db408985a02980ba9d30f359b4f394a7d088cc75e26bd4bef30aecb43077771b","xiaomi-token-plan-ams.json":"34fe47b0a79fec7843a01d542cb64b736e651a3e6691cc851183e5ce3eae0118","xiaomi-token-plan-cn.json":"e69f9704b450dbb34b6db61a7b224dab5e5a91a39af3e505ecca4db8bfdc04f0","xiaomi-token-plan-sgp.json":"fd28cc293208617127ff888873772b7b52160538caa07ca3af641f3208d3ad20","xiaomi.json":"65bc04b2ab6c9e97594de34bcea4ef7e45befd87901b4208d1ea4142b93f0561","zai-coding-cn.json":"b335901611ad018680e5bb7fe7ba12a9f1be28e9d1530c783cbd6f4567a29a92","zai.json":"08b29b02416c26f0c1a219492fa7f9b23bdb90ef4e9f7693800b9e670dcc5860"}};var piMessagesApi=()=>lazyApi(()=>import("./pi-messages-YPAWD2FK.js"));function envApiKeyAuth(name,envVars){return{name,login:async interaction=>{interaction.signal.throwIfAborted();let key=await interaction.prompt({type:"secret",message:`Enter ${name}`});return interaction.signal.throwIfAborted(),{type:"api_key",key}},resolve:async({ctx,credential,signal})=>{if(signal.throwIfAborted(),credential?.key)return{auth:{apiKey:credential.key},env:credential.env,source:"stored credential"};for(let envVar of envVars){let value=await ctx.env(envVar);if(signal.throwIfAborted(),value)return{auth:{apiKey:value},source:envVar}}}}}function lazyOAuth(input){let promise,loaded=()=>(promise??=input.load(),promise);return{name:input.name,isSubscription:input.isSubscription,loginLabel:input.loginLabel,login:async(interaction,options)=>(await loaded()).login(interaction,options),refresh:async(credential,signal)=>(await loaded()).refresh(credential,signal),toAuth:async credential=>(await loaded()).toAuth(credential)}}var __rewriteRelativeImportExtension=function(path,preserveJsx){return typeof path=="string"&&/^\.\.?\//.test(path)?path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m,tsx,d,ext,cm){return tsx?preserveJsx?".jsx":".js":d&&(!ext||!cm)?m:d+ext+"."+cm.toLowerCase()+"js"}):path},importOAuthModule=specifier=>{let runtimeSpecifier=import.meta.url.endsWith(".js")?specifier.replace(/\.ts$/,".js"):specifier;return import(__rewriteRelativeImportExtension(new URL(runtimeSpecifier,import.meta.url).href))},bundledLoaders;var loadRadiusOAuth=async options=>bundledLoaders?bundledLoaders.radius(options):(await importOAuthModule("./radius.ts")).createRadiusOAuth(options);var DEFAULT_RADIUS_GATEWAY="https://radius.pi.dev";function isRadiusGatewayModel(value){if(typeof value!="object"||value===null||Array.isArray(value))return!1;let model=value;return typeof model.id=="string"&&typeof model.name=="string"&&typeof model.reasoning=="boolean"&&Array.isArray(model.input)&&typeof model.cost=="object"&&model.cost!==null&&!Array.isArray(model.cost)&&typeof model.contextWindow=="number"&&typeof model.maxTokens=="number"}function sanitizeRadiusGatewayConfig(config){if(typeof config!="object"||config===null||Array.isArray(config))return;let{baseUrl,models}=config;if(!(typeof baseUrl!="string"||!Array.isArray(models)))return{baseUrl,models:models.filter(isRadiusGatewayModel).map(model=>({...model}))}}function normalizeRadiusGatewayUrl(value){return(/^https?:\/\//iu.test(value)?value:`https://${value}`).replace(/\/+$/u,"")}function getRadiusCredentialConfig(credential){return sanitizeRadiusGatewayConfig(credential?.gatewayConfig)}function getRadiusModelsFromConfig(providerId,config){return config.models.map(model=>({...model,api:"pi-messages",provider:providerId,baseUrl:config.baseUrl}))}function getRadiusModels(providerId,credential){let config=getRadiusCredentialConfig(credential);return config?getRadiusModelsFromConfig(providerId,config):[]}function truncateHttpBody(body){let trimmed=body.trim();return trimmed.length>512?`${ownedSlice(trimmed,0,512)}\u2026`:trimmed}async function loadRadiusGatewayConfig(gateway,apiKey,signal){let headers={accept:"application/json"};apiKey&&(headers.authorization=`Bearer ${apiKey}`);let response=await fetch(new URL("/v1/config",gateway),{headers,signal});if(!response.ok)throw new Error(`Could not load Radius config from ${gateway}: ${response.status}: ${truncateHttpBody(await response.text())}`);let config=sanitizeRadiusGatewayConfig(await response.json());if(!config)throw new Error(`Invalid Radius config from ${gateway}`);return config}function radiusProvider(options={}){let id=options.id??"radius",name=options.name??"Radius",gateway=normalizeRadiusGatewayUrl(options.gateway??DEFAULT_RADIUS_GATEWAY),baselineModels=gateway===normalizeRadiusGatewayUrl(DEFAULT_RADIUS_GATEWAY)?Object.values(RADIUS_MODELS).map(model=>({...model,provider:id})):[],dynamicModels,streams=piMessagesApi();return{id,name,auth:{apiKey:envApiKeyAuth("Radius API key",["RADIUS_API_KEY"]),oauth:lazyOAuth({name,load:()=>loadRadiusOAuth({name,gateway})})},getModels:()=>dynamicModels??baselineModels,refreshModels:async context=>{let stored=context.stored;if(stored){let restored=stored.models.filter(model=>model.provider===id);if(!await context.publish({update:()=>{dynamicModels=restored}}))return}if(!stored&&context.credential?.type==="oauth"){let legacy=getRadiusModels(id,context.credential);if(legacy.length>0&&!await context.publish({persist:{models:legacy,checkedAt:Date.now()},update:()=>{dynamicModels=legacy}}))return}if(!context.allowNetwork||context.signal.aborted)return;let apiKey=context.credential?.type==="oauth"?context.credential.access:context.credential?.key,config=await loadRadiusGatewayConfig(gateway,apiKey,context.signal);if(context.signal.aborted)return;let refreshed=getRadiusModelsFromConfig(id,config);await context.publish({persist:{models:refreshed,checkedAt:Date.now()},update:()=>{dynamicModels=refreshed}})},stream:(model,context,streamOptions)=>streams.stream(model,context,streamOptions),streamSimple:(model,context,streamOptions)=>streams.streamSimple(model,context,streamOptions)}}function getBuiltinModel(provider,modelId){return MODELS[provider]?.[modelId]}function getBuiltinImageModel(provider,modelId){return IMAGE_MODELS[provider]?.[modelId]}function getBuiltinClassifierModel(provider,modelId){return CLASSIFIER_MODELS[provider]?.[modelId]}function getBuiltinProviders(){return Object.keys(MODELS)}function getBuiltinModelDataGeneratedAt(){let generatedAt=Date.parse(manifest_default.generatedAt);return Number.isNaN(generatedAt)?void 0:generatedAt}function getBuiltinModels(provider){let models=MODELS[provider];return Object.values(models??{})}function getBuiltinImageModels(provider){let models=IMAGE_MODELS[provider];return Object.values(models??{})}function getBuiltinClassifierModels(provider){let models=CLASSIFIER_MODELS[provider];return Object.values(models??{})}function getAllBuiltinModels(provider){return[...getBuiltinModels(provider),...getBuiltinImageModels(provider),...getBuiltinClassifierModels(provider)]}function builtinProviders(){return[]}function builtinModels(options){let models=createModels(options);for(let provider of builtinProviders())models.setProvider(provider);return models}var value_exports2={};__export(value_exports2,{Assert:()=>Assert,AssertError:()=>AssertError,Check:()=>Check2,Clean:()=>Clean,Clone:()=>Clone2,Convert:()=>Convert,Create:()=>Create,CreateError:()=>CreateError,Decode:()=>Decode9,DecodeError:()=>DecodeError,DecodeUnsafe:()=>DecodeUnsafe,Default:()=>Default,Delete:()=>Delete2,Diff:()=>Diff,Edit:()=>Edit,Encode:()=>Encode9,EncodeError:()=>EncodeError,EncodeUnsafe:()=>EncodeUnsafe,Equal:()=>Equal,Errors:()=>Errors2,HasCodec:()=>HasCodec,Hash:()=>Hash,Insert:()=>Insert,IsOptionalUndefined:()=>IsOptionalUndefined,Parse:()=>Parse,ParseError:()=>ParseError,Parser:()=>Parser,Patch:()=>Patch,Pipeline:()=>Pipeline,Pointer:()=>pointer_exports,Repair:()=>Repair,UnionPrioritySort:()=>UnionPrioritySort,UnionScoreSelect:()=>UnionScoreSelect,Update:()=>Update,Value:()=>value_exports,default:()=>value_default});function IsRefine2(value){return guard_exports.HasPropertyKey(value,"~refine")&&guard_exports.IsArray(value["~refine"])&&guard_exports.Every(value["~refine"],0,value2=>guard_exports.IsObject(value2)&&guard_exports.HasPropertyKey(value2,"check")&&guard_exports.HasPropertyKey(value2,"error")&&guard_exports.IsFunction(value2.check)&&guard_exports.IsFunction(value2.error))}function IsSchemaObject(value){return guard_exports.IsObject(value)&&!guard_exports.IsArray(value)}function IsSchemaBoolean(value){return guard_exports.IsBoolean(value)}function IsSchema2(value){return IsSchemaObject(value)||IsSchemaBoolean(value)}function IsAdditionalItems(schema){return guard_exports.HasPropertyKey(schema,"additionalItems")&&IsSchema2(schema.additionalItems)}function IsAdditionalProperties(schema){return guard_exports.HasPropertyKey(schema,"additionalProperties")&&IsSchema2(schema.additionalProperties)}function IsAllOf(schema){return guard_exports.HasPropertyKey(schema,"allOf")&&guard_exports.IsArray(schema.allOf)&&schema.allOf.every(value=>IsSchema2(value))}function IsAnchor(schema){return guard_exports.HasPropertyKey(schema,"$anchor")&&guard_exports.IsString(schema.$anchor)}function IsAnyOf(schema){return guard_exports.HasPropertyKey(schema,"anyOf")&&guard_exports.IsArray(schema.anyOf)&&schema.anyOf.every(value=>IsSchema2(value))}function IsConst(value){return guard_exports.HasPropertyKey(value,"const")}function IsContains(schema){return guard_exports.HasPropertyKey(schema,"contains")&&IsSchema2(schema.contains)}function IsDefault(schema){return guard_exports.HasPropertyKey(schema,"default")}function IsDependencies(schema){return guard_exports.HasPropertyKey(schema,"dependencies")&&guard_exports.IsObject(schema.dependencies)&&Object.values(schema.dependencies).every(value=>IsSchema2(value)||guard_exports.IsArray(value)&&value.every(value2=>guard_exports.IsString(value2)))}function IsDependentRequired(schema){return guard_exports.HasPropertyKey(schema,"dependentRequired")&&guard_exports.IsObject(schema.dependentRequired)&&Object.values(schema.dependentRequired).every(value=>guard_exports.IsArray(value)&&value.every(value2=>guard_exports.IsString(value2)))}function IsDependentSchemas(schema){return guard_exports.HasPropertyKey(schema,"dependentSchemas")&&guard_exports.IsObject(schema.dependentSchemas)&&Object.values(schema.dependentSchemas).every(value=>IsSchema2(value))}function IsDynamicAnchor(schema){return guard_exports.HasPropertyKey(schema,"$dynamicAnchor")&&guard_exports.IsString(schema.$dynamicAnchor)}function IsDynamicRef(schema){return guard_exports.HasPropertyKey(schema,"$dynamicRef")&&guard_exports.IsString(schema.$dynamicRef)}function IsElse(schema){return guard_exports.HasPropertyKey(schema,"else")&&IsSchema2(schema.else)}function IsEnum2(schema){return guard_exports.HasPropertyKey(schema,"enum")&&guard_exports.IsArray(schema.enum)}function IsExclusiveMaximum(schema){return guard_exports.HasPropertyKey(schema,"exclusiveMaximum")&&(guard_exports.IsNumber(schema.exclusiveMaximum)||guard_exports.IsBigInt(schema.exclusiveMaximum))}function IsExclusiveMinimum(schema){return guard_exports.HasPropertyKey(schema,"exclusiveMinimum")&&(guard_exports.IsNumber(schema.exclusiveMinimum)||guard_exports.IsBigInt(schema.exclusiveMinimum))}function IsFormat(schema){return guard_exports.HasPropertyKey(schema,"format")&&guard_exports.IsString(schema.format)}function IsId(schema){return guard_exports.HasPropertyKey(schema,"$id")&&guard_exports.IsString(schema.$id)}function IsIf(schema){return guard_exports.HasPropertyKey(schema,"if")&&IsSchema2(schema.if)}function IsItems(schema){return guard_exports.HasPropertyKey(schema,"items")&&(IsSchema2(schema.items)||guard_exports.IsArray(schema.items)&&schema.items.every(value=>IsSchema2(value)))}function IsItemsSized(schema){return IsItems(schema)&&guard_exports.IsArray(schema.items)}function IsMaximum(schema){return guard_exports.HasPropertyKey(schema,"maximum")&&(guard_exports.IsNumber(schema.maximum)||guard_exports.IsBigInt(schema.maximum))}function IsMaxContains(schema){return guard_exports.HasPropertyKey(schema,"maxContains")&&guard_exports.IsNumber(schema.maxContains)}function IsMaxItems(schema){return guard_exports.HasPropertyKey(schema,"maxItems")&&guard_exports.IsNumber(schema.maxItems)}function IsMaxLength(schema){return guard_exports.HasPropertyKey(schema,"maxLength")&&guard_exports.IsNumber(schema.maxLength)}function IsMaxProperties(schema){return guard_exports.HasPropertyKey(schema,"maxProperties")&&guard_exports.IsNumber(schema.maxProperties)}function IsMinimum(schema){return guard_exports.HasPropertyKey(schema,"minimum")&&(guard_exports.IsNumber(schema.minimum)||guard_exports.IsBigInt(schema.minimum))}function IsMinContains(schema){return guard_exports.HasPropertyKey(schema,"minContains")&&guard_exports.IsNumber(schema.minContains)}function IsMinItems(schema){return guard_exports.HasPropertyKey(schema,"minItems")&&guard_exports.IsNumber(schema.minItems)}function IsMinLength(schema){return guard_exports.HasPropertyKey(schema,"minLength")&&guard_exports.IsNumber(schema.minLength)}function IsMinProperties(schema){return guard_exports.HasPropertyKey(schema,"minProperties")&&guard_exports.IsNumber(schema.minProperties)}function IsMultipleOf(schema){return guard_exports.HasPropertyKey(schema,"multipleOf")&&(guard_exports.IsNumber(schema.multipleOf)||guard_exports.IsBigInt(schema.multipleOf))}function IsNot(schema){return guard_exports.HasPropertyKey(schema,"not")&&IsSchema2(schema.not)}function IsOneOf(schema){return guard_exports.HasPropertyKey(schema,"oneOf")&&guard_exports.IsArray(schema.oneOf)&&schema.oneOf.every(value=>IsSchema2(value))}function IsPattern(schema){return guard_exports.HasPropertyKey(schema,"pattern")&&(guard_exports.IsString(schema.pattern)||schema.pattern instanceof RegExp)}function IsPatternProperties(schema){return guard_exports.HasPropertyKey(schema,"patternProperties")&&guard_exports.IsObject(schema.patternProperties)&&Object.values(schema.patternProperties).every(value=>IsSchema2(value))}function IsPrefixItems(schema){return guard_exports.HasPropertyKey(schema,"prefixItems")&&guard_exports.IsArray(schema.prefixItems)&&schema.prefixItems.every(schema2=>IsSchema2(schema2))}function IsProperties(schema){return guard_exports.HasPropertyKey(schema,"properties")&&guard_exports.IsObject(schema.properties)&&Object.values(schema.properties).every(value=>IsSchema2(value))}function IsPropertyNames(schema){return guard_exports.HasPropertyKey(schema,"propertyNames")&&(guard_exports.IsObject(schema.propertyNames)||IsSchema2(schema.propertyNames))}function IsRecursiveAnchor(schema){return guard_exports.HasPropertyKey(schema,"$recursiveAnchor")&&guard_exports.IsBoolean(schema.$recursiveAnchor)}function IsRecursiveAnchorTrue(schema){return IsRecursiveAnchor(schema)&&guard_exports.IsEqual(schema.$recursiveAnchor,!0)}function IsRecursiveRef(schema){return guard_exports.HasPropertyKey(schema,"$recursiveRef")&&guard_exports.IsString(schema.$recursiveRef)}function IsRef2(schema){return guard_exports.HasPropertyKey(schema,"$ref")&&guard_exports.IsString(schema.$ref)}function IsRequired(schema){return guard_exports.HasPropertyKey(schema,"required")&&guard_exports.IsArray(schema.required)&&schema.required.every(value=>guard_exports.IsString(value))}function IsThen(schema){return guard_exports.HasPropertyKey(schema,"then")&&IsSchema2(schema.then)}function IsType(schema){return guard_exports.HasPropertyKey(schema,"type")&&(guard_exports.IsString(schema.type)||guard_exports.IsArray(schema.type)&&schema.type.every(value=>guard_exports.IsString(value)))}function IsUniqueItems(schema){return guard_exports.HasPropertyKey(schema,"uniqueItems")&&guard_exports.IsBoolean(schema.uniqueItems)}function IsUnevaluatedItems(schema){return guard_exports.HasPropertyKey(schema,"unevaluatedItems")&&IsSchema2(schema.unevaluatedItems)}function IsUnevaluatedProperties(schema){return guard_exports.HasPropertyKey(schema,"unevaluatedProperties")&&IsSchema2(schema.unevaluatedProperties)}function HasUnevaluatedFromObject(value){return IsUnevaluatedItems(value)||IsUnevaluatedProperties(value)||guard_exports.Some(guard_exports.Keys(value),key=>HasUnevaluatedFromUnknown(value[key]))}function HasUnevaluatedFromArray(value){return guard_exports.Some(value,value2=>HasUnevaluatedFromUnknown(value2))}function HasUnevaluatedFromUnknown(value){return guard_exports.IsArray(value)?HasUnevaluatedFromArray(value):guard_exports.IsObject(value)?HasUnevaluatedFromObject(value):!1}function HasUnevaluated(context,schema){return HasUnevaluatedFromUnknown(schema)||guard_exports.Some(guard_exports.Keys(context),key=>HasUnevaluatedFromUnknown(context[key]))}var BuildContext=class{constructor(hasUnevaluated){this.hasUnevaluated=hasUnevaluated}UseUnevaluated(){return this.hasUnevaluated}Push(){return emit_exports.Call(emit_exports.Member("context","Push"),[])}Pop(){return emit_exports.Call(emit_exports.Member("context","Pop"),[])}AddIndex(index3){return emit_exports.Call(emit_exports.Member("context","AddIndex"),[index3])}AddKey(key){return emit_exports.Call(emit_exports.Member("context","AddKey"),[key])}Merge(results){return emit_exports.Call(emit_exports.Member("context","Merge"),[results])}},CheckContext=class{constructor(){let indices=new Set,keys=new Set;this.stack=[{indices,keys}]}Push(){let indices=new Set,keys=new Set;return this.stack.push({indices,keys}),!0}Pop(){return this.stack.pop(),!0}AddIndex(index3){return this.GetIndices().add(index3),!0}AddKey(key){return this.GetKeys().add(key),!0}GetIndices(){return this.stack[this.stack.length-1].indices}GetKeys(){return this.stack[this.stack.length-1].keys}Merge(results){for(let context of results)context.GetIndices().forEach(value=>this.GetIndices().add(value)),context.GetKeys().forEach(value=>this.GetKeys().add(value));return!0}},ErrorContext=class extends CheckContext{constructor(){super(),this.errors=[]}AtCapacity(){return this.errors.length>=settings_exports.Get().maxErrors}AddError(error){return this.AtCapacity()||this.errors.push(error),!1}GetErrors(){return this.errors}};var state={identifier:"External",variables:[]};function CreateVariable(value){let call=`External[${state.variables.length}]`;return state.variables.push(value),call}function ResetExternal(){state.variables=[]}function GetExternal(){return{...state}}function BuildRefine(_stack,_context,schema,value){let refinements=CreateVariable(schema["~refine"].map(refinement=>refinement));return emit_exports.Every(refinements,emit_exports.Constant(0),["refinement","_"],emit_exports.Call(emit_exports.Member("refinement","check"),[value]))}function CheckRefine(_stack,_context,schema,value){return guard_exports.Every(schema["~refine"],0,(refinement,_)=>refinement.check(value))}function ErrorRefine(_stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(schema["~refine"],0,(refinement,index3)=>refinement.check(value)||context.AddError({keyword:"~refine",schemaPath,instancePath,params:{index:index3,message:refinement.error(value)}}))}var index=0;function Unique(){return`var_${index++}`}function IsValid(schema){return IsItems(schema)&&guard_exports.IsArray(schema.items)}function BuildAdditionalItemsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isSchema=BuildSchemaPushStack(stack,context,schema.additionalItems,item),isLength=emit_exports.IsLessThan(index3,emit_exports.Constant(schema.items.length)),addIndex2=context.AddIndex(index3);return emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.Or(isLength,emit_exports.And(isSchema,addIndex2)))}function BuildAdditionalItemsFast(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isSchema=BuildSchemaPushStack(stack,context,schema.additionalItems,item),isLength=emit_exports.IsLessThan(index3,emit_exports.Constant(schema.items.length));return emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.Or(isLength,isSchema))}function BuildAdditionalItems(stack,context,schema,value){return IsValid(schema)?context.UseUnevaluated()?BuildAdditionalItemsStandard(stack,context,schema,value):BuildAdditionalItemsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckAdditionalItems(stack,context,schema,value){return IsValid(schema)?guard_exports.Every(value,0,(item,index3)=>guard_exports.IsLessThan(index3,schema.items.length)||CheckSchemaPushStack(stack,context,schema.additionalItems,item)&&context.AddIndex(index3)):!0}function ErrorAdditionalItems(stack,context,schemaPath,instancePath,schema,value){return IsValid(schema)?guard_exports.Every(value,0,(item,index3)=>{let nextSchemaPath=`${schemaPath}/additionalItems`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessThan(index3,schema.items.length)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.additionalItems,item)&&context.AddIndex(index3)}):!0}function UnicodeRegExp(pattern){return new RegExp(pattern,"u")}function IsAdditionalPropertiesIgnored(context,additionalProperties){return!context.UseUnevaluated()&&(guard_exports.IsEqual(additionalProperties,!0)||guard_exports.IsObject(additionalProperties)&&guard_exports.IsEqual(guard_exports.Keys(additionalProperties).length,0))}function GetPropertyKeyAsPattern(key){return`^${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`}function GetPropertiesPattern(schema){let patterns=[];return IsPatternProperties(schema)&&patterns.push(...guard_exports.Keys(schema.patternProperties)),IsProperties(schema)&&patterns.push(...guard_exports.Keys(schema.properties).map(GetPropertyKeyAsPattern)),guard_exports.IsEqual(patterns.length,0)?"(?!)":`(${patterns.join("|")})`}function CanAdditionalPropertiesFast(_context,schema,_value){return IsRequired(schema)&&IsProperties(schema)&&!IsPatternProperties(schema)&&guard_exports.IsEqual(schema.additionalProperties,!1)&&guard_exports.IsEqual(guard_exports.Keys(schema.properties).length,schema.required.length)}function BuildAdditionalPropertiesFast(_context,schema,value){return emit_exports.IsEqual(emit_exports.Member(emit_exports.Call(emit_exports.Member("Object","getOwnPropertyNames"),[value]),"length"),emit_exports.Constant(schema.required.length))}function BuildAdditionalPropertiesStandard(stack,context,schema,value){let[key,_index]=[Unique(),Unique()],regexp=CreateVariable(UnicodeRegExp(GetPropertiesPattern(schema))),isSchema=BuildSchemaPushStack(stack,context,schema.additionalProperties,`${value}[${key}]`),isKey=emit_exports.Call(emit_exports.Member(regexp,"test"),[key]),addKey=context.AddKey(key),guarded=context.UseUnevaluated()?emit_exports.Or(isKey,emit_exports.And(isSchema,addKey)):emit_exports.Or(isKey,isSchema);return emit_exports.Every(emit_exports.Keys(value),emit_exports.Constant(0),[key,_index],guarded)}function BuildAdditionalProperties(stack,context,schema,value){return IsAdditionalPropertiesIgnored(context,schema.additionalProperties)?emit_exports.Constant(!0):CanAdditionalPropertiesFast(context,schema,value)?BuildAdditionalPropertiesFast(context,schema,value):BuildAdditionalPropertiesStandard(stack,context,schema,value)}function CheckAdditionalProperties(stack,context,schema,value){let regexp=UnicodeRegExp(GetPropertiesPattern(schema));return guard_exports.Every(guard_exports.Keys(value),0,(key,_index)=>regexp.test(key)||CheckSchemaPushStack(stack,context,schema.additionalProperties,value[key])&&context.AddKey(key))}function ErrorAdditionalProperties(stack,context,schemaPath,instancePath,schema,value){let regexp=UnicodeRegExp(GetPropertiesPattern(schema)),additionalProperties=[];return guard_exports.EveryAll(guard_exports.Keys(value),0,(key,_index)=>{let nextSchemaPath=`${schemaPath}/additionalProperties`,nextInstancePath=`${instancePath}/${key}`,isAdditionalProperty=regexp.test(key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.additionalProperties,value[key])&&context.AddKey(key);return isAdditionalProperty||additionalProperties.push(key),isAdditionalProperty})||context.AddError({keyword:"additionalProperties",schemaPath,instancePath,params:{additionalProperties}})}function Reducer(stack,context,schemas,value,check){let results=emit_exports.ConstDeclaration("results","[]"),context_n=schemas.map((_schema,index3)=>emit_exports.ConstDeclaration(`context_${index3}`,emit_exports.New("CheckContext",[]))),condition_n=schemas.map((schema,index3)=>emit_exports.ConstDeclaration(`condition_${index3}`,emit_exports.Call(emit_exports.ArrowFunction(["context"],BuildSchema(stack,context,schema,value)),[`context_${index3}`]))),checks=schemas.map((_schema,index3)=>emit_exports.If(`condition_${index3}`,emit_exports.Call(emit_exports.Member("results","push"),[`context_${index3}`]))),returns=emit_exports.Return(emit_exports.And(check,context.Merge("results")));return emit_exports.Call(emit_exports.ArrowFunction([],emit_exports.Statements([results,...context_n,...condition_n,...checks,returns])),[])}function BuildAllOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.allOf,value,emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(schema.allOf.length)))}function BuildAllOfFast(stack,context,schema,value){return emit_exports.ReduceAnd(schema.allOf.map(schema2=>BuildSchema(stack,context,schema2,value)))}function BuildAllOf(stack,context,schema,value){return context.UseUnevaluated()?BuildAllOfStandard(stack,context,schema,value):BuildAllOfFast(stack,context,schema,value)}function CheckAllOf(stack,context,schema,value){let results=schema.allOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsEqual(results.length,schema.allOf.length)&&context.Merge(results)}function ErrorAllOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],results=schema.allOf.reduce((result,schema2,index3)=>{let nextSchemaPath=`${schemaPath}/allOf/${index3}`,nextContext=new ErrorContext,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isAllOf=guard_exports.IsEqual(results.length,schema.allOf.length)&&context.Merge(results);return isAllOf||failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isAllOf}function BuildAnyOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.anyOf,value,emit_exports.IsGreaterThan(emit_exports.Member("results","length"),emit_exports.Constant(0)))}function BuildAnyOfFast(stack,context,schema,value){return emit_exports.ReduceOr(schema.anyOf.map(schema2=>BuildSchema(stack,context,schema2,value)))}function BuildAnyOf(stack,context,schema,value){return context.UseUnevaluated()?BuildAnyOfStandard(stack,context,schema,value):BuildAnyOfFast(stack,context,schema,value)}function CheckAnyOf(stack,context,schema,value){let results=schema.anyOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsGreaterThan(results.length,0)&&context.Merge(results)}function ErrorAnyOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],results=schema.anyOf.reduce((result,schema2,index3)=>{let nextContext=new ErrorContext,nextSchemaPath=`${schemaPath}/anyOf/${index3}`,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isAnyOf=guard_exports.IsGreaterThan(results.length,0)&&context.Merge(results);return isAnyOf||failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isAnyOf||context.AddError({keyword:"anyOf",schemaPath,instancePath,params:{}})}function BuildSchemaBoolean(_stack,_context,schema,_value){return schema?emit_exports.Constant(!0):emit_exports.Constant(!1)}function CheckSchemaBoolean(_stack,_context,schema,_value){return schema}function ErrorSchemaBoolean(stack,context,schemaPath,instancePath,schema,value){return CheckSchemaBoolean(stack,context,schema,value)||context.AddError({keyword:"boolean",schemaPath,instancePath,params:{}})}function BuildConst(_stack,_context,schema,value){return guard_exports.IsValueLike(schema.const)?emit_exports.IsEqual(value,emit_exports.Constant(schema.const)):emit_exports.IsDeepEqual(value,CreateVariable(schema.const))}function CheckConst(_stack,_context,schema,value){return guard_exports.IsValueLike(schema.const)?guard_exports.IsEqual(value,schema.const):guard_exports.IsDeepEqual(value,schema.const)}function ErrorConst(stack,context,schemaPath,instancePath,schema,value){return CheckConst(stack,context,schema,value)||context.AddError({keyword:"const",schemaPath,instancePath,params:{allowedValue:schema.const}})}function IsValid2(schema){return!(IsMinContains(schema)&&guard_exports.IsEqual(schema.minContains,0))}function BuildContainsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],isLength=emit_exports.Not(emit_exports.IsEqual(emit_exports.Member(value,"length"),emit_exports.Constant(0))),isSome=emit_exports.SomeAll(value,[item,index3],emit_exports.And(BuildSchema(stack,context,schema.contains,item),context.AddIndex(index3)));return emit_exports.And(isLength,isSome)}function BuildContainsFast(stack,context,schema,value){let[item]=[Unique()],isLength=emit_exports.Not(emit_exports.IsEqual(emit_exports.Member(value,"length"),emit_exports.Constant(0))),isSome=emit_exports.Some(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.And(isLength,isSome)}function BuildContains(stack,context,schema,value){return IsValid2(schema)?context.UseUnevaluated()?BuildContainsStandard(stack,context,schema,value):BuildContainsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckContains(stack,context,schema,value){return IsValid2(schema)?!guard_exports.IsEqual(value.length,0)&&guard_exports.SomeAll(value,(item,index3)=>CheckSchema(stack,context,schema.contains,item)&&context.AddIndex(index3)):!0}function ErrorContains(stack,context,schemaPath,instancePath,schema,value){return CheckContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains:1}})}function BuildDependencies(stack,context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEveryDependency=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependencies).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchema(stack,context,schema2,value),isEveryKey=schema3=>emit_exports.ReduceAnd(schema3.map(key2=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key2))));return emit_exports.Or(notKey,guard_exports.IsArray(schema2)?isEveryKey(schema2):isSchema)}));return emit_exports.Or(isLength,isEveryDependency)}function CheckDependencies(stack,context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependencies),0,([key,schema2])=>!guard_exports.HasPropertyKey(value,key)||(guard_exports.IsArray(schema2)?schema2.every(key2=>guard_exports.HasPropertyKey(value,key2)):CheckSchema(stack,context,schema2,value)));return isLength||isEvery}function ErrorDependencies(stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.EveryAll(guard_exports.Entries(schema.dependencies),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/dependencies/${key}`;return!guard_exports.HasPropertyKey(value,key)||(guard_exports.IsArray(schema2)?schema2.every(dependency=>guard_exports.HasPropertyKey(value,dependency)||context.AddError({keyword:"dependencies",schemaPath,instancePath,params:{property:key,dependencies:schema2}})):ErrorSchema(stack,context,nextSchemaPath,instancePath,schema2,value))});return isLength||isEvery}function BuildDependentRequired(_stack,_context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEvery=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependentRequired).map(([key,keys])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),everyKey=emit_exports.ReduceAnd(keys.map(key2=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key2))));return emit_exports.Or(notKey,everyKey)}));return emit_exports.Or(isLength,isEvery)}function CheckDependentRequired(_stack,_context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependentRequired),0,([key,keys])=>!guard_exports.HasPropertyKey(value,key)||keys.every(key2=>guard_exports.HasPropertyKey(value,key2)));return isLength||isEvery}function ErrorDependentRequired(_stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEveryEntry=guard_exports.EveryAll(guard_exports.Entries(schema.dependentRequired),0,([key,keys])=>!guard_exports.HasPropertyKey(value,key)||guard_exports.EveryAll(keys,0,dependency=>guard_exports.HasPropertyKey(value,dependency)||context.AddError({keyword:"dependentRequired",schemaPath,instancePath,params:{property:key,dependencies:keys}})));return isLength||isEveryEntry}function BuildDependentSchemas(stack,context,schema,value){let isLength=emit_exports.IsEqual(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(0)),isEvery=emit_exports.ReduceAnd(guard_exports.Entries(schema.dependentSchemas).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchema(stack,context,schema2,value);return emit_exports.Or(notKey,isSchema)}));return emit_exports.Or(isLength,isEvery)}function CheckDependentSchemas(stack,context,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.Every(guard_exports.Entries(schema.dependentSchemas),0,([key,schema2])=>!guard_exports.HasPropertyKey(value,key)||CheckSchema(stack,context,schema2,value));return isLength||isEvery}function ErrorDependentSchemas(stack,context,schemaPath,instancePath,schema,value){let isLength=guard_exports.IsEqual(guard_exports.Keys(value).length,0),isEvery=guard_exports.EveryAll(guard_exports.Entries(schema.dependentSchemas),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/dependentSchemas/${key}`;return!guard_exports.HasPropertyKey(value,key)||ErrorSchema(stack,context,nextSchemaPath,instancePath,schema2,value)});return isLength||isEvery}function BuildDynamicRef(stack,context,schema,value){let target=stack.DynamicRef(schema)??!1;return CreateFunction(stack,context,target,value)}function CheckDynamicRef(stack,context,schema,value){let target=stack.DynamicRef(schema)??!1;return IsSchema2(target)&&CheckSchema(stack,context,target,value)}function ErrorDynamicRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.DynamicRef(schema)??!1;return IsSchema2(target)&&ErrorSchema(stack,context,"#",instancePath,target,value)}function BuildEnum(_stack,_context,schema,value){return emit_exports.ReduceOr(schema.enum.map(option=>{if(guard_exports.IsValueLike(option))return emit_exports.IsEqual(value,emit_exports.Constant(option));let variable=CreateVariable(option);return emit_exports.IsDeepEqual(value,variable)}))}function CheckEnum(_stack,_context,schema,value){return guard_exports.Some(schema.enum,option=>guard_exports.IsValueLike(option)?guard_exports.IsEqual(value,option):guard_exports.IsDeepEqual(value,option))}function ErrorEnum(stack,context,schemaPath,instancePath,schema,value){return CheckEnum(stack,context,schema,value)||context.AddError({keyword:"enum",schemaPath,instancePath,params:{allowedValues:schema.enum}})}function BuildExclusiveMaximum(_stack,_context,schema,value){return emit_exports.IsLessThan(value,emit_exports.Constant(schema.exclusiveMaximum))}function CheckExclusiveMaximum(_stack,_context,schema,value){return guard_exports.IsLessThan(value,schema.exclusiveMaximum)}function ErrorExclusiveMaximum(stack,context,schemaPath,instancePath,schema,value){return CheckExclusiveMaximum(stack,context,schema,value)||context.AddError({keyword:"exclusiveMaximum",schemaPath,instancePath,params:{comparison:"<",limit:schema.exclusiveMaximum}})}function BuildExclusiveMinimum(_stack,_context,schema,value){return emit_exports.IsGreaterThan(value,emit_exports.Constant(schema.exclusiveMinimum))}function CheckExclusiveMinimum(_stack,_context,schema,value){return guard_exports.IsGreaterThan(value,schema.exclusiveMinimum)}function ErrorExclusiveMinimum(stack,context,schemaPath,instancePath,schema,value){return CheckExclusiveMinimum(stack,context,schema,value)||context.AddError({keyword:"exclusiveMinimum",schemaPath,instancePath,params:{comparison:">",limit:schema.exclusiveMinimum}})}var format_exports={};__export(format_exports,{Clear:()=>Clear,Entries:()=>Entries,Get:()=>Get2,Has:()=>Has,IsDate:()=>IsDate,IsDateTime:()=>IsDateTime,IsDuration:()=>IsDuration,IsEmail:()=>IsEmail,IsHostname:()=>IsHostname2,IsIPv4:()=>IsIPv4,IsIPv6:()=>IsIPv6,IsIdnEmail:()=>IsIdnEmail,IsIdnHostname:()=>IsIdnHostname2,IsIri:()=>IsIri,IsIriReference:()=>IsIriReference,IsJsonPointer:()=>IsJsonPointer,IsJsonPointerUriFragment:()=>IsJsonPointerUriFragment,IsRegex:()=>IsRegex,IsRelativeJsonPointer:()=>IsRelativeJsonPointer,IsTime:()=>IsTime,IsUri:()=>IsUri,IsUriReference:()=>IsUriReference,IsUriTemplate:()=>IsUriTemplate,IsUrl:()=>IsUrl,IsUuid:()=>IsUuid,Reset:()=>Reset,Set:()=>Set2,Test:()=>Test});var DAYS=[0,31,28,31,30,31,30,31,31,30,31,30,31],DATE=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function IsLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function IsDate(value){let matches=DATE.exec(value);if(!matches)return!1;let year=+matches[1],month=+matches[2],day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(month===2&&IsLeapYear(year)?29:DAYS[month])}var TIME=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:([Zz])|([+-])(\d\d):(\d\d))?$/;function IsTime(value,strictTimeZone=!0){let matches=TIME.exec(value);if(!matches||strictTimeZone&&!matches[4]&&!matches[5])return!1;let hr=+matches[1],min=+matches[2],sec=+matches[3];if(hr>23||min>59||sec>60)return!1;if(matches[5]){let tzH2=+matches[6],tzM2=+matches[7];if(tzH2>23||tzM2>59)return!1}if(sec<60)return!0;let tzSign=matches[5]==="-"?-1:1,tzH=+(matches[6]||0),tzM=+(matches[7]||0);return((hr*60+min-tzSign*(tzH*60+tzM))%1440+1440)%1440===1439}function IsDateTime(value){let dateTime=value.split(/T/i);return dateTime.length===2&&IsDate(dateTime[0])&&IsTime(dateTime[1])}var Duration=/^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 IsDuration(value){return Duration.test(value)}var Email=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\x20-\x7e])*")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\])$/i;function IsEmail(value){return Email.test(value)}var RE_RULE_HYPHEN_PLACEMENT=/^(?!-).*(?<!-)$/,RE_RULE_NOT_RESERVED_ACE=/^(?!..--)/,RE_ASCII_LDH=/^[a-zA-Z0-9-]*$/,RE_ASCII=new RegExp("^\\p{ASCII}*$","u"),RE_NON_ASCII=/[^\p{ASCII}]/u;var RE_ASCII_DIGIT=/[0-9]/,RE_ARABIC_INDIC_DIGIT=/[\u{0660}-\u{0669}]/u,RE_EXT_ARABIC_INDIC_DIGIT=/[\u{06f0}-\u{06f9}]/u,RE_COMMON_SEPARATOR=/[\u{002e}\u{002c}\u{003a}\u{002f}]/u,RE_EUROPEAN_SEPARATOR=/[\u{002d}\u{002b}]/u,RE_MARK_NONSPACING=new RegExp("\\p{Mn}","u"),RE_MARK_SPACING_COMBINING=new RegExp("\\p{Mc}","u"),RE_MARK_ENCLOSING=new RegExp("\\p{Me}","u"),RE_COMBINING_MARK=/[\p{Mn}\p{Mc}\p{Me}]/u,RE_LETTER=new RegExp("\\p{L}","u"),RE_NUMBER_DECIMAL=new RegExp("\\p{Nd}","u"),RE_SCRIPT_GREEK=new RegExp("\\p{Script=Greek}","u"),RE_SCRIPT_HEBREW=new RegExp("\\p{Script=Hebrew}","u"),RE_SCRIPT_JAPANESE=/[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}]/u,RE_SCRIPT_ARABIC_LETTER=/[\p{Script=Arabic}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Mandaic}]/u,RE_VIRAMA=/[\u{094d}\u{09cd}\u{0a4d}\u{0acd}\u{0b4d}\u{0bcd}\u{0c4d}\u{0ccd}\u{0d3b}\u{0d3c}\u{0d4d}\u{0dca}\u{1b44}\u{1baa}\u{1bab}\u{a9c0}\u{11046}\u{1107f}\u{110b9}\u{11133}\u{11134}\u{111c0}\u{11235}\u{1134d}\u{11442}\u{114c2}\u{115bf}\u{1163f}\u{116b6}\u{11c3f}\u{11d44}\u{11d45}]/u,RE_RFC5892_DISALLOWED=/[\u{0640}\u{07fa}\u{302e}\u{302f}\u{3031}\u{3032}\u{3033}\u{3034}\u{3035}\u{303b}]/u,RE_CONTEXTO_EXCEPTIONS=/[\u{00b7}\u{0375}\u{05f3}\u{05f4}\u{200c}\u{200d}\u{30fb}]/u,RE_PVALID_EXCEPTIONS=/[\u{00df}\u{03c2}\u{06fd}\u{06fe}\u{0f0b}\u{3007}]/u,RE_EUROPEAN_NUMBER=new RegExp([RE_ASCII_DIGIT,RE_EXT_ARABIC_INDIC_DIGIT].map(regexp=>regexp.source).join("|"),"u"),RE_PERMITTED_CATEGORY=new RegExp([RE_LETTER,RE_EUROPEAN_SEPARATOR,RE_COMMON_SEPARATOR,RE_NUMBER_DECIMAL,RE_MARK_NONSPACING,RE_MARK_SPACING_COMBINING,RE_CONTEXTO_EXCEPTIONS,RE_PVALID_EXCEPTIONS].map(regexp=>regexp.source).join("|"),"u");function IsAsciiLabel(value){return RE_RULE_HYPHEN_PLACEMENT.test(value)&&RE_RULE_NOT_RESERVED_ACE.test(value)&&RE_ASCII_LDH.test(value)}var PUNYCODE_BASE=36,PUNYCODE_TMIN=1,PUNYCODE_TMAX=26,PUNYCODE_SKEW=38,PUNYCODE_DAMP=700,PUNYCODE_INITIAL_BIAS=72,PUNYCODE_INITIAL_N=128;function ThrowDontCare(){throw null}function IsAcePrefixed(value){return value.toLowerCase().startsWith("xn--")}function Adapt(delta,numPoints,firstTime){delta=firstTime?Math.floor(delta/PUNYCODE_DAMP):delta>>1,delta+=Math.floor(delta/numPoints);let k=0;for(;delta>(PUNYCODE_BASE-PUNYCODE_TMIN)*PUNYCODE_TMAX>>1;)delta=Math.floor(delta/(PUNYCODE_BASE-PUNYCODE_TMIN)),k+=PUNYCODE_BASE;return k+Math.floor((PUNYCODE_BASE-PUNYCODE_TMIN+1)*delta/(delta+PUNYCODE_SKEW))}function Decode(value){let output=[],n=PUNYCODE_INITIAL_N,i=0,bias=PUNYCODE_INITIAL_BIAS,delimIdx=value.lastIndexOf("-");if(delimIdx>0)for(let j=0;j<delimIdx;j++){let cp=value.charCodeAt(j);cp>=128&&ThrowDontCare(),output.push(cp)}let inIdx=delimIdx<0?0:delimIdx+1;for(;inIdx<value.length;){let oldi=i,w=1,k=PUNYCODE_BASE;for(;;){inIdx>=value.length&&ThrowDontCare();let ch=value.charCodeAt(inIdx++),digit;ch>=97&&ch<=122?digit=ch-97:ch>=48&&ch<=57?digit=ch-48+26:ThrowDontCare(),i+=digit*w;let t=k<=bias?PUNYCODE_TMIN:k>=bias+PUNYCODE_TMAX?PUNYCODE_TMAX:k-bias;if(digit<t)break;w*=PUNYCODE_BASE-t,k+=PUNYCODE_BASE}let outLen=output.length+1;bias=Adapt(i-oldi,outLen,oldi===0),n+=Math.floor(i/outLen),i%=outLen,output.splice(i,0,n),i++}return String.fromCodePoint(...output)}function DigitToChar(digit){return digit<26?String.fromCharCode(digit+97):String.fromCharCode(digit-26+48)}var RE_REPLACE_NON_ASCII=new RegExp(RE_NON_ASCII.source,"gu");function Encode(input){let basic=input.replace(RE_REPLACE_NON_ASCII,""),basicLength=basic.length,result=basicLength>0?[basic,"-"]:[],codePoints2=Array.from(input,char=>char.codePointAt(0)),n=PUNYCODE_INITIAL_N,delta=0,bias=PUNYCODE_INITIAL_BIAS,handledCPCount=basicLength;for(;handledCPCount<codePoints2.length;){let m=1/0;for(let cp of codePoints2)cp>=n&&cp<m&&(m=cp);delta+=(m-n)*(handledCPCount+1),n=m;for(let cp of codePoints2)if(cp<n&&delta++,cp===n){let q=delta;for(let k=PUNYCODE_BASE;;k+=PUNYCODE_BASE){let t=k<=bias?PUNYCODE_TMIN:k>=bias+PUNYCODE_TMAX?PUNYCODE_TMAX:k-bias;if(q<t)break;let digit=t+(q-t)%(PUNYCODE_BASE-t);result.push(DigitToChar(digit)),q=Math.floor((q-t)/(PUNYCODE_BASE-t))}result.push(DigitToChar(q)),bias=Adapt(delta,handledCPCount+1,handledCPCount===basicLength),delta=0,handledCPCount++}delta++,n++}return result.join("")}var RE_RTL_ALLOWED=/^(?:R|AL|AN|EN|ES|CS|ET|ON|BN|NSM)$/,RE_LTR_ALLOWED=/^(?:L|EN|ES|CS|ET|ON|BN|NSM)$/,RE_RTL_CLASSES=/^(?:R|AL|AN)$/;function HasBidiChars(value){if(IsAcePrefixed(value))try{return HasRightToLeftCharacters(Decode(value.slice(4).toLowerCase()))}catch{return!1}return HasRightToLeftCharacters(value)}function GetBidiClass(codePoint){let char=String.fromCodePoint(codePoint);return RE_EUROPEAN_NUMBER.test(char)?"EN":RE_ARABIC_INDIC_DIGIT.test(char)?"AN":RE_MARK_NONSPACING.test(char)?"NSM":RE_SCRIPT_HEBREW.test(char)?"R":RE_SCRIPT_ARABIC_LETTER.test(char)?"AL":RE_LETTER.test(char)?"L":"ON"}function HasRightToLeftCharacters(value){for(let ch of value)if(RE_RTL_CLASSES.test(GetBidiClass(ch.codePointAt(0))))return!0;return!1}function SatisfiesBidiRule(value){let isRtl=!1,allowed=RE_LTR_ALLOWED,sawEN=!1,sawAN=!1,isFirst=!0;for(let ch of value){let bidiClass=GetBidiClass(ch.codePointAt(0));if(isFirst){if(bidiClass!=="L"&&bidiClass!=="R"&&bidiClass!=="AL")return!1;isRtl=bidiClass==="R"||bidiClass==="AL",allowed=isRtl?RE_RTL_ALLOWED:RE_LTR_ALLOWED,isFirst=!1}if(!allowed.test(bidiClass))return!1;bidiClass==="EN"?sawEN=!0:bidiClass==="AN"&&(sawAN=!0)}return!(isRtl&&sawEN&&sawAN)}function ExceedsMaxALabelLength(value){return RE_NON_ASCII.test(value)&&Encode(value).length+4>63}function HasInvalidHyphens(chars){return chars[0]==="-"||chars[chars.length-1]==="-"?!0:chars.slice(2).join("").startsWith("--")}function IsUnicodeLabel(value){if(ExceedsMaxALabelLength(value)||HasRightToLeftCharacters(value)&&!SatisfiesBidiRule(value))return!1;let chars=[...value],codePoints2=chars.map(c=>c.codePointAt(0)),length=codePoints2.length;if(HasInvalidHyphens(chars)||RE_COMBINING_MARK.test(chars[0]))return!1;let hasJapanese=!1;for(let i=0;i<length;i++){let codePoint=codePoints2[i],char=chars[i];if(RE_RFC5892_DISALLOWED.test(char)||!RE_PERMITTED_CATEGORY.test(char))return!1;RE_SCRIPT_JAPANESE.test(char)&&(hasJapanese=!0);let prev=codePoints2[i-1],next=codePoints2[i+1];switch(codePoint){case 183:if(prev!==108||next!==108)return!1;break;case 885:if(!next||!RE_SCRIPT_GREEK.test(chars[i+1]))return!1;break;case 1523:case 1524:if(!prev||!RE_SCRIPT_HEBREW.test(chars[i-1]))return!1;break;case 8204:if(!prev||prev<128&&!RE_VIRAMA.test(chars[i-1]))return!1;break;case 8205:if(!prev||!RE_VIRAMA.test(chars[i-1]))return!1;break;case 12539:break}}return!(value.includes("\u30FB")&&!hasJapanese)}function IsPunyLabel(value){if(!IsAcePrefixed(value))return!1;try{let body=value.slice(4).toLowerCase();if(body.lastIndexOf("-")===0)return!1;let decoded=Decode(body);return RE_NON_ASCII.test(decoded)?IsUnicodeLabel(decoded):!1}catch{return!1}}function IsValidLabelLength(value){return value.length>0&&value.length<=63}function IsLabel(value){return IsValidLabelLength(value)&&(IsPunyLabel(value)||IsAsciiLabel(value))}function IsHostname(value){return value.length===0||value.length>253||value.charCodeAt(value.length-1)===46?!1:value.split(".").every(label=>IsLabel(label))}function IsValidLabelLength2(value){return value.length>0&&value.length<=63}function IsLabel2(value){return IsValidLabelLength2(value)&&(IsPunyLabel(value)||IsUnicodeLabel(value))}function NormalizeHostname(value){return value.replace(/[\uff01-\uff5e]/g,char=>String.fromCharCode(char.charCodeAt(0)-65248)).normalize("NFC").replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu,"").replace(/[\u002E\u3002\uFF0E\uFF61]/g,".")}function IsIdnHostname(value){if(value.length===0||value.includes(" "))return!1;let normalized=NormalizeHostname(value);if(normalized.length>253)return!1;let labels=normalized.split("."),hasBidiChars=labels.some(label=>HasBidiChars(label));return labels.every(label=>IsLabel2(label)&&(!hasBidiChars||SatisfiesBidiRule(label)))}function IsHostname2(value){return IsHostname(value)}var IdnEmail=/^(?:[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+)*|"(?:[^"\\]|\\.)*")@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-)(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-))*$/iu;function IsIdnEmail(value){return IdnEmail.test(value.normalize("NFC"))}function IsIdnHostname2(value){return IsIdnHostname(value)}var IPv4=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function IsIPv4(value){return IPv4.test(value)}var IPv6=/^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;function IsIPv6(value){return IPv6.test(value)}var InvalidIriChars=/[\x00-\x20\x7F\\]|%(?![0-9a-fA-F]{2})/,MalformedScheme=/^[a-zA-Z][a-zA-Z0-9+\-.]*\/\//;function IsIriReference(value){return!InvalidIriChars.test(value)&&!MalformedScheme.test(value)&&URL.canParse(value,"http://example.com")}var IpvFutureMatch=/\[[vV][0-9a-fA-F]+\.[^\]]+\]/,InvalidIriChars2=/[\x00-\x20<>\^`{|}\\]/,InvalidPercentEncoding=/%(?![0-9a-fA-F]{2})/;function NarrowIpvFuture(value){return value.length<2048?value.replace(IpvFutureMatch,"[::1]"):value}function IsIri(value){return InvalidIriChars2.test(value)||InvalidPercentEncoding.test(value)?!1:URL.canParse(NarrowIpvFuture(value))}var JsonPointerUriFragment=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function IsJsonPointerUriFragment(value){return JsonPointerUriFragment.test(value)}var JsonPointer=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function IsJsonPointer(value){return JsonPointer.test(value)}function IsRegex(value){try{return new RegExp(value,"u"),!0}catch{return!1}}var RelativeJsonPointer=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function IsRelativeJsonPointer(value){return RelativeJsonPointer.test(value)}var UriReference=/^(?:[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUriReference(value){return UriReference.test(value)}var UriTemplate=/^(?:(?:[^\x00-\x20"<>%\\^`{|}\x7f]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?)*\})*$/i;function IsUriTemplate(value){return UriTemplate.test(value)}var Uri=/^[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUri(value){return Uri.test(value)}function IsUrl(value){return URL.canParse(value)}var Uuid=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function IsUuid(value){return Uuid.test(value)}var formats=new Map;function Clear(){formats.clear()}function Entries(){return[...formats.entries()]}function Set2(format,check){formats.set(format,check)}function Has(format){return formats.has(format)}function Get2(format){return formats.get(format)}function Test(format,value){return formats.get(format)?.(value)??!0}function Reset(){Clear(),formats.set("date-time",IsDateTime),formats.set("date",IsDate),formats.set("duration",IsDuration),formats.set("email",IsEmail),formats.set("hostname",IsHostname2),formats.set("idn-email",IsIdnEmail),formats.set("idn-hostname",IsIdnHostname2),formats.set("ipv4",IsIPv4),formats.set("ipv6",IsIPv6),formats.set("iri-reference",IsIriReference),formats.set("iri",IsIri),formats.set("json-pointer-uri-fragment",IsJsonPointerUriFragment),formats.set("json-pointer",IsJsonPointer),formats.set("regex",IsRegex),formats.set("relative-json-pointer",IsRelativeJsonPointer),formats.set("time",IsTime),formats.set("uri-reference",IsUriReference),formats.set("uri-template",IsUriTemplate),formats.set("uri",IsUri),formats.set("url",IsUrl),formats.set("uuid",IsUuid)}Reset();function BuildFormat(_stack,_context,schema,value){return emit_exports.Call(emit_exports.Member("Format","Test"),[emit_exports.Constant(schema.format),value])}function CheckFormat(_stack,_context,schema,value){return format_exports.Test(schema.format,value)}function ErrorFormat(stack,context,schemaPath,instancePath,schema,value){return CheckFormat(stack,context,schema,value)||context.AddError({keyword:"format",schemaPath,instancePath,params:{format:schema.format}})}function BuildIf(stack,context,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0;return emit_exports.Ternary(BuildSchema(stack,context,schema.if,value),BuildSchema(stack,context,thenSchema,value),BuildSchema(stack,context,elseSchema,value))}function CheckIf(stack,context,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0;return CheckSchema(stack,context,schema.if,value)?CheckSchema(stack,context,thenSchema,value):CheckSchema(stack,context,elseSchema,value)}function ErrorIf(stack,context,schemaPath,instancePath,schema,value){let thenSchema=IsThen(schema)?schema.then:!0,elseSchema=IsElse(schema)?schema.else:!0,trueContext=new ErrorContext,isIf=ErrorSchema(stack,trueContext,`${schemaPath}/if`,instancePath,schema.if,value)?ErrorSchema(stack,trueContext,`${schemaPath}/then`,instancePath,thenSchema,value)||context.AddError({keyword:"if",schemaPath,instancePath,params:{failingKeyword:"then"}}):ErrorSchema(stack,context,`${schemaPath}/else`,instancePath,elseSchema,value)||context.AddError({keyword:"if",schemaPath,instancePath,params:{failingKeyword:"else"}});return isIf&&context.Merge([trueContext]),isIf}function BuildItemsSizedStandard(stack,context,schema,value){return emit_exports.ReduceAnd(schema.items.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`),addIndex2=context.AddIndex(emit_exports.Constant(index3));return emit_exports.Or(isLength,emit_exports.And(isSchema,addIndex2))}))}function BuildItemsSizedFast(stack,context,schema,value){return emit_exports.ReduceAnd(schema.items.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`);return emit_exports.Or(isLength,isSchema)}))}function BuildItemsSized(stack,context,schema,value){return context.UseUnevaluated()?BuildItemsSizedStandard(stack,context,schema,value):BuildItemsSizedFast(stack,context,schema,value)}function CheckItemsSized(stack,context,schema,value){return guard_exports.Every(schema.items,0,(schema2,index3)=>guard_exports.IsLessEqualThan(value.length,index3)||CheckSchemaPushStack(stack,context,schema2,value[index3])&&context.AddIndex(index3))}function ErrorItemsSized(stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(schema.items,0,(schema2,index3)=>{let nextSchemaPath=`${schemaPath}/items/${index3}`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessEqualThan(value.length,index3)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[index3])&&context.AddIndex(index3)})}function BuildItemsUnsizedStandard(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0,isSchema=BuildSchemaPushStack(stack,context,schema.items,"element"),addIndex2=context.AddIndex("index");return emit_exports.Every(value,emit_exports.Constant(offset),["element","index"],emit_exports.And(isSchema,addIndex2))}function BuildItemsUnsizedFast(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0,isSchema=BuildSchemaPushStack(stack,context,schema.items,"element");return emit_exports.Every(value,emit_exports.Constant(offset),["element","index"],isSchema)}function BuildItemsUnsized(stack,context,schema,value){return context.UseUnevaluated()?BuildItemsUnsizedStandard(stack,context,schema,value):BuildItemsUnsizedFast(stack,context,schema,value)}function CheckItemsUnsized(stack,context,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0;return guard_exports.Every(value,offset,(element,index3)=>CheckSchemaPushStack(stack,context,schema.items,element)&&context.AddIndex(index3))}function ErrorItemsUnsized(stack,context,schemaPath,instancePath,schema,value){let offset=IsPrefixItems(schema)?schema.prefixItems.length:0;return guard_exports.EveryAll(value,offset,(element,index3)=>{let nextSchemaPath=`${schemaPath}/items`,nextInstancePath=`${instancePath}/${index3}`;return ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema.items,element)&&context.AddIndex(index3)})}function BuildItems(stack,context,schema,value){return IsItemsSized(schema)?BuildItemsSized(stack,context,schema,value):BuildItemsUnsized(stack,context,schema,value)}function CheckItems(stack,context,schema,value){return IsItemsSized(schema)?CheckItemsSized(stack,context,schema,value):CheckItemsUnsized(stack,context,schema,value)}function ErrorItems(stack,context,schemaPath,instancePath,schema,value){return IsItemsSized(schema)?ErrorItemsSized(stack,context,schemaPath,instancePath,schema,value):ErrorItemsUnsized(stack,context,schemaPath,instancePath,schema,value)}function IsValid3(schema){return IsContains(schema)}function BuildMaxContains(stack,context,schema,value){if(!IsValid3(schema))return emit_exports.Constant(!0);let[item]=[Unique()],count=emit_exports.Counted(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.IsLessEqualThan(count,emit_exports.Constant(schema.maxContains))}function CheckMaxContains(stack,context,schema,value){if(!IsValid3(schema))return!0;let count=guard_exports.Counted(value,item=>CheckSchema(stack,context,schema.contains,item));return guard_exports.IsLessEqualThan(count,schema.maxContains)}function ErrorMaxContains(stack,context,schemaPath,instancePath,schema,value){let minContains=IsMinContains(schema)?schema.minContains:1;return CheckMaxContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains,maxContains:schema.maxContains}})}function BuildMaximum(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(value,emit_exports.Constant(schema.maximum))}function CheckMaximum(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(value,schema.maximum)}function ErrorMaximum(stack,context,schemaPath,instancePath,schema,value){return CheckMaximum(stack,context,schema,value)||context.AddError({keyword:"maximum",schemaPath,instancePath,params:{comparison:"<=",limit:schema.maximum}})}function BuildMaxItems(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(schema.maxItems))}function CheckMaxItems(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(value.length,schema.maxItems)}function ErrorMaxItems(stack,context,schemaPath,instancePath,schema,value){return CheckMaxItems(stack,context,schema,value)||context.AddError({keyword:"maxItems",schemaPath,instancePath,params:{limit:schema.maxItems}})}function BuildMaxLength(_stack,_context,schema,value){return emit_exports.IsMaxLength(value,emit_exports.Constant(schema.maxLength))}function CheckMaxLength(_stack,_context,schema,value){return guard_exports.IsMaxLength(value,schema.maxLength)}function ErrorMaxLength(stack,context,schemaPath,instancePath,schema,value){return CheckMaxLength(stack,context,schema,value)||context.AddError({keyword:"maxLength",schemaPath,instancePath,params:{limit:schema.maxLength}})}function BuildMaxProperties(_stack,_context,schema,value){return emit_exports.IsLessEqualThan(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(schema.maxProperties))}function CheckMaxProperties(_stack,_context,schema,value){return guard_exports.IsLessEqualThan(guard_exports.Keys(value).length,schema.maxProperties)}function ErrorMaxProperties(stack,context,schemaPath,instancePath,schema,value){return CheckMaxProperties(stack,context,schema,value)||context.AddError({keyword:"maxProperties",schemaPath,instancePath,params:{limit:schema.maxProperties}})}function IsValid4(schema){return IsContains(schema)}function BuildMinContainsStandard(stack,context,schema,value){let[item,index3]=[Unique(),Unique()],count=emit_exports.Counted(value,[item,index3],emit_exports.And(BuildSchema(stack,context,schema.contains,item),context.AddIndex(index3)));return emit_exports.IsGreaterEqualThan(count,emit_exports.Constant(schema.minContains))}function BuildMinContainsFast(stack,context,schema,value){let[item]=[Unique()],count=emit_exports.Counted(value,[item,"_"],BuildSchema(stack,context,schema.contains,item));return emit_exports.IsGreaterEqualThan(count,emit_exports.Constant(schema.minContains))}function BuildMinContains(stack,context,schema,value){return IsValid4(schema)?context.UseUnevaluated()?BuildMinContainsStandard(stack,context,schema,value):BuildMinContainsFast(stack,context,schema,value):emit_exports.Constant(!0)}function CheckMinContains(stack,context,schema,value){if(!IsValid4(schema))return!0;let count=guard_exports.Counted(value,(item,index3)=>CheckSchema(stack,context,schema.contains,item)&&context.AddIndex(index3));return guard_exports.IsGreaterEqualThan(count,schema.minContains)}function ErrorMinContains(stack,context,schemaPath,instancePath,schema,value){return CheckMinContains(stack,context,schema,value)||context.AddError({keyword:"contains",schemaPath,instancePath,params:{minContains:schema.minContains}})}function BuildMinimum(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(value,emit_exports.Constant(schema.minimum))}function CheckMinimum(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(value,schema.minimum)}function ErrorMinimum(stack,context,schemaPath,instancePath,schema,value){return CheckMinimum(stack,context,schema,value)||context.AddError({keyword:"minimum",schemaPath,instancePath,params:{comparison:">=",limit:schema.minimum}})}function BuildMinItems(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(schema.minItems))}function CheckMinItems(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(value.length,schema.minItems)}function ErrorMinItems(stack,context,schemaPath,instancePath,schema,value){return CheckMinItems(stack,context,schema,value)||context.AddError({keyword:"minItems",schemaPath,instancePath,params:{limit:schema.minItems}})}function BuildMinLength(_stack,_context,schema,value){return emit_exports.IsMinLength(value,emit_exports.Constant(schema.minLength))}function CheckMinLength(_stack,_context,schema,value){return guard_exports.IsMinLength(value,schema.minLength)}function ErrorMinLength(stack,context,schemaPath,instancePath,schema,value){return CheckMinLength(stack,context,schema,value)||context.AddError({keyword:"minLength",schemaPath,instancePath,params:{limit:schema.minLength}})}function BuildMinProperties(_stack,_context,schema,value){return emit_exports.IsGreaterEqualThan(emit_exports.Member(emit_exports.Keys(value),"length"),emit_exports.Constant(schema.minProperties))}function CheckMinProperties(_stack,_context,schema,value){return guard_exports.IsGreaterEqualThan(guard_exports.Keys(value).length,schema.minProperties)}function ErrorMinProperties(stack,context,schemaPath,instancePath,schema,value){return CheckMinProperties(stack,context,schema,value)||context.AddError({keyword:"minProperties",schemaPath,instancePath,params:{limit:schema.minProperties}})}function BuildMultipleOf(_stack,_context,schema,value){return emit_exports.MultipleOf(value,emit_exports.Constant(schema.multipleOf))}function CheckMultipleOf(_stack,_context,schema,value){return guard_exports.IsMultipleOf(value,schema.multipleOf)}function ErrorMultipleOf(stack,context,schemaPath,instancePath,schema,value){return CheckMultipleOf(stack,context,schema,value)||context.AddError({keyword:"multipleOf",schemaPath,instancePath,params:{multipleOf:schema.multipleOf}})}function BuildNotStandard(stack,context,schema,value){return Reducer(stack,context,[schema.not],value,emit_exports.Not(emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(1))))}function BuildNotFast(stack,context,schema,value){return emit_exports.Not(BuildSchema(stack,context,schema.not,value))}function BuildNot(stack,context,schema,value){return context.UseUnevaluated()?BuildNotStandard(stack,context,schema,value):BuildNotFast(stack,context,schema,value)}function CheckNot(stack,context,schema,value){let nextContext=new CheckContext;return!CheckSchema(stack,nextContext,schema.not,value)&&context.Merge([nextContext])}function ErrorNot(stack,context,schemaPath,instancePath,schema,value){return CheckNot(stack,context,schema,value)||context.AddError({keyword:"not",schemaPath,instancePath,params:{}})}function BuildOneOfStandard(stack,context,schema,value){return Reducer(stack,context,schema.oneOf,value,emit_exports.IsEqual(emit_exports.Member("results","length"),emit_exports.Constant(1)))}function BuildOneOfFast(stack,context,schema,value){let[result]=[Unique()],results=emit_exports.ArrayLiteral(schema.oneOf.map(schema2=>BuildSchema(stack,context,schema2,value))),count=emit_exports.Counted(results,[result,"_"],emit_exports.IsEqual(result,emit_exports.Constant(!0)));return emit_exports.IsEqual(count,emit_exports.Constant(1))}function BuildOneOf(stack,context,schema,value){return context.UseUnevaluated()?BuildOneOfStandard(stack,context,schema,value):BuildOneOfFast(stack,context,schema,value)}function CheckOneOf(stack,context,schema,value){let passedContexts=schema.oneOf.reduce((result,schema2)=>{let nextContext=new CheckContext;return CheckSchema(stack,nextContext,schema2,value)?[...result,nextContext]:result},[]);return guard_exports.IsEqual(passedContexts.length,1)&&context.Merge(passedContexts)}function ErrorOneOf(stack,context,schemaPath,instancePath,schema,value){let failedContexts=[],passingSchemas=[],passedContexts=schema.oneOf.reduce((result,schema2,index3)=>{let nextContext=new ErrorContext,nextSchemaPath=`${schemaPath}/oneOf/${index3}`,isSchema=ErrorSchema(stack,nextContext,nextSchemaPath,instancePath,schema2,value);return isSchema&&passingSchemas.push(index3),isSchema||failedContexts.push(nextContext),isSchema?[...result,nextContext]:result},[]),isOneOf=guard_exports.IsEqual(passedContexts.length,1)&&context.Merge(passedContexts);return!isOneOf&&guard_exports.IsEqual(passingSchemas.length,0)&&failedContexts.forEach(failed=>failed.GetErrors().forEach(error=>context.AddError(error))),isOneOf||context.AddError({keyword:"oneOf",schemaPath,instancePath,params:{passingSchemas}})}function BuildPattern(_stack,_context,schema,value){let regexp=CreateVariable(guard_exports.IsString(schema.pattern)?UnicodeRegExp(schema.pattern):schema.pattern);return emit_exports.Call(emit_exports.Member(regexp,"test"),[value])}function CheckPattern(_stack,_context,schema,value){return(guard_exports.IsString(schema.pattern)?UnicodeRegExp(schema.pattern):schema.pattern).test(value)}function ErrorPattern(stack,context,schemaPath,instancePath,schema,value){return CheckPattern(stack,context,schema,value)||context.AddError({keyword:"pattern",schemaPath,instancePath,params:{pattern:schema.pattern}})}function BuildPatternProperties(stack,context,schema,value){return emit_exports.ReduceAnd(guard_exports.Entries(schema.patternProperties).map(([pattern,schema2])=>{let[key,prop]=[Unique(),Unique()],regexp=CreateVariable(UnicodeRegExp(pattern)),notKey=emit_exports.Not(emit_exports.Call(emit_exports.Member(regexp,"test"),[key])),isSchema=BuildSchemaPushStack(stack,context,schema2,prop),addKey=context.AddKey(key),guarded=context.UseUnevaluated()?emit_exports.Or(notKey,emit_exports.And(isSchema,addKey)):emit_exports.Or(notKey,isSchema);return emit_exports.Every(emit_exports.Entries(value),emit_exports.Constant(0),[`[${key}, ${prop}]`,"_"],guarded)}))}function CheckPatternProperties(stack,context,schema,value){return guard_exports.Every(guard_exports.Entries(schema.patternProperties),0,([pattern,schema2])=>{let regexp=UnicodeRegExp(pattern);return guard_exports.Every(guard_exports.Entries(value),0,([key,prop])=>!regexp.test(key)||CheckSchemaPushStack(stack,context,schema2,prop)&&context.AddKey(key))})}function ErrorPatternProperties(stack,context,schemaPath,instancePath,schema,value){return guard_exports.EveryAll(guard_exports.Entries(schema.patternProperties),0,([pattern,schema2])=>{let nextSchemaPath=`${schemaPath}/patternProperties/${pattern}`,regexp=UnicodeRegExp(pattern);return guard_exports.EveryAll(guard_exports.Entries(value),0,([key,value2])=>{let nextInstancePath=`${instancePath}/${key}`;return!regexp.test(key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value2)&&context.AddKey(key)})})}function BuildPrefixItems(stack,context,schema,value){return emit_exports.ReduceAnd(schema.prefixItems.map((schema2,index3)=>{let isLength=emit_exports.IsLessEqualThan(emit_exports.Member(value,"length"),emit_exports.Constant(index3)),isSchema=BuildSchemaPushStack(stack,context,schema2,`${value}[${index3}]`),addIndex2=context.AddIndex(emit_exports.Constant(index3)),guarded=context.UseUnevaluated()?emit_exports.And(isSchema,addIndex2):isSchema;return emit_exports.Or(isLength,guarded)}))}function CheckPrefixItems(stack,context,schema,value){return guard_exports.IsEqual(value.length,0)||guard_exports.Every(schema.prefixItems,0,(schema2,index3)=>guard_exports.IsLessEqualThan(value.length,index3)||CheckSchemaPushStack(stack,context,schema2,value[index3])&&context.AddIndex(index3))}function ErrorPrefixItems(stack,context,schemaPath,instancePath,schema,value){return guard_exports.IsEqual(value.length,0)||guard_exports.EveryAll(schema.prefixItems,0,(schema2,index3)=>{let nextSchemaPath=`${schemaPath}/prefixItems/${index3}`,nextInstancePath=`${instancePath}/${index3}`;return guard_exports.IsLessEqualThan(value.length,index3)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[index3])&&context.AddIndex(index3)})}function IsExactOptional(required,key){return required.includes(key)||settings_exports.Get().exactOptionalPropertyTypes}function InexactOptionalBuild(value,key){return emit_exports.IsUndefined(emit_exports.Member(value,key))}function InexactOptionalCheck(value,key){return guard_exports.IsUndefined(value[key])}function BuildProperties(stack,context,schema,value){let required=IsRequired(schema)?schema.required:[],everyKey=guard_exports.Entries(schema.properties).map(([key,schema2])=>{let notKey=emit_exports.Not(emit_exports.HasPropertyKey(value,emit_exports.Constant(key))),isSchema=BuildSchemaPushStack(stack,context,schema2,emit_exports.Member(value,key)),addKey=context.AddKey(emit_exports.Constant(key)),guarded=context.UseUnevaluated()?emit_exports.And(isSchema,addKey):isSchema,isProperty=required.includes(key)?guarded:emit_exports.Or(notKey,guarded);return IsExactOptional(required,key)?isProperty:emit_exports.Or(InexactOptionalBuild(value,key),isProperty)});return emit_exports.ReduceAnd(everyKey)}function CheckProperties(stack,context,schema,value){let required=IsRequired(schema)?schema.required:[];return guard_exports.Every(guard_exports.Entries(schema.properties),0,([key,schema2])=>{let isProperty=!guard_exports.HasPropertyKey(value,key)||CheckSchemaPushStack(stack,context,schema2,value[key])&&context.AddKey(key);return IsExactOptional(required,key)?isProperty:InexactOptionalCheck(value,key)||isProperty})}function ErrorProperties(stack,context,schemaPath,instancePath,schema,value){let required=IsRequired(schema)?schema.required:[];return guard_exports.EveryAll(guard_exports.Entries(schema.properties),0,([key,schema2])=>{let nextSchemaPath=`${schemaPath}/properties/${key}`,nextInstancePath=`${instancePath}/${key}`,isProperty=()=>!guard_exports.HasPropertyKey(value,key)||ErrorSchemaPushStack(stack,context,nextSchemaPath,nextInstancePath,schema2,value[key])&&context.AddKey(key);return IsExactOptional(required,key)?isProperty():InexactOptionalCheck(value,key)||isProperty()})}function BuildPropertyNames(stack,context,schema,value){let[key,_index]=[Unique(),Unique()];return emit_exports.Every(emit_exports.Keys(value),emit_exports.Constant(0),[key,_index],BuildSchema(stack,context,schema.propertyNames,key))}function CheckPropertyNames(stack,context,schema,value){return guard_exports.Every(guard_exports.Keys(value),0,(key,_index)=>CheckSchema(stack,context,schema.propertyNames,key))}function ErrorPropertyNames(stack,context,schemaPath,instancePath,schema,value){let propertyNames=[];return guard_exports.EveryAll(guard_exports.Keys(value),0,(key,_index)=>{let nextInstancePath=`${instancePath}/${key}`,nextSchemaPath=`${schemaPath}/propertyNames`,isPropertyName=ErrorSchema(stack,context,nextSchemaPath,nextInstancePath,schema.propertyNames,key);return isPropertyName||propertyNames.push(key),isPropertyName})||context.AddError({keyword:"propertyNames",schemaPath,instancePath,params:{propertyNames}})}function BuildRecursiveRef(stack,context,schema,value){let target=stack.RecursiveRef(schema)??!1;return CreateFunction(stack,context,target,value)}function CheckRecursiveRef(stack,context,schema,value){let target=stack.RecursiveRef(schema)??!1;return IsSchema2(target)&&CheckSchema(stack,context,target,value)}function ErrorRecursiveRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.RecursiveRef(schema)??!1;return IsSchema2(target)&&ErrorSchema(stack,context,"#",instancePath,target,value)}function BuildRefStandard(stack,context,target,value){let interior=emit_exports.ArrowFunction(["context","value"],CreateFunction(stack,context,target,"value")),exterior=emit_exports.ArrowFunction(["context","value"],emit_exports.Statements([emit_exports.ConstDeclaration("nextContext",emit_exports.New("CheckContext",[])),emit_exports.ConstDeclaration("result",emit_exports.Call(interior,["nextContext","value"])),emit_exports.If("result",context.Merge("[nextContext]")),emit_exports.Return("result")]));return emit_exports.Call(exterior,["context",value])}function BuildRefFast(stack,context,target,value){return CreateFunction(stack,context,target,value)}function BuildRef(stack,context,schema,value){let target=stack.Ref(schema)??!1;return context.UseUnevaluated()?BuildRefStandard(stack,context,target,value):BuildRefFast(stack,context,target,value)}function CheckRef(stack,context,schema,value){let target=stack.Ref(schema)??!1,nextContext=new CheckContext,result=IsSchema2(target)&&CheckSchema(stack,nextContext,target,value);return result&&context.Merge([nextContext]),result}function ErrorRef(stack,context,_schemaPath,instancePath,schema,value){let target=stack.Ref(schema)??!1,nextContext=new ErrorContext,result=IsSchema2(target)&&ErrorSchema(stack,nextContext,"#",instancePath,target,value);return result&&context.Merge([nextContext]),result||nextContext.GetErrors().forEach(error=>context.AddError(error)),result}function BuildRequired(_stack,_context,schema,value){return emit_exports.ReduceAnd(schema.required.map(key=>emit_exports.HasPropertyKey(value,emit_exports.Constant(key))))}function CheckRequired(_stack,_context,schema,value){return guard_exports.Every(schema.required,0,key=>guard_exports.HasPropertyKey(value,key))}function ErrorRequired(_stack,context,schemaPath,instancePath,schema,value){let requiredProperties=[];return guard_exports.EveryAll(schema.required,0,key=>{let hasKey=guard_exports.HasPropertyKey(value,key);return hasKey||requiredProperties.push(key),hasKey})||context.AddError({keyword:"required",schemaPath,instancePath,params:{requiredProperties}})}function BuildTypeName(_stack,_context,type,value){return guard_exports.IsEqual(type,"object")?emit_exports.IsObjectNotArray(value):guard_exports.IsEqual(type,"array")?emit_exports.IsArray(value):guard_exports.IsEqual(type,"boolean")?emit_exports.IsBoolean(value):guard_exports.IsEqual(type,"integer")?emit_exports.IsInteger(value):guard_exports.IsEqual(type,"number")?emit_exports.IsNumber(value):guard_exports.IsEqual(type,"null")?emit_exports.IsNull(value):guard_exports.IsEqual(type,"string")?emit_exports.IsString(value):guard_exports.IsEqual(type,"bigint")?emit_exports.IsBigInt(value):guard_exports.IsEqual(type,"constructor")?emit_exports.IsConstructor(value):guard_exports.IsEqual(type,"function")?emit_exports.IsFunction(value):guard_exports.IsEqual(type,"symbol")?emit_exports.IsSymbol(value):guard_exports.IsEqual(type,"undefined")?emit_exports.IsUndefined(value):guard_exports.IsEqual(type,"void")?emit_exports.IsUndefined(value):emit_exports.Constant(!0)}function CheckTypeName(_stack,_context,type,_schema,value){return guard_exports.IsEqual(type,"object")?guard_exports.IsObjectNotArray(value):guard_exports.IsEqual(type,"array")?guard_exports.IsArray(value):guard_exports.IsEqual(type,"boolean")?guard_exports.IsBoolean(value):guard_exports.IsEqual(type,"integer")?guard_exports.IsInteger(value):guard_exports.IsEqual(type,"number")?guard_exports.IsNumber(value):guard_exports.IsEqual(type,"null")?guard_exports.IsNull(value):guard_exports.IsEqual(type,"string")?guard_exports.IsString(value):guard_exports.IsEqual(type,"bigint")?guard_exports.IsBigInt(value):guard_exports.IsEqual(type,"constructor")?guard_exports.IsConstructor(value):guard_exports.IsEqual(type,"function")?guard_exports.IsFunction(value):guard_exports.IsEqual(type,"symbol")?guard_exports.IsSymbol(value):guard_exports.IsEqual(type,"undefined")?guard_exports.IsUndefined(value):guard_exports.IsEqual(type,"void")?guard_exports.IsUndefined(value):!0}function BuildTypeNames(stack,context,typenames,value){return emit_exports.ReduceOr(typenames.map(type=>BuildTypeName(stack,context,type,value)))}function CheckTypeNames(stack,context,types,schema,value){return guard_exports.Some(types,type=>CheckTypeName(stack,context,type,schema,value))}function BuildType(stack,context,schema,value){return guard_exports.IsArray(schema.type)?BuildTypeNames(stack,context,schema.type,value):BuildTypeName(stack,context,schema.type,value)}function CheckType(stack,context,schema,value){return guard_exports.IsArray(schema.type)?CheckTypeNames(stack,context,schema.type,schema,value):CheckTypeName(stack,context,schema.type,schema,value)}function ErrorType(stack,context,schemaPath,instancePath,schema,value){return(guard_exports.IsArray(schema.type)?CheckTypeNames(stack,context,schema.type,schema,value):CheckTypeName(stack,context,schema.type,schema,value))||context.AddError({keyword:"type",schemaPath,instancePath,params:{type:schema.type}})}function BuildUnevaluatedItems(stack,context,schema,value){let[index3,item]=[Unique(),Unique()],indices=emit_exports.Call(emit_exports.Member("context","GetIndices"),[]),hasIndex=emit_exports.Call(emit_exports.Member("indices","has"),[index3]),isSchema=BuildSchema(stack,context,schema.unevaluatedItems,item),addIndex2=emit_exports.Call(emit_exports.Member("context","AddIndex"),[index3]),isEvery=emit_exports.Every(value,emit_exports.Constant(0),[item,index3],emit_exports.And(emit_exports.Or(hasIndex,isSchema),addIndex2));return emit_exports.Call(emit_exports.ArrowFunction(["context"],emit_exports.Statements([emit_exports.ConstDeclaration("indices",indices),emit_exports.Return(isEvery)])),["context"])}function CheckUnevaluatedItems(stack,context,schema,value){let indices=context.GetIndices();return guard_exports.Every(value,0,(item,index3)=>(indices.has(index3)||CheckSchema(stack,context,schema.unevaluatedItems,item))&&context.AddIndex(index3))}function ErrorUnevaluatedItems(stack,context,schemaPath,instancePath,schema,value){let indices=context.GetIndices(),unevaluatedItems2=[];return guard_exports.EveryAll(value,0,(item,index3)=>{let nextContext=new ErrorContext,isEvaluatedItem=(indices.has(index3)||ErrorSchema(stack,nextContext,schemaPath,instancePath,schema.unevaluatedItems,item))&&context.AddIndex(index3);return isEvaluatedItem||unevaluatedItems2.push(index3),isEvaluatedItem})||context.AddError({keyword:"unevaluatedItems",schemaPath,instancePath,params:{unevaluatedItems:unevaluatedItems2}})}function BuildUnevaluatedProperties(stack,context,schema,value){let[key,prop]=[Unique(),Unique()],keys=emit_exports.Call(emit_exports.Member("context","GetKeys"),[]),hasKey=emit_exports.Call(emit_exports.Member("keys","has"),[key]),addKey=emit_exports.Call(emit_exports.Member("context","AddKey"),[key]),isSchema=BuildSchema(stack,context,schema.unevaluatedProperties,prop),isEvery=emit_exports.Every(emit_exports.Entries(value),emit_exports.Constant(0),[`[${key}, ${prop}]`,"_"],emit_exports.Or(hasKey,emit_exports.And(isSchema,addKey)));return emit_exports.Call(emit_exports.ArrowFunction(["context"],emit_exports.Statements([emit_exports.ConstDeclaration("keys",keys),emit_exports.Return(isEvery)])),["context"])}function CheckUnevaluatedProperties(stack,context,schema,value){let keys=context.GetKeys();return guard_exports.Every(guard_exports.Entries(value),0,([key,prop])=>keys.has(key)||CheckSchema(stack,context,schema.unevaluatedProperties,prop)&&context.AddKey(key))}function ErrorUnevaluatedProperties(stack,context,schemaPath,instancePath,schema,value){let keys=context.GetKeys(),unevaluatedProperties2=[];return guard_exports.EveryAll(guard_exports.Entries(value),0,([key,prop])=>{let nextContext=new ErrorContext,isEvaluatedProperty=keys.has(key)||ErrorSchema(stack,nextContext,schemaPath,instancePath,schema.unevaluatedProperties,prop)&&context.AddKey(key);return isEvaluatedProperty||unevaluatedProperties2.push(key),isEvaluatedProperty})||context.AddError({keyword:"unevaluatedProperties",schemaPath,instancePath,params:{unevaluatedProperties:unevaluatedProperties2}})}function IsValid5(schema){return!guard_exports.IsEqual(schema.uniqueItems,!1)}function BuildUniqueItems(_stack,_context,schema,value){if(!IsValid5(schema))return emit_exports.Constant(!0);let set=emit_exports.Member(emit_exports.New("Set",[emit_exports.Call(emit_exports.Member(value,"map"),[emit_exports.Member("Hashing","Hash")])]),"size"),isLength=emit_exports.Member(value,"length");return emit_exports.IsEqual(set,isLength)}function CheckUniqueItems(_stack,_context,schema,value){if(!IsValid5(schema))return!0;let set=new Set(value.map(hash_exports.Hash)).size,isLength=value.length;return guard_exports.IsEqual(set,isLength)}function ErrorUniqueItems(_stack,context,schemaPath,instancePath,schema,value){if(!IsValid5(schema))return!0;let set=new Set,duplicateItems=value.reduce((result,value2,index3)=>{let hash=hash_exports.Hash(value2);return set.has(hash)?[...result,index3]:(set.add(hash),result)},[]);return guard_exports.IsEqual(duplicateItems.length,0)||context.AddError({keyword:"uniqueItems",schemaPath,instancePath,params:{duplicateItems}})}function HasTypeName(schema,typename){return IsType(schema)&&(guard_exports.IsArray(schema.type)&&guard_exports.IsGreaterThan(schema.type.length,0)&&guard_exports.Every(schema.type,0,type=>guard_exports.IsEqual(type,typename))||guard_exports.IsEqual(schema.type,typename))}function HasObjectType(schema){return HasTypeName(schema,"object")}function HasObjectKeywords(schema){return IsSchemaObject(schema)&&(IsAdditionalProperties(schema)||IsDependencies(schema)||IsDependentRequired(schema)||IsDependentSchemas(schema)||IsProperties(schema)||IsPatternProperties(schema)||IsPropertyNames(schema)||IsMinProperties(schema)||IsMaxProperties(schema)||IsRequired(schema)||IsUnevaluatedProperties(schema))}function HasArrayType(schema){return HasTypeName(schema,"array")}function HasArrayKeywords(schema){return IsSchemaObject(schema)&&(IsAdditionalItems(schema)||IsItems(schema)||IsContains(schema)||IsMaxContains(schema)||IsMaxItems(schema)||IsMinContains(schema)||IsMinItems(schema)||IsPrefixItems(schema)||IsUnevaluatedItems(schema)||IsUniqueItems(schema))}function HasStringType(schema){return HasTypeName(schema,"string")}function HasStringKeywords(schema){return IsSchemaObject(schema)&&(IsMinLength(schema)||IsMaxLength(schema)||IsFormat(schema)||IsPattern(schema))}function HasNumberType(schema){return HasTypeName(schema,"number")||HasTypeName(schema,"bigint")}function HasNumberKeywords(schema){return IsSchemaObject(schema)&&(IsMinimum(schema)||IsMaximum(schema)||IsExclusiveMaximum(schema)||IsExclusiveMinimum(schema)||IsMultipleOf(schema))}function BuildSchemaPushStack(stack,context,schema,value){return context.UseUnevaluated()?emit_exports.And(emit_exports.And(context.Push(),BuildSchema(stack,context,schema,value)),context.Pop()):BuildSchema(stack,context,schema,value)}function BuildSchema(stack,context,schema,value){stack.Push(schema);let conditions=[];if(IsSchemaBoolean(schema))return BuildSchemaBoolean(stack,context,schema,value);if(IsType(schema)&&conditions.push(BuildType(stack,context,schema,value)),HasObjectKeywords(schema)){let constraints=[];IsRequired(schema)&&constraints.push(BuildRequired(stack,context,schema,value)),IsAdditionalProperties(schema)&&constraints.push(BuildAdditionalProperties(stack,context,schema,value)),IsDependencies(schema)&&constraints.push(BuildDependencies(stack,context,schema,value)),IsDependentRequired(schema)&&constraints.push(BuildDependentRequired(stack,context,schema,value)),IsDependentSchemas(schema)&&constraints.push(BuildDependentSchemas(stack,context,schema,value)),IsPatternProperties(schema)&&constraints.push(BuildPatternProperties(stack,context,schema,value)),IsProperties(schema)&&constraints.push(BuildProperties(stack,context,schema,value)),IsPropertyNames(schema)&&constraints.push(BuildPropertyNames(stack,context,schema,value)),IsMinProperties(schema)&&constraints.push(BuildMinProperties(stack,context,schema,value)),IsMaxProperties(schema)&&constraints.push(BuildMaxProperties(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsObjectNotArray(value)),reduced);conditions.push(HasObjectType(schema)?reduced:guarded)}if(HasArrayKeywords(schema)){let constraints=[];IsAdditionalItems(schema)&&constraints.push(BuildAdditionalItems(stack,context,schema,value)),IsContains(schema)&&constraints.push(BuildContains(stack,context,schema,value)),IsItems(schema)&&constraints.push(BuildItems(stack,context,schema,value)),IsMaxContains(schema)&&constraints.push(BuildMaxContains(stack,context,schema,value)),IsMaxItems(schema)&&constraints.push(BuildMaxItems(stack,context,schema,value)),IsMinContains(schema)&&constraints.push(BuildMinContains(stack,context,schema,value)),IsMinItems(schema)&&constraints.push(BuildMinItems(stack,context,schema,value)),IsPrefixItems(schema)&&constraints.push(BuildPrefixItems(stack,context,schema,value)),IsUniqueItems(schema)&&constraints.push(BuildUniqueItems(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsArray(value)),reduced);conditions.push(HasArrayType(schema)?reduced:guarded)}if(HasStringKeywords(schema)){let constraints=[];IsMaxLength(schema)&&constraints.push(BuildMaxLength(stack,context,schema,value)),IsMinLength(schema)&&constraints.push(BuildMinLength(stack,context,schema,value)),IsFormat(schema)&&constraints.push(BuildFormat(stack,context,schema,value)),IsPattern(schema)&&constraints.push(BuildPattern(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.IsString(value)),reduced);conditions.push(HasStringType(schema)?reduced:guarded)}if(HasNumberKeywords(schema)){let constraints=[];IsExclusiveMaximum(schema)&&constraints.push(BuildExclusiveMaximum(stack,context,schema,value)),IsExclusiveMinimum(schema)&&constraints.push(BuildExclusiveMinimum(stack,context,schema,value)),IsMaximum(schema)&&constraints.push(BuildMaximum(stack,context,schema,value)),IsMinimum(schema)&&constraints.push(BuildMinimum(stack,context,schema,value)),IsMultipleOf(schema)&&constraints.push(BuildMultipleOf(stack,context,schema,value));let reduced=emit_exports.ReduceAnd(constraints),guarded=emit_exports.Or(emit_exports.Not(emit_exports.Or(emit_exports.IsNumber(value),emit_exports.IsBigInt(value))),reduced);conditions.push(HasNumberType(schema)?reduced:guarded)}IsRef2(schema)&&conditions.push(BuildRef(stack,context,schema,value)),IsRecursiveRef(schema)&&conditions.push(BuildRecursiveRef(stack,context,schema,value)),IsDynamicRef(schema)&&conditions.push(BuildDynamicRef(stack,context,schema,value)),IsConst(schema)&&conditions.push(BuildConst(stack,context,schema,value)),IsEnum2(schema)&&conditions.push(BuildEnum(stack,context,schema,value)),IsIf(schema)&&conditions.push(BuildIf(stack,context,schema,value)),IsNot(schema)&&conditions.push(BuildNot(stack,context,schema,value)),IsAllOf(schema)&&conditions.push(BuildAllOf(stack,context,schema,value)),IsAnyOf(schema)&&conditions.push(BuildAnyOf(stack,context,schema,value)),IsOneOf(schema)&&conditions.push(BuildOneOf(stack,context,schema,value)),IsUnevaluatedItems(schema)&&conditions.push(emit_exports.Or(emit_exports.Not(emit_exports.IsArray(value)),BuildUnevaluatedItems(stack,context,schema,value))),IsUnevaluatedProperties(schema)&&conditions.push(emit_exports.Or(emit_exports.Not(emit_exports.IsObject(value)),BuildUnevaluatedProperties(stack,context,schema,value))),IsRefine2(schema)&&conditions.push(BuildRefine(stack,context,schema,value));let result=emit_exports.ReduceAnd(conditions);return stack.Pop(schema),result}function CheckSchemaPushStack(stack,context,schema,value){return context.Push()&&CheckSchema(stack,context,schema,value)&&context.Pop()}function CheckSchema(stack,context,schema,value){stack.Push(schema);let result=IsSchemaBoolean(schema)?CheckSchemaBoolean(stack,context,schema,value):(!IsType(schema)||CheckType(stack,context,schema,value))&&(!(guard_exports.IsObject(value)&&!guard_exports.IsArray(value))||(!IsRequired(schema)||CheckRequired(stack,context,schema,value))&&(!IsAdditionalProperties(schema)||CheckAdditionalProperties(stack,context,schema,value))&&(!IsDependencies(schema)||CheckDependencies(stack,context,schema,value))&&(!IsDependentRequired(schema)||CheckDependentRequired(stack,context,schema,value))&&(!IsDependentSchemas(schema)||CheckDependentSchemas(stack,context,schema,value))&&(!IsPatternProperties(schema)||CheckPatternProperties(stack,context,schema,value))&&(!IsProperties(schema)||CheckProperties(stack,context,schema,value))&&(!IsPropertyNames(schema)||CheckPropertyNames(stack,context,schema,value))&&(!IsMinProperties(schema)||CheckMinProperties(stack,context,schema,value))&&(!IsMaxProperties(schema)||CheckMaxProperties(stack,context,schema,value)))&&(!guard_exports.IsArray(value)||(!IsAdditionalItems(schema)||CheckAdditionalItems(stack,context,schema,value))&&(!IsContains(schema)||CheckContains(stack,context,schema,value))&&(!IsItems(schema)||CheckItems(stack,context,schema,value))&&(!IsMaxContains(schema)||CheckMaxContains(stack,context,schema,value))&&(!IsMaxItems(schema)||CheckMaxItems(stack,context,schema,value))&&(!IsMinContains(schema)||CheckMinContains(stack,context,schema,value))&&(!IsMinItems(schema)||CheckMinItems(stack,context,schema,value))&&(!IsPrefixItems(schema)||CheckPrefixItems(stack,context,schema,value))&&(!IsUniqueItems(schema)||CheckUniqueItems(stack,context,schema,value)))&&(!guard_exports.IsString(value)||(!IsMaxLength(schema)||CheckMaxLength(stack,context,schema,value))&&(!IsMinLength(schema)||CheckMinLength(stack,context,schema,value))&&(!IsFormat(schema)||CheckFormat(stack,context,schema,value))&&(!IsPattern(schema)||CheckPattern(stack,context,schema,value)))&&(!(guard_exports.IsNumber(value)||guard_exports.IsBigInt(value))||(!IsExclusiveMaximum(schema)||CheckExclusiveMaximum(stack,context,schema,value))&&(!IsExclusiveMinimum(schema)||CheckExclusiveMinimum(stack,context,schema,value))&&(!IsMaximum(schema)||CheckMaximum(stack,context,schema,value))&&(!IsMinimum(schema)||CheckMinimum(stack,context,schema,value))&&(!IsMultipleOf(schema)||CheckMultipleOf(stack,context,schema,value)))&&(!IsRef2(schema)||CheckRef(stack,context,schema,value))&&(!IsRecursiveRef(schema)||CheckRecursiveRef(stack,context,schema,value))&&(!IsDynamicRef(schema)||CheckDynamicRef(stack,context,schema,value))&&(!IsConst(schema)||CheckConst(stack,context,schema,value))&&(!IsEnum2(schema)||CheckEnum(stack,context,schema,value))&&(!IsIf(schema)||CheckIf(stack,context,schema,value))&&(!IsNot(schema)||CheckNot(stack,context,schema,value))&&(!IsAllOf(schema)||CheckAllOf(stack,context,schema,value))&&(!IsAnyOf(schema)||CheckAnyOf(stack,context,schema,value))&&(!IsOneOf(schema)||CheckOneOf(stack,context,schema,value))&&(!IsUnevaluatedItems(schema)||!guard_exports.IsArray(value)||CheckUnevaluatedItems(stack,context,schema,value))&&(!IsUnevaluatedProperties(schema)||!guard_exports.IsObject(value)||CheckUnevaluatedProperties(stack,context,schema,value))&&(!IsRefine2(schema)||CheckRefine(stack,context,schema,value));return stack.Pop(schema),result}function ErrorSchemaPushStack(stack,context,schemaPath,instancePath,schema,value){return context.Push()&&ErrorSchema(stack,context,schemaPath,instancePath,schema,value)&&context.Pop()}function ErrorSchema(stack,context,schemaPath,instancePath,schema,value){if(context.AtCapacity())return!1;stack.Push(schema);let result=IsSchemaBoolean(schema)?ErrorSchemaBoolean(stack,context,schemaPath,instancePath,schema,value):!!(+(!IsType(schema)||ErrorType(stack,context,schemaPath,instancePath,schema,value))&+(!(guard_exports.IsObject(value)&&!guard_exports.IsArray(value))||!!(+(!IsRequired(schema)||ErrorRequired(stack,context,schemaPath,instancePath,schema,value))&+(!IsAdditionalProperties(schema)||ErrorAdditionalProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependencies(schema)||ErrorDependencies(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependentRequired(schema)||ErrorDependentRequired(stack,context,schemaPath,instancePath,schema,value))&+(!IsDependentSchemas(schema)||ErrorDependentSchemas(stack,context,schemaPath,instancePath,schema,value))&+(!IsPatternProperties(schema)||ErrorPatternProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsProperties(schema)||ErrorProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsPropertyNames(schema)||ErrorPropertyNames(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinProperties(schema)||ErrorMinProperties(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxProperties(schema)||ErrorMaxProperties(stack,context,schemaPath,instancePath,schema,value))))&+(!guard_exports.IsArray(value)||!!(+(!IsAdditionalItems(schema)||ErrorAdditionalItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsContains(schema)||ErrorContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsItems(schema)||ErrorItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxContains(schema)||ErrorMaxContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaxItems(schema)||ErrorMaxItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinContains(schema)||ErrorMinContains(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinItems(schema)||ErrorMinItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsPrefixItems(schema)||ErrorPrefixItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsUniqueItems(schema)||ErrorUniqueItems(stack,context,schemaPath,instancePath,schema,value))))&+(!guard_exports.IsString(value)||!!(+(!IsMaxLength(schema)||ErrorMaxLength(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinLength(schema)||ErrorMinLength(stack,context,schemaPath,instancePath,schema,value))&+(!IsFormat(schema)||ErrorFormat(stack,context,schemaPath,instancePath,schema,value))&+(!IsPattern(schema)||ErrorPattern(stack,context,schemaPath,instancePath,schema,value))))&+(!(guard_exports.IsNumber(value)||guard_exports.IsBigInt(value))||!!(+(!IsExclusiveMaximum(schema)||ErrorExclusiveMaximum(stack,context,schemaPath,instancePath,schema,value))&+(!IsExclusiveMinimum(schema)||ErrorExclusiveMinimum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMaximum(schema)||ErrorMaximum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMinimum(schema)||ErrorMinimum(stack,context,schemaPath,instancePath,schema,value))&+(!IsMultipleOf(schema)||ErrorMultipleOf(stack,context,schemaPath,instancePath,schema,value))))&+(!IsRef2(schema)||ErrorRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsRecursiveRef(schema)||ErrorRecursiveRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsDynamicRef(schema)||ErrorDynamicRef(stack,context,schemaPath,instancePath,schema,value))&+(!IsConst(schema)||ErrorConst(stack,context,schemaPath,instancePath,schema,value))&+(!IsEnum2(schema)||ErrorEnum(stack,context,schemaPath,instancePath,schema,value))&+(!IsIf(schema)||ErrorIf(stack,context,schemaPath,instancePath,schema,value))&+(!IsNot(schema)||ErrorNot(stack,context,schemaPath,instancePath,schema,value))&+(!IsAllOf(schema)||ErrorAllOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsAnyOf(schema)||ErrorAnyOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsOneOf(schema)||ErrorOneOf(stack,context,schemaPath,instancePath,schema,value))&+(!IsUnevaluatedItems(schema)||!guard_exports.IsArray(value)||ErrorUnevaluatedItems(stack,context,schemaPath,instancePath,schema,value))&+(!IsUnevaluatedProperties(schema)||!guard_exports.IsObject(value)||ErrorUnevaluatedProperties(stack,context,schemaPath,instancePath,schema,value)))&&(!IsRefine2(schema)||ErrorRefine(stack,context,schemaPath,instancePath,schema,value));return stack.Pop(schema),result}var index2=[0],names=new Map,funcs=new Map;function NextName(){return`${index2[0]++}`}function CreateName(schema,href){names.has(schema)||names.set(schema,new Map);let hrefs=names.get(schema);if(hrefs.has(href))return hrefs.get(href);let name=NextName();return hrefs.set(href,name),name}function CreateCallExpression(context,_schema,name,value){return context.UseUnevaluated()?emit_exports.Call(`check_${name}`,["context",value]):emit_exports.Call(`check_${name}`,[value])}function CreateFunctionExpression(stack,context,schema,name){let expression=BuildSchema(stack,context,schema,"value");return context.UseUnevaluated()?emit_exports.ConstDeclaration(`check_${name}`,emit_exports.ArrowFunction(["context","value"],expression)):emit_exports.ConstDeclaration(`check_${name}`,emit_exports.ArrowFunction(["value"],expression))}function ResetFunctions(){index2[0]=0,names.clear(),funcs.clear()}function GetFunctions(){return[...funcs.values()]}function CreateFunction(stack,context,schema,value){let name=CreateName(schema,stack.LexicalBaseURL()),call=CreateCallExpression(context,schema,name,value);return funcs.has(name)||(funcs.set(name,""),funcs.set(name,CreateFunctionExpression(stack,context,schema,name))),call}var resolve_exports={};__export(resolve_exports,{Base:()=>Base,DefaultBase:()=>DefaultBase,DynamicRef:()=>DynamicRef,Ref:()=>Ref2,ResolveDynamicRef:()=>ResolveDynamicRef,ResolveRecursiveRef:()=>ResolveRecursiveRef,ResolveRef:()=>ResolveRef,Resource:()=>Resource});var pointer_exports={};__export(pointer_exports,{Delete:()=>Delete,Get:()=>Get3,Has:()=>Has2,Indices:()=>Indices,Set:()=>Set3});function AssertNotRoot(indices){if(indices.length===0)throw Error("Cannot set root")}function AssertCanSet(value){if(!guard_exports.IsObject(value))throw Error("Cannot set value")}function AssertIndex(index3){if(guard_exports.IsUnsafePropertyKey(index3))throw Error("Pointer contains unsafe property key")}function AssertIndices(indices){for(let index3 of indices)AssertIndex(index3)}function IsNumericIndex(index3){return/^(0|[1-9]\d*)$/.test(index3)}function TakeIndexRight(indices){return[indices.slice(0,indices.length-1),indices.slice(indices.length-1)[0]]}function HasIndex(index3,value){return guard_exports.IsObject(value)&&guard_exports.HasPropertyKey(value,index3)}function GetIndex(index3,value){return guard_exports.IsObject(value)&&!guard_exports.IsUnsafePropertyKey(index3)?value[index3]:void 0}function GetIndices(indices,value){return indices.reduce((value2,index3)=>GetIndex(index3,value2),value)}function Indices(pointer2){if(guard_exports.IsEqual(pointer2.length,0))return[];let indices=pointer2.split("/").map(index3=>index3.replace(/~1/g,"/").replace(/~0/g,"~"));return indices.length>0&&indices[0]===""?indices.slice(1):indices}function Has2(value,pointer2){let current=value;return Indices(pointer2).every(index3=>HasIndex(index3,current)?(current=current[index3],!0):!1)}function Get3(value,pointer2){let indices=Indices(pointer2);return GetIndices(indices,value)}function Set3(value,pointer2,next){let indices=Indices(pointer2);AssertNotRoot(indices),AssertIndices(indices);let[head,index3]=TakeIndexRight(indices),parent=GetIndices(head,value);return AssertCanSet(parent),parent[index3]=next,value}function Delete(value,pointer2){let indices=Indices(pointer2);AssertNotRoot(indices),AssertIndices(indices);let[head,index3]=TakeIndexRight(indices),parent=GetIndices(head,value);return AssertCanSet(parent),guard_exports.IsArray(parent)&&IsNumericIndex(index3)?parent.splice(+index3,1):delete parent[index3],value}var DefaultBase="https://json-schema.org";function FindDynamicAnchor(schema,name){if(guard_exports.IsObject(schema)&&IsDynamicAnchor(schema)&&guard_exports.IsEqual(schema.$dynamicAnchor,name))return schema;if(guard_exports.IsObject(schema))for(let key of guard_exports.Keys(schema)){let result=FindDynamicAnchor(schema[key],name);if(result)return result}}function FindBase(schema,base,target){if(guard_exports.IsEqual(schema,target))return base.href;let nextBase=IsSchemaObject(schema)&&IsId(schema)?new URL(schema.$id,base.href):base;if(guard_exports.IsArray(schema))for(let item of schema){let result=FindBase(item,nextBase,target);if(!guard_exports.IsUndefined(result))return result}else if(guard_exports.IsObject(schema))for(let key of guard_exports.Keys(schema)){let result=FindBase(schema[key],nextBase,target);if(!guard_exports.IsUndefined(result))return result}}function MatchId(schema,base,ref){if(guard_exports.IsEqual(schema.$id,ref.hash))return schema;let absoluteRef=new URL(ref.href,base.href);if(guard_exports.IsEqual(base.pathname,absoluteRef.pathname))return ref.hash.startsWith("#")?MatchHash(schema,ref):schema}function MatchAnchor(schema,base,ref){let absoluteAnchor=new URL(`#${schema.$anchor}`,base.href),absoluteRef=new URL(ref.href,base.href);return guard_exports.IsEqual(absoluteAnchor.href,absoluteRef.href)?schema:void 0}function MatchDynamicAnchor(schema,base,ref){let absoluteAnchor=new URL(`#${schema.$dynamicAnchor}`,base.href),absoluteRef=new URL(ref.href,base.href);return guard_exports.IsEqual(absoluteAnchor.href,absoluteRef.href)?schema:void 0}function MatchHash(schema,ref){if(ref.href.endsWith("#"))return schema;if(!ref.hash.startsWith("#"))return;let fragment=decodeURIComponent(ref.hash.slice(1));return fragment.startsWith("/")?pointer_exports.Get(schema,fragment):void 0}function Match(schema,base,ref){if(IsId(schema)){let result=MatchId(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}if(IsAnchor(schema)){let result=MatchAnchor(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}if(IsDynamicAnchor(schema)){let result=MatchDynamicAnchor(schema,base,ref);if(!guard_exports.IsUndefined(result))return result}return MatchHash(schema,ref)}function FromArray(schema,base,ref){return schema.reduce((result,item)=>{let match=FromValue(item,base,ref);return guard_exports.IsUndefined(match)?result:match},void 0)}function SkipProperty(key){return guard_exports.IsEqual(key,"const")||guard_exports.IsEqual(key,"enum")}function FromObject(schema,base,ref){return guard_exports.Keys(schema).reduce((result,key)=>{if(SkipProperty(key))return result;let match=FromValue(schema[key],base,ref);return guard_exports.IsUndefined(match)?result:match},void 0)}function FromValue(schema,base,ref){let nextBase=IsSchemaObject(schema)&&IsId(schema)?new URL(schema.$id,base.href):base;if(IsSchemaObject(schema)){let result=Match(schema,nextBase,ref);if(!guard_exports.IsUndefined(result))return result}if(guard_exports.IsArray(schema))return FromArray(schema,nextBase,ref);if(guard_exports.IsObject(schema))return FromObject(schema,nextBase,ref)}function Base(schema,base,target){return FindBase(schema,new URL(base||".",DefaultBase),target)}function Resource(context,schema,base,ref){let result=Ref2(context,schema,base,ref,!1);return IsSchemaObject(result)&&IsId(result)?result:void 0}function CanonicalHref(url){return url.href.split("#")[0]}function RefContext(context,ref){return guard_exports.HasPropertyKey(context,ref)?context[ref]:void 0}function RefLocal(schema,base,ref){return FromValue(schema,base,ref)}function RefRemote(context,base,ref){let canonicalHref=CanonicalHref(ref);if(guard_exports.IsEqual(canonicalHref,CanonicalHref(base))||!guard_exports.HasPropertyKey(context,canonicalHref))return;let remoteSchema=context[canonicalHref],remoteBase=IsSchemaObject(remoteSchema)&&IsId(remoteSchema)?new URL(remoteSchema.$id,canonicalHref):new URL(canonicalHref);return guard_exports.IsEqual(ref.hash,"")?remoteSchema:FromValue(remoteSchema,remoteBase,ref)}function LegacyRetrievedResource(root,lexicalSchema,referenceBase,ref,schema){if(!ref.$ref.startsWith("#")||guard_exports.HasPropertyKey(root,"$schema"))return;let targetBase=Base(lexicalSchema,referenceBase,schema);if(!(guard_exports.IsUndefined(targetBase)||guard_exports.IsEqual(targetBase,referenceBase)))return{target:schema,base:targetBase,root:lexicalSchema}}function RemoteRetrievedResource(context,canonical,schema){let remoteRoot=context[canonical];if(IsSchemaObject(remoteRoot))return{target:schema,base:canonical,root:remoteRoot}}function FindRetrievedResource(stackframe,ref,schema,canonical,isRemote){let remote=isRemote?RemoteRetrievedResource(stackframe.context,canonical,schema):void 0;return guard_exports.IsUndefined(remote)?LegacyRetrievedResource(stackframe.root,stackframe.lexicalSchema,stackframe.referenceBase,ref,schema):remote}function FindResolvedResource(context,root,referenceBase,canonical,schema,ids){if(IsId(schema))return;let resource=Resource(context,root,referenceBase,canonical);if(!(!resource||ids.includes(resource)))return{target:schema,resource}}function Ref2(remotes,schema,base,ref,applySchemaId=!0){let initialBase=new URL(base||".",DefaultBase),resolvedBase=applySchemaId&&IsId(schema)?new URL(schema.$id,initialBase):initialBase,initialRef=new URL(ref,resolvedBase.href);return RefContext(remotes,ref)??RefLocal(schema,resolvedBase,initialRef)??RefRemote(remotes,resolvedBase,initialRef)}function DynamicRef(context,root,base,schema,dynamicRef,dynamicAnchors){let initialBase=new URL(base||".",DefaultBase),fragmentRoot=dynamicRef.$dynamicRef.startsWith("#")?schema:root,fragmentTarget=Ref2(context,fragmentRoot,base,dynamicRef.$dynamicRef,!1);if(guard_exports.IsUndefined(fragmentTarget)){let fragment2=new URL(dynamicRef.$dynamicRef,initialBase).hash;if(!fragment2.startsWith("#/")&&fragment2.startsWith("#")){let name=decodeURIComponent(fragment2.slice(1));return dynamicAnchors.find(anchor=>guard_exports.IsEqual(anchor.$dynamicAnchor,name))??FindDynamicAnchor(root,name)}return}return!IsSchemaObject(fragmentTarget)||!IsDynamicAnchor(fragmentTarget)||new URL(dynamicRef.$dynamicRef,initialBase).hash.startsWith("#/")?fragmentTarget:dynamicAnchors.find(anchor=>guard_exports.IsEqual(anchor.$dynamicAnchor,fragmentTarget.$dynamicAnchor))??fragmentTarget}function ResolveRef(stackframe,ref){let source=stackframe.inRetrievedFrame?stackframe.lexicalSchema:stackframe.root,refRoot=ref.$ref.startsWith("#")?stackframe.lexicalSchema:source,schema=Ref2(stackframe.context,refRoot,stackframe.referenceBase,ref.$ref,!1);if(!schema||!IsSchemaObject(schema))return{schema};let canonical=new URL(ref.$ref,stackframe.referenceBase).href.split("#")[0],isRemote=!guard_exports.IsEqual(canonical,stackframe.resourceBase),retrievedResource=FindRetrievedResource(stackframe,ref,schema,canonical,isRemote),resolvedResource=isRemote?FindResolvedResource(stackframe.context,stackframe.root,stackframe.referenceBase,canonical,schema,stackframe.ids):void 0;return{schema,retrievedResource,resolvedResource}}function ResolveRecursiveRef(stackframe,recursiveRef){let refRoot=IsRecursiveAnchorTrue(stackframe.lexicalSchema)?stackframe.recursiveAnchors[0]:stackframe.lexicalSchema;return Ref2(stackframe.context,refRoot,stackframe.lexicalBase,recursiveRef.$recursiveRef,!1)}function ResolveDynamicRef(stackframe,dynamicRef){return DynamicRef(stackframe.context,stackframe.root,stackframe.lexicalBase,stackframe.lexicalSchema,dynamicRef,stackframe.dynamicAnchors)}var __classPrivateFieldGet=function(receiver,state2,kind,f){if(kind==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof state2=="function"?receiver!==state2||!f:!state2.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f:kind==="a"?f.call(receiver):f?f.value:state2.get(receiver)},_Stack_instances,_Stack_StackFrame,_Stack_ApplyRefResult,_Stack_BuildBase,_Stack_ResourceBaseURL,_Stack_ReferenceBaseURL,_Stack_LexicalSchema,_Stack_RegisterResourceAnchorArray,_Stack_UnregisterResourceAnchorArray,_Stack_RegisterResourceAnchors,_Stack_UnregisterResourceAnchors,_Stack_RegisterResource,_Stack_UnregisterResource,_Stack_EnterResolvedResource,_Stack_ExitResolvedResource,Stack=class{constructor(context,schema){_Stack_instances.add(this),this.context=context,this.schema=schema,this.ids=[],this.resourceIds=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[],this.retrievedResources=new Map,this.retrievedFrames=[],this.resolvedResources=new Map,this.pendingResource=!0}LexicalBaseURL(){return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_BuildBase).call(this,this.ids)}Push(schema){if(!IsSchemaObject(schema))return;IsId(schema)&&__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResource).call(this,schema),IsAnchor(schema)&&this.anchors.push(schema),IsRecursiveAnchorTrue(schema)&&this.recursiveAnchors.push(schema),IsDynamicAnchor(schema)&&this.dynamicAnchors.push(schema);let retrievedResource=this.retrievedResources.get(schema);retrievedResource&&this.retrievedFrames.push({schema:retrievedResource.root,base:retrievedResource.base,idDepth:this.ids.length,resourceDepth:this.resourceIds.length})}Pop(schema){IsSchemaObject(schema)&&(IsId(schema)&&__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResource).call(this,schema),IsAnchor(schema)&&this.anchors.pop(),IsRecursiveAnchorTrue(schema)&&this.recursiveAnchors.pop(),IsDynamicAnchor(schema)&&this.dynamicAnchors.pop(),this.retrievedResources.has(schema)&&this.retrievedFrames.pop(),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ExitResolvedResource).call(this,schema))}Ref(ref){let result=resolve_exports.ResolveRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),ref);return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ApplyRefResult).call(this,result),result.schema}RecursiveRef(recursiveRef){let result=resolve_exports.ResolveRecursiveRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),recursiveRef);return result&&(this.pendingResource=!0),result}DynamicRef(dynamicRef){let result=resolve_exports.ResolveDynamicRef(__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_StackFrame).call(this),dynamicRef);return result&&(this.pendingResource=!0),result}};_Stack_instances=new WeakSet,_Stack_StackFrame=function(){return{context:this.context,root:this.schema,ids:this.ids,lexicalSchema:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_LexicalSchema).call(this),lexicalBase:this.LexicalBaseURL(),referenceBase:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ReferenceBaseURL).call(this),resourceBase:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this),recursiveAnchors:this.recursiveAnchors,dynamicAnchors:this.dynamicAnchors,inRetrievedFrame:this.retrievedFrames.length>0}},_Stack_ApplyRefResult=function(result){guard_exports.IsUndefined(result.schema)||(this.pendingResource=!0),guard_exports.IsUndefined(result.resolvedResource)||__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_EnterResolvedResource).call(this,result.resolvedResource.target,result.resolvedResource.resource),guard_exports.IsUndefined(result.retrievedResource)||this.retrievedResources.set(result.retrievedResource.target,{base:result.retrievedResource.base,root:result.retrievedResource.root})},_Stack_BuildBase=function(stack){let frame=this.retrievedFrames[this.retrievedFrames.length-1],base=frame?new URL(frame.base):new URL(resolve_exports.DefaultBase);return(frame?stack.slice(frame.idDepth):stack).reduce((result,schema)=>new URL(schema.$id,result),base).href},_Stack_ResourceBaseURL=function(){let frame=this.retrievedFrames[this.retrievedFrames.length-1];return frame?this.resourceIds.slice(frame.resourceDepth).reduce((result,schema)=>new URL(schema.$id,result),new URL(frame.base)).href:__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_BuildBase).call(this,this.resourceIds)},_Stack_ReferenceBaseURL=function(){if(this.retrievedFrames.length>0)return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this);let lexical=this.ids[this.ids.length-1];return lexical&&!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(lexical.$id)?this.LexicalBaseURL():__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_ResourceBaseURL).call(this)},_Stack_LexicalSchema=function(){let frame=this.retrievedFrames[this.retrievedFrames.length-1];return frame?this.ids.length>frame.idDepth?this.ids[this.ids.length-1]:frame.schema:this.ids.length>0?this.ids[this.ids.length-1]:this.schema},_Stack_RegisterResourceAnchorArray=function(schema){schema.forEach(schema2=>__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors).call(this,schema2,!1))},_Stack_UnregisterResourceAnchorArray=function(schema){schema.forEach(schema2=>__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors).call(this,schema2,!1))},_Stack_RegisterResourceAnchors=function _Stack_RegisterResourceAnchors2(schema,isRoot=!0){if(IsSchemaBoolean(schema))return;if(guard_exports.IsArray(schema))return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchorArray).call(this,schema);if(!IsSchemaObject(schema))return;let current=schema;if(!(!isRoot&&IsId(current))){!isRoot&&IsDynamicAnchor(current)&&this.dynamicAnchors.push(current);for(let key of guard_exports.Keys(current))__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors2).call(this,current[key],!1)}},_Stack_UnregisterResourceAnchors=function _Stack_UnregisterResourceAnchors2(schema,isRoot=!0){if(IsSchemaBoolean(schema))return;if(guard_exports.IsArray(schema))return __classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchorArray).call(this,schema);if(!IsSchemaObject(schema))return;let current=schema;if(!(!isRoot&&IsId(current))){!isRoot&&IsDynamicAnchor(current)&&this.dynamicAnchors.pop();for(let key of guard_exports.Keys(current))__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors2).call(this,current[key],!1)}},_Stack_RegisterResource=function(schema){this.ids.push(schema);let isResource=this.pendingResource;this.pendingResource=!1,isResource&&this.resourceIds.push(schema),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResourceAnchors).call(this,schema,!0)},_Stack_UnregisterResource=function(schema){this.ids.pop(),this.resourceIds.length>0&&guard_exports.IsEqual(this.resourceIds[this.resourceIds.length-1],schema)&&this.resourceIds.pop(),__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResourceAnchors).call(this,schema,!0)},_Stack_EnterResolvedResource=function(target,resource){__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_RegisterResource).call(this,resource),this.resolvedResources.set(target,resource)},_Stack_ExitResolvedResource=function(target){if(!this.resolvedResources.has(target))return;let resource=this.resolvedResources.get(target);__classPrivateFieldGet(this,_Stack_instances,"m",_Stack_UnregisterResource).call(this,resource),this.resolvedResources.delete(target)};function CreateCode(build){let functions=build.Functions().join(`;
3
+ `),statements=build.UseUnevaluated()?["const context = new CheckContext({}, {})",`return ${build.Entry()}`]:[`return ${build.Entry()}`];return`${functions}; return (value) => { ${statements.join("; ")} }`}function CreateEvaluatedCheck(build,code){return environment_exports.Evaluate("CheckContext","Guard","Format","Hashing",build.External().identifier,code)(CheckContext,guard_exports,format_exports,hash_exports,build.External().variables)}function CreateDynamicCheck(build){let stack=new Stack(build.Context(),build.Schema()),context=new CheckContext;return value=>CheckSchema(stack,context,build.Schema(),value)}function CreateCheck(build,code){return environment_exports.CanEvaluate()?CreateEvaluatedCheck(build,code):CreateDynamicCheck(build)}var EvaluateResult=class{constructor(isAccelerated,code,check){this.isAccelerated=isAccelerated,this.code=code,this.check=check}IsAccelerated(){return this.isAccelerated}Code(){return this.code}Check(value){return this.check(value)}},BuildResult=class{constructor(context,schema,external,functions,entry,useUnevaluated){this.context=context,this.schema=schema,this.external=external,this.functions=functions,this.entry=entry,this.useUnevaluated=useUnevaluated}Context(){return this.context}Schema(){return this.schema}UseUnevaluated(){return this.useUnevaluated}External(){return this.external}Functions(){return this.functions}Entry(){return this.entry}Evaluate(){let code=CreateCode(this),check=CreateCheck(this,code);return new EvaluateResult(environment_exports.CanEvaluate(),code,check)}};function Build(...args){let[context,schema]=arguments_exports.Match(args,{2:(context2,schema2)=>[context2,schema2],1:schema2=>[{},schema2]});ResetExternal(),ResetFunctions();let stack=new Stack(context,schema),build=new BuildContext(HasUnevaluated(context,schema)),call=CreateFunction(stack,build,schema,"value"),functions=GetFunctions(),externals=GetExternal();return new BuildResult(context,schema,externals,functions,call,build.UseUnevaluated())}function Errors(...args){let[context,schema,value]=arguments_exports.Match(args,{3:(context2,schema2,value2)=>[context2,schema2,value2],2:(schema2,value2)=>[{},schema2,value2]}),stack=new Stack(context,schema),errorContext=new ErrorContext,result=ErrorSchema(stack,errorContext,"#","",schema,value),errors=errorContext.GetErrors(),locale=Get(),localized=errors.map(error=>({...error,message:locale(error)}));return[result,localized]}function Check(...args){let[context,schema,value]=arguments_exports.Match(args,{3:(context2,schema2,value2)=>[context2,schema2,value2],2:(schema2,value2)=>[{},schema2,value2]}),stack=new Stack(context,schema),checkContext=new CheckContext;return CheckSchema(stack,checkContext,schema,value)}function Check2(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Check(context,type,value)}function Errors2(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),[_,errors]=Errors(context,type,value);return errors}var AssertError=class extends Error{constructor(source,value,errors){super(source),Object.defineProperty(this,"cause",{value:{source,errors,value},writable:!1,configurable:!1,enumerable:!1})}};function Assert(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});if(!Check2(context,type,value))throw new AssertError("Assert",value,Errors2(context,type,value))}function FromArray2(context,type,value){return guard_exports.IsArray(value)?value.map(value2=>FromType(context,type.items,value2)):value}function FromCyclic(context,type,value){return FromType({...context,...type.$defs},Ref(type.$ref),value)}function EvaluateIntersection(context,type){let additionalProperties=guard_exports.HasPropertyKey(type,"unevaluatedProperties")?{additionalProperties:type.unevaluatedProperties}:{},instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return IsObject(evaluated)?With(evaluated,additionalProperties):evaluated}function FromIntersect(context,type,value){let evaluated=EvaluateIntersection(context,type);return FromType(context,evaluated,value)}function GetAdditionalProperties(type){return guard_exports.HasPropertyKey(type,"additionalProperties")?type.additionalProperties:void 0}function FromObject2(context,type,value){if(!guard_exports.IsObject(value)||guard_exports.IsArray(value))return value;let additionalProperties=GetAdditionalProperties(type);for(let key of guard_exports.Keys(value)){if(guard_exports.HasPropertyKey(type.properties,key)){value[key]=FromType(context,type.properties[key],value[key]);continue}if(guard_exports.IsBoolean(additionalProperties)&&guard_exports.IsEqual(additionalProperties,!0)||IsSchema(additionalProperties)&&Check2(context,additionalProperties,value[key])){value[key]=FromType(context,additionalProperties,value[key]);continue}delete value[key]}return value}function FromRecord(context,type,value){if(!guard_exports.IsObject(value))return value;let additionalProperties=GetAdditionalProperties(type),[recordPattern,recordValue]=[new RegExp(RecordPattern(type)),RecordValue(type)];for(let key of guard_exports.Keys(value)){if(recordPattern.test(key)){value[key]=FromType(context,recordValue,value[key]);continue}if(guard_exports.IsBoolean(additionalProperties)&&guard_exports.IsEqual(additionalProperties,!0)||IsSchema(additionalProperties)&&Check2(context,additionalProperties,value[key])){value[key]=FromType(context,additionalProperties,value[key]);continue}delete value[key]}return value}function FromRef(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType(context,context[type.$ref],value):value}function FromTuple(context,schema,value){if(!guard_exports.IsArray(value))return value;let length=Math.min(value.length,schema.items.length);for(let index3=0;index3<length;index3++)value[index3]=FromType(context,schema.items[index3],value[index3]);return guard_exports.IsGreaterThan(value.length,length)?value.slice(0,length):value}function Clone2(value){return Clone(value)}function FromUnion(context,type,value){for(let schema of type.anyOf){let clean=FromType(context,schema,Clone2(value));if(Check2(context,schema,clean))return clean}return value}function FromType(context,type,value){return IsArray(type)?FromArray2(context,type,value):IsCyclic(type)?FromCyclic(context,type,value):IsIntersect(type)?FromIntersect(context,type,value):IsObject(type)?FromObject2(context,type,value):IsRecord(type)?FromRecord(context,type,value):IsRef(type)?FromRef(context,type,value):IsTuple(type)?FromTuple(context,type,value):IsUnion(type)?FromUnion(context,type,value):value}function Modifiers(type,next){for(let key of guard_default.Keys(type))guard_default.HasPropertyKey(next,key)||(next[key]=type[key]);return next}function FromProperties(properties){let result={};for(let key of guard_default.Keys(properties))result[key]=FromType2(properties[key]);return result}function FromPriorityTypes(types){return FromTypes(Priority(types))}function FromTypes(types){return types.map(type=>FromType2(type))}function FromType2(type){let next=IsArray(type)?_Array_(FromType2(type.items),ArrayOptions(type)):IsIntersect(type)?Intersect(FromTypes(type.allOf)):IsUnion(type)?Union(FromPriorityTypes(type.anyOf)):IsObject(type)?_Object_(FromProperties(type.properties)):IsRecord(type)?Record(RecordKey(type),FromType2(RecordValue(type))):IsTuple(type)?Tuple(FromTypes(type.items)):type;return Modifiers(type,next)}function UnionPrioritySort(type){return FromType2(type)}function Clean(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType(context,sorted,value)}var try_exports={};__export(try_exports,{Fail:()=>Fail,IsOk:()=>IsOk,Ok:()=>Ok,TryArray:()=>TryArray,TryBigInt:()=>TryBigInt,TryBoolean:()=>TryBoolean,TryNull:()=>TryNull,TryNumber:()=>TryNumber,TryString:()=>TryString,TryUndefined:()=>TryUndefined});function IsOk(value){return guard_exports.IsObject(value)&&guard_exports.HasPropertyKey(value,"value")}function Ok(value){return{value}}function Fail(){}function TryArray(value){return guard_exports.IsArray(value)?Ok(value):Ok([value])}function FromBoolean(value){return guard_exports.IsEqual(value,!0)?Ok(BigInt(1)):Ok(BigInt(0))}var bigintPattern=/^-?(0|[1-9]\d*)n$/,decimalPattern=/^-?(0|[1-9]\d*)\.\d+$/,integerPattern=/^-?(0|[1-9]\d*)$/;function IsStringBigIntLike(value){return bigintPattern.test(value)}function IsStringDecimalLike(value){return decimalPattern.test(value)}function IsStringIntegerLike(value){return integerPattern.test(value)}function FromString(value){let lowercase=value.toLowerCase();return IsStringBigIntLike(value)?Ok(BigInt(value.slice(0,value.length-1))):IsStringDecimalLike(value)?Ok(BigInt(value.split(".")[0])):IsStringIntegerLike(value)?Ok(BigInt(value)):guard_exports.IsEqual(lowercase,"false")?Ok(BigInt(0)):guard_exports.IsEqual(lowercase,"true")?Ok(BigInt(1)):void 0}function TryBigInt(value){return guard_exports.IsBigInt(value)?Ok(value):guard_exports.IsBoolean(value)?FromBoolean(value):guard_exports.IsNumber(value)?Ok(BigInt(Math.trunc(value))):guard_exports.IsNull(value)?Ok(BigInt(0)):guard_exports.IsString(value)?FromString(value):guard_exports.IsUndefined(value)?Ok(BigInt(0)):void 0}function FromBigInt(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(!1):guard_exports.IsEqual(value,BigInt(1))?Ok(!0):void 0}function FromNumber(value){return guard_exports.IsEqual(value,0)?Ok(!1):guard_exports.IsEqual(value,1)?Ok(!0):void 0}function FromString2(value){return guard_exports.IsEqual(value.toLowerCase(),"false")?Ok(!1):guard_exports.IsEqual(value.toLowerCase(),"true")?Ok(!0):guard_exports.IsEqual(value,"0")?Ok(!1):guard_exports.IsEqual(value,"1")?Ok(!0):void 0}function TryBoolean(value){return guard_exports.IsBigInt(value)?FromBigInt(value):guard_exports.IsBoolean(value)?Ok(value):guard_exports.IsNumber(value)?FromNumber(value):guard_exports.IsNull(value)?Ok(!1):guard_exports.IsString(value)?FromString2(value):guard_exports.IsUndefined(value)?Ok(!1):void 0}function FromBigInt2(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(null):void 0}function FromBoolean2(value){return guard_exports.IsEqual(value,!1)?Ok(null):void 0}function FromNumber2(value){return guard_exports.IsEqual(value,0)?Ok(null):void 0}function FromString3(value){let lowercase=value.toLowerCase();return guard_exports.IsEqual(lowercase,"undefined")||guard_exports.IsEqual(lowercase,"null")||guard_exports.IsEqual(value,"")||guard_exports.IsEqual(value,"0")?Ok(null):void 0}function TryNull(value){return guard_exports.IsBigInt(value)?FromBigInt2(value):guard_exports.IsBoolean(value)?FromBoolean2(value):guard_exports.IsNumber(value)?FromNumber2(value):guard_exports.IsNull(value)?Ok(null):guard_exports.IsString(value)?FromString3(value):guard_exports.IsUndefined(value)?Ok(null):void 0}var maxBigInt=BigInt(Number.MAX_SAFE_INTEGER),minBigInt=BigInt(Number.MIN_SAFE_INTEGER);function FromBigInt3(value){return value<=maxBigInt&&value>=minBigInt?Ok(Number(value)):void 0}function FromBoolean3(value){return Ok(value?1:0)}function FromString4(value){let coerced=+value;if(guard_exports.IsNumber(coerced))return Ok(coerced);let lowercase=value.toLowerCase();if(guard_exports.IsEqual(lowercase,"false"))return Ok(0);if(guard_exports.IsEqual(lowercase,"true"))return Ok(1);let result=TryBigInt(value);return IsOk(result)?result.value<=maxBigInt&&result.value>=minBigInt?Ok(Number(result.value)):void 0:void 0}function TryNumber(value){return guard_exports.IsBigInt(value)?FromBigInt3(value):guard_exports.IsBoolean(value)?FromBoolean3(value):guard_exports.IsNumber(value)?Ok(value):guard_exports.IsNull(value)?Ok(0):guard_exports.IsString(value)?FromString4(value):guard_exports.IsUndefined(value)?Ok(0):void 0}function TryString(value){return guard_exports.IsBigInt(value)?Ok(value.toString()):guard_exports.IsBoolean(value)?Ok(value.toString()):guard_exports.IsNumber(value)?Ok(value.toString()):guard_exports.IsNull(value)?Ok("null"):guard_exports.IsString(value)?Ok(value):guard_exports.IsUndefined(value)?Ok(""):void 0}function FromBigInt4(value){return guard_exports.IsEqual(value,BigInt(0))?Ok(void 0):void 0}function FromBoolean4(value){return guard_exports.IsEqual(value,!1)?Ok(void 0):void 0}function FromNumber3(value){return guard_exports.IsEqual(value,0)?Ok(void 0):void 0}function FromString5(value){let lowercase=value.toLowerCase();return guard_exports.IsEqual(lowercase,"undefined")||guard_exports.IsEqual(lowercase,"null")||guard_exports.IsEqual(value,"")||guard_exports.IsEqual(value,"0")?Ok(void 0):void 0}function TryUndefined(value){return guard_exports.IsBigInt(value)?FromBigInt4(value):guard_exports.IsBoolean(value)?FromBoolean4(value):guard_exports.IsNumber(value)?FromNumber3(value):guard_exports.IsNull(value)?Ok(void 0):guard_exports.IsString(value)?FromString5(value):guard_exports.IsUndefined(value)?Ok(value):void 0}function FromArray3(context,type,value){return try_exports.TryArray(value).value.map(value2=>FromType3(context,type.items,value2))}function FromBigInt5(_context,_type,value){let result=try_exports.TryBigInt(value);return try_exports.IsOk(result)?result.value:value}function FromBoolean5(_context,_type,value){let result=try_exports.TryBoolean(value);return try_exports.IsOk(result)?result.value:value}function FromCyclic2(context,type,value){return FromType3({...context,...type.$defs},Ref(type.$ref),value)}function FromEnum(context,type,value){return FromType3(context,Evaluate(type),value)}function FromInteger(_context,_type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)?Math.trunc(result.value):value}function FromIntersect2(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType3(context,evaluated,value)}function FromLiteralBigInt(_context,type,value){let result=try_exports.TryBigInt(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralBoolean(_context,type,value){let result=try_exports.TryBoolean(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralNumber(_context,type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteralString(_context,type,value){let result=try_exports.TryString(value);return try_exports.IsOk(result)&&guard_exports.IsEqual(type.const,result.value)?result.value:value}function FromLiteral(context,type,value){return guard_exports.IsEqual(type.const,value)?value:IsLiteralBigInt(type)?FromLiteralBigInt(context,type,value):IsLiteralBoolean(type)?FromLiteralBoolean(context,type,value):IsLiteralNumber(type)?FromLiteralNumber(context,type,value):IsLiteralString(type)?FromLiteralString(context,type,value):Unreachable()}function FromNull(_context,_type,value){let result=try_exports.TryNull(value);return try_exports.IsOk(result)?result.value:value}function FromNumber4(_context,_type,value){let result=try_exports.TryNumber(value);return try_exports.IsOk(result)?result.value:value}function FromAdditionalProperties(context,entries2,additionalProperties,value){let keys=guard_exports.Keys(value);for(let[regexp,_]of entries2)for(let key of keys)regexp.test(key)||(value[key]=FromType3(context,additionalProperties,value[key]));return value}function IsOptionalUndefined(property,key,value){return IsOptional(property)&&guard_exports.IsUndefined(value[key])}function FromProperties2(context,type,value){let entries2=guard_exports.EntriesRegExp(type.properties),keys=guard_exports.Keys(value);for(let[regexp,property]of entries2)for(let key of keys)!regexp.test(key)||IsOptionalUndefined(property,key,value)||(value[key]=FromType3(context,property,value[key]));return guard_exports.HasPropertyKey(type,"additionalProperties")&&guard_exports.IsObject(type.additionalProperties)?FromAdditionalProperties(context,entries2,type.additionalProperties,value):value}function FromObject3(context,type,value){return guard_exports.IsObjectNotArray(value)?FromProperties2(context,type,value):value}function FromPatternProperties(context,type,value){let entries2=guard_exports.EntriesRegExp(type.patternProperties),keys=guard_exports.Keys(value);for(let[regexp,schema]of entries2)for(let key of keys)regexp.test(key)&&(value[key]=FromType3(context,schema,value[key]));return guard_exports.HasPropertyKey(type,"additionalProperties")&&guard_exports.IsObject(type.additionalProperties)?FromAdditionalProperties(context,entries2,type.additionalProperties,value):value}function FromRecord2(context,type,value){return guard_exports.IsObjectNotArray(value)?FromPatternProperties(context,type,value):value}function FromRef2(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType3(context,context[type.$ref],value):value}function FromString6(_context,_type,value){let result=try_exports.TryString(value);return try_exports.IsOk(result)?result.value:value}function FromTemplateLiteral(context,type,value){return FromType3(context,Evaluate(type),value)}function FromTuple2(context,type,value){if(!guard_exports.IsArray(value))return value;for(let index3=0;index3<Math.min(type.items.length,value.length);index3++)value[index3]=FromType3(context,type.items[index3],value[index3]);return value}function FromUndefined(_context,_type,value){let result=try_exports.TryUndefined(value);return try_exports.IsOk(result)?result.value:value}function FromUnion2(context,type,value){if(type.anyOf.some(type2=>Check2(context,type2,value)))return value;let selected=type.anyOf.map(type2=>FromType3(context,type2,Clone2(value))).find(value2=>Check2(context,type,value2));return guard_exports.IsUndefined(selected)?value:selected}function FromVoid(_context,_type,value){let result=try_exports.TryUndefined(value);return try_exports.IsOk(result)?void 0:value}function FromType3(context,type,value){return IsArray(type)?FromArray3(context,type,value):IsBigInt(type)?FromBigInt5(context,type,value):IsBoolean(type)?FromBoolean5(context,type,value):IsCyclic(type)?FromCyclic2(context,type,value):IsEnum(type)?FromEnum(context,type,value):IsInteger(type)?FromInteger(context,type,value):IsIntersect(type)?FromIntersect2(context,type,value):IsLiteral(type)?FromLiteral(context,type,value):IsNull(type)?FromNull(context,type,value):IsNumber(type)?FromNumber4(context,type,value):IsObject(type)?FromObject3(context,type,value):IsRecord(type)?FromRecord2(context,type,value):IsRef(type)?FromRef2(context,type,value):IsString(type)?FromString6(context,type,value):IsTemplateLiteral(type)?FromTemplateLiteral(context,type,value):IsTuple(type)?FromTuple2(context,type,value):IsUndefined(type)?FromUndefined(context,type,value):IsUnion(type)?FromUnion2(context,type,value):IsVoid(type)?FromVoid(context,type,value):value}function Convert(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return FromType3(context,type,value)}function FromArray4(context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<value.length;i++)value[i]=FromType4(context,type.items,value[i]);return value}function FromCyclic3(context,type,value){return FromType4({...context,...type.$defs},Ref(type.$ref),value)}function FromDefault(type,value){return guard_exports.IsUndefined(value)?guard_exports.IsFunction(type.default)?type.default():Clone2(type.default):value}function FromIntersect3(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType4(context,evaluated,value)}function FromObject4(context,type,value){if(!guard_exports.IsObject(value))return value;let knownPropertyKeys=guard_exports.Keys(type.properties);for(let key of knownPropertyKeys){let propertyValue=FromType4(context,type.properties[key],value[key]);guard_exports.IsUndefined(propertyValue)&&(IsOptional(type.properties[key])||!guard_exports.HasPropertyKey(type.properties[key],"default"))||(value[key]=propertyValue)}if(!IsAdditionalProperties(type)||guard_exports.IsBoolean(type.additionalProperties))return value;for(let key of guard_exports.Keys(value))knownPropertyKeys.includes(key)||(value[key]=FromType4(context,type.additionalProperties,value[key]));return value}function FromRecord3(context,type,value){if(!guard_exports.IsObject(value))return value;let[recordKey,recordValue]=[new RegExp(RecordPattern(type)),RecordValue(type)];for(let key of guard_exports.Keys(value))recordKey.test(key)&&IsDefault(recordValue)&&(value[key]=FromType4(context,recordValue,value[key]));if(!IsAdditionalProperties(type))return value;for(let key of guard_exports.Keys(value))recordKey.test(key)||(value[key]=FromType4(context,type.additionalProperties,value[key]));return value}function FromRef3(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType4(context,context[type.$ref],value):value}function FromTuple3(context,schema,value){if(!guard_exports.IsArray(value))return value;let[items,max]=[schema.items,Math.max(schema.items.length,value.length)];for(let i=0;i<max;i++)i<items.length&&(value[i]=FromType4(context,items[i],value[i]));return value}function FromUnion3(context,schema,value){for(let inner of schema.anyOf){let result=FromType4(context,inner,Clone2(value));if(Check2(context,inner,result))return result}return value}function FromType4(context,type,value){let defaulted=IsDefault(type)?FromDefault(type,value):value;return IsArray(type)?FromArray4(context,type,defaulted):IsCyclic(type)?FromCyclic3(context,type,defaulted):IsIntersect(type)?FromIntersect3(context,type,defaulted):IsObject(type)?FromObject4(context,type,defaulted):IsRecord(type)?FromRecord3(context,type,defaulted):IsRef(type)?FromRef3(context,type,defaulted):IsTuple(type)?FromTuple3(context,type,defaulted):IsUnion(type)?FromUnion3(context,type,defaulted):defaulted}function Default(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return FromType4(context,type,value)}function Pipeline(pipeline){return(...args)=>{let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return pipeline.reduce((result,func)=>func(context,type,result),value)}}function Decode2(_context,type,value){return type["~codec"].decode(value)}function Encode2(_context,type,value){return type["~codec"].encode(value)}function Callback(direction,context,type,value){return IsCodec(type)?guard_exports.IsEqual(direction,"Decode")?Decode2(context,type,value):Encode2(context,type,value):value}function Decode3(direction,context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<value.length;i++)value[i]=FromType5(direction,context,type.items,value[i]);return Callback(direction,context,type,value)}function Encode3(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsArray(exterior))return exterior;for(let i=0;i<exterior.length;i++)exterior[i]=FromType5(direction,context,type.items,exterior[i]);return exterior}function FromArray5(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode3(direction,context,type,value):Encode3(direction,context,type,value)}function FromCyclic4(direction,context,type,value){return value=FromType5(direction,{...context,...type.$defs},Ref(type.$ref),value),Callback(direction,context,type,value)}function MergeInteriors(interiors){return interiors.reduce((results,interior)=>({...results,...interior}),{})}function NonMatchingInterior(value,interiors){for(let interior of interiors)if(!guard_exports.IsDeepEqual(value,interior))return interior;return value}function Decode4(direction,context,type,value){if(guard_exports.IsEqual(type.allOf.length,0))return Callback(direction,context,type,value);let interiors=type.allOf.map(schema=>FromType5(direction,context,schema,Clean(schema,Clone2(value)))),exterior=interiors.every(result=>guard_exports.IsObject(result))?MergeInteriors(interiors):NonMatchingInterior(value,interiors);return Callback(direction,context,type,exterior)}function Encode4(direction,context,type,value){if(guard_exports.IsEqual(type.allOf.length,0))return Callback(direction,context,type,value);let exterior=Callback(direction,context,type,value),interiors=type.allOf.map(schema=>FromType5(direction,context,schema,Clean(schema,Clone2(exterior))));return interiors.every(result=>guard_exports.IsObject(result))?MergeInteriors(interiors):NonMatchingInterior(exterior,interiors)}function FromIntersect4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode4(direction,context,type,value):Encode4(direction,context,type,value)}function Decode5(direction,context,type,value){if(!guard_exports.IsObjectNotArray(value))return value;for(let key of guard_exports.Keys(type.properties))!guard_exports.HasPropertyKey(value,key)||IsOptionalUndefined(type.properties[key],key,value)||(value[key]=FromType5(direction,context,type.properties[key],value[key]));return Callback(direction,context,type,value)}function Encode5(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsObjectNotArray(exterior))return exterior;for(let key of guard_exports.Keys(type.properties))!guard_exports.HasPropertyKey(exterior,key)||IsOptionalUndefined(type.properties[key],key,exterior)||(exterior[key]=FromType5(direction,context,type.properties[key],exterior[key]));return exterior}function FromObject5(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode5(direction,context,type,value):Encode5(direction,context,type,value)}function Decode6(direction,context,type,value){if(!guard_exports.IsObjectNotArray(value))return value;let regexp=new RegExp(RecordPattern(type));for(let key of guard_exports.Keys(value))regexp.test(key)&&(value[key]=FromType5(direction,context,RecordValue(type),value[key]));return Callback(direction,context,type,value)}function Encode6(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsObjectNotArray(exterior))return exterior;let regexp=new RegExp(RecordPattern(type));for(let key of guard_exports.Keys(exterior))regexp.test(key)&&(exterior[key]=FromType5(direction,context,RecordValue(type),exterior[key]));return exterior}function FromRecord4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode6(direction,context,type,value):Encode6(direction,context,type,value)}function ResolveRef2(direction,context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType5(direction,context,context[type.$ref],value):value}function FromRef4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Callback(direction,context,type,ResolveRef2(direction,context,type,value)):ResolveRef2(direction,context,type,Callback(direction,context,type,value))}function Decode7(direction,context,type,value){if(!guard_exports.IsArray(value))return value;for(let i=0;i<Math.min(type.items.length,value.length);i++)value[i]=FromType5(direction,context,type.items[i],value[i]);return Callback(direction,context,type,value)}function Encode7(direction,context,type,value){let exterior=Callback(direction,context,type,value);if(!guard_exports.IsArray(exterior))return value;for(let i=0;i<Math.min(type.items.length,exterior.length);i++)exterior[i]=FromType5(direction,context,type.items[i],exterior[i]);return exterior}function FromTuple4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode7(direction,context,type,value):Encode7(direction,context,type,value)}function Decode8(direction,context,type,value){for(let schema of type.anyOf){if(!Check2(context,schema,value))continue;let variant=FromType5(direction,context,schema,value);return Callback(direction,context,type,variant)}return value}function Encode8(direction,context,type,value){let exterior=Callback(direction,context,type,value);for(let schema of type.anyOf){let variant=FromType5(direction,context,schema,Clone2(exterior));if(Check2(context,schema,variant))return variant}return exterior}function FromUnion4(direction,context,type,value){return guard_exports.IsEqual(direction,"Decode")?Decode8(direction,context,type,value):Encode8(direction,context,type,value)}function FromType5(direction,context,type,value){return IsArray(type)?FromArray5(direction,context,type,value):IsCyclic(type)?FromCyclic4(direction,context,type,value):IsIntersect(type)?FromIntersect4(direction,context,type,value):IsObject(type)?FromObject5(direction,context,type,value):IsRecord(type)?FromRecord4(direction,context,type,value):IsRef(type)?FromRef4(direction,context,type,value):IsTuple(type)?FromTuple4(direction,context,type,value):IsUnion(type)?FromUnion4(direction,context,type,value):Callback(direction,context,type,value)}var DecodeError=class extends AssertError{constructor(value,errors){super("Decode",value,errors)}};function Assert2(context,type,value){if(!Check2(context,type,value))throw new DecodeError(value,Errors2(context,type,value));return value}function DecodeUnsafe(context,type,value){let sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType5("Decode",context,sorted,value)}var Decoder=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert2(context,type,value),(context,type,value)=>DecodeUnsafe(context,type,value)]);function Decode9(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Decoder(context,type,value)}var EncodeError=class extends AssertError{constructor(value,errors){super("Encode",value,errors)}};function Assert3(context,type,value){if(!Check2(context,type,value))throw new EncodeError(value,Errors2(context,type,value));return value}function EncodeUnsafe(context,type,value){let sorted=settings_exports.Get().unionPrioritySort?UnionPrioritySort(type):type;return FromType5("Encode",context,sorted,value)}var Encoder=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>EncodeUnsafe(context,type,value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert3(context,type,value)]);function Encode9(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});return Encoder(context,type,value)}function FromArray6(context,type){return IsCodec(type)||FromType6(context,type.items)}function FromCyclic5(context,type){return IsCodec(type)||FromRef5({...context,...type.$defs},Ref(type.$ref))}function FromIntersect5(context,type){return IsCodec(type)||type.allOf.some(type2=>FromType6(context,type2))}function FromObject6(context,type){return IsCodec(type)||guard_exports.Keys(type.properties).some(key=>FromType6(context,type.properties[key]))}function FromRecord5(context,type){return IsCodec(type)||FromType6(context,RecordValue(type))}function FromRef5(context,type){return visited.has(type.$ref)?!1:(visited.add(type.$ref),IsCodec(type)||guard_exports.HasPropertyKey(context,type.$ref)&&FromType6(context,context[type.$ref]))}function FromTuple5(context,type){return IsCodec(type)||type.items.some(type2=>FromType6(context,type2))}function FromUnion5(context,type){return IsCodec(type)||type.anyOf.some(type2=>FromType6(context,type2))}function FromType6(context,type){return IsArray(type)?FromArray6(context,type):IsCyclic(type)?FromCyclic5(context,type):IsIntersect(type)?FromIntersect5(context,type):IsObject(type)?FromObject6(context,type):IsRecord(type)?FromRecord5(context,type):IsRef(type)?FromRef5(context,type):IsTuple(type)?FromTuple5(context,type):IsUnion(type)?FromUnion5(context,type):IsCodec(type)}var visited=new Set;function HasCodec(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return visited.clear(),FromType6(context,type)}var CreateError=class extends Error{constructor(type,message){super(message),this.type=type}};function FromDefault2(_context,schema){return guard_exports.IsFunction(schema.default)?schema.default(schema):guard_exports.IsObject(schema.default)?Clone2(schema.default):schema.default}function FromArray7(context,type){if(IsUniqueItems(type)&&!IsDefault(type))throw new CreateError(type,"Arrays with uniqueItems constraints must specify a default annotation");let length=IsMinItems(type)?type.minItems:0;return Array.from({length},()=>FromType7(context,type.items))}function FromBigInt6(_context,type){return IsExclusiveMinimum(type)?BigInt(type.exclusiveMinimum)+BigInt(1):IsMinimum(type)?BigInt(type.minimum):BigInt(0)}function FromBoolean6(_context,_type){return!1}function FromConstructor(context,type){let instanceType=FromType7(context,type.instanceType);return class{constructor(){Object.assign(this,instanceType)}}}function FromCyclic6(context,type){return FromType7({...context,...type.$defs},Ref(type.$ref))}function FromEnum2(context,type){return FromType7(context,Evaluate(type))}function FromFunction(context,type){let returnType=FromType7(context,type.returnType);return()=>returnType}function FromInteger2(_context,type){return IsExclusiveMinimum(type)&&guard_exports.IsNumber(type.exclusiveMinimum)?type.exclusiveMinimum+1:IsMinimum(type)?type.minimum:0}function FromIntersect6(context,type){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType7(context,evaluated)}function FromLiteral2(_context,type){return type.const}function FromNever(_context,type){throw new CreateError(type,"Cannot create TNever types")}function FromNull2(_context,_type){return null}function FromNumber5(_context,type){return IsExclusiveMinimum(type)&&guard_exports.IsNumber(type.exclusiveMinimum)?type.exclusiveMinimum+1:IsMinimum(type)?type.minimum:0}function FromObject7(context,type){return(guard_exports.IsUndefined(type.required)?[]:type.required).reduce((result,key)=>({...result,[key]:FromType7(context,type.properties[key])}),{})}function FromRecord6(_context,type){if(IsMinProperties(type)&&!IsDefault(type))throw new CreateError(type,"Record with the minProperties constraint must have a default annotation");return{}}function FromRef6(context,type){return guard_exports.HasPropertyKey(context,type.$ref)?FromType7(context,context[type.$ref]):(()=>{throw new CreateError(type,"Unable to deref Ref")})()}function FromString7(_context,type){if((IsPattern(type)||IsFormat(type))&&!IsDefault(type))throw Error("Strings with format or pattern constraints must specify default");let minLength=IsMinLength(type)?type.minLength:0;return"".padEnd(minLength)}function FromSymbol(_context,_type){return Symbol()}function FromTemplateLiteral2(context,type){let decoded=TemplateLiteralDecode(type.pattern);if(IsString(decoded))throw new CreateError(type,"Unable to create TemplateLiteral due to infinite type expansion");return FromType7(context,decoded)}function FromTuple6(context,type){return Array.from({length:type.minItems},(_,i)=>FromType7(context,type.items[i]))}function FromUnion6(context,type){if(guard_exports.IsEqual(type.anyOf.length,0))throw Error("Unable to create Union with no variants");return FromType7(context,type.anyOf[0])}function FromType7(context,type){return IsDefault(type)?FromDefault2(context,type):IsArray(type)?FromArray7(context,type):IsBigInt(type)?FromBigInt6(context,type):IsBoolean(type)?FromBoolean6(context,type):IsConstructor(type)?FromConstructor(context,type):IsCyclic(type)?FromCyclic6(context,type):IsEnum(type)?FromEnum2(context,type):IsFunction(type)?FromFunction(context,type):IsInteger(type)?FromInteger2(context,type):IsIntersect(type)?FromIntersect6(context,type):IsLiteral(type)?FromLiteral2(context,type):IsNever(type)?FromNever(context,type):IsNull(type)?FromNull2(context,type):IsNumber(type)?FromNumber5(context,type):IsObject(type)?FromObject7(context,type):IsRecord(type)?FromRecord6(context,type):IsRef(type)?FromRef6(context,type):IsString(type)?FromString7(context,type):IsSymbol(type)?FromSymbol(context,type):IsTemplateLiteral(type)?FromTemplateLiteral2(context,type):IsTuple(type)?FromTuple6(context,type):IsUndefined(type)?void 0:IsUnion(type)?FromUnion6(context,type):IsVoid(type)?void 0:void 0}function Create(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return FromType7(context,type)}function Equal(left,right){return guard_exports.IsDeepEqual(left,right)}function Hash(value){return hash_exports.Hash(value)}var ParseError=class extends AssertError{constructor(value,errors){super("Parse",value,errors)}};function Assert4(context,type,value){if(!Check2(context,type,value))throw new ParseError(value,Errors2(context,type,value));return value}var Parser=Pipeline([(_context,_type,value)=>Clone2(value),(context,type,value)=>Default(context,type,value),(context,type,value)=>Convert(context,type,value),(context,type,value)=>Clean(context,type,value),(context,type,value)=>Assert4(context,type,value)]);function Parse(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]});if(Check2(context,type,value))return value;if(settings_exports.Get().correctiveParse)return Parser(context,type,value);throw new ParseError(value,Errors2(context,type,value))}function CreateUpdate(path,value){return{type:"update",path,value}}function CreateInsert(path,value){return{type:"insert",path,value}}function CreateDelete(path){return{type:"delete",path}}function AssertCanDiffObject(value){if(!(guard_exports.IsObject(value)&&guard_exports.IsEqual(guard_exports.Symbols(value).length,0)))throw new Error("Cannot create diffs for objects with symbols keys")}function*FromObject8(path,left,right){if(!guard_exports.IsObject(right)||guard_exports.IsArray(right))return yield CreateUpdate(path,right);AssertCanDiffObject(left),AssertCanDiffObject(right);let leftKeys=guard_exports.Keys(left),rightKeys=guard_exports.Keys(right);for(let key of rightKeys)guard_exports.HasPropertyKey(left,key)||guard_exports.IsUnsafePropertyKey(key)||(yield CreateInsert(`${path}/${key}`,right[key]));for(let key of leftKeys)guard_exports.HasPropertyKey(right,key)&&(guard_exports.IsUnsafePropertyKey(key)||Equal(left,right)||(yield*FromValue2(`${path}/${key}`,left[key],right[key])));for(let key of leftKeys)guard_exports.HasPropertyKey(right,key)||guard_exports.IsUnsafePropertyKey(key)||(yield CreateDelete(`${path}/${key}`))}function*FromArray8(path,left,right){if(!guard_exports.IsArray(right))return yield CreateUpdate(path,right);for(let i=0;i<Math.min(left.length,right.length);i++)yield*FromValue2(`${path}/${i}`,left[i],right[i]);for(let i=0;i<right.length;i++)i<left.length||(yield CreateInsert(`${path}/${i}`,right[i]));for(let i=left.length-1;i>=0;i--)i<right.length||(yield CreateDelete(`${path}/${i}`))}function*FromTypedArray(path,left,right){let typeLeft=globalThis.Object.getPrototypeOf(left).constructor.name,typeRight=globalThis.Object.getPrototypeOf(right).constructor.name;if(globals_exports.IsTypeArray(right)&&guard_exports.IsEqual(left.length,right.length)&&guard_exports.IsEqual(typeLeft,typeRight))for(let index3=0;index3<Math.min(left.length,right.length);index3++)yield*FromValue2(`${path}/${index3}`,left[index3],right[index3]);else return yield CreateUpdate(path,right)}function*FromUnknown(path,left,right){left!==right&&(yield CreateUpdate(path,right))}function*FromValue2(path,left,right){return globals_exports.IsTypeArray(left)?yield*FromTypedArray(path,left,right):guard_exports.IsArray(left)?yield*FromArray8(path,left,right):guard_exports.IsObject(left)?yield*FromObject8(path,left,right):yield*FromUnknown(path,left,right)}function Diff(current,next){return[...FromValue2("",current,next)]}var Insert=_Object_({type:Literal("insert"),path:String2(),value:Unknown()}),Update=Object({type:Literal("update"),path:String2(),value:Unknown()}),Delete2=_Object_({type:Literal("delete"),path:String2()}),Edit=Union([Insert,Update,Delete2]);function IsRoot(edits){return edits.length>0&&edits[0].path===""&&edits[0].type==="update"}function IsEmpty(edits){return edits.length===0}function Patch(current,edits){if(IsRoot(edits))return Clone2(edits[0].value);if(IsEmpty(edits))return Clone2(current);let clone=Clone2(current);for(let edit of edits)switch(edit.type){case"insert":{pointer_exports.Set(clone,edit.path,edit.value);break}case"update":{pointer_exports.Set(clone,edit.path,edit.value);break}case"delete":{pointer_exports.Delete(clone,edit.path);break}}return clone}var RepairError=class extends Error{constructor(context,type,value,message){super(message),this.context=context,this.type=type,this.value=value}};function MakeUnique(values){let[hashes,result]=[new Set,[]];for(let value of values){let hash=Hash(value);hashes.has(hash)||(hashes.add(hash),result.push(value))}return result}function FromArray9(context,type,value){if(Check2(context,type,value))return value;let created=guard_exports.IsArray(value)?value:Create(context,type),minimum=IsMinItems(type)&&created.length<type.minItems?[...created,...Array.from({length:type.minItems-created.length},()=>Create(context,type))]:created,repaired=(IsMaxItems(type)&&minimum.length>type.maxItems?minimum.slice(0,type.maxItems):minimum).map(value2=>FromType8(context,type.items,value2));if(!IsUniqueItems(type)||IsUniqueItems(type)&&!guard_exports.IsEqual(type.uniqueItems,!0))return repaired;let unique=MakeUnique(repaired);if(!Check2(context,type,unique))throw new RepairError(context,type,value,"Failed to repair Array due to uniqueItems constraint");return unique}function FromEnum3(context,type,value){return FromType8(context,Evaluate(type),value)}function FromIntersect7(context,type,value){let instantiated=Instantiate(context,type),evaluated=Evaluate(instantiated);return FromType8(context,evaluated,value)}function FromObject9(context,type,value){if(Check2(context,type,value))return value;if(!guard_exports.IsObjectNotArray(value))return Create(context,type);let required=new Set(guard_exports.IsUndefined(type.required)?[]:type.required),result={};for(let[key,schema]of guard_exports.Entries(type.properties))!required.has(key)&&guard_exports.IsUndefined(value[key])||(result[key]=key in value?FromType8(context,schema,value[key]):Create(context,schema));let evaluatedKeys=guard_exports.Keys(type.properties);if(IsAdditionalProperties(type)&&guard_exports.IsObject(type.additionalProperties))for(let key of guard_exports.Keys(value))evaluatedKeys.includes(key)||(result[key]=FromType8(context,type.additionalProperties,value[key]));return result}function FromRecord7(context,type,value){if(Check2(context,type,value))return value;if(guard_exports.IsNull(value)||!guard_exports.IsObject(value)||guard_exports.IsArray(value))return Create(context,type);let recordKey=new RegExp(RecordPattern(type)),recordValue=RecordValue(type),evaluatedKeys=new Set,result={};for(let[key,value_]of guard_exports.Entries(value))recordKey.test(key)&&(result[key]=FromType8(context,recordValue,value_),evaluatedKeys.add(key));if(IsAdditionalProperties(type))for(let key of guard_exports.Keys(value))evaluatedKeys.has(key)||(result[key]=FromType8(context,type.additionalProperties,value[key]));return result}function FromRef7(context,type,value){return guard_exports.HasPropertyKey(context,type.$ref)?FromType8(context,context[type.$ref],value):(()=>{throw new RepairError(context,type,value,"Unable to de-reference target type")})()}function FromTemplateLiteral3(context,type,value){let decoded=TemplateLiteralDecode(type.pattern);return FromType8(context,decoded,value)}function FromTuple7(context,schema,value){return Check2(context,schema,value)?value:guard_exports.IsArray(value)?schema.items.map((schema2,index3)=>FromType8(context,schema2,value[index3])):Create(context,schema)}function Deref(context,type,value){return IsRef(type)?guard_exports.HasPropertyKey(context,type.$ref)?Deref(context,context[type.$ref],value):(()=>{throw new Error("Unable to Deref target")})():type}function ScoreVariant(context,type,value){if(!(IsObject(type)&&guard_exports.IsObject(value)))return 0;let keys=guard_exports.Keys(value);return guard_exports.Entries(type.properties).reduce((result,[key,schema])=>{let literal=IsLiteral(schema)&&guard_exports.IsEqual(schema.const,value[key])?100:0,checks=Check2(context,schema,value[key])?10:0,exists=keys.includes(key)?1:0;return result+(literal+checks+exists)},0)}function UnionScoreSelect(context,type,value){let schemas=type.anyOf.map(schema=>Deref(context,schema,value)),[select,best]=[schemas[0],0];for(let schema of schemas){let score=ScoreVariant(context,schema,value);score>best&&(select=schema,best=score)}return select}function RepairUnion(context,type,value){let union2=Union(Flatten(type.anyOf)),schema=UnionScoreSelect(context,union2,value);return FromType8(context,schema,value)}function FromUnion7(context,type,value){return Check2(context,type,value)?Clone2(value):IsDefault(type)?Create(context,type):RepairUnion(context,type,value)}function FromUnknown2(context,type,value){if(Check2(context,type,value))return value;let converted=Convert(context,type,value);return Check2(context,type,converted)?converted:Create(context,type)}function AssertRepairableValue(context,type,value){if(globals_exports.IsDate(value)||globals_exports.IsMap(value)||globals_exports.IsSet(value)||globals_exports.IsTypeArray(value)||guard_exports.IsConstructor(value)||guard_exports.IsFunction(value))throw new RepairError(context,type,value,"Value is not repairable")}function AssertRepairableType(context,type,value){if(IsConstructor(type)||IsFunction(type)||IsNever(type))throw new RepairError(context,type,value,"Type is not repairable")}function CreateWhenUndefined(context,type,value){return guard_exports.IsUndefined(value)&&!IsUndefined(type)?Create(context,type):value}function FinalizeRepair(context,type,repaired){return IsRefine(type)?Check2(context,type,repaired)?repaired:Create(context,type):repaired}function FromType8(context,type,value){AssertRepairableValue(context,type,value),AssertRepairableType(context,type,value);let candidate=CreateWhenUndefined(context,type,value),repaired=IsArray(type)?FromArray9(context,type,candidate):IsEnum(type)?FromEnum3(context,type,candidate):IsIntersect(type)?FromIntersect7(context,type,candidate):IsObject(type)?FromObject9(context,type,candidate):IsRecord(type)?FromRecord7(context,type,candidate):IsRef(type)?FromRef7(context,type,candidate):IsTemplateLiteral(type)?FromTemplateLiteral3(context,type,candidate):IsTuple(type)?FromTuple7(context,type,candidate):IsUnion(type)?FromUnion7(context,type,candidate):FromUnknown2(context,type,candidate);return FinalizeRepair(context,type,repaired)}function Repair(...args){let[context,type,value]=arguments_exports.Match(args,{3:(context2,type2,value2)=>[context2,type2,value2],2:(type2,value2)=>[{},type2,value2]}),repaired=FromType8(context,type,value);return Assert(context,type,repaired),repaired}var value_exports={};__export(value_exports,{Assert:()=>Assert,Check:()=>Check2,Clean:()=>Clean,Clone:()=>Clone2,Convert:()=>Convert,Create:()=>Create,Decode:()=>Decode9,Default:()=>Default,Diff:()=>Diff,Encode:()=>Encode9,Equal:()=>Equal,Errors:()=>Errors2,HasCodec:()=>HasCodec,Hash:()=>Hash,Parse:()=>Parse,Patch:()=>Patch,Pointer:()=>pointer_exports,Repair:()=>Repair});var value_default=value_exports;var compile_exports={};__export(compile_exports,{Code:()=>Code,Compile:()=>Compile,Validator:()=>Validator,default:()=>compile_default});function TsIgnore(){return"// @ts-ignore"}function Separator(){return""}function ImportSection(build){return[...build.UseUnevaluated()?['import { CheckContext } from "typebox/schema"']:[],'import { Hashing } from "typebox/system"','import { Format } from "typebox/format"','import { Guard } from "typebox/guard"']}function ExternalSection(build){let{identifier}=build.External();return[Separator(),TsIgnore(),`let ${identifier} = []`,Separator(),TsIgnore(),`export function SetExternal(external) { ${identifier} = external.variables }`]}function FunctionSection(build){return build.Functions().map(func=>[Separator(),TsIgnore(),`${func};`].join(`
4
+ `))}function ExportSection(build){let body=build.UseUnevaluated()?`const context = new CheckContext({}, {}); return ${build.Entry()}`:`return ${build.Entry()}`;return[Separator(),TsIgnore(),`export function Check(value) { ${body} }`]}function Code(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]}),build=Build(context,type),code=[...ImportSection(build),...ExternalSection(build),...FunctionSection(build),...ExportSection(build)].join(`
5
+ `);return{External:build.External(),Code:code}}var Validator=class{constructor(context,type){this.hasCodec=HasCodec(context,type),this.buildResult=Build(context,type),this.evaluateResult=this.buildResult.Evaluate()}IsAccelerated(){return this.evaluateResult.IsAccelerated()}Context(){return this.buildResult.Context()}Type(){return this.buildResult.Schema()}Code(){return this.evaluateResult.Code()}Check(value){return this.evaluateResult.Check(value)}Parse(value){if(this.Check(value))return value;if(settings_exports.Get().correctiveParse)return Parser(this.Context(),this.Type(),value);throw new ParseError(value,this.Errors(value))}Errors(value){return this.IsAccelerated()&&this.Check(value)?[]:Errors2(this.Context(),this.Type(),value)}Clean(value){return Clean(this.Context(),this.Type(),value)}Convert(value){return Convert(this.Context(),this.Type(),value)}Create(){return Create(this.Context(),this.Type())}Default(value){return Default(this.Context(),this.Type(),value)}Decode(value){return this.hasCodec?Decode9(this.Context(),this.Type(),value):this.Parse(value)}Encode(value){return this.hasCodec?Encode9(this.Context(),this.Type(),value):this.Parse(value)}};function Compile(...args){let[context,type]=arguments_exports.Match(args,{2:(context2,type2)=>[context2,type2],1:type2=>[{},type2]});return new Validator(context,type)}var compile_default=Compile;var DEFAULT_API="faux",DEFAULT_PROVIDER="faux",DEFAULT_MODEL_ID="faux-1",DEFAULT_MODEL_NAME="Faux Model",DEFAULT_BASE_URL="http://localhost:0",DEFAULT_MIN_TOKEN_SIZE=3,DEFAULT_MAX_TOKEN_SIZE=5,DEFAULT_USAGE={input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};function fauxText(text){return{type:"text",text}}function fauxThinking(thinking){return{type:"thinking",thinking}}function fauxToolCall(name,arguments_,options={}){return{type:"toolCall",id:options.id??randomId("tool"),name,arguments:arguments_}}function normalizeFauxAssistantContent(content){return typeof content=="string"?[fauxText(content)]:Array.isArray(content)?content:[content]}function fauxAssistantMessage(content,options={}){return{role:"assistant",content:normalizeFauxAssistantContent(content),api:DEFAULT_API,provider:DEFAULT_PROVIDER,model:DEFAULT_MODEL_ID,usage:DEFAULT_USAGE,stopReason:options.stopReason??"stop",...options.deferred===void 0?{}:{deferred:options.deferred},...options.errorMessage===void 0?{}:{errorMessage:options.errorMessage},...options.responseId===void 0?{}:{responseId:options.responseId},timestamp:options.timestamp??Date.now()}}function estimateTokens(text){return Math.ceil(text.length/4)}function randomId(prefix){return`${prefix}:${Date.now()}:${Math.random().toString(36).slice(2)}`}function contentToText(content){return typeof content=="string"?content:content.map(block=>block.type==="text"?block.text:`[image:${block.mimeType}:${block.data.length}]`).join(`
6
+ `)}function assistantContentToText(content){return content.map(block=>block.type==="text"?block.text:block.type==="thinking"?block.thinking:`${block.name}:${JSON.stringify(block.arguments)}`).join(`
7
+ `)}function toolResultToText(message){return[message.toolName,...message.content.map(block=>contentToText([block]))].join(`
8
+ `)}function messageToText(message){return message.role==="system"?[getSystemMessageText(message),...message.toolsRemoved?.map(tool=>`tool-:${JSON.stringify(tool)}`)??[],...message.toolsAdded?.map(tool=>`tool+:${JSON.stringify(tool)}`)??[]].filter(part=>part.length>0).join(`
9
+ `):message.role==="user"?contentToText(message.content):message.role==="assistant"?assistantContentToText(message.content):toolResultToText(message)}function joinedLength(messages,count=messages.length){let length=count>0?(count-1)*2:0;for(let index3=0;index3<count;index3++)length+=messages[index3].length;return length}function commonPromptPrefixLength(previous,current){let index3=0;for(;index3<previous.length&&index3<current.length&&previous[index3]===current[index3];)index3++;let rest=messages=>index3===messages.length?"":(index3>0?`
10
+
11
+ `:"")+messages.slice(index3).join(`
12
+
13
+ `);return joinedLength(previous,index3)+commonPrefixLength(rest(previous),rest(current))}function commonPrefixLength(a,b){let length=Math.min(a.length,b.length),index3=0;for(;index3<length&&a[index3]===b[index3];)index3++;return index3}function withUsageEstimate(message,context,options,promptCache){let prompt=context.messages.map(message2=>`${message2.role}:${messageToText(message2)}`),promptLength=joinedLength(prompt),promptTokens=Math.ceil(promptLength/4),outputTokens=estimateTokens(assistantContentToText(message.content)),input=promptTokens,cacheRead=0,cacheWrite=0,sessionId=options?.sessionId;if(sessionId&&options?.cacheRetention!=="none"){let previousPrompt=promptCache.get(sessionId);if(previousPrompt){let cachedChars=commonPromptPrefixLength(previousPrompt,prompt);cacheRead=Math.ceil(cachedChars/4),cacheWrite=Math.max(0,promptTokens-cacheRead)}else cacheWrite=promptTokens;input=0,promptCache.set(sessionId,prompt)}return{...message,usage:{input,output:outputTokens,cacheRead,cacheWrite,totalTokens:input+outputTokens+cacheRead+cacheWrite,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}}function splitStringByTokenSize(text,minTokenSize,maxTokenSize){let chunks=[],index3=0;for(;index3<text.length;){let tokenSize=minTokenSize+Math.floor(Math.random()*(maxTokenSize-minTokenSize+1)),charSize=Math.max(1,tokenSize*4);chunks.push(text.slice(index3,index3+charSize)),index3+=charSize}return chunks.length>0?chunks:[""]}function cloneMessage(message,api,provider,modelId){let cloned=structuredClone(message);return{...cloned,api,provider,model:modelId,timestamp:cloned.timestamp??Date.now(),usage:cloned.usage??DEFAULT_USAGE}}function createDeferredMessage(model,handle){return{role:"assistant",content:[],api:model.api,provider:model.provider,model:model.id,usage:DEFAULT_USAGE,stopReason:"deferred",deferred:handle,timestamp:Date.now()}}function createErrorMessage(error,api,provider,modelId){return{role:"assistant",content:[],api,provider,model:modelId,usage:DEFAULT_USAGE,stopReason:"error",errorMessage:error instanceof Error?error.message:String(error),timestamp:Date.now()}}function createAbortedMessage(partial){return{...partial,stopReason:"aborted",errorMessage:"Request was aborted",timestamp:Date.now()}}function scheduleChunk(chunk,tokensPerSecond){if(!tokensPerSecond||tokensPerSecond<=0)return new Promise(resolve=>queueMicrotask(resolve));let delayMs=estimateTokens(chunk)/tokensPerSecond*1e3;return new Promise(resolve=>setTimeout(resolve,delayMs))}async function streamWithDeltas(stream2,message,minTokenSize,maxTokenSize,tokensPerSecond,signal){let partial={...message,content:[],stopReason:"pending"};if(signal?.aborted){let aborted=createAbortedMessage(partial);stream2.push({type:"error",reason:"aborted",error:aborted}),stream2.end(aborted);return}stream2.push({type:"start",partial:{...partial}});for(let index3=0;index3<message.content.length;index3++){if(signal?.aborted){let aborted=createAbortedMessage(partial);stream2.push({type:"error",reason:"aborted",error:aborted}),stream2.end(aborted);return}let block=message.content[index3];if(block.type==="thinking"){partial.content=[...partial.content,{type:"thinking",thinking:""}],stream2.push({type:"thinking_start",contentIndex:index3,partial:{...partial}});for(let chunk of splitStringByTokenSize(block.thinking,minTokenSize,maxTokenSize)){if(await scheduleChunk(chunk,tokensPerSecond),signal?.aborted){let aborted=createAbortedMessage(partial);stream2.push({type:"error",reason:"aborted",error:aborted}),stream2.end(aborted);return}partial.content[index3].thinking+=chunk,stream2.push({type:"thinking_delta",contentIndex:index3,delta:chunk,partial:{...partial}})}stream2.push({type:"thinking_end",contentIndex:index3,content:block.thinking,partial:{...partial}});continue}if(block.type==="text"){partial.content=[...partial.content,{type:"text",text:""}],stream2.push({type:"text_start",contentIndex:index3,partial:{...partial}});for(let chunk of splitStringByTokenSize(block.text,minTokenSize,maxTokenSize)){if(await scheduleChunk(chunk,tokensPerSecond),signal?.aborted){let aborted=createAbortedMessage(partial);stream2.push({type:"error",reason:"aborted",error:aborted}),stream2.end(aborted);return}partial.content[index3].text+=chunk,stream2.push({type:"text_delta",contentIndex:index3,delta:chunk,partial:{...partial}})}stream2.push({type:"text_end",contentIndex:index3,content:block.text,partial:{...partial}});continue}partial.content=[...partial.content,{type:"toolCall",id:block.id,name:block.name,arguments:{}}],stream2.push({type:"toolcall_start",contentIndex:index3,partial:{...partial}});let toolArguments=new ToolCallArgumentsStream;for(let chunk of splitStringByTokenSize(JSON.stringify(block.arguments),minTokenSize,maxTokenSize)){if(await scheduleChunk(chunk,tokensPerSecond),signal?.aborted){let aborted=createAbortedMessage(partial);stream2.push({type:"error",reason:"aborted",error:aborted}),stream2.end(aborted);return}partial.content[index3].arguments=toolArguments.append(chunk),stream2.push({type:"toolcall_delta",contentIndex:index3,delta:chunk,partial:{...partial}})}partial.content[index3].arguments=block.arguments,stream2.push({type:"toolcall_end",contentIndex:index3,toolCall:block,partial:{...partial}})}if(message.stopReason==="pending")throw new Error("Faux response ended without a stop reason");if(message.stopReason==="error"||message.stopReason==="aborted"){stream2.push({type:"error",reason:message.stopReason,error:message}),stream2.end(message);return}stream2.push({type:"done",reason:message.stopReason,message}),stream2.end(message)}function createFauxCore(options){let api=options.api??randomId(DEFAULT_API),provider=options.provider??DEFAULT_PROVIDER,minTokenSize=Math.max(1,Math.min(options.tokenSize?.min??DEFAULT_MIN_TOKEN_SIZE,options.tokenSize?.max??DEFAULT_MAX_TOKEN_SIZE)),maxTokenSize=Math.max(minTokenSize,options.tokenSize?.max??DEFAULT_MAX_TOKEN_SIZE),pendingResponses=[],tokensPerSecond=options.tokensPerSecond,state2={callCount:0,deferredFetchCount:0,cancelledDeferred:[]},promptCache=new Map,deferredResponses=new Map,models=(options.models?.length?options.models:[{id:DEFAULT_MODEL_ID,name:DEFAULT_MODEL_NAME,reasoning:!1,input:["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384}]).map(definition=>({id:definition.id,name:definition.name??definition.id,api,provider,baseUrl:DEFAULT_BASE_URL,reasoning:definition.reasoning??!1,input:definition.input??["text","image"],inputLimits:definition.inputLimits,cost:definition.cost??{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:definition.contextWindow??128e3,maxTokens:definition.maxTokens??16384})),resolveResponse=async(step,context,streamOptions,requestModel)=>{let resolved=typeof step=="function"?await step(context,streamOptions,state2,requestModel):step;return withUsageEstimate(cloneMessage(resolved,api,provider,requestModel.id),context,streamOptions,promptCache)},stream2=(requestModel,context,streamOptions)=>{let outer=createAssistantMessageEventStream(),step=pendingResponses.shift();return state2.callCount++,queueMicrotask(async()=>{try{if(await streamOptions?.onResponse?.({status:200,headers:{}},requestModel),!step){let message2=createErrorMessage(new Error("No more faux responses queued"),api,provider,requestModel.id);message2=withUsageEstimate(message2,context,streamOptions,promptCache),outer.push({type:"error",reason:"error",error:message2}),outer.end(message2);return}if(streamOptions?.deferred){let handle={provider:requestModel.provider,modelId:requestModel.id,api:requestModel.api,id:randomId("deferred"),...options.deferred?.pollAfterMs!==void 0?{pollAfterMs:options.deferred.pollAfterMs}:{}};deferredResponses.set(handle.id,{handle,step,context,options:streamOptions,model:requestModel,pendingFetches:Math.max(0,Math.floor(options.deferred?.pendingFetches??0)),cancelled:!1}),await streamWithDeltas(outer,createDeferredMessage(requestModel,handle),minTokenSize,maxTokenSize,tokensPerSecond,streamOptions.signal);return}let message=await resolveResponse(step,context,streamOptions,requestModel);await streamWithDeltas(outer,message,minTokenSize,maxTokenSize,tokensPerSecond,streamOptions?.signal)}catch(error){let message=createErrorMessage(error,api,provider,requestModel.id);outer.push({type:"error",reason:"error",error:message}),outer.end(message)}}),outer},streamSimple2=(streamModel,context,streamOptions)=>stream2(streamModel,context,streamOptions),fetchDeferred=(requestModel,handle,fetchOptions)=>{let outer=createAssistantMessageEventStream();return state2.deferredFetchCount++,queueMicrotask(async()=>{try{await fetchOptions?.onResponse?.({status:200,headers:{}},requestModel);let entry=deferredResponses.get(handle.id);if(!entry||entry.handle.provider!==handle.provider||entry.handle.modelId!==handle.modelId||entry.handle.api!==handle.api)throw new Error(`Unknown faux deferred response: ${handle.id}`);if(entry.cancelled)throw new Error(`Faux deferred response was cancelled: ${handle.id}`);if(entry.pendingFetches>0){entry.pendingFetches--,await streamWithDeltas(outer,createDeferredMessage(requestModel,entry.handle),minTokenSize,maxTokenSize,tokensPerSecond,fetchOptions?.signal);return}if(!entry.final){let{deferred:_deferred,signal:_submissionSignal,onResponse:_submissionOnResponse,...submissionOptions}=entry.options??{};try{entry.final=await resolveResponse(entry.step,entry.context,submissionOptions,entry.model)}catch(error){entry.final=createErrorMessage(error,api,provider,entry.model.id)}}await streamWithDeltas(outer,entry.final,minTokenSize,maxTokenSize,tokensPerSecond,fetchOptions?.signal)}catch(error){let message=createErrorMessage(error,api,provider,requestModel.id);outer.push({type:"error",reason:"error",error:message}),outer.end(message)}}),outer},cancelDeferred=async(requestModel,handle,cancelOptions)=>{state2.cancelledDeferred.push(structuredClone(handle));let entry=deferredResponses.get(handle.id);entry&&(entry.cancelled=!0),await cancelOptions?.onResponse?.({status:200,headers:{}},requestModel)};function getModel2(requestedModelId){return requestedModelId?models.find(candidate=>candidate.id===requestedModelId):models[0]}return{api,provider,models,stream:stream2,streamSimple:streamSimple2,fetchDeferred,cancelDeferred,getModel:getModel2,state:state2,setResponses(responses){pendingResponses=[...responses]},appendResponses(responses){pendingResponses.push(...responses)},getPendingResponseCount(){return pendingResponses.length}}}function fauxProvider(options={}){let core=createFauxCore(options);return{provider:createProvider({id:core.provider,auth:{apiKey:{name:"Faux",resolve:async()=>({auth:{}})}},models:core.models,api:{stream:core.stream,streamSimple:core.streamSimple,fetchDeferred:core.fetchDeferred,cancelDeferred:core.cancelDeferred}}),api:core.api,models:core.models,getModel:core.getModel,state:core.state,setResponses:core.setResponses,appendResponses:core.appendResponses,getPendingResponseCount:core.getPendingResponseCount}}var OVERFLOW_PATTERNS=[/prompt (?:is )?too long/i,/prompt exceeds max length/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?|\s*\([\d,]+\))/i,/context window exceeded/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds (?:the )?maximum allowed input length of [\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,/prompt has [\d,]+ tokens?, but the configured context size is [\d,]+ tokens?/i,/model_context_window_exceeded/i,/prompt too long; exceeded (?:max )?context length/i,/range of input length should be/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^(?:[\w -]+ API error \(413\):|413(?:\s|:|$))/i],CEREBRAS_BODYLESS_OVERFLOW_PATTERN=/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i,NON_OVERFLOW_PATTERNS=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function isContextOverflow(message,contextWindow){return!!(message.stopReason==="error"&&message.errorMessage&&!NON_OVERFLOW_PATTERNS.some(p=>p.test(message.errorMessage))&&(OVERFLOW_PATTERNS.some(p=>p.test(message.errorMessage))||message.provider==="cerebras"&&CEREBRAS_BODYLESS_OVERFLOW_PATTERN.test(message.errorMessage))||contextWindow&&message.stopReason==="stop"&&message.usage.input+message.usage.cacheRead>contextWindow||contextWindow&&message.stopReason==="length"&&message.usage.output===0&&message.usage.input+message.usage.cacheRead>=contextWindow*.99)}function isRecoverableLength(message,desiredMaxOutput){return message.stopReason==="length"&&desiredMaxOutput>0&&message.usage.output<desiredMaxOutput}function getOverflowPatterns(){return[...OVERFLOW_PATTERNS]}function str(options={}){return{type:"string",...options}}function num(options={}){return{type:"number",...options}}function int(options={}){return{type:"integer",...options}}function bool(options={}){return{type:"boolean",...options}}function nul(options={}){return{type:"null",...options}}function oneOf(values,options={}){return{enum:values,...options}}function union(schemas,options={}){return{anyOf:schemas,...options}}function arr(items,options={}){return{type:"array",items,...options}}var Optional=class{schema;constructor(schema){this.schema=schema}};function opt(schema){return new Optional(schema)}function obj(properties,options={}){let{open,...annotations}=options,props={},required=[];for(let[name,property]of Object.entries(properties))property instanceof Optional?props[name]=property.schema:(props[name]=property,required.push(name));return{type:"object",properties:props,...required.length>0?{required}:{},...open===!0?{}:{additionalProperties:!1},...annotations}}var DEFAULT_BASE="https://json-schema.invalid/root.json",Resolver=class{draft;rootBase=DEFAULT_BASE;baseOf=new Map;dynamicAnchors=new Map;root;options;registry=new Map;rejectUnresolved;unresolved=new Set;resources=new Map;anchors=new Map;indexed=!1;constructor(root,options){this.draft=options.draft==="7"?"7":"2020-12",this.root=root,this.options=options,this.rejectUnresolved=options.unresolvedRefs==="reject"}baseFor(node,base){let indexed=this.baseOf.get(node);if(indexed!==void 0)return indexed;let id=node.$id;return typeof id!="string"?base:!this.indexed&&(this.ensureIndexed(),indexed=this.baseOf.get(node),indexed!==void 0)?indexed:this.draft==="7"&&(typeof node.$ref=="string"||id.startsWith("#"))?base:documentOf(resolveUri(id,base))}ensureIndexed(){if(!this.indexed){this.indexed=!0;for(let[uri,schema]of Object.entries(this.options.schemas??{}))this.registry.set(documentOf(resolveUri(uri,DEFAULT_BASE)),schema);this.resources.set(DEFAULT_BASE,this.root),this.index(this.root,DEFAULT_BASE)}}resolve(ref,base){if(this.ensureIndexed(),!this.rejectUnresolved)return this.find(ref,base);try{return this.find(ref,base)}catch{return this.unresolved.add(resolveUri(ref,base)),{node:!1,base}}}isUnresolved(ref,base){return this.unresolved.has(resolveUri(ref,base))}find(ref,base){let uri=resolveUri(ref,base),doc=documentOf(uri),fragment=uri.length>doc.length?decodeURIComponent(uri.slice(doc.length+1)):"",root=this.resources.has(doc)?this.resources.get(doc):this.load(doc);if(root===void 0)throw new Error(`Unresolved $ref ${ref} (no schema registered for ${doc})`);if(fragment==="")return{node:root,base:doc};if(fragment.startsWith("/"))return this.pointer(root,doc,fragment);let target=this.anchors.get(`${doc}#${fragment}`);if(target===void 0)throw new Error(`Unresolved $ref ${ref} (no anchor ${fragment} in ${doc})`);return{node:target,base:this.baseOf.get(target)??doc}}isResource(node,base){return this.ensureIndexed(),this.resources.get(base)===node}index(node,base){if(!isSchemaObject(node)||this.baseOf.has(node))return;let b=base,refOnly=this.draft==="7"&&typeof node.$ref=="string";if(!refOnly&&typeof node.$id=="string")if(this.draft==="7"&&node.$id.startsWith("#"))this.anchors.set(documentOf(b)+node.$id,node);else{let uri=resolveUri(node.$id,b);b=documentOf(uri),this.resources.set(b,node),uri.length>b.length+1&&this.anchors.set(uri,node)}if(this.baseOf.set(node,b),!refOnly){this.draft!=="7"&&(typeof node.$anchor=="string"&&this.anchors.set(`${b}#${node.$anchor}`,node),typeof node.$dynamicAnchor=="string"&&(this.anchors.set(`${b}#${node.$dynamicAnchor}`,node),this.dynamicAnchors.set(`${b}#${node.$dynamicAnchor}`,node)));for(let key of SCHEMA_KEYWORDS)this.index(node[key],b);for(let key of MAP_KEYWORDS){let map2=node[key];if(isSchemaObject(map2))for(let k of Object.keys(map2))this.index(map2[k],b)}for(let key of ARRAY_KEYWORDS){let list=node[key];if(Array.isArray(list))for(let s of list)this.index(s,b)}}}load(doc){let schema=this.registry.get(doc);if(schema!==void 0)return this.resources.set(doc,schema),this.index(schema,doc),schema}pointer(root,base,fragment){let node=root,b=base;for(let raw of fragment.split("/").slice(1)){let key=raw.replace(/~1/g,"/").replace(/~0/g,"~");if(node=typeof node=="object"&&node!==null&&Object.hasOwn(node,key)?node[key]:void 0,node===void 0)throw new Error(`Unresolved $ref #${fragment} in ${base}`);typeof node=="object"&&node!==null&&(b=this.baseOf.get(node)??b)}return{node,base:b}}},SCHEMA_KEYWORDS=["additionalProperties","propertyNames","contains","not","if","then","else","unevaluatedProperties","unevaluatedItems","additionalItems","contentSchema","items"],MAP_KEYWORDS=["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"],ARRAY_KEYWORDS=["allOf","anyOf","oneOf","prefixItems","items"];function isSchemaObject(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function resolveUri(ref,base){try{return new URL(ref,base).href}catch{return ref.startsWith("#")?documentOf(base)+ref:ref}}function documentOf(uri){let hash=uri.indexOf("#");return hash<0?uri:uri.slice(0,hash)}function sharedRegex(source){let hit=regexes.get(source)?.deref();if(hit!==void 0)return hit;let re;try{re=new RegExp(source,"u")}catch{re=new RegExp(source)}return regexes.set(source,new WeakRef(re)),regexCleanup.register(re,source),re}var regexes=new Map,regexCleanup=new FinalizationRegistry(source=>{regexes.get(source)?.deref()===void 0&&regexes.delete(source)});var Coercer=class{c;schema;entered=[];cuts=0;memo=void 0;constructor(compiler2,schema){this.c=compiler2,this.schema=schema}coerce(value){let base=this.c.r.rootBase,withoutNulls=this.dropOptionalNulls(value,this.schema,base);return this.coerceTypes(this.convertOnly(withoutNulls),this.schema,base)}convertOnly(value){try{return this.convert(this.schema,this.c.r.rootBase,value)}finally{this.memo=void 0,this.cuts=0}}reenter(node,base,value,memoize){let entered=this.entered;for(let i=0;i<entered.length;i+=2)if(entered[i]===node&&Object.is(entered[i+1],value))return this.cuts++,value;let memo=memoize?this.memo?.get(node):void 0;if(memo?.has(value))return memo.get(value);let cuts=this.cuts;entered.push(node,value);let result;try{result=this.convert(node,base,value)}finally{entered.length-=2}if(memoize&&this.cuts===cuts){this.memo??=new Map;let values=this.memo.get(node);values===void 0&&(values=new Map,this.memo.set(node,values)),values.set(value,result)}return result}passes(node,base,value){try{return this.c.check(node,this.baseOf(node,base))(value)}catch{return}}baseOf(node,base){return isSchemaObject(node)?this.c.r.baseFor(node,base):base}dropOptionalNulls(value,schema,base){if(!isSchemaObject(schema))return value;let b=this.baseOf(schema,base);if(Array.isArray(value))return mapItems(value,(item,i)=>{let itemSchema=itemSchemaAt(schema,i);return itemSchema===void 0?item:this.dropOptionalNulls(item,itemSchema,b)});if(!isPlainObject(value))return value;let properties=isSchemaObject(schema.properties)?schema.properties:{},patterns=isSchemaObject(schema.patternProperties)?Object.entries(schema.patternProperties).map(([pattern,item])=>[sharedRegex(pattern),item]):[],additional=isSchemaObject(schema.additionalProperties)?schema.additionalProperties:void 0;if(patterns.length===0&&additional===void 0&&!isSchemaObject(schema.properties))return value;let required=new Set(Array.isArray(schema.required)?schema.required:[]),out,set=(key,next)=>{next!==(out??value)[key]&&(out??={...value},out[key]=next)};for(let[key,property]of Object.entries(properties)){if(!Object.hasOwn(value,key))continue;let isRef=isSchemaObject(property)&&typeof property.$ref=="string";if(value[key]===null&&!required.has(key)&&!isRef&&this.passes(property,b,null)===!1){out??={...value},delete out[key];continue}set(key,this.dropOptionalNulls(value[key],property,b))}if(patterns.length>0||additional!==void 0)for(let key of Object.keys(value)){let matched=Object.hasOwn(properties,key);for(let[pattern,item]of patterns)pattern.test(key)&&(matched=!0,set(key,this.dropOptionalNulls((out??value)[key],item,b)));!matched&&additional!==void 0&&set(key,this.dropOptionalNulls(value[key],additional,b))}return out??value}convert(node,base,value){if(!isSchemaObject(node))return value;let b=this.baseOf(node,base);if(typeof node.$ref=="string"){let target;try{target=this.c.r.resolve(node.$ref,b)}catch{return value}return isSchemaObject(target.node)?this.reenter(target.node,target.base,value,!0):value}return this.convertNode(node,b,value)}convertNode(node,b,value){if(Object.hasOwn(node,"const"))return convertLiteral(node.const,value);if(Array.isArray(node.enum))return this.convertEnum(node,node.enum,b,value);if(Array.isArray(node.anyOf))return this.convertUnion(node,node.anyOf,b,value);if(Array.isArray(node.oneOf))return this.convertUnion(node,node.oneOf,b,value);if(Array.isArray(node.allOf)){let next=value;for(let member of node.allOf)next=this.convert(member,b,next);return this.convertMembers(node,b,next)}switch(node.type){case"string":return orValue(tryString(value),value);case"number":return orValue(tryNumber(value),value);case"integer":{let result=tryNumber(value);return result===void 0?value:Math.trunc(result.value)}case"boolean":return orValue(tryBoolean(value),value);case"null":return orValue(tryNull(value),value);case"array":return this.convertArray(node,b,value);case"object":return this.convertObject(node,b,value);case void 0:return node.properties!==void 0||node.patternProperties!==void 0?this.convertObject(node,b,value):node.items!==void 0||node.prefixItems!==void 0?this.convertArray(node,b,value):value;default:return value}}convertEnum(node,values,base,value){if(values.some(member=>member===value))return value;for(let member of values){let candidate=convertLiteral(member,value);if(candidate!==value&&this.passes(node,base,candidate)===!0)return candidate}return value}convertUnion(node,branches,base,value){if(branches.some(branch=>this.passes(branch,base,value)===!0))return this.convertMembers(node,base,value);for(let branch of branches){let candidate=this.convertMembers(node,base,this.convert(branch,base,value));if(this.passes(node,base,candidate)===!0)return candidate}return this.convertMembers(node,base,value)}convertMembers(node,base,value){return node.properties!==void 0||node.patternProperties!==void 0||node.additionalProperties!==void 0?this.convertObject(node,base,value):value}convertArray(node,base,value){let prefix=Array.isArray(node.items)?node.items:Array.isArray(node.prefixItems)?node.prefixItems:void 0;if(prefix!==void 0){if(!Array.isArray(value))return value;let rest=Array.isArray(node.items)?void 0:node.items;return mapItems(value,(item2,i)=>{let schema=i<prefix.length?prefix[i]:rest;return schema===void 0?item2:this.convert(schema,base,item2)})}if(Array.isArray(value))return node.items===void 0?value:mapItems(value,item2=>this.convert(node.items,base,item2));let item=node.items;return[isSchemaObject(item)?this.reenter(item,base,value,!1):value]}convertObject(node,base,value){if(!isPlainObject(value))return value;let properties=isSchemaObject(node.properties)?node.properties:{},patterns=isSchemaObject(node.patternProperties)?Object.entries(node.patternProperties).map(([pattern,schema])=>[sharedRegex(pattern),schema]):[],additional=isSchemaObject(node.additionalProperties)?node.additionalProperties:void 0,out;for(let key of Object.keys(value)){if(value[key]===void 0)continue;let next=value[key],matched=Object.hasOwn(properties,key);matched&&(next=this.convert(properties[key],base,next));for(let[pattern,schema]of patterns)pattern.test(key)&&(matched=!0,next=this.convert(schema,base,next));!matched&&additional!==void 0&&(next=this.convert(additional,base,next)),next!==value[key]&&(out??={...value},out[key]=next)}return out??value}coerceTypes(value,schema,base){if(!isSchemaObject(schema))return value;let b=this.baseOf(schema,base),next=value;if(Array.isArray(schema.allOf))for(let member of schema.allOf)next=this.coerceTypes(next,member,b);Array.isArray(schema.anyOf)&&(next=this.coerceUnion(next,schema.anyOf,b)),Array.isArray(schema.oneOf)&&(next=this.coerceUnion(next,schema.oneOf,b));let types=typesOf(schema),matchesUnionMember=types.length>1&&types.some(type=>matchesType(next,type));if(types.length>0&&!matchesUnionMember)for(let type of types){let candidate=coercePrimitive(next,type);if(candidate!==next){next=candidate;break}}return types.includes("object")&&isPlainObject(next)&&(next=this.coerceProperties(next,schema,b)),types.includes("array")&&Array.isArray(next)&&(next=this.coerceItems(next,schema,b)),next}coerceUnion(value,branches,base){for(let branch of branches)if(this.passes(branch,base,value)===!0)return value;for(let branch of branches){let coerced=this.coerceTypes(value,branch,base);if(this.passes(branch,base,coerced)===!0)return coerced}return value}coerceProperties(value,schema,base){let properties=isSchemaObject(schema.properties)?schema.properties:{},patterns=isSchemaObject(schema.patternProperties)?Object.entries(schema.patternProperties).map(([pattern,item])=>[sharedRegex(pattern),item]):[],additional=isSchemaObject(schema.additionalProperties)?schema.additionalProperties:void 0,out,set=(key,next)=>{next!==(out??value)[key]&&(out??={...value},out[key]=next)};for(let[key,property]of Object.entries(properties))key in value&&set(key,this.coerceTypes(value[key],property,base));for(let key of Object.keys(value)){let matched=Object.hasOwn(properties,key);for(let[pattern,item]of patterns)pattern.test(key)&&(matched=!0,set(key,this.coerceTypes((out??value)[key],item,base)));!matched&&additional!==void 0&&set(key,this.coerceTypes(value[key],additional,base))}return out??value}coerceItems(value,schema,base){return mapItems(value,(item,i)=>{let itemSchema=itemSchemaAt(schema,i);return isSchemaObject(itemSchema)?this.coerceTypes(item,itemSchema,base):item})}};function itemSchemaAt(schema,index3){return Array.isArray(schema.items)?schema.items[index3]:Array.isArray(schema.prefixItems)&&index3<schema.prefixItems.length?schema.prefixItems[index3]:schema.items}function mapItems(items,map2){let out;for(let i=0;i<items.length;i++){let next=map2(items[i],i);next!==items[i]&&(out??=items.slice(),out[i]=next)}return out??items}function orValue(result,value){return result===void 0?value:result.value}function convertLiteral(literal,value){if(literal===value)return value;let result=typeof literal=="string"?tryString(value):typeof literal=="number"?tryNumber(value):typeof literal=="boolean"?tryBoolean(value):void 0;return result!==void 0&&result.value===literal?result.value:value}function tryString(value){if(typeof value=="bigint"||typeof value=="boolean"||isFiniteNumber(value))return{value:String(value)};if(value===null)return{value:"null"};if(typeof value=="string")return{value};if(value===void 0)return{value:""}}var MAX_BIGINT=BigInt(Number.MAX_SAFE_INTEGER),MIN_BIGINT=BigInt(Number.MIN_SAFE_INTEGER);function tryNumber(value){if(typeof value=="bigint")return value<=MAX_BIGINT&&value>=MIN_BIGINT?{value:Number(value)}:void 0;if(typeof value=="boolean")return{value:value?1:0};if(isFiniteNumber(value))return{value};if(value==null)return{value:0};if(typeof value!="string")return;let coerced=+value;if(Number.isFinite(coerced))return{value:coerced};let lowercase=value.toLowerCase();if(lowercase==="false")return{value:0};if(lowercase==="true")return{value:1};let big=bigIntOfString(value);return big!==void 0&&big<=MAX_BIGINT&&big>=MIN_BIGINT?{value:Number(big)}:void 0}function bigIntOfString(value){if(/^-?(0|[1-9]\d*)n$/.test(value))return BigInt(value.slice(0,-1));if(/^-?(0|[1-9]\d*)\.\d+$/.test(value))return BigInt(value.split(".")[0]);if(/^-?(0|[1-9]\d*)$/.test(value))return BigInt(value)}function tryBoolean(value){if(typeof value=="bigint")return value===0n?{value:!1}:value===1n?{value:!0}:void 0;if(typeof value=="boolean")return{value};if(isFiniteNumber(value))return value===0?{value:!1}:value===1?{value:!0}:void 0;if(value==null)return{value:!1};if(typeof value!="string")return;let lowercase=value.toLowerCase();if(lowercase==="false"||value==="0")return{value:!1};if(lowercase==="true"||value==="1")return{value:!0}}function tryNull(value){if(typeof value=="bigint")return value===0n?{value:null}:void 0;if(typeof value=="boolean")return value===!1?{value:null}:void 0;if(isFiniteNumber(value))return value===0?{value:null}:void 0;if(value==null)return{value:null};if(typeof value!="string")return;let lowercase=value.toLowerCase();return lowercase==="undefined"||lowercase==="null"||value===""||value==="0"?{value:null}:void 0}function isFiniteNumber(value){return typeof value=="number"&&Number.isFinite(value)}function typesOf(schema){return typeof schema.type=="string"?[schema.type]:Array.isArray(schema.type)?schema.type.filter(type=>typeof type=="string"):[]}function matchesType(value,type){switch(type){case"number":return typeof value=="number";case"integer":return typeof value=="number"&&Number.isInteger(value);case"boolean":return typeof value=="boolean";case"string":return typeof value=="string";case"null":return value===null;case"array":return Array.isArray(value);case"object":return isPlainObject(value);default:return!1}}function coercePrimitive(value,type){switch(type){case"number":case"integer":{if(value===null)return 0;if(typeof value=="string"&&value.trim()!==""){let parsed=Number(value);if(type==="number"?Number.isFinite(parsed):Number.isInteger(parsed))return parsed}return typeof value=="boolean"?value?1:0:value}case"boolean":return value===null?!1:value==="true"||value===1?!0:value==="false"||value===0?!1:value;case"string":return value===null?"":typeof value=="number"||typeof value=="boolean"?String(value):value;case"null":return value===""||value===0||value===!1?null:value;default:return value}}function isPlainObject(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}var ALWAYS=()=>!0,NEVER=()=>!1,IS_STRING=v=>typeof v=="string",IS_NUMBER=v=>typeof v=="number",IS_INTEGER=v=>Number.isInteger(v),IS_BOOLEAN=v=>typeof v=="boolean",IS_NULL=v=>v===null,IS_ARRAY=v=>Array.isArray(v),IS_BYTES=v=>v instanceof Uint8Array,IS_OBJECT=v=>isObject(v);function isObject(v){return typeof v=="object"&&v!==null&&!Array.isArray(v)&&!(v instanceof Uint8Array)}var TYPE_CHECKS=new Map([["string",IS_STRING],["number",IS_NUMBER],["integer",IS_INTEGER],["boolean",IS_BOOLEAN],["null",IS_NULL],["array",IS_ARRAY],["object",IS_OBJECT],["bytes",IS_BYTES]]),leaves=new WeakMap([[IS_STRING,[1,void 0]],[IS_NUMBER,[2,void 0]],[IS_INTEGER,[3,void 0]],[IS_BOOLEAN,[4,void 0]],[IS_NULL,[5,void 0]],[ALWAYS,[6,void 0]]]);function leafOf(check){return leaves.get(check)}function leaf(code,arg,check){return leaves.set(check,[code,arg]),check}var Bounds=class{min;max;xmin;xmax;constructor(min,max,xmin,xmax){this.min=min,this.max=max,this.xmin=xmin,this.xmax=xmax}};function leafOk(code,x,arg){switch(code){case 1:return typeof x=="string";case 2:return typeof x=="number";case 3:return Number.isInteger(x);case 4:return typeof x=="boolean";case 5:return x===null;case 7:return x===arg;case 8:{let list=arg;for(let i=0;i<list.length;i++)if(list[i]===x)return!0;return!1}case 9:return(typeBits(x)&arg)!==0;case 10:return Number.isInteger(x)&&inBounds(x,arg);case 11:return typeof x=="number"&&inBounds(x,arg);case 12:return typeof x=="string"&&lengthOk(x,arg.min,arg.max);case 13:return typeof x=="string"&&arg.test(x);default:return!0}}function inBounds(x,b){return x>=b.min&&x<=b.max&&x>b.xmin&&x<b.xmax}var GUARD_NONE=0,GUARD_STRICT=1,GUARD_LOOSE=2,CODE=15,REQUIRED=16,INHERITED=32;function and(parts){switch(parts.length){case 0:return ALWAYS;case 1:return parts[0];case 2:{let[a,b]=parts;return v=>a(v)&&b(v)}case 3:{let[a,b,c]=parts;return v=>a(v)&&b(v)&&c(v)}default:return v=>{for(let i=0;i<parts.length;i++)if(!parts[i](v))return!1;return!0}}}function indirect(slot){return v=>slot.check(v)}function scopedCheck(scope,uri,check){return v=>{scope.push(uri);let ok=check(v);return scope.pop(),ok}}function typeCheck(types){return types.length===1?(typeof types[0]=="string"?TYPE_CHECKS.get(types[0]):void 0)??NEVER:maskCheck(typeMask(types))}var TYPE_BITS=new Map([["string",1],["number",2],["integer",4],["boolean",8],["null",16],["array",32],["object",64],["bytes",128]]);function typeMask(types){let mask=0;for(let t of types)typeof t=="string"&&(mask|=TYPE_BITS.get(t)??0);return mask}function typeBits(v){switch(typeof v){case"string":return 1;case"number":return Number.isInteger(v)?6:2;case"boolean":return 8;case"object":return v===null?16:Array.isArray(v)?32:v instanceof Uint8Array?128:64;default:return 0}}function maskCheck(mask){return leaf(9,mask,v=>(typeBits(v)&mask)!==0)}function maskedAnyCheck(mask,checks){if(checks.length===0)return maskCheck(mask);let rest=checks.length===1?checks[0]:anyCheck(checks);return v=>(typeBits(v)&mask)!==0||rest(v)}function bytesCheck(min,max){return v=>v instanceof Uint8Array&&v.length>=min&&v.length<=max}function codePoints(s){let n=0;for(let i=0;i<s.length;i++,n++){let c=s.charCodeAt(i);if(c>=55296&&c<=56319&&i+1<s.length){let next=s.charCodeAt(i+1);next>=56320&&next<=57343&&i++}}return n}function lengthOk(s,min,max){let units=s.length;return units<min||units<2*min&&codePoints(s)<min?!1:units<=max||codePoints(s)<=max}function stringCheck(strict,min,max,re,format){return re!==void 0&&min===0&&max===Number.POSITIVE_INFINITY&&format===void 0?strict?leaf(13,re,v=>typeof v=="string"&&re.test(v)):v=>typeof v!="string"||re.test(v):re===void 0&&format===void 0?strict?leaf(12,new Bounds(min,max,0,0),v=>typeof v=="string"&&lengthOk(v,min,max)):v=>typeof v!="string"||lengthOk(v,min,max):v=>typeof v!="string"?!strict:lengthOk(v,min,max)&&(re===void 0||re.test(v))&&(format===void 0||format(v))}function numberCheck(mode,min,max,xmin,xmax,multipleOf){let check=v=>typeof v!="number"?mode===0:mode===2&&!Number.isInteger(v)?!1:v>=min&&v<=max&&v>xmin&&v<xmax&&(multipleOf===void 0||isMultiple(v,multipleOf));return mode===0||multipleOf!==void 0?check:leaf(mode===2?10:11,new Bounds(min,max,xmin,xmax),check)}function isMultiple(v,d){let q=v/d;if(Number.isInteger(q))return!0;if(!Number.isFinite(q))return v%d===0;let[vc,ve]=decimal(v),[dc,de]=decimal(d);return ve>=de?vc*10n**BigInt(ve-de)%dc===0n:vc%(dc*10n**BigInt(de-ve))===0n}function decimal(x){let[mantissa,exponent="0"]=Math.abs(x).toString().split("e"),point=mantissa.indexOf("."),fraction=point<0?0:mantissa.length-point-1;return[BigInt(mantissa.replace(".","")),Number(exponent)-fraction]}function guardObject(inner,strict){return strict?v=>isObject(v)&&inner(v):v=>!isObject(v)||inner(v)}function guardArray(inner,strict){return strict?v=>Array.isArray(v)&&inner(v):v=>!Array.isArray(v)||inner(v)}function declaredObject(entries2,requiredCount,closed,guard){let n=entries2.length;return v=>{if(guard!==GUARD_NONE&&!isObject(v))return guard===GUARD_LOOSE;let o=v,required=0,next=0;for(let k in o){let i=next;if(entries2[i]!==k){for(i=0;i<n&&entries2[i]!==k;)i+=3;if(i===n){if(closed)return!1;continue}}next=i+3;let x=o[k];if(x===void 0)continue;let f=entries2[i+2],c=f&CODE;if(c!==0?!leafOk(c,x,entries2[i+1]):!entries2[i+1](x))return!1;f&REQUIRED&&required++}return required===requiredCount}}function openObject(entries2,keys,extraRequired,patterns,additional,guard){let known=patterns.length>0||additional!==void 0?new Set(keys):void 0;return v=>{if(guard!==GUARD_NONE&&!isObject(v))return guard===GUARD_LOOSE;let o=v;for(let i=0;i<entries2.length;i+=3){let k=entries2[i],x=o[k],f=entries2[i+2];if(x===void 0||f&INHERITED&&!Object.hasOwn(o,k)){if(f&REQUIRED)return!1;continue}let c=f&CODE;if(c!==0?!leafOk(c,x,entries2[i+1]):!entries2[i+1](x))return!1}for(let i=0;i<extraRequired.length;i++)if(!Object.hasOwn(o,extraRequired[i]))return!1;if(known===void 0)return!0;for(let k of Object.keys(o)){let matched=known.has(k);for(let i=0;i<patterns.length;i++)if(patterns[i][0].test(k)&&(matched=!0,!patterns[i][1](o[k])))return!1;if(!matched&&additional!==void 0&&!additional(o[k]))return!1}return!0}}function propertyNamesCheck(check){return v=>{for(let k in v)if(!check(k))return!1;return!0}}function propertyCountCheck(min,max){return v=>{let n=0;for(let _ in v)n++;return n>=min&&n<=max}}function dependentRequiredCheck(entries2){return v=>{let o=v;for(let[k,list]of entries2)if(Object.hasOwn(o,k)){for(let r of list)if(!Object.hasOwn(o,r))return!1}return!0}}function dependentSchemasCheck(entries2){return v=>{for(let[k,check]of entries2)if(Object.hasOwn(v,k)&&!check(v))return!1;return!0}}var NO_LEAF=[0,void 0];function listCheck(guard,min,max,prefix,rest){let n=prefix.length,[code,arg]=(rest===void 0?void 0:leafOf(rest))??NO_LEAF;return v=>{if(!Array.isArray(v))return guard===GUARD_LOOSE;let length=v.length;if(length<min||length>max)return!1;let m=length<n?length:n;for(let i=0;i<m;i++)if(!prefix[i](v[i]))return!1;if(rest===void 0)return!0;if(code!==0){for(let i=n;i<length;i++)if(!leafOk(code,v[i],arg))return!1;return!0}for(let i=n;i<length;i++)if(!rest(v[i]))return!1;return!0}}function itemsCheck(prefix,rest){return listCheck(GUARD_NONE,0,Number.POSITIVE_INFINITY,prefix,rest)}function lengthCheck(min,max){return v=>v.length>=min&&v.length<=max}function containsCheck(check,min,max){return v=>{let list=v,n=0;for(let i=0;i<list.length;i++)if(check(list[i])&&++n>max)return!1;return n>=min}}function uniqueCheck(v){let list=v;for(let i=1;i<list.length;i++)for(let j=0;j<i;j++)if(deepEqual(list[i],list[j]))return!1;return!0}function enumCheck(values){let primitives=values.filter(x=>typeof x!="object"||x===null);if(primitives.length===values.length&&primitives.length<=8)return leaf(8,primitives,v=>{for(let i=0;i<primitives.length;i++)if(primitives[i]===v)return!0;return!1});let set=new Set(primitives),objects=values.filter(x=>typeof x=="object"&&x!==null);return v=>set.has(v)||typeof v=="object"&&objects.some(o=>deepEqual(v,o))}function constCheck(value){return typeof value!="object"||value===null?leaf(7,value,v=>v===value):v=>deepEqual(v,value)}function anyCheck(checks){return v=>{for(let i=0;i<checks.length;i++)if(checks[i](v))return!0;return!1}}function oneCheck(checks){return v=>{let n=0;for(let i=0;i<checks.length;i++)if(checks[i](v)&&++n>1)return!1;return n===1}}function notCheck(check){return v=>!check(v)}function ifCheck(cond,then,otherwise){return v=>cond(v)?then(v):otherwise(v)}function taggedCheck(key,tags,checks){return v=>{if(!isObject(v))return!1;let tag=v[key];for(let i=0;i<tags.length;i++)if(tags[i]===tag)return checks[i](v);return!1}}function deepEqual(a,b){if(a===b)return!0;if(typeof a!="object"||typeof b!="object"||a===null||b===null)return!1;let array=Array.isArray(a);if(array!==Array.isArray(b))return!1;if(array){let x2=a,y2=b;if(x2.length!==y2.length)return!1;for(let i=0;i<x2.length;i++)if(!deepEqual(x2[i],y2[i]))return!1;return!0}let x=a,y=b,keys=Object.keys(x);if(keys.length!==Object.keys(y).length)return!1;for(let k of keys)if(!Object.hasOwn(y,k)||!deepEqual(x[k],y[k]))return!1;return!0}function newAnnotations(){return{props:null,allProps:!1,items:0,allItems:!1,indexes:null}}function merge(a,b){if(b.props!==null)for(let k of b.props)addProp(a,k);if(a.allProps||=b.allProps,b.items>a.items&&(a.items=b.items),a.allItems||=b.allItems,b.indexes!==null)for(let i of b.indexes)addIndex(a,i)}function addProp(a,key){a.props===null&&(a.props=new Set),a.props.add(key)}function addIndex(a,index3){a.indexes===null&&(a.indexes=new Set),a.indexes.add(index3)}var ANNOTATING_TRUE=()=>!0,ANNOTATING_FALSE=()=>!1;function indirectAnnotating(slot){return(v,a)=>slot.check(v,a)}function ignoreAnnotations(check){return v=>check(v)}function withFreshAnnotations(check){return v=>check(v,newAnnotations())}function scopedAnnotating(scope,uri,check){return(v,a)=>{scope.push(uri);let ok=check(v,a);return scope.pop(),ok}}function isolateAnnotations(check){return(v,a)=>{let b=newAnnotations();return check(v,b)?(merge(a,b),!0):!1}}function annotateAll(plain,parts){return(v,a)=>{if(!plain(v))return!1;for(let i=0;i<parts.length;i++)if(!parts[i](v,a))return!1;return!0}}function annotateObject(props,patterns,additional){let declared=new Set(props.map(([k])=>k));return(v,a)=>{if(!isObject(v))return!0;let seen=[];for(let[k,check]of props)if(Object.hasOwn(v,k)){if(!check(v[k]))return!1;seen.push(k)}for(let k of Object.keys(v)){let matched=declared.has(k);for(let[re,check]of patterns)if(re.test(k)){if(!check(v[k]))return!1;matched=!0,seen.push(k)}if(!matched&&additional!==void 0){if(!additional(v[k]))return!1;seen.push(k)}}for(let k of seen)addProp(a,k);return!0}}function annotateArray(prefix,rest,contains,minContains,maxContains){return(v,a)=>{if(!Array.isArray(v))return!0;let m=Math.min(v.length,prefix.length);for(let i=0;i<m;i++)if(!prefix[i](v[i]))return!1;if(rest!==void 0){for(let i=prefix.length;i<v.length;i++)if(!rest(v[i]))return!1;a.allItems=!0}if(m>a.items&&(a.items=m),contains!==void 0){let n=0;for(let i=0;i<v.length;i++)contains(v[i])&&(n++,addIndex(a,i));if(n<minContains||n>maxContains)return!1}return!0}}function annotateAny(branches,exactlyOne){return(v,a)=>{let n=0;for(let branch of branches){let b=newAnnotations();branch(v,b)&&(n++,merge(a,b))}return exactlyOne?n===1:n>0}}function annotateIf(cond,then,otherwise){return(v,a)=>{let b=newAnnotations();return cond(v,b)?(merge(a,b),then===void 0||then(v,a)):otherwise===void 0||otherwise(v,a)}}function annotateDependent(key,check){return(v,a)=>!isObject(v)||!Object.hasOwn(v,key)||check(v,a)}function unevaluatedProperties(check){return(v,a)=>{if(!isObject(v)||a.allProps)return!0;for(let k of Object.keys(v))if(!(a.props?.has(k)??!1)&&!check(v[k]))return!1;return a.allProps=!0,!0}}function unevaluatedItems(check){return(v,a)=>{if(!Array.isArray(v)||a.allItems)return!0;for(let i=a.items;i<v.length;i++)if(!(a.indexes?.has(i)??!1)&&!check(v[i]))return!1;return a.allItems=!0,!0}}var RESTART=Symbol("restart"),Compiler=class{r;draft;formats;dynamic;schema;scope;cache=new Map;annotatingCache=new Map;constructor(schema,options,dynamic){this.schema=schema,this.r=new Resolver(schema,options),this.draft=this.r.draft,this.formats=options.formats,this.dynamic=dynamic,this.scope=[]}root(){return this.check(this.schema,this.r.rootBase)}check(node,base){if(node===!0)return ALWAYS;if(node===!1)return NEVER;if(!isSchemaObject(node))throw new Error(`A schema must be an object or a boolean, got ${JSON.stringify(node)}`);let cached=this.cache.get(node);if(cached!==void 0)return cached;let bare=this.bareType(node);if(bare!==void 0)return bare;let slot={check:void 0};this.cache.set(node,indirect(slot));let check=this.build(node,this.r.baseFor(node,base));return slot.check=check,this.cache.set(node,check),check}build(node,base){if(this.draft==="7"&&typeof node.$ref=="string")return this.ref(node.$ref,base);if(this.draft!=="7"&&(node.unevaluatedProperties!==void 0||node.unevaluatedItems!==void 0))return withFreshAnnotations(this.annotating(node,base));let check=this.plain(node,base);return this.dynamic&&this.r.isResource(node,base)?scopedCheck(this.scope,base,check):check}bareType(node){let type;for(let k in node)if(k==="type")type=node.type;else if(!NEUTRAL_KEYWORDS.has(k))return;return type===void 0?ALWAYS:typeof type=="string"?TYPE_CHECKS.get(type):void 0}plain(node,base){let parts=[],types=node.type===void 0?void 0:Array.isArray(node.type)?node.type:[node.type],single=types?.length===1?types[0]:void 0,typeInGroup=!1;if(single==="bytes")parts.push(bytesCheck(number(node.minLength)??0,number(node.maxLength)??Number.POSITIVE_INFINITY)),typeInGroup=!0;else{let string=this.stringGroup(node,single==="string");string!==void 0&&parts.push(string);let numeric=single==="number"||single==="integer",number2=this.numberGroup(node,single==="number"?1:single==="integer"?2:0);number2!==void 0&&parts.push(number2);let object=this.objectGroup(node,base,single==="object");object!==void 0&&parts.push(object);let array=this.arrayGroup(node,base,single==="array");array!==void 0&&parts.push(array),typeInGroup=single==="string"&&string!==void 0||numeric&&number2!==void 0||single==="object"&&object!==void 0||single==="array"&&array!==void 0}return types!==void 0&&!typeInGroup&&parts.unshift(typeCheck(types)),this.inPlace(node,base,parts),and(parts)}inPlace(node,base,parts){if(Array.isArray(node.enum)&&parts.push(enumCheck(node.enum)),Object.hasOwn(node,"const")&&parts.push(constCheck(node.const)),Array.isArray(node.allOf)&&parts.push(and(node.allOf.map(s=>this.check(s,base)))),Array.isArray(node.anyOf)&&parts.push(this.union(node.anyOf,base,!1)),Array.isArray(node.oneOf)&&parts.push(this.union(node.oneOf,base,!0)),node.not!==void 0&&parts.push(notCheck(this.check(node.not,base))),node.if!==void 0&&(node.then!==void 0||node.else!==void 0)){let then=node.then===void 0?ALWAYS:this.check(node.then,base),otherwise=node.else===void 0?ALWAYS:this.check(node.else,base);parts.push(ifCheck(this.check(node.if,base),then,otherwise))}typeof node.$ref=="string"&&parts.push(this.ref(node.$ref,base)),this.draft!=="7"&&typeof node.$dynamicRef=="string"&&parts.push(this.dynamicRef(node.$dynamicRef,base))}union(branches,base,exactlyOne){let checks=()=>branches.map(s=>this.check(s,base));return constUnion(branches,exactlyOne)??this.tagged(branches,base)??(exactlyOne?oneCheck(checks()):anyOf(checks()))}ref(ref,base){let target=this.r.resolve(ref,base),check=this.check(target.node,target.base);return this.dynamic&&target.base!==base?scopedCheck(this.scope,target.base,check):check}dynamicRef(ref,base){let resolved=this.bookended(ref,base);if(resolved===void 0)return this.ref(ref,base);let{initial,name}=resolved,fallback=this.check(initial.node,initial.base),lookup=this.dynamicLookup(name,(node,b)=>this.check(node,b)),scope=this.scope;return v=>{for(let i=0;i<scope.length;i++){let check=lookup(scope[i]);if(check!==null)return check(v)}return fallback(v)}}bookended(ref,base){let initial=this.r.resolve(ref,base),uri=resolveUri(ref,base),name=uri.slice(documentOf(uri).length+1),anchored=isSchemaObject(initial.node)&&initial.node.$dynamicAnchor===name;if(!(name===""||name.startsWith("/")||!anchored)){if(!this.dynamic)throw RESTART;return{initial,name}}}dynamicLookup(name,compile2){let found=new Map;return uri=>{let key=`${uri}#${name}`,check=found.get(key);if(check===void 0){let target=this.r.dynamicAnchors.get(key);check=target===void 0?null:compile2(target,this.r.baseOf.get(target)??uri),found.set(key,check)}return check}}tagged(branches,base){if(branches.length<2)return;let resolved=[];for(let branch of branches){if(!isSchemaObject(branch))return;let ref=typeof branch.$ref=="string"&&Object.keys(branch).length===1?branch.$ref:void 0,node=ref===void 0?branch:this.r.resolve(ref,this.r.baseFor(branch,base)).node;if(!isSchemaObject(node))return;resolved.push(node)}let first=resolved[0].properties;if(isSchemaObject(first))for(let key of Object.keys(first)){let tags=resolved.map(s=>tagOf(s,key));if(!(tags.some(t=>t===void 0)||new Set(tags).size!==tags.length))return taggedCheck(key,tags,branches.map(s=>this.check(s,base)))}}stringGroup(node,strict){let min=number(node.minLength)??0,max=number(node.maxLength)??Number.POSITIVE_INFINITY,re=typeof node.pattern=="string"?sharedRegex(node.pattern):void 0,format=this.formats!==void 0&&typeof node.format=="string"&&Object.hasOwn(this.formats,node.format)?this.formats[node.format]:void 0;if(!(min===0&&max===Number.POSITIVE_INFINITY&&re===void 0&&format===void 0))return stringCheck(strict,min,max,re,format)}numberGroup(node,mode){let min=number(node.minimum),max=number(node.maximum),xmin=number(node.exclusiveMinimum),xmax=number(node.exclusiveMaximum),multipleOf=number(node.multipleOf);if([min,max,xmin,xmax,multipleOf].every(x=>x===void 0))return;let inf=Number.POSITIVE_INFINITY;return numberCheck(mode,min??-inf,max??inf,xmin??-inf,xmax??inf,multipleOf)}objectGroup(node,base,strict){let onlyCore=OBJECT_EXTRAS.every(k=>node[k]===void 0),core=this.objectCore(node,base,onlyCore?strict?GUARD_STRICT:GUARD_LOOSE:GUARD_NONE);if(core!==void 0&&onlyCore)return core;let parts=core===void 0?[]:[core];node.propertyNames!==void 0&&parts.push(propertyNamesCheck(this.check(node.propertyNames,base)));let minProperties=number(node.minProperties),maxProperties=number(node.maxProperties);(minProperties!==void 0||maxProperties!==void 0)&&parts.push(propertyCountCheck(minProperties??0,maxProperties??Number.POSITIVE_INFINITY));let dependentRequired=[],dependentSchemas=[];if(this.draft!=="7"){for(let[k,list]of entries(node.dependentRequired))Array.isArray(list)&&dependentRequired.push([k,list]);for(let[k,s]of entries(node.dependentSchemas))dependentSchemas.push([k,this.check(s,base)])}for(let[k,d]of entries(node.dependencies))Array.isArray(d)?dependentRequired.push([k,d]):dependentSchemas.push([k,this.check(d,base)]);return dependentRequired.length>0&&parts.push(dependentRequiredCheck(dependentRequired)),dependentSchemas.length>0&&parts.push(dependentSchemasCheck(dependentSchemas)),parts.length===0?strict?IS_OBJECT:void 0:guardObject(and(parts),strict)}objectCore(node,base,guard){let properties=isSchemaObject(node.properties)?node.properties:{},required=Array.isArray(node.required)?node.required.filter(k=>typeof k=="string"):[],patterns=isSchemaObject(node.patternProperties)?node.patternProperties:{},additional=node.additionalProperties,keys=Object.keys(properties),patternKeys=Object.keys(patterns);if(keys.length+required.length+patternKeys.length===0&&(additional===void 0||additional===!0))return;let entries2=[];for(let k of keys){let check=this.check(properties[k],base),leaf2=leafOf(check),flags=(leaf2?.[0]??0)|(required.includes(k)?REQUIRED:0)|(k in Object.prototype?INHERITED:0);entries2.push(k,leaf2===void 0?check:leaf2[1],flags)}let extraRequired=required.filter(k=>!Object.hasOwn(properties,k)),pats=patternKeys.map(p=>[sharedRegex(p),this.check(patterns[p],base)]),extra=additional===void 0||additional===!0?void 0:this.check(additional,base);if(pats.length===0&&extraRequired.length===0&&(extra===void 0||additional===!1)){let requiredCount=keys.filter(k=>required.includes(k)).length;return declaredObject(entries2,requiredCount,additional===!1,guard)}return openObject(entries2,keys,extraRequired,pats,extra,guard)}arrayGroup(node,base,strict){let prefix=[],rest;Array.isArray(node.items)?(prefix=node.items,rest=node.additionalItems):(this.draft!=="7"&&Array.isArray(node.prefixItems)&&(prefix=node.prefixItems),rest=node.items);let prefixChecks=prefix.map(s=>this.check(s,base)),restCheck=rest===void 0||rest===!0?void 0:this.check(rest,base),minItems=number(node.minItems),maxItems=number(node.maxItems);if(node.contains===void 0&&node.uniqueItems!==!0&&(prefixChecks.length>0||restCheck!==void 0))return listCheck(strict?GUARD_STRICT:GUARD_LOOSE,minItems??0,maxItems??Number.POSITIVE_INFINITY,prefixChecks,restCheck);let parts=[];if((prefixChecks.length>0||restCheck!==void 0)&&parts.push(itemsCheck(prefixChecks,restCheck)),(minItems!==void 0||maxItems!==void 0)&&parts.push(lengthCheck(minItems??0,maxItems??Number.POSITIVE_INFINITY)),node.contains!==void 0){let min=this.draft==="7"?1:number(node.minContains)??1,max=this.draft==="7"?Number.POSITIVE_INFINITY:number(node.maxContains)??Number.POSITIVE_INFINITY;parts.push(containsCheck(this.check(node.contains,base),min,max))}return node.uniqueItems===!0&&parts.push(uniqueCheck),parts.length===0?strict?IS_ARRAY:void 0:guardArray(and(parts),strict)}annotating(node,base){if(node===!0)return ANNOTATING_TRUE;if(node===!1)return ANNOTATING_FALSE;if(!isSchemaObject(node))throw new Error(`A schema must be an object or a boolean, got ${JSON.stringify(node)}`);let cached=this.annotatingCache.get(node);if(cached!==void 0)return cached;let slot={check:void 0};this.annotatingCache.set(node,indirectAnnotating(slot));let check=this.buildAnnotating(node,this.r.baseFor(node,base));return slot.check=check,this.annotatingCache.set(node,check),check}buildAnnotating(node,base){let rest={},annotates=!1;for(let k of Object.keys(node))ANNOTATING.has(k)?annotates=!0:rest[k]=node[k];let plain=this.plain(rest,base),parts=[];annotates&&this.annotatingParts(node,base,parts);let all=parts.length===0?ignoreAnnotations(plain):annotateAll(plain,parts),own=node.unevaluatedProperties!==void 0||node.unevaluatedItems!==void 0?isolateAnnotations(all):all;return this.dynamic&&this.r.isResource(node,base)?scopedAnnotating(this.scope,base,own):own}annotatingParts(node,base,parts){if(node.properties!==void 0||node.patternProperties!==void 0||node.additionalProperties!==void 0){let props=entries(node.properties).map(([k,s])=>[k,this.check(s,base)]),pats=entries(node.patternProperties).map(([p,s])=>[sharedRegex(p),this.check(s,base)]),extra=node.additionalProperties===void 0?void 0:this.check(node.additionalProperties,base);parts.push(annotateObject(props,pats,extra))}if(node.prefixItems!==void 0||node.items!==void 0||node.contains!==void 0){let prefix=Array.isArray(node.prefixItems)?node.prefixItems:Array.isArray(node.items)?node.items:[],rest=Array.isArray(node.items)?node.additionalItems:node.items;parts.push(annotateArray(prefix.map(s=>this.check(s,base)),rest===void 0?void 0:this.check(rest,base),node.contains===void 0?void 0:this.check(node.contains,base),number(node.minContains)??1,number(node.maxContains)??Number.POSITIVE_INFINITY))}if(Array.isArray(node.allOf))for(let s of node.allOf)parts.push(this.annotating(s,base));if(Array.isArray(node.anyOf)&&parts.push(annotateAny(node.anyOf.map(s=>this.annotating(s,base)),!1)),Array.isArray(node.oneOf)&&parts.push(annotateAny(node.oneOf.map(s=>this.annotating(s,base)),!0)),node.if!==void 0){let then=node.then===void 0?void 0:this.annotating(node.then,base),otherwise=node.else===void 0?void 0:this.annotating(node.else,base);parts.push(annotateIf(this.annotating(node.if,base),then,otherwise))}typeof node.$ref=="string"&&parts.push(this.annotatingRef(node.$ref,base)),typeof node.$dynamicRef=="string"&&parts.push(this.annotatingDynamicRef(node.$dynamicRef,base));for(let[k,s]of entries(node.dependentSchemas))parts.push(annotateDependent(k,this.annotating(s,base)));node.unevaluatedProperties!==void 0&&parts.push(unevaluatedProperties(this.check(node.unevaluatedProperties,base))),node.unevaluatedItems!==void 0&&parts.push(unevaluatedItems(this.check(node.unevaluatedItems,base)))}annotatingRef(ref,base){let target=this.r.resolve(ref,base),check=this.annotating(target.node,target.base);return this.dynamic&&target.base!==base?scopedAnnotating(this.scope,target.base,check):check}annotatingDynamicRef(ref,base){let resolved=this.bookended(ref,base);if(resolved===void 0)return this.annotatingRef(ref,base);let{initial,name}=resolved,fallback=this.annotating(initial.node,initial.base),lookup=this.dynamicLookup(name,(node,b)=>this.annotating(node,b)),scope=this.scope;return(v,a)=>{for(let i=0;i<scope.length;i++){let check=lookup(scope[i]);if(check!==null)return check(v,a)}return fallback(v,a)}}},NEUTRAL_KEYWORDS=new Set(["$schema","$comment","title","description","default","examples","deprecated","readOnly","writeOnly","$defs","definitions","contentEncoding","contentMediaType","minContains","maxContains","$vocabulary"]),OBJECT_EXTRAS=["propertyNames","minProperties","maxProperties","dependentRequired","dependentSchemas","dependencies"],ANNOTATING=new Set(["properties","patternProperties","additionalProperties","prefixItems","items","additionalItems","contains","minContains","maxContains","allOf","anyOf","oneOf","if","then","else","$ref","$dynamicRef","dependentSchemas","unevaluatedProperties","unevaluatedItems"]);function constUnion(branches,exactlyOne){let values=[];for(let branch of branches){if(!isSchemaObject(branch)||!Object.hasOwn(branch,"const"))return;for(let k of Object.keys(branch))if(k!=="const"&&!NEUTRAL_KEYWORDS.has(k))return;if(typeof branch.const=="object"&&branch.const!==null||exactlyOne&&values.includes(branch.const))return;values.push(branch.const)}return enumCheck(values)}function anyOf(checks){let types=[],rest=[];for(let check of checks){let type=BARE_TYPES.get(check);type===void 0?rest.push(check):types.push(type)}return types.length===0?anyCheck(rest):maskedAnyCheck(typeMask(types),rest)}var BARE_TYPES=new Map([...TYPE_CHECKS].map(([type,check])=>[check,type]));function tagOf(branch,key){let properties=branch.properties;if(branch.type!=="object"||!Array.isArray(branch.required)||!branch.required.includes(key))return;let tag=isSchemaObject(properties)?properties[key]:void 0;if(!(!isSchemaObject(tag)||!Object.hasOwn(tag,"const")))return typeof tag.const=="object"&&tag.const!==null?void 0:tag.const}function number(value){return typeof value=="number"?value:void 0}function entries(value){return isSchemaObject(value)?Object.entries(value):[]}var Explainer=class{c;schema;memo=void 0;constructor(compiler2,schema){this.c=compiler2,this.schema=schema,compiler2.root()}errors(value){let out=[];try{this.walk(this.schema,this.c.r.rootBase,value,"",out)}finally{this.memo=void 0}return out.length===0&&out.push({path:"",keyword:"schema",message:"invalid"}),out}ok(node,base,v){return this.c.check(node,base)(v)}walk(node,base,v,path,out){if(node===!0)return;if(node===!1){out.push({path,keyword:"false",message:"no value is allowed here"});return}if(!isSchemaObject(node))return;let b=this.c.r.baseFor(node,base);if(this.ok(node,b,v))return;let start=out.length,push=(keyword,message,at=path)=>{out.push({path:at,keyword,message})};if(this.c.draft==="7"&&typeof node.$ref=="string"){this.walkRef(node.$ref,b,v,path,out);return}if(node.type!==void 0){let types=Array.isArray(node.type)?node.type:[node.type];if(!types.map(t=>(typeof t=="string"?TYPE_CHECKS.get(t):void 0)??NEVER).some(check=>check(v))){push("type",`expected ${types.join(" or ")}, got ${typeName(v)}`);return}}if(Array.isArray(node.enum)&&!enumCheck(node.enum)(v)&&push("enum",`expected one of ${listValues(node.enum)}`),Object.hasOwn(node,"const")&&!constCheck(node.const)(v)&&push("const",`expected ${JSON.stringify(node.const)}`),typeof v=="string"&&node.type!=="bytes"&&this.walkString(node,v,push),v instanceof Uint8Array&&node.type==="bytes"&&this.walkBytes(node,v,push),typeof v=="number"&&this.walkNumber(node,v,push),isObject(v)&&this.walkObject(node,b,v,path,out,push),Array.isArray(v)&&this.walkArray(node,b,v,path,out,push),Array.isArray(node.allOf))for(let s of node.allOf)this.walk(s,b,v,path,out);if(Array.isArray(node.anyOf)&&this.walkUnion(node.anyOf,b,v,path,out,!1),Array.isArray(node.oneOf)&&this.walkUnion(node.oneOf,b,v,path,out,!0),node.not!==void 0&&this.ok(node.not,b,v)&&push("not","must not match the schema in not"),node.if!==void 0){let branch=this.ok(node.if,b,v)?node.then:node.else;branch!==void 0&&this.walk(branch,b,v,path,out)}typeof node.$ref=="string"&&this.walkRef(node.$ref,b,v,path,out),out.length===start&&(node.unevaluatedProperties!==void 0||node.unevaluatedItems!==void 0)&&this.walkUnevaluated(node,b,v,path,out),out.length===start&&typeof node.$dynamicRef=="string"&&push("$dynamicRef","does not match the dynamically referenced schema")}walkRef(ref,base,v,path,out){let target=this.c.r.resolve(ref,base);if(target.node===!1&&this.c.r.isUnresolved(ref,base)){out.push({path,keyword:"$ref",message:`unresolved reference ${ref}`});return}if(!isSchemaObject(target.node)||typeof v!="object"||v===null){this.walk(target.node,target.base,v,path,out);return}this.memo??=new Map;let values=this.memo.get(target.node),known=values?.get(v);if(known!==void 0&&known.path===path){out.push(...known.errors);return}let errors=[];this.walk(target.node,target.base,v,path,errors),values===void 0&&(values=new Map,this.memo.set(target.node,values)),values.set(v,{path,errors}),out.push(...errors)}walkString(node,v,push){let n=codePoints(v);typeof node.minLength=="number"&&n<node.minLength&&push("minLength",`expected at least ${node.minLength} characters`),typeof node.maxLength=="number"&&n>node.maxLength&&push("maxLength",`expected at most ${node.maxLength} characters`),typeof node.pattern=="string"&&!sharedRegex(node.pattern).test(v)&&push("pattern",`expected to match ${node.pattern}`);let formats3=this.c.formats,format=formats3!==void 0&&typeof node.format=="string"&&Object.hasOwn(formats3,node.format)?formats3[node.format]:void 0;format!==void 0&&!format(v)&&push("format",`expected format ${node.format}`)}walkBytes(node,v,push){typeof node.minLength=="number"&&v.length<node.minLength&&push("minLength",`expected at least ${node.minLength} bytes`),typeof node.maxLength=="number"&&v.length>node.maxLength&&push("maxLength",`expected at most ${node.maxLength} bytes`)}walkNumber(node,v,push){typeof node.minimum=="number"&&v<node.minimum&&push("minimum",`expected >= ${node.minimum}`),typeof node.maximum=="number"&&v>node.maximum&&push("maximum",`expected <= ${node.maximum}`),typeof node.exclusiveMinimum=="number"&&v<=node.exclusiveMinimum&&push("exclusiveMinimum",`expected > ${node.exclusiveMinimum}`),typeof node.exclusiveMaximum=="number"&&v>=node.exclusiveMaximum&&push("exclusiveMaximum",`expected < ${node.exclusiveMaximum}`),typeof node.multipleOf=="number"&&!isMultiple(v,node.multipleOf)&&push("multipleOf",`expected a multiple of ${node.multipleOf}`)}walkObject(node,b,v,path,out,push){let properties=isSchemaObject(node.properties)?node.properties:{},required=Array.isArray(node.required)?node.required:[];for(let k of required)typeof k=="string"&&(!Object.hasOwn(v,k)||v[k]===void 0)&&push("required","missing",pointer(path,k));for(let k of Object.keys(properties))Object.hasOwn(v,k)&&v[k]!==void 0&&this.walk(properties[k],b,v[k],pointer(path,k),out);let patterns=isSchemaObject(node.patternProperties)?Object.entries(node.patternProperties):[];for(let k of Object.keys(v)){let matched=Object.hasOwn(properties,k);for(let[p,s]of patterns)sharedRegex(p).test(k)&&(matched=!0,this.walk(s,b,v[k],pointer(path,k),out));!matched&&node.additionalProperties!==void 0&&(node.additionalProperties===!1?push("additionalProperties","unknown field",pointer(path,k)):this.walk(node.additionalProperties,b,v[k],pointer(path,k),out)),node.propertyNames!==void 0&&!this.ok(node.propertyNames,b,k)&&push("propertyNames","invalid property name",pointer(path,k))}let count=Object.keys(v).length;typeof node.minProperties=="number"&&count<node.minProperties&&push("minProperties",`expected at least ${node.minProperties} properties`),typeof node.maxProperties=="number"&&count>node.maxProperties&&push("maxProperties",`expected at most ${node.maxProperties} properties`);let dependencies={...this.c.draft==="7"||!isSchemaObject(node.dependentRequired)?{}:node.dependentRequired,...isSchemaObject(node.dependencies)?node.dependencies:{}};for(let[k,d]of Object.entries(dependencies))if(Object.hasOwn(v,k))if(!Array.isArray(d))this.walk(d,b,v,path,out);else for(let r of d)Object.hasOwn(v,r)||push("dependentRequired",`required when ${k} is present`,pointer(path,r));if(this.c.draft!=="7"&&isSchemaObject(node.dependentSchemas))for(let[k,s]of Object.entries(node.dependentSchemas))Object.hasOwn(v,k)&&this.walk(s,b,v,path,out)}walkArray(node,b,v,path,out,push){let prefix=[],rest;Array.isArray(node.items)?(prefix=node.items,rest=node.additionalItems):(this.c.draft!=="7"&&Array.isArray(node.prefixItems)&&(prefix=node.prefixItems),rest=node.items);for(let i=0;i<v.length;i++){let s=i<prefix.length?prefix[i]:rest;s!==void 0&&this.walk(s,b,v[i],`${path}/${i}`,out)}if(typeof node.minItems=="number"&&v.length<node.minItems&&push("minItems",`expected at least ${node.minItems} items`),typeof node.maxItems=="number"&&v.length>node.maxItems&&push("maxItems",`expected at most ${node.maxItems} items`),node.uniqueItems===!0&&!uniqueCheck(v)&&push("uniqueItems","expected unique items"),node.contains!==void 0){let draft7=this.c.draft==="7",min=draft7||typeof node.minContains!="number"?1:node.minContains,max=draft7||typeof node.maxContains!="number"?Number.POSITIVE_INFINITY:node.maxContains;containsCheck(this.c.check(node.contains,b),min,max)(v)||push("contains",containsMessage(min,max))}}walkUnion(branches,b,v,path,out,exactlyOne){let matches=branches.filter(s=>this.ok(s,b,v)).length;if(matches===1||!exactlyOne&&matches>0)return;let keyword=exactlyOne?"oneOf":"anyOf";if(matches>1){out.push({path,keyword,message:"matches more than one alternative"});return}let tag=this.tagOf(branches,b);if(tag!==void 0&&isObject(v)){let i=tag.values.indexOf(v[tag.key]);i<0?out.push({path:pointer(path,tag.key),keyword,message:`expected one of ${listValues(tag.values)}`}):this.walk(branches[i],b,v,path,out);return}let best;for(let s of branches){let errors=[];if(this.walk(s,b,v,path,errors),errors.length===0)continue;let declared=isObject(v)?this.declaredKeys(s,b,v):0;(best===void 0||declared>best.declared||declared===best.declared&&errors[0].path.length>best.errors[0].path.length)&&(best={errors,declared})}out.push(...best?.errors??[{path,keyword,message:"matches no alternative"}])}declaredKeys(s,b,v){let node=isSchemaObject(s)&&typeof s.$ref=="string"?this.c.r.resolve(s.$ref,this.c.r.baseFor(s,b)).node:s,properties=isSchemaObject(node)&&isSchemaObject(node.properties)?node.properties:{};return Object.keys(v).filter(k=>Object.hasOwn(properties,k)).length}tagOf(branches,b){let resolved=branches.map(s=>isSchemaObject(s)&&typeof s.$ref=="string"?this.c.r.resolve(s.$ref,this.c.r.baseFor(s,b)).node:s),first=resolved[0];if(!(!isSchemaObject(first)||!isSchemaObject(first.properties)))for(let key of Object.keys(first.properties)){let values=resolved.map(s=>{let tag=isSchemaObject(s)&&isSchemaObject(s.properties)?s.properties[key]:void 0;return isSchemaObject(tag)?tag.const:void 0});if(values.every(x=>x!==void 0&&(typeof x!="object"||x===null))&&new Set(values).size===values.length)return{key,values}}}walkUnevaluated(node,b,v,path,out){let{unevaluatedProperties:unevaluatedProperties2,unevaluatedItems:unevaluatedItems2,$id:_id,...rest}=node,a=newAnnotations();if(this.c.annotating(rest,b)(v,a),isObject(v)&&unevaluatedProperties2!==void 0&&!a.allProps)for(let k of Object.keys(v))a.props?.has(k)||(unevaluatedProperties2===!1?out.push({path:pointer(path,k),keyword:"unevaluatedProperties",message:"unknown field"}):this.walk(unevaluatedProperties2,b,v[k],pointer(path,k),out));if(Array.isArray(v)&&unevaluatedItems2!==void 0&&!a.allItems)for(let i=a.items;i<v.length;i++)a.indexes?.has(i)||(unevaluatedItems2===!1?out.push({path:`${path}/${i}`,keyword:"unevaluatedItems",message:"unexpected item"}):this.walk(unevaluatedItems2,b,v[i],`${path}/${i}`,out))}},LISTED_VALUES=20;function listValues(values){return values.length<=LISTED_VALUES?JSON.stringify(values):`${JSON.stringify(values.slice(0,LISTED_VALUES)).slice(0,-1)}, ... and ${values.length-LISTED_VALUES} more]`}function containsMessage(min,max){return max===Number.POSITIVE_INFINITY?`expected at least ${min} matching ${min===1?"item":"items"}`:min===0?`expected at most ${max} matching ${max===1?"item":"items"}`:`expected between ${min} and ${max} matching items`}function pointer(path,key){return`${path}/${String(key).replace(/~/g,"~0").replace(/\//g,"~1")}`}function typeName(v){return v===null?"null":Array.isArray(v)?"array":v instanceof Uint8Array?"bytes":typeof v=="number"&&Number.isInteger(v)?"integer":typeof v}function compile(schema,options=NO_OPTIONS){let check=compileCheck(schema,options);return options.coerce===!0?new CoercingValidator(schema,options,check):new Validator2(schema,options,check)}var NO_OPTIONS=Object.freeze({}),Validator2=class{check;schema;options;explainer=void 0;constructor(schema,options,check){this.check=check,this.schema=schema,this.options=options}errors(value){return this.check(value)?[]:(this.explainer??=new Explainer(compiler(this.schema,this.options),this.schema),this.explainer.errors(value))}},CoercingValidator=class extends Validator2{coercer=void 0;coerce(value){return this.coercer??=new Coercer(compiler(this.schema,this.options),this.schema),this.coercer.coerce(value)}parse(value){let coerced=this.coerce(value);return this.check(coerced)?{ok:!0,value:coerced}:{ok:!1,errors:this.errors(coerced)}}};function compileCheck(schema,options){return compiler(schema,options).root()}function compiler(schema,options){let plain=new Compiler(schema,options,!1);try{return plain.root(),plain}catch(error){if(error!==RESTART)throw error;return new Compiler(schema,options,!0)}}var DAYS2=[0,31,28,31,30,31,30,31,31,30,31,30,31],DATE2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function IsLeapYear2(year){return year%4===0&&(year%100!==0||year%400===0)}function IsDate2(value){let matches=DATE2.exec(value);if(!matches)return!1;let year=+matches[1],month=+matches[2],day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(month===2&&IsLeapYear2(year)?29:DAYS2[month])}var TIME2=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:([Zz])|([+-])(\d\d):(\d\d))?$/;function IsTime2(value,strictTimeZone=!0){let matches=TIME2.exec(value);if(!matches||strictTimeZone&&!matches[4]&&!matches[5])return!1;let hr=+matches[1],min=+matches[2],sec=+matches[3];if(hr>23||min>59||sec>60)return!1;if(matches[5]){let tzH2=+matches[6],tzM2=+matches[7];if(tzH2>23||tzM2>59)return!1}if(sec<60)return!0;let tzSign=matches[5]==="-"?-1:1,tzH=+(matches[6]||0),tzM=+(matches[7]||0);return((hr*60+min-tzSign*(tzH*60+tzM))%1440+1440)%1440===1439}function IsDateTime2(value){let dateTime=value.split(/T/i);return dateTime.length===2&&IsDate2(dateTime[0])&&IsTime2(dateTime[1])}var Duration2=/^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 IsDuration2(value){return Duration2.test(value)}var Email2=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\x20-\x7e])*")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\])$/i;function IsEmail2(value){return Email2.test(value)}var RE_RULE_HYPHEN_PLACEMENT2=/^(?!-).*(?<!-)$/,RE_RULE_NOT_RESERVED_ACE2=/^(?!..--)/,RE_ASCII_LDH2=/^[a-zA-Z0-9-]*$/,RE_ASCII2=new RegExp("^\\p{ASCII}*$","u"),RE_NON_ASCII2=/[^\p{ASCII}]/u;var RE_ASCII_DIGIT2=/[0-9]/,RE_ARABIC_INDIC_DIGIT2=/[\u{0660}-\u{0669}]/u,RE_EXT_ARABIC_INDIC_DIGIT2=/[\u{06f0}-\u{06f9}]/u,RE_COMMON_SEPARATOR2=/[\u{002e}\u{002c}\u{003a}\u{002f}]/u,RE_EUROPEAN_SEPARATOR2=/[\u{002d}\u{002b}]/u,RE_MARK_NONSPACING2=new RegExp("\\p{Mn}","u"),RE_MARK_SPACING_COMBINING2=new RegExp("\\p{Mc}","u"),RE_MARK_ENCLOSING2=new RegExp("\\p{Me}","u"),RE_COMBINING_MARK2=/[\p{Mn}\p{Mc}\p{Me}]/u,RE_LETTER2=new RegExp("\\p{L}","u"),RE_NUMBER_DECIMAL2=new RegExp("\\p{Nd}","u"),RE_SCRIPT_GREEK2=new RegExp("\\p{Script=Greek}","u"),RE_SCRIPT_HEBREW2=new RegExp("\\p{Script=Hebrew}","u"),RE_SCRIPT_JAPANESE2=/[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}]/u,RE_SCRIPT_ARABIC_LETTER2=/[\p{Script=Arabic}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Mandaic}]/u,RE_VIRAMA2=/[\u{094d}\u{09cd}\u{0a4d}\u{0acd}\u{0b4d}\u{0bcd}\u{0c4d}\u{0ccd}\u{0d3b}\u{0d3c}\u{0d4d}\u{0dca}\u{1b44}\u{1baa}\u{1bab}\u{a9c0}\u{11046}\u{1107f}\u{110b9}\u{11133}\u{11134}\u{111c0}\u{11235}\u{1134d}\u{11442}\u{114c2}\u{115bf}\u{1163f}\u{116b6}\u{11c3f}\u{11d44}\u{11d45}]/u,RE_RFC5892_DISALLOWED2=/[\u{0640}\u{07fa}\u{302e}\u{302f}\u{3031}\u{3032}\u{3033}\u{3034}\u{3035}\u{303b}]/u,RE_CONTEXTO_EXCEPTIONS2=/[\u{00b7}\u{0375}\u{05f3}\u{05f4}\u{200c}\u{200d}\u{30fb}]/u,RE_PVALID_EXCEPTIONS2=/[\u{00df}\u{03c2}\u{06fd}\u{06fe}\u{0f0b}\u{3007}]/u,RE_EUROPEAN_NUMBER2=new RegExp([RE_ASCII_DIGIT2,RE_EXT_ARABIC_INDIC_DIGIT2].map(regexp=>regexp.source).join("|"),"u"),RE_PERMITTED_CATEGORY2=new RegExp([RE_LETTER2,RE_EUROPEAN_SEPARATOR2,RE_COMMON_SEPARATOR2,RE_NUMBER_DECIMAL2,RE_MARK_NONSPACING2,RE_MARK_SPACING_COMBINING2,RE_CONTEXTO_EXCEPTIONS2,RE_PVALID_EXCEPTIONS2].map(regexp=>regexp.source).join("|"),"u");function IsAsciiLabel2(value){return RE_RULE_HYPHEN_PLACEMENT2.test(value)&&RE_RULE_NOT_RESERVED_ACE2.test(value)&&RE_ASCII_LDH2.test(value)}var PUNYCODE_BASE2=36,PUNYCODE_TMIN2=1,PUNYCODE_TMAX2=26,PUNYCODE_SKEW2=38,PUNYCODE_DAMP2=700,PUNYCODE_INITIAL_BIAS2=72,PUNYCODE_INITIAL_N2=128;function ThrowDontCare2(){throw null}function IsAcePrefixed2(value){return value.toLowerCase().startsWith("xn--")}function Adapt2(delta,numPoints,firstTime){delta=firstTime?Math.floor(delta/PUNYCODE_DAMP2):delta>>1,delta+=Math.floor(delta/numPoints);let k=0;for(;delta>(PUNYCODE_BASE2-PUNYCODE_TMIN2)*PUNYCODE_TMAX2>>1;)delta=Math.floor(delta/(PUNYCODE_BASE2-PUNYCODE_TMIN2)),k+=PUNYCODE_BASE2;return k+Math.floor((PUNYCODE_BASE2-PUNYCODE_TMIN2+1)*delta/(delta+PUNYCODE_SKEW2))}function Decode10(value){let output=[],n=PUNYCODE_INITIAL_N2,i=0,bias=PUNYCODE_INITIAL_BIAS2,delimIdx=value.lastIndexOf("-");if(delimIdx>0)for(let j=0;j<delimIdx;j++){let cp=value.charCodeAt(j);cp>=128&&ThrowDontCare2(),output.push(cp)}let inIdx=delimIdx<0?0:delimIdx+1;for(;inIdx<value.length;){let oldi=i,w=1,k=PUNYCODE_BASE2;for(;;){inIdx>=value.length&&ThrowDontCare2();let ch=value.charCodeAt(inIdx++),digit;ch>=97&&ch<=122?digit=ch-97:ch>=48&&ch<=57?digit=ch-48+26:ThrowDontCare2(),i+=digit*w;let t=k<=bias?PUNYCODE_TMIN2:k>=bias+PUNYCODE_TMAX2?PUNYCODE_TMAX2:k-bias;if(digit<t)break;w*=PUNYCODE_BASE2-t,k+=PUNYCODE_BASE2}let outLen=output.length+1;bias=Adapt2(i-oldi,outLen,oldi===0),n+=Math.floor(i/outLen),i%=outLen,output.splice(i,0,n),i++}return String.fromCodePoint(...output)}function DigitToChar2(digit){return digit<26?String.fromCharCode(digit+97):String.fromCharCode(digit-26+48)}var RE_REPLACE_NON_ASCII2=new RegExp(RE_NON_ASCII2.source,"gu");function Encode10(input){let basic=input.replace(RE_REPLACE_NON_ASCII2,""),basicLength=basic.length,result=basicLength>0?[basic,"-"]:[],codePoints2=Array.from(input,char=>char.codePointAt(0)),n=PUNYCODE_INITIAL_N2,delta=0,bias=PUNYCODE_INITIAL_BIAS2,handledCPCount=basicLength;for(;handledCPCount<codePoints2.length;){let m=1/0;for(let cp of codePoints2)cp>=n&&cp<m&&(m=cp);delta+=(m-n)*(handledCPCount+1),n=m;for(let cp of codePoints2)if(cp<n&&delta++,cp===n){let q=delta;for(let k=PUNYCODE_BASE2;;k+=PUNYCODE_BASE2){let t=k<=bias?PUNYCODE_TMIN2:k>=bias+PUNYCODE_TMAX2?PUNYCODE_TMAX2:k-bias;if(q<t)break;let digit=t+(q-t)%(PUNYCODE_BASE2-t);result.push(DigitToChar2(digit)),q=Math.floor((q-t)/(PUNYCODE_BASE2-t))}result.push(DigitToChar2(q)),bias=Adapt2(delta,handledCPCount+1,handledCPCount===basicLength),delta=0,handledCPCount++}delta++,n++}return result.join("")}var RE_RTL_ALLOWED2=/^(?:R|AL|AN|EN|ES|CS|ET|ON|BN|NSM)$/,RE_LTR_ALLOWED2=/^(?:L|EN|ES|CS|ET|ON|BN|NSM)$/,RE_RTL_CLASSES2=/^(?:R|AL|AN)$/;function HasBidiChars2(value){if(IsAcePrefixed2(value))try{return HasRightToLeftCharacters2(Decode10(value.slice(4).toLowerCase()))}catch{return!1}return HasRightToLeftCharacters2(value)}function GetBidiClass2(codePoint){let char=String.fromCodePoint(codePoint);return RE_EUROPEAN_NUMBER2.test(char)?"EN":RE_ARABIC_INDIC_DIGIT2.test(char)?"AN":RE_MARK_NONSPACING2.test(char)?"NSM":RE_SCRIPT_HEBREW2.test(char)?"R":RE_SCRIPT_ARABIC_LETTER2.test(char)?"AL":RE_LETTER2.test(char)?"L":"ON"}function HasRightToLeftCharacters2(value){for(let ch of value)if(RE_RTL_CLASSES2.test(GetBidiClass2(ch.codePointAt(0))))return!0;return!1}function SatisfiesBidiRule2(value){let isRtl=!1,allowed=RE_LTR_ALLOWED2,sawEN=!1,sawAN=!1,isFirst=!0;for(let ch of value){let bidiClass=GetBidiClass2(ch.codePointAt(0));if(isFirst){if(bidiClass!=="L"&&bidiClass!=="R"&&bidiClass!=="AL")return!1;isRtl=bidiClass==="R"||bidiClass==="AL",allowed=isRtl?RE_RTL_ALLOWED2:RE_LTR_ALLOWED2,isFirst=!1}if(!allowed.test(bidiClass))return!1;bidiClass==="EN"?sawEN=!0:bidiClass==="AN"&&(sawAN=!0)}return!(isRtl&&sawEN&&sawAN)}function ExceedsMaxALabelLength2(value){return RE_NON_ASCII2.test(value)&&Encode10(value).length+4>63}function HasInvalidHyphens2(chars){return chars[0]==="-"||chars[chars.length-1]==="-"?!0:chars.slice(2).join("").startsWith("--")}function IsUnicodeLabel2(value){if(ExceedsMaxALabelLength2(value)||HasRightToLeftCharacters2(value)&&!SatisfiesBidiRule2(value))return!1;let chars=[...value],codePoints2=chars.map(c=>c.codePointAt(0)),length=codePoints2.length;if(HasInvalidHyphens2(chars)||RE_COMBINING_MARK2.test(chars[0]))return!1;let hasJapanese=!1;for(let i=0;i<length;i++){let codePoint=codePoints2[i],char=chars[i];if(RE_RFC5892_DISALLOWED2.test(char)||!RE_PERMITTED_CATEGORY2.test(char))return!1;RE_SCRIPT_JAPANESE2.test(char)&&(hasJapanese=!0);let prev=codePoints2[i-1],next=codePoints2[i+1];switch(codePoint){case 183:if(prev!==108||next!==108)return!1;break;case 885:if(!next||!RE_SCRIPT_GREEK2.test(chars[i+1]))return!1;break;case 1523:case 1524:if(!prev||!RE_SCRIPT_HEBREW2.test(chars[i-1]))return!1;break;case 8204:if(!prev||prev<128&&!RE_VIRAMA2.test(chars[i-1]))return!1;break;case 8205:if(!prev||!RE_VIRAMA2.test(chars[i-1]))return!1;break;case 12539:break}}return!(value.includes("\u30FB")&&!hasJapanese)}function IsPunyLabel2(value){if(!IsAcePrefixed2(value))return!1;try{let body=value.slice(4).toLowerCase();if(body.lastIndexOf("-")===0)return!1;let decoded=Decode10(body);return RE_NON_ASCII2.test(decoded)?IsUnicodeLabel2(decoded):!1}catch{return!1}}function IsValidLabelLength3(value){return value.length>0&&value.length<=63}function IsLabel3(value){return IsValidLabelLength3(value)&&(IsPunyLabel2(value)||IsAsciiLabel2(value))}function IsHostname3(value){return value.length===0||value.length>253||value.charCodeAt(value.length-1)===46?!1:value.split(".").every(label=>IsLabel3(label))}function IsValidLabelLength4(value){return value.length>0&&value.length<=63}function IsLabel4(value){return IsValidLabelLength4(value)&&(IsPunyLabel2(value)||IsUnicodeLabel2(value))}function NormalizeHostname2(value){return value.replace(/[\uff01-\uff5e]/g,char=>String.fromCharCode(char.charCodeAt(0)-65248)).normalize("NFC").replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu,"").replace(/[\u002E\u3002\uFF0E\uFF61]/g,".")}function IsIdnHostname3(value){if(value.length===0||value.includes(" "))return!1;let normalized=NormalizeHostname2(value);if(normalized.length>253)return!1;let labels=normalized.split("."),hasBidiChars=labels.some(label=>HasBidiChars2(label));return labels.every(label=>IsLabel4(label)&&(!hasBidiChars||SatisfiesBidiRule2(label)))}function IsHostname4(value){return IsHostname3(value)}var IdnEmail2=/^(?:[A-Za-z0-9!#$%&'*+/=?^_`{|}~\u{0080}-\u{10FFFF}-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~\u{0080}-\u{10FFFF}-]+)*|"(?:[^"\\]|\\.)*")@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-)(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-))*$/iu;function IsIdnEmail2(value){return IdnEmail2.test(value.normalize("NFC"))}function IsIdnHostname4(value){return IsIdnHostname3(value)}var IPv42=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function IsIPv42(value){return IPv42.test(value)}var IPv62=/^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;function IsIPv62(value){return IPv62.test(value)}var IpvFutureMatch2=/\[[vV][0-9a-fA-F]+\.[^\]]+\]/,InvalidIriChars3=/[\x00-\x20<>^`{|}\\]/,InvalidPercentEncoding2=/%(?![0-9a-fA-F]{2})/;function NarrowIpvFuture2(value){return value.length<2048?value.replace(IpvFutureMatch2,"[::1]"):value}function IsIri2(value){return InvalidIriChars3.test(value)||InvalidPercentEncoding2.test(value)?!1:URL.canParse(NarrowIpvFuture2(value))}var InvalidIriChars4=/[\x00-\x20\x7F\\]|%(?![0-9a-fA-F]{2})/,MalformedScheme2=/^[a-zA-Z][a-zA-Z0-9+\-.]*\/\//;function IsIriReference2(value){return!InvalidIriChars4.test(value)&&!MalformedScheme2.test(value)&&URL.canParse(value,"http://example.com")}var JsonPointer2=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function IsJsonPointer2(value){return JsonPointer2.test(value)}var JsonPointerUriFragment2=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function IsJsonPointerUriFragment2(value){return JsonPointerUriFragment2.test(value)}function IsRegex2(value){try{return new RegExp(value,"u"),!0}catch{return!1}}var RelativeJsonPointer2=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function IsRelativeJsonPointer2(value){return RelativeJsonPointer2.test(value)}var Uri2=/^[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUri2(value){return Uri2.test(value)}var UriReference2=/^(?:[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function IsUriReference2(value){return UriReference2.test(value)}var UriTemplate2=/^(?:(?:[^\x00-\x20"<>%\\^`{|}\x7f]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?)*\})*$/i;function IsUriTemplate2(value){return UriTemplate2.test(value)}function IsUrl2(value){return URL.canParse(value)}var Uuid2=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function IsUuid2(value){return Uuid2.test(value)}var formats2=Object.freeze({date:IsDate2,"date-time":IsDateTime2,duration:IsDuration2,email:IsEmail2,hostname:IsHostname4,"idn-email":IsIdnEmail2,"idn-hostname":IsIdnHostname4,ipv4:IsIPv42,ipv6:IsIPv62,iri:IsIri2,"iri-reference":IsIriReference2,"json-pointer":IsJsonPointer2,"json-pointer-uri-fragment":IsJsonPointerUriFragment2,regex:IsRegex2,"relative-json-pointer":IsRelativeJsonPointer2,time:IsTime2,uri:IsUri2,"uri-reference":IsUriReference2,"uri-template":IsUriTemplate2,url:IsUrl2,uuid:IsUuid2});var validatorCache=new WeakMap;function getValidator(schema){let cached=validatorCache.get(schema);if(cached)return cached;let validator=compile(schema,{formats:formats2,coerce:!0,unresolvedRefs:"reject"});return validatorCache.set(schema,validator),validator}function formatValidationPath(pointer2){return pointer2===""?"root":pointer2.slice(1).split("/").map(segment=>segment.replace(/~1/g,"/").replace(/~0/g,"~")).join(".")}function validateToolCall(tools,toolCall){let tool=tools.find(t=>t.name===toolCall.name);if(!tool)throw new Error(`Tool "${toolCall.name}" not found`);return validateToolArguments(tool,toolCall)}function validateToolArguments(tool,toolCall){if(toolCall.argumentsError)throw new Error(`Invalid arguments for tool "${toolCall.name}": ${toolCall.argumentsError}`);let result=getValidator(tool.parameters).parse(structuredClone(toolCall.arguments));if(result.ok)return result.value;let errors=result.errors.map(error=>` - ${formatValidationPath(error.path)}: ${error.message}`).join(`
14
+ `),errorMessage=`Validation failed for tool "${toolCall.name}":
15
+ ${errors}
16
+
17
+ Received arguments:
18
+ ${JSON.stringify(toolCall.arguments,null,2)}`;throw new Error(errorMessage)}var VIRTUAL_MODEL_API="pi-virtual",VIRTUAL_MODEL_STATE_ENTRY="pi.virtual-model-state",THINKING_LEVELS=["off","minimal","low","medium","high","xhigh","max"];function isVirtualModel(model){return model.api===VIRTUAL_MODEL_API}function findLatestResponse(messages){for(let i=messages.length-1;i>=0;i--){let message=messages[i];if(message.role==="assistant"&&message.stopReason!=="error"&&message.stopReason!=="aborted")return message}}function getBranchSelection(branch,getModel2){for(let i=branch.length-1;i>=0;i--){let entry=branch[i];if(entry.type==="model_change")return{provider:entry.provider,modelId:entry.modelId};if(entry.type==="message"&&entry.message.role==="assistant"&&!isVirtualModel(entry.message)){let response={provider:entry.message.provider,modelId:entry.message.model},change=findLastModelChange(branch,i),model=change&&getModel2(change.provider,change.modelId);return change&&model&&isVirtualModel(model)?change:response}}}function findLastModelChange(branch,before){for(let i=before-1;i>=0;i--){let entry=branch[i];if(entry.type==="model_change")return{provider:entry.provider,modelId:entry.modelId}}}function getVirtualModelState(branch,provider,modelId){for(let i=branch.length-1;i>=0;i--){let entry=branch[i];if(entry.type!=="custom"||entry.customType!==VIRTUAL_MODEL_STATE_ENTRY)continue;let data=entry.data;if(data?.provider===provider&&data.modelId===modelId)return data.state}}function createVirtualModel(definition){let levels=definition.thinkingLevels??["off"],thinkingLevelMap={};for(let level of THINKING_LEVELS)thinkingLevelMap[level]=levels.includes(level)?level:null;return{id:definition.id,name:definition.name,api:VIRTUAL_MODEL_API,provider:definition.provider,baseUrl:"",reasoning:levels.some(level=>level!=="off"),thinkingLevelMap,input:definition.input??["text","image"],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:definition.contextWindow??0,maxTokens:definition.maxTokens??0}}function unroutedStream(model){return lazyStream(model,async()=>{throw new Error(`Virtual model ${model.provider}/${model.id} must be routed before streaming`)})}function withVirtualModels(providerId,provider,virtualModels){if(!provider)return{id:providerId,name:providerId,auth:{apiKey:{name:"Virtual model",resolve:async()=>({auth:{},source:"virtual"})}},getModels:()=>virtualModels,stream:unroutedStream,streamSimple:unroutedStream};let ids=new Set(virtualModels.map(model=>model.id)),physical=models=>models.filter(model=>!isVirtualModel(model)&&!(isModelType(model,"chat")&&ids.has(model.id))),virtual=models=>models.filter(model=>isVirtualModel(model)),{filterModels,filterAllModels}=provider;return{...provider,getModels:()=>[...physical(provider.getModels()),...virtualModels],getAllModels:()=>[...physical(provider.getAllModels?.()??provider.getModels()),...virtualModels],filterModels:(models,credential)=>{let real=physical(models);return[...filterModels?.(real,credential)??real,...virtual(models)]},filterAllModels:filterAllModels&&((models,credential)=>[...filterAllModels(physical(models),credential),...virtual(models)]),stream:(model,context,options)=>isVirtualModel(model)?unroutedStream(model):provider.stream(model,context,options),streamSimple:(model,context,options)=>isVirtualModel(model)?unroutedStream(model):provider.streamSimple(model,context,options)}}import{dirname,join as join2}from"node:path";var anthropicMessagesApi=()=>lazyApi(()=>import("./anthropic-messages-QCK7M7VG.js"));var openAICompletionsApi=()=>lazyApi(()=>import("./openai-completions-RAU4DJDG.js"));function perMillion(value,fallback){let perToken=Number.parseFloat(value??"");return perToken>=0?Number((perToken*1e6).toFixed(6)):fallback}function openRouterCost(pricing){let base={input:perMillion(pricing?.prompt,0),output:perMillion(pricing?.completion,0),cacheRead:perMillion(pricing?.input_cache_read,0),cacheWrite:perMillion(pricing?.input_cache_write,0)},tiers=(pricing?.overrides??[]).flatMap(override=>override.min_prompt_tokens===void 0||override.utc_start!==void 0||override.utc_end!==void 0||override.utc_days!==void 0?[]:[{inputTokensAbove:override.min_prompt_tokens,input:perMillion(override.prompt,base.input),output:perMillion(override.completion,base.output),cacheRead:perMillion(override.input_cache_read,base.cacheRead),cacheWrite:perMillion(override.input_cache_write,base.cacheWrite)}]);return tiers.length>0?{...base,tiers}:base}var OPENROUTER_BASE_URL="https://openrouter.ai/api/v1",OPENROUTER_USER_MODELS_TIMEOUT_MS=15e3;async function personalizeOpenRouterCatalog(catalog,context){let key=context.credential?.type==="oauth"?context.credential.access:context.credential?.key;if(!key)return catalog;let response=await fetch(`${(context.baseUrl??OPENROUTER_BASE_URL).replace(/\/+$/,"")}/models/user`,{headers:{accept:"application/json",authorization:`Bearer ${key}`},signal:AbortSignal.any([context.signal,AbortSignal.timeout(OPENROUTER_USER_MODELS_TIMEOUT_MS)])});if(response.status===401||response.status===403||response.status===404)return catalog;if(!response.ok)throw new Error(`OpenRouter model list request failed: ${response.status}`);let body=await response.json();if(typeof body!="object"||body===null||!("data"in body)||!Array.isArray(body.data))throw new Error("Invalid OpenRouter model list response");let allowed=new Map;for(let entry of body.data)typeof entry=="object"&&entry!==null&&"id"in entry&&typeof entry.id=="string"&&allowed.set(entry.id,entry);return catalog.flatMap(model=>{if(!isModelType(model,"chat"))return[model];let entry=allowed.get(model.id);return entry?[{...model,contextWindow:entry.top_provider?.context_length||entry.context_length||model.contextWindow,maxTokens:entry.top_provider?.max_completion_tokens||model.maxTokens,cost:entry.pricing?openRouterCost(entry.pricing):model.cost}]:[]})}import{readFile}from"node:fs/promises";function stripJsonComments(input){return input.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g,m=>m[0]==='"'?m:"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(m,tail)=>tail??(m[0]==='"'?m:""))}function openObject2(properties,options={}){let{additionalProperties,...annotations}=options,schema=obj(properties,{...annotations,open:!0});return additionalProperties?{...schema,additionalProperties}:schema}function stringLiteral(value,options={}){return{type:"string",const:value,...options}}function stringRecord(value,options={}){return{type:"object",patternProperties:{"^.*$":value},...options}}var THINKING_LEVELS2=["minimal","low","medium","high","xhigh","max"],MODEL_THINKING_LEVELS=["off",...THINKING_LEVELS2],MODEL_INPUT_MODALITIES=["text","image"],CACHE_RETENTIONS=["none","short","long"];var ThinkingLevelSchema=oneOf(THINKING_LEVELS2),ModelThinkingLevelSchema=oneOf(MODEL_THINKING_LEVELS),ModelInputModalitySchema=oneOf(MODEL_INPUT_MODALITIES),CacheRetentionSchema=oneOf(CACHE_RETENTIONS),ThinkingLevelMapValueSchema=union([str(),nul()]),ThinkingLevelMapSchema=openObject2({off:opt(ThinkingLevelMapValueSchema),minimal:opt(ThinkingLevelMapValueSchema),low:opt(ThinkingLevelMapValueSchema),medium:opt(ThinkingLevelMapValueSchema),high:opt(ThinkingLevelMapValueSchema),xhigh:opt(ThinkingLevelMapValueSchema),max:opt(ThinkingLevelMapValueSchema)},{description:"Provider value sent for each thinking level. null marks a level unsupported. Levels the model does not map use the provider's default value through high; xhigh and max are unsupported."}),PromptCacheLifetimeSchema=num({exclusiveMinimum:0}),ModelPromptCacheSchema=openObject2({short:opt(PromptCacheLifetimeSchema),long:opt(PromptCacheLifetimeSchema)},{description:"Best-effort prompt cache lifetime in seconds for the short and long retention tiers. Pi warms only tiers with a known lifetime."}),ModelCostRatesProperties={input:num({description:"Input cost in USD per million tokens."}),output:num({description:"Output cost in USD per million tokens."}),cacheRead:num({description:"Cache-read cost in USD per million tokens."}),cacheWrite:num({description:"Cache-write cost in USD per million tokens."})},ModelCostRatesSchema=openObject2(ModelCostRatesProperties),ModelCostTierSchema=openObject2({inputTokensAbove:num({description:"Use this tier when total request input exceeds this token count."}),...ModelCostRatesProperties}),ModelCostSchema=openObject2({...ModelCostRatesProperties,tiers:opt(arr(ModelCostTierSchema,{description:"Request-wide pricing tiers. The highest matching input threshold applies to the full request."}))}),ModelImageResizeProperties={maxWidth:opt(int({minimum:1})),maxHeight:opt(int({minimum:1})),maxBytes:opt(int({minimum:1,description:"Maximum base64-encoded payload size in bytes."})),jpegQuality:opt(int({minimum:1,maximum:100}))};function modelImageResizeOptions(options){return openObject2(ModelImageResizeProperties,options)}var ModelImageResizeOptionsSchema=modelImageResizeOptions(),ModelImageInputLimitsSchema=openObject2({resize:opt(modelImageResizeOptions({description:"Cache-safe resize profile applied before a new image enters conversation history."})),maxPerMessage:opt(int({minimum:1,description:"Maximum images accepted in one provider message."})),maxPerRequest:opt(int({minimum:1,description:"Maximum images accepted across one provider request."}))}),ModelInputLimitsSchema=openObject2({maxRequestBytes:opt(int({minimum:1,description:"Maximum serialized provider request size in bytes."})),images:opt(ModelImageInputLimitsSchema)});function sessionAffinityFormat(options){return union([stringLiteral("openai"),stringLiteral("openai-nosession"),stringLiteral("openrouter")],options)}var SessionAffinityFormatSchema=sessionAffinityFormat({description:"Session-affinity header format used to route related requests consistently."});function thinkingTokenBudgetField(options){return union([stringLiteral("thinking_token_budget"),stringLiteral("thinking_budget"),stringLiteral("thinking_budget_tokens")],options)}var ThinkingTokenBudgetFieldSchema=thinkingTokenBudgetField({description:'Top-level request field name used by OpenAI-compatible endpoints to cap reasoning tokens. "thinking_token_budget" is used by vLLM, "thinking_budget" by Qwen, DashScope, or SGLang, and "thinking_budget_tokens" by llama.cpp.'}),ChatTemplateKwargValueSchema=union([str(),num(),bool(),nul(),openObject2({$var:union([stringLiteral("thinking.enabled"),stringLiteral("thinking.effort"),stringLiteral("thinking.budget")]),omitWhenOff:opt(bool())})]);function percentileCutoffs(metric){return openObject2({p50:opt(num({description:`${metric} at the 50th percentile.`})),p75:opt(num({description:`${metric} at the 75th percentile.`})),p90:opt(num({description:`${metric} at the 90th percentile.`})),p99:opt(num({description:`${metric} at the 99th percentile.`}))})}var OpenRouterRoutingSchema=openObject2({allow_fallbacks:opt(bool({description:"Whether to allow backup providers to serve requests.",default:!0})),require_parameters:opt(bool({description:"Whether to filter providers to only those that support all parameters in the request.",default:!1})),data_collection:opt(union([stringLiteral("deny"),stringLiteral("allow")],{description:'Data collection setting. "allow": allow providers that may store or train on data. "deny": only use providers that do not collect user data.',default:"allow"})),zdr:opt(bool({description:"Whether to restrict routing to only ZDR (Zero Data Retention) endpoints."})),enforce_distillable_text:opt(bool({description:"Whether to restrict routing to only models that allow text distillation."})),order:opt(arr(str(),{description:"An ordered list of provider names or slugs to try in sequence, falling back to the next if unavailable."})),only:opt(arr(str(),{description:"List of provider names or slugs to exclusively allow for this request."})),ignore:opt(arr(str(),{description:"List of provider names or slugs to skip for this request."})),quantizations:opt(arr(str(),{description:'A list of quantization levels to filter providers by, for example ["fp16", "bf16", "fp8", "fp6", "int8", "int4", "fp4", "fp32"].'})),sort:opt(union([str(),openObject2({by:opt(str({description:'The sorting metric, such as "price", "throughput", or "latency".'})),partition:opt(union([str(),nul()],{description:'Partitioning strategy: "model" or "none".',default:"model"}))})],{description:'Sorting strategy. Can be a string such as "price", "throughput", or "latency", or an object.'})),max_price:opt(openObject2({prompt:opt(union([num(),str()],{description:"Price per million prompt tokens."})),completion:opt(union([num(),str()],{description:"Price per million completion tokens."})),image:opt(union([num(),str()],{description:"Price per image."})),audio:opt(union([num(),str()],{description:"Price per audio unit."})),request:opt(union([num(),str()],{description:"Price per request."}))},{description:"Maximum price per million tokens in USD."})),preferred_min_throughput:opt(union([num(),percentileCutoffs("Minimum tokens per second")],{description:"Preferred minimum throughput in tokens per second. A number applies to p50."})),preferred_max_latency:opt(union([num(),percentileCutoffs("Maximum latency in seconds")],{description:"Preferred maximum latency in seconds. A number applies to p50."}))},{description:"OpenRouter provider routing preferences. Controls which upstream providers OpenRouter routes requests to. Sent as the provider field in the OpenRouter API request body. See https://openrouter.ai/docs/guides/routing/provider-selection."}),VercelGatewayRoutingSchema=openObject2({only:opt(arr(str(),{description:'List of provider slugs to exclusively use for this request, for example ["bedrock", "anthropic"].'})),order:opt(arr(str(),{description:'List of provider slugs to try in order, for example ["anthropic", "openai"].'}))},{description:"Vercel AI Gateway routing preferences. Controls which upstream providers the gateway routes requests to. See https://vercel.com/docs/ai-gateway/models-and-providers/provider-options."}),AnthropicAllowedFallbackModelSchema=openObject2({provider:str({minLength:1}),model:str({minLength:1}),cost:ModelCostSchema},{description:"An Anthropic server-side refusal fallback model with local pricing metadata."});function optionalCompatBoolean(options){return opt(bool(options))}function optionalSessionAffinityFormat(options){return opt(sessionAffinityFormat(options))}function optionalPromptCacheKeyMode(options){return opt(union([stringLiteral("auto"),stringLiteral("enabled"),stringLiteral("disabled")],options))}var OpenAICompletionsCompatProperties={supportsStore:opt(bool({description:"Whether the provider supports the store field. Default: auto-detected from URL."})),supportsDeveloperRole:optionalCompatBoolean({description:"Whether the provider supports the developer role instead of system. Default: auto-detected from URL."}),supportsReasoningEffort:opt(bool({description:"Whether the provider supports reasoning_effort. Default: auto-detected from URL."})),supportsUsageInStreaming:opt(bool({description:"Whether the provider supports stream_options.include_usage for token usage in streaming responses.",default:!0})),supportsFinishReason:opt(bool({description:"Whether streamed responses include finish_reason. When false, pi infers stop or toolUse when the stream ends.",default:!0})),maxTokensField:opt(union([stringLiteral("max_completion_tokens"),stringLiteral("max_tokens")],{description:"Which field to use for max tokens. Default: auto-detected from URL."})),requiresToolResultName:opt(bool({description:"Whether tool results require the name field. Default: auto-detected from URL."})),requiresAssistantAfterToolResult:opt(bool({description:"Whether a user message after tool results requires an assistant message in between. Default: auto-detected from URL."})),requiresNonNullAssistantContent:opt(bool({description:'Whether replayed assistant messages with no text (e.g. tool-call-only messages) must send "" instead of null content. Default: false.'})),requiresThinkingAsText:opt(bool({description:"Whether thinking blocks must be converted to text blocks with <thinking> delimiters. Default: auto-detected from URL."})),requiresReasoningContentOnAssistantMessages:opt(bool({description:"Whether all replayed assistant messages must include an empty reasoning_content field when reasoning is enabled. Default: auto-detected from URL."})),thinkingFormat:opt(union([stringLiteral("openai"),stringLiteral("openrouter"),stringLiteral("deepseek"),stringLiteral("together"),stringLiteral("baseten"),stringLiteral("zai"),stringLiteral("qwen"),stringLiteral("chat-template"),stringLiteral("qwen-chat-template"),stringLiteral("string-thinking"),stringLiteral("ant-ling")],{description:'Format for reasoning or thinking parameters. When omitted, Pi auto-detects the format from the provider URL. "openai" uses reasoning_effort, "openrouter" uses reasoning.effort, "deepseek" uses thinking.type plus reasoning_effort when supported, "together" uses reasoning.enabled plus reasoning_effort when supported, "baseten" uses configurable chat_template_args plus reasoning_effort when supported, "zai" uses thinking.type, "qwen" uses top-level enable_thinking, "qwen-chat-template" uses chat_template_kwargs.enable_thinking and preserve_thinking, "chat-template" uses configurable chat_template_kwargs, "string-thinking" uses top-level thinking, and "ant-ling" uses reasoning.effort only when the mapped effort is non-null.'})),chatTemplateKwargs:opt(stringRecord(ChatTemplateKwargValueSchema,{description:'Kwargs sent as chat_template_kwargs when thinkingFormat is "chat-template". Use $var with "thinking.enabled", "thinking.effort", or "thinking.budget" for pi-controlled values.'})),chatTemplateArgs:opt(stringRecord(ChatTemplateKwargValueSchema,{description:'Arguments sent as chat_template_args when thinkingFormat is "baseten". Use $var with "thinking.enabled", "thinking.effort", or "thinking.budget" for pi-controlled values.'})),openRouterRouting:opt(OpenRouterRoutingSchema),vercelGatewayRouting:opt(VercelGatewayRoutingSchema),zaiToolStream:opt(bool({description:"Whether z.ai supports top-level tool_stream for streaming tool call deltas.",default:!1})),thinkingTokenBudgetField:opt(thinkingTokenBudgetField({description:'Top-level request field used to cap reasoning tokens from thinkingBudgets. Reasoning and the answer share max_tokens on these endpoints. "thinking_token_budget" is vLLM, "thinking_budget" is Qwen, DashScope, or SGLang, and "thinking_budget_tokens" is llama.cpp. Off by default and not set on the generated catalog.'})),supportsThinkingTokenBudget:opt(bool({description:'Alias for thinkingTokenBudgetField: "thinking_token_budget" (vLLM). Prefer thinkingTokenBudgetField.',default:!1})),supportsOpenAIGrammarTools:optionalCompatBoolean({description:"Whether the provider supports OpenAI custom tools with Lark or regex grammar formats. When false, grammar-constrained tools fall back to normal function tools. The generated catalog enables this for capable models.",default:!1}),supportsMidConvoSystemMessages:optionalCompatBoolean({description:"Whether the exact model accepts system or developer messages after the conversation has started. When false, later system messages are folded into the leading system message. The generated catalog enables this for verified models.",default:!1}),supportsMidConvoToolAdditions:opt(bool({description:"Whether system messages can introduce additional tools mid-conversation. Requires supportsMidConvoSystemMessages. The generated catalog enables this for capable models.",default:!1})),supportsStrictMode:optionalCompatBoolean({description:"Whether the provider supports the strict field in tool definitions. Generated capable models enable it explicitly.",default:!1}),cacheControlFormat:opt(stringLiteral("anthropic",{description:"Cache control convention for prompt caching. Anthropic applies cache_control markers to the system prompt, last tool definition, and last user, assistant, or tool-result text content."})),sendSessionAffinityHeaders:optionalCompatBoolean({description:"Whether to send session-affinity data from options.sessionId. Default: true for OpenRouter endpoints, false otherwise."}),sessionAffinityFormat:optionalSessionAffinityFormat({description:"Session-affinity header format. openai sends session_id, x-client-request-id, and x-session-affinity; openai-nosession sends x-client-request-id and x-session-affinity; openrouter sends x-session-id. Does not affect prompt_cache_key. Default: auto-detected."}),promptCacheKeyMode:optionalPromptCacheKeyMode({description:"Controls the prompt_cache_key request field. auto sends it to api.openai.com, or with long cache retention when supportsLongCacheRetention is true; enabled sends it whenever caching is active, for compatible proxies; disabled never sends it. Default: auto."}),supportsLongCacheRetention:optionalCompatBoolean({description:'Whether the provider supports long prompt cache retention (prompt_cache_retention: "24h" or Anthropic-style cache_control.ttl: "1h", depending on format). Default: auto-detected from provider and URL.'}),vllmPriority:opt(num({description:"vLLM scheduler priority sent as the top-level priority request field. Lower values are handled earlier and the server default is 0. Only meaningful with --scheduling-policy priority. Off by default and not set on the generated catalog."}))},OpenAICompletionsCompatSchema=openObject2(OpenAICompletionsCompatProperties,{description:"Compatibility settings for OpenAI-compatible completions APIs. Use this to override URL-based auto-detection for custom providers.",additionalProperties:!0}),OpenAIResponsesCompatProperties={supportsDeveloperRole:optionalCompatBoolean({description:"Whether the provider supports the developer role instead of system.",default:!0}),supportsMidConvoSystemMessages:optionalCompatBoolean({description:"Whether the exact model accepts developer or system messages after the conversation has started. When false, later system messages are folded into the leading system message. The generated catalog enables this for verified models.",default:!1}),sessionAffinityFormat:optionalSessionAffinityFormat({description:"Session-affinity header format. openai sends session-id and x-client-request-id; openai-nosession sends x-client-request-id; openrouter sends x-session-id. Does not affect prompt_cache_key. Default: auto-detected."}),promptCacheKeyMode:optionalPromptCacheKeyMode({description:"Controls the prompt_cache_key request field. auto and enabled send it whenever caching is active; disabled never sends it, for compatible proxies that reject it. Default: auto."}),supportsLongCacheRetention:optionalCompatBoolean({description:'Whether the provider supports long prompt cache retention. This uses prompt_cache_options.ttl: "30m" on GPT-5.6+ and prompt_cache_retention: "24h" on earlier models.',default:!0}),supportsStrictMode:optionalCompatBoolean({description:"Whether the provider supports strict JSON-schema function tools. Defaults are API-specific; generated OpenAI models enable it explicitly."}),supportsOpenAIGrammarTools:optionalCompatBoolean({description:"Whether to emit OpenAI custom tools with Lark or regex grammar formats. When false, grammar-constrained tools fall back to normal function tools. The generated catalog enables this for capable models.",default:!1}),supportsAdditionalTools:opt(bool({description:"Whether the model supports message-anchored additional_tools input items.",default:!1})),supportsToolSearch:opt(bool({description:"Whether the model supports client-executed tool search for transcript-anchored additions.",default:!1})),supportsExplicitPromptCacheMode:opt(bool({description:"Whether the model accepts prompt_cache_options. Older OpenAI models reject the parameter.",default:!1})),supportsMidConvoEffort:opt(bool({description:"Whether thinking level changes are sent as configuration_update input items instead of changing reasoning.effort, so a change keeps the prompt cache. Only used by the openai-responses API, and ignored with Sign in with ChatGPT on the openai provider.",default:!1})),supportsMaxOutputTokens:opt(bool({description:"Whether the provider accepts max_output_tokens. Some Codex-protocol gateways reject it.",default:!0}))},OpenAIResponsesCompatSchema=openObject2(OpenAIResponsesCompatProperties,{description:"Compatibility settings for OpenAI Responses APIs.",additionalProperties:!0}),AnthropicMessagesCompatProperties={supportsEagerToolInputStreaming:opt(bool({description:"Whether the provider accepts per-tool eager_input_streaming. When false, the Anthropic provider omits tools[].eager_input_streaming and sends the legacy fine-grained-tool-streaming-2025-05-14 beta header for tool-enabled requests.",default:!0})),supportsLongCacheRetention:optionalCompatBoolean({description:"Whether the provider supports Anthropic long cache retention through cache_control.ttl.",default:!0}),sendSessionAffinityHeaders:optionalCompatBoolean({description:"Whether to send x-session-affinity from options.sessionId when caching is enabled. Required for providers like Fireworks that use session affinity for prompt cache routing; requests to the same replica maximize cache hits. Default: true for OpenRouter endpoints, false otherwise."}),sessionAffinityFormat:opt(stringLiteral("openrouter",{description:"Session-affinity format. openrouter sends x-session-id; when unset, sends x-session-affinity."})),supportsCacheControlOnTools:opt(bool({description:"Whether the provider supports Anthropic-style cache_control markers on tool definitions. When false, cache_control is omitted from tool parameters. Some Anthropic-compatible providers, such as Fireworks, do not support this field on tools and may reject or ignore it.",default:!0})),supportsTemperature:opt(bool({description:"Whether the model accepts the Anthropic temperature request field. Claude Opus 4.7+ rejects non-default values.",default:!0})),forceAdaptiveThinking:opt(bool({description:"Whether to force adaptive thinking (thinking.type: adaptive plus output_config.effort) regardless of model ID. Built-in models that require adaptive thinking set this in generated metadata. Custom Anthropic-compatible providers can set this to true for any model whose upstream requires the adaptive format. Set false to opt out on overridden built-in models.",default:!1})),allowEmptySignature:opt(bool({description:"Whether to replay empty thinking signatures instead of converting thinking to text.",default:!1})),supportsStrictTools:opt(bool({description:"Whether the provider supports Anthropic strict tool schemas. Generated Anthropic models enable it explicitly.",default:!1})),supportsMidConvoEffort:opt(bool({description:"Whether the exact model transport supports effort-only system messages and thinking binding controls.",default:!1})),supportsMidConvoSystemMessages:optionalCompatBoolean({description:"Whether the exact model accepts system-role messages inside the conversation. When false, later system messages are folded into the top-level system prompt.",default:!1}),supportsMidConvoToolChanges:opt(bool({description:"Whether the exact model accepts mid-conversation tool_addition and tool_removal blocks. Requires supportsMidConvoSystemMessages.",default:!1})),supportsMessageThreads:optionalCompatBoolean({description:"Whether the endpoint supports Anthropic message threads, which let a request with a session id send only the new messages and continue from the previous reply. Default: true for provider anthropic with a baseUrl on api.anthropic.com, false otherwise. Set true for gateways that forward the thread request field."}),allowedFallbackModels:opt(arr(AnthropicAllowedFallbackModelSchema,{maxItems:3,description:"Models Anthropic accepts for server-side refusal fallback, with local pricing metadata for returned fallback responses. When absent or empty, callers must omit fallbacks; Anthropic rejects the field for models with no permitted fallback targets."}))},AnthropicMessagesCompatSchema=openObject2(AnthropicMessagesCompatProperties,{description:"Compatibility settings for Anthropic Messages-compatible APIs.",additionalProperties:!0}),BedrockCompatProperties={supportsStrictMode:optionalCompatBoolean({description:"Whether the model supports Bedrock strict tool schemas.",default:!1})},BedrockCompatSchema=openObject2(BedrockCompatProperties,{description:"Compatibility settings for Amazon Bedrock models.",additionalProperties:!0}),MistralConversationsCompatProperties={supportsMidConvoSystemMessages:optionalCompatBoolean({description:"Whether the exact model accepts system messages after the conversation has started. When false, later system messages are folded into the leading system message.",default:!1})},MistralConversationsCompatSchema=openObject2(MistralConversationsCompatProperties,{description:"Compatibility settings for the Mistral chat API.",additionalProperties:!0}),SystemOneCompatProperties={imageInput:opt(union([stringLiteral("assets"),stringLiteral("images"),stringLiteral("state-image-urls")],{description:`How the service takes classifier images. "assets" sends TypeSafe's assets map (PNG and JPEG) and references the images from the state, as TypeSafe and Jev on Workers AI expect. "images" sends Clef's images list of data URLs (PNG, JPEG, and WebP, at most four), as Clef on Workers AI expects. "state-image-urls" places image_url parts before the state, as OpenRouter expects; OpenRouter drops assets without an error. Auto-detected from the provider, baseUrl, and model ID. Classifier models read it from the provider-level compat; models and modelOverrides entries apply to chat models only.`})),sendImageOptInHeader:optionalCompatBoolean({description:"Whether requests with images send the TypeSafe-Danger-Zone-Images: true header, which TypeSafe's own API requires for its experimental image input. Defaults to true for the typesafe-system-one API unless the model is detected as OpenRouter."})},SystemOneCompatSchema=openObject2(SystemOneCompatProperties,{description:"Compatibility settings for System One classifier APIs.",additionalProperties:!0}),ProviderCompatPropertyOverrides={supportsDeveloperRole:optionalCompatBoolean({description:"Whether the provider supports the developer role instead of system. Defaults are API-specific."}),supportsMidConvoSystemMessages:optionalCompatBoolean({description:"Whether the exact model accepts system or developer messages after the conversation has started. When false, later system messages are folded into the leading system message.",default:!1}),sessionAffinityFormat:optionalSessionAffinityFormat({description:"Session-affinity header format. Defaults are API-specific or auto-detected."}),promptCacheKeyMode:optionalPromptCacheKeyMode({description:"Controls the prompt_cache_key request field for openai-completions and openai-responses: auto keeps each API's default, enabled sends it whenever caching is active, disabled never sends it. Default: auto."}),supportsMidConvoEffort:optionalCompatBoolean({description:"Whether thinking level changes are sent inside the conversation instead of changing the request's effort, so a change keeps the prompt cache. Used by the anthropic-messages and openai-responses APIs.",default:!1}),supportsLongCacheRetention:optionalCompatBoolean({description:"Whether the provider supports long prompt cache retention. Defaults are API-specific or auto-detected."}),supportsStrictMode:optionalCompatBoolean({description:"Whether the provider supports strict tool schemas. Defaults are API-specific."}),supportsOpenAIGrammarTools:optionalCompatBoolean({description:"Whether the provider supports OpenAI custom tools with Lark or regex grammar formats. When false, grammar-constrained tools fall back to normal function tools.",default:!1}),sendSessionAffinityHeaders:optionalCompatBoolean({description:"Whether to send session-affinity data from options.sessionId. Defaults are API-specific."})};function mergeCompatProperties(propertyGroups,overrides){let merged={},duplicateNames=new Set;for(let properties of propertyGroups)for(let[name,schema]of Object.entries(properties)){if(merged[name]!==void 0&&(duplicateNames.add(name),!(name in overrides)))throw new Error(`Duplicate compatibility schema property requires an override: ${name}`);merged[name]=schema}for(let name of Object.keys(overrides))if(!duplicateNames.has(name))throw new Error(`Compatibility schema override does not resolve a duplicate property: ${name}`);return{...merged,...overrides}}var ProviderCompatProperties=mergeCompatProperties([OpenAICompletionsCompatProperties,OpenAIResponsesCompatProperties,AnthropicMessagesCompatProperties,BedrockCompatProperties,MistralConversationsCompatProperties,SystemOneCompatProperties],ProviderCompatPropertyOverrides),ProviderCompatSchema=openObject2(ProviderCompatProperties,{description:"Provider and model compatibility overrides.",additionalProperties:!0});var ProviderCompatSchema2=typebox_exports.Unsafe(ProviderCompatSchema),ModelCostSchema2=typebox_exports.Unsafe(ModelCostSchema),ModelInputLimitsSchema2=typebox_exports.Unsafe(ModelInputLimitsSchema),ModelInputModalitySchema2=typebox_exports.Unsafe(ModelInputModalitySchema),ModelPromptCacheSchema2=typebox_exports.Unsafe(ModelPromptCacheSchema),ModelThinkingLevelSchema2=typebox_exports.Unsafe(ModelThinkingLevelSchema),ThinkingLevelMapSchema2=typebox_exports.Unsafe(ThinkingLevelMapSchema),PartialModelCostSchema=typebox_exports.Unsafe(withoutRequired(ModelCostSchema));function withoutRequired(schema){let{required:_required,...rest}=schema;return rest}var SamplingParamsSchema=typebox_exports.Record(typebox_exports.String(),typebox_exports.Unknown()),SamplingParamsByThinkingLevelSchema=typebox_exports.Object({off:typebox_exports.Optional(SamplingParamsSchema),minimal:typebox_exports.Optional(SamplingParamsSchema),low:typebox_exports.Optional(SamplingParamsSchema),medium:typebox_exports.Optional(SamplingParamsSchema),high:typebox_exports.Optional(SamplingParamsSchema),xhigh:typebox_exports.Optional(SamplingParamsSchema),max:typebox_exports.Optional(SamplingParamsSchema)},{description:"samplingParams per thinking level, merged over samplingParams."}),SamplingParamsFieldSchema=typebox_exports.Record(typebox_exports.String(),typebox_exports.Unknown(),{description:"Fields merged into every request body. Applies only to OpenAI-compatible APIs."}),HeadersSchema=typebox_exports.Record(typebox_exports.String(),typebox_exports.String(),{description:"Request headers. Values resolve like apiKey."}),ModelFieldDescriptions={name:"Display name, also matched by --model patterns.",reasoning:"Whether the model supports thinking.",contextWindow:"Context window in tokens.",maxTokens:"Maximum output tokens."},ModelDefinitionSchema=typebox_exports.Object({id:typebox_exports.String({minLength:1,description:"Model ID sent to the API."}),name:typebox_exports.Optional(typebox_exports.String({minLength:1,description:ModelFieldDescriptions.name})),api:typebox_exports.Optional(typebox_exports.String({minLength:1,description:"Overrides the provider api."})),baseUrl:typebox_exports.Optional(typebox_exports.String({minLength:1,description:"Overrides the provider baseUrl."})),reasoning:typebox_exports.Optional(typebox_exports.Boolean({default:!1,description:ModelFieldDescriptions.reasoning})),thinkingLevelMap:typebox_exports.Optional(ThinkingLevelMapSchema2),input:typebox_exports.Optional(typebox_exports.Array(ModelInputModalitySchema2,{default:["text"]})),inputLimits:typebox_exports.Optional(ModelInputLimitsSchema2),cost:typebox_exports.Optional(ModelCostSchema2),promptCache:typebox_exports.Optional(ModelPromptCacheSchema2),contextWindow:typebox_exports.Optional(typebox_exports.Number({exclusiveMinimum:0,default:128e3,description:ModelFieldDescriptions.contextWindow})),maxTokens:typebox_exports.Optional(typebox_exports.Number({exclusiveMinimum:0,default:16384,description:ModelFieldDescriptions.maxTokens})),samplingParams:typebox_exports.Optional(SamplingParamsFieldSchema),samplingParamsByThinkingLevel:typebox_exports.Optional(SamplingParamsByThinkingLevelSchema),headers:typebox_exports.Optional(HeadersSchema),compat:typebox_exports.Optional(ProviderCompatSchema2)}),ModelOverrideSchema=typebox_exports.Object({name:typebox_exports.Optional(typebox_exports.String({minLength:1,description:ModelFieldDescriptions.name})),reasoning:typebox_exports.Optional(typebox_exports.Boolean({description:ModelFieldDescriptions.reasoning})),thinkingLevelMap:typebox_exports.Optional(ThinkingLevelMapSchema2),input:typebox_exports.Optional(typebox_exports.Array(ModelInputModalitySchema2)),inputLimits:typebox_exports.Optional(ModelInputLimitsSchema2),cost:typebox_exports.Optional(PartialModelCostSchema),promptCache:typebox_exports.Optional(ModelPromptCacheSchema2),contextWindow:typebox_exports.Optional(typebox_exports.Number({exclusiveMinimum:0,description:ModelFieldDescriptions.contextWindow})),maxTokens:typebox_exports.Optional(typebox_exports.Number({exclusiveMinimum:0,description:ModelFieldDescriptions.maxTokens})),samplingParams:typebox_exports.Optional(SamplingParamsFieldSchema),samplingParamsByThinkingLevel:typebox_exports.Optional(SamplingParamsByThinkingLevelSchema),headers:typebox_exports.Optional(HeadersSchema),compat:typebox_exports.Optional(ProviderCompatSchema2)}),ProviderConfigSchema=typebox_exports.Object({name:typebox_exports.Optional(typebox_exports.String({minLength:1,description:"Display name."})),baseUrl:typebox_exports.Optional(typebox_exports.String({minLength:1,description:"API base URL. Also applies to the provider's built-in models."})),apiKey:typebox_exports.Optional(typebox_exports.String({minLength:1,description:'Literal key, "$NAME" environment interpolation, or "!command" output.'})),api:typebox_exports.Optional(typebox_exports.String({minLength:1,description:`API for the provider's models, such as "openai-completions", "openai-responses", "anthropic-messages", or "google-generative-ai".`})),oauth:typebox_exports.Optional(typebox_exports.Literal("radius",{description:"OAuth login flow. Requires baseUrl."})),headers:typebox_exports.Optional(HeadersSchema),compat:typebox_exports.Optional(ProviderCompatSchema2),authHeader:typebox_exports.Optional(typebox_exports.Boolean({default:!1,description:"Whether to send the resolved API key as Authorization: Bearer."})),models:typebox_exports.Optional(typebox_exports.Array(ModelDefinitionSchema)),modelOverrides:typebox_exports.Optional(typebox_exports.Record(typebox_exports.String(),ModelOverrideSchema))}),ModelsConfigProperties={providers:typebox_exports.Record(typebox_exports.String(),ProviderConfigSchema)},ModelsConfigSchema=typebox_exports.Object({$schema:typebox_exports.Optional(typebox_exports.String()),...ModelsConfigProperties});var validateModelsConfig=Compile(ModelsConfigSchema);function formatValidationPath2(error){if(error.keyword==="required"){let requiredProperty=error.params.requiredProperties?.[0];if(requiredProperty){let basePath=error.instancePath.replace(/^\//,"").replace(/\//g,".");return basePath?`${basePath}.${requiredProperty}`:requiredProperty}}return error.instancePath.replace(/^\//,"").replace(/\//g,".")||"root"}function deepFreeze(value){if(typeof value!="object"||value===null||Object.isFrozen(value))return value;for(let child of Object.values(value))deepFreeze(child);return Object.freeze(value)}var ModelConfig=class _ModelConfig{providers;error;constructor(providers,error){this.providers=providers,this.error=error}static async load(modelsJsonPath){if(!modelsJsonPath)return new _ModelConfig(new Map);let path=normalizePath(modelsJsonPath),content;try{content=await readFile(path,"utf-8")}catch(error){return error.code==="ENOENT"?new _ModelConfig(new Map):new _ModelConfig(new Map,`Failed to load models.json: ${error instanceof Error?error.message:error}
19
+
20
+ File: ${path}`)}let parsed;try{parsed=JSON.parse(stripJsonComments(stripBom(content)))}catch(error){return new _ModelConfig(new Map,`Failed to parse models.json: ${error instanceof Error?error.message:error}
21
+
22
+ File: ${path}`)}if(!validateModelsConfig.Check(parsed)){let errors=validateModelsConfig.Errors(parsed).map(error=>` - ${formatValidationPath2(error)}: ${error.message}`).join(`
23
+ `)||"Unknown schema error";return new _ModelConfig(new Map,`Invalid models.json schema:
24
+ ${errors}
25
+
26
+ File: ${path}`)}let providers=new Map;for(let[providerId,provider]of Object.entries(parsed.providers))providers.set(providerId,deepFreeze(structuredClone(provider)));return new _ModelConfig(providers)}getProvider(providerId){return this.providers.get(providerId)}getProviderIds(){return[...this.providers.keys()]}getError(){return this.error}};import{join}from"node:path";var sharedModelsFileReadState,InMemoryCodingAgentModelsStore=class{entries=new Map;async read(providerId,options){options?.signal?.throwIfAborted();let entry=this.entries.get(providerId);return entry?structuredClone(entry):void 0}async write(providerId,entry,options){options?.signal?.throwIfAborted(),this.entries.set(providerId,structuredClone(entry))}async delete(providerId,options){options?.signal?.throwIfAborted(),this.entries.delete(providerId)}},FileModelsStore=class{storage;path;readState;constructor(path=join(getAgentDir(),"models-store.json")){this.path=normalizePath(path),this.storage=new FileAuthStorageBackend(this.path),this.readState=sharedModelsFileReadState?.path===this.path?sharedModelsFileReadState.readState:{data:{}},sharedModelsFileReadState||(sharedModelsFileReadState={path:this.path,readState:this.readState})}parse(content){return content?JSON.parse(stripBom(content)):{}}updateReadState(readState,data,revision){readState.data=data,readState.revision=revision}reloadFromStorage(readState,options){return this.storage.withLockAsync(async content=>{let data=this.parse(content);return this.updateReadState(readState,data,getFileRevision(this.path)),{result:data}},options)}async readLatest(readState,options){options?.signal?.throwIfAborted();let revision=getFileRevision(this.path);if(revision!==void 0&&revision===readState.revision)return readState.data;if(!readState.reload){let controller=new AbortController,reload2={controller,promise:this.reloadFromStorage(readState,{signal:controller.signal}),readers:0};readState.reload=reload2,reload2.promise.then(()=>{readState.reload===reload2&&(readState.reload=void 0)},()=>{readState.reload===reload2&&(readState.reload=void 0)})}let reload=readState.reload;reload.readers++;try{return await raceWithAbortSignal(reload.promise,options?.signal)}finally{reload.readers--,reload.readers===0&&readState.reload===reload&&(readState.reload=void 0,reload.controller.abort())}}async read(providerId,options){let entry=(await this.readLatest(this.readState,options))[providerId];return options?.signal?.throwIfAborted(),entry?structuredClone(entry):void 0}async write(providerId,entry,options){let latest;await this.storage.withLockAsync(async content=>{let current=this.parse(content);return current[providerId]=structuredClone(entry),latest=current,{result:void 0,next:JSON.stringify(current,null,2)}},options),latest&&this.updateReadState(this.readState,latest)}async delete(providerId,options){let latest;await this.storage.withLockAsync(async content=>{let current=this.parse(content);return delete current[providerId],latest=current,{result:void 0,next:JSON.stringify(current,null,2)}},options),latest&&this.updateReadState(this.readState,latest)}};var azureOpenAIResponsesApi=()=>lazyApi(()=>import("./azure-openai-responses-LMBPTTDE.js"));var __rewriteRelativeImportExtension2=function(path,preserveJsx){return typeof path=="string"&&/^\.\.?\//.test(path)?path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m,tsx,d,ext,cm){return tsx?preserveJsx?".jsx":".js":d&&(!ext||!cm)?m:d+ext+"."+cm.toLowerCase()+"js"}):path},importNodeOnlyApi=specifier=>{let runtimeSpecifier=import.meta.url.endsWith(".js")?specifier.replace(/\.ts$/,".js"):specifier;return import(__rewriteRelativeImportExtension2(new URL(runtimeSpecifier,import.meta.url).href))},bedrockModuleOverride;function setBedrockProviderModule(module){bedrockModuleOverride=module}var bedrockConverseStreamApi=()=>lazyApi(async()=>bedrockModuleOverride??await importNodeOnlyApi("./bedrock-converse-stream.ts"));var googleGenerativeAIApi=()=>lazyApi(()=>import("./google-generative-ai-WFLFMJYT.js"));var googleVertexApi=()=>lazyApi(()=>import("./google-vertex-3VJ5WJYY.js"));var mistralConversationsApi=()=>lazyApi(()=>import("./mistral-conversations-G22LGLWM.js"));var openAICodexResponsesApi=()=>lazyApi(()=>import("./openai-codex-responses-CDQVKDUO.js"));var openAIResponsesApi=()=>lazyApi(()=>import("./openai-responses-4IZEGS2C.js"));var imageModelsByProvider=new Map;for(let[provider,models]of Object.entries(IMAGE_MODELS)){let imageModels=new Map;for(let model of Object.values(models))imageModels.set(model.id,model);imageModels.size>0&&imageModelsByProvider.set(provider,imageModels)}function getImageModel(provider,modelId){return imageModelsByProvider.get(provider)?.get(modelId)}function getImageProviders(){return Array.from(imageModelsByProvider.keys())}function getImageModels(provider){let models=imageModelsByProvider.get(provider);return models?Array.from(models.values()):[]}var imagesApiProviderRegistry=new Map;function wrapGenerateImages(api,generateImages2){return(model,context,options)=>{if(model.api!==api)throw new Error(`Mismatched api: ${model.api} expected ${api}`);return generateImages2(model,context,options)}}function registerImagesApiProvider(provider,sourceId){imagesApiProviderRegistry.set(provider.api,{provider:{api:provider.api,generateImages:wrapGenerateImages(provider.api,provider.generateImages)},sourceId})}function getImagesApiProvider(api){return imagesApiProviderRegistry.get(api)?.provider}var openRouterImagesProviderModulePromise;function createLazyLoadErrorImages(model,error){return{api:model.api,provider:model.provider,model:model.id,output:[],stopReason:"error",errorMessage:error instanceof Error?error.message:String(error),timestamp:Date.now()}}function loadOpenRouterImagesProviderModule(){return openRouterImagesProviderModulePromise||=import("./openrouter-images-EXXX2XDD.js").then(module=>module),openRouterImagesProviderModulePromise}var generateImagesOpenRouter=async(model,context,options)=>{try{return await(await loadOpenRouterImagesProviderModule()).generateImages(model,context,options)}catch(error){return createLazyLoadErrorImages(model,error)}};function registerBuiltInImagesApiProviders(){registerImagesApiProvider({api:"openrouter-images",generateImages:generateImagesOpenRouter})}registerBuiltInImagesApiProviders();function resolveImagesApiProvider(api){let provider=getImagesApiProvider(api);if(!provider)throw new Error(`No API provider registered for api: ${api}`);return provider}async function generateImages(model,context,options){return resolveImagesApiProvider(model.api).generateImages(model,context,options)}var anthropicMessagesStreams=anthropicMessagesApi(),azureOpenAIResponsesStreams=azureOpenAIResponsesApi(),googleGenerativeAIStreams=googleGenerativeAIApi(),googleVertexStreams=googleVertexApi(),mistralConversationsStreams=mistralConversationsApi(),openAICodexResponsesStreams=openAICodexResponsesApi(),openAICompletionsStreams=openAICompletionsApi(),openAIResponsesStreams=openAIResponsesApi(),streamAnthropic=anthropicMessagesStreams.stream,streamSimpleAnthropic=anthropicMessagesStreams.streamSimple,streamAzureOpenAIResponses=azureOpenAIResponsesStreams.stream,streamSimpleAzureOpenAIResponses=azureOpenAIResponsesStreams.streamSimple,streamGoogle=googleGenerativeAIStreams.stream,streamSimpleGoogle=googleGenerativeAIStreams.streamSimple,streamGoogleVertex=googleVertexStreams.stream,streamSimpleGoogleVertex=googleVertexStreams.streamSimple,streamMistral=mistralConversationsStreams.stream,streamSimpleMistral=mistralConversationsStreams.streamSimple,streamOpenAICodexResponses=openAICodexResponsesStreams.stream,streamSimpleOpenAICodexResponses=openAICodexResponsesStreams.streamSimple,streamOpenAICompletions=openAICompletionsStreams.stream,streamSimpleOpenAICompletions=openAICompletionsStreams.streamSimple,streamOpenAIResponses=openAIResponsesStreams.stream,streamSimpleOpenAIResponses=openAIResponsesStreams.streamSimple;var getModel=getBuiltinModel,getModels=getBuiltinModels,getProviders=getBuiltinProviders,apiProviderRegistry=new Map;function wrapStream(api,stream2){return(model,context,options)=>{if(model.api!==api)throw new Error(`Mismatched api: ${model.api} expected ${api}`);return stream2(model,context,options)}}function wrapStreamSimple(api,streamSimple2){return(model,context,options)=>{if(model.api!==api)throw new Error(`Mismatched api: ${model.api} expected ${api}`);return streamSimple2(model,context,options)}}function registerApiProvider(provider,sourceId){apiProviderRegistry.set(provider.api,{provider:{api:provider.api,stream:wrapStream(provider.api,provider.stream),streamSimple:wrapStreamSimple(provider.api,provider.streamSimple)},sourceId})}function getApiProvider(api){return apiProviderRegistry.get(api)?.provider}function getApiProviders(){return Array.from(apiProviderRegistry.values(),entry=>entry.provider)}function unregisterApiProviders(sourceId){for(let[api,entry]of apiProviderRegistry.entries())entry.sourceId===sourceId&&apiProviderRegistry.delete(api)}function clearApiProviders(){apiProviderRegistry.clear()}function registerFauxProvider(options={}){let core=createFauxCore(options),sourceId=`faux-provider-${Math.random().toString(36).slice(2,10)}`;return registerApiProvider({api:core.api,stream:core.stream,streamSimple:core.streamSimple},sourceId),{api:core.api,models:core.models,getModel:core.getModel,state:core.state,setResponses:core.setResponses,appendResponses:core.appendResponses,getPendingResponseCount:core.getPendingResponseCount,unregister(){unregisterApiProviders(sourceId)}}}var BUILTIN_APIS=[["anthropic-messages",anthropicMessagesApi()],["openai-completions",openAICompletionsApi()],["openai-responses",openAIResponsesApi()],["openai-codex-responses",openAICodexResponsesApi()],["azure-openai-responses",azureOpenAIResponsesApi()],["google-generative-ai",googleGenerativeAIApi()],["google-vertex",googleVertexApi()],["mistral-conversations",mistralConversationsApi()],["bedrock-converse-stream",bedrockConverseStreamApi()],["pi-messages",piMessagesApi()]],builtinApiProviderInstances=new Map;function registerBuiltInApiProviders(){for(let[api,streams]of BUILTIN_APIS)getApiProvider(api)||registerApiProvider({api,stream:streams.stream,streamSimple:streams.streamSimple}),builtinApiProviderInstances.set(api,getApiProvider(api))}function resetApiProviders(){clearApiProviders(),builtinApiProviderInstances.clear(),registerBuiltInApiProviders()}registerBuiltInApiProviders();var compatModels=builtinModels(),AMBIENT_AUTH_MARKER="<authenticated>";function hasExplicitApiKey(apiKey){return typeof apiKey=="string"&&apiKey.trim().length>0}function withEnvApiKey(model,options){if(hasExplicitApiKey(options?.apiKey))return options;let apiKey=getEnvApiKey(model.provider,options?.env);return!apiKey||apiKey===AMBIENT_AUTH_MARKER?options:{...options,apiKey}}function hasResolvedCloudflareAuth(options){return hasExplicitApiKey(options?.apiKey)||typeof options?.headers?.["cf-aig-authorization"]=="string"}function getBuiltinProviderForModel(model){if(getApiProvider(model.api)!==builtinApiProviderInstances.get(model.api))return;let provider=compatModels.getProvider(model.provider);return provider?.getModels().some(candidate=>candidate.api===model.api)?provider:void 0}function resolveApiProvider(api){let provider=getApiProvider(api);if(!provider)throw new Error(`No API provider registered for api: ${api}`);return provider}function stream(model,context,options){let transcript=normalizeContext(context),builtinProvider=getBuiltinProviderForModel(model);return builtinProvider?model.provider.startsWith("cloudflare-")&&!hasResolvedCloudflareAuth(options)?compatModels.stream(model,transcript,options):builtinProvider.stream(model,transcript,withEnvApiKey(model,options)):resolveApiProvider(model.api).stream(model,transcript,withEnvApiKey(model,options))}async function complete(model,context,options){return stream(model,context,options).result()}function streamSimple(model,context,options){let transcript=normalizeContext(context),builtinProvider=getBuiltinProviderForModel(model);return builtinProvider?model.provider.startsWith("cloudflare-")&&!hasResolvedCloudflareAuth(options)?compatModels.streamSimple(model,transcript,options):builtinProvider.streamSimple(model,transcript,withEnvApiKey(model,options)):resolveApiProvider(model.api).streamSimple(model,transcript,withEnvApiKey(model,options))}async function completeSimple(model,context,options){return streamSimple(model,context,options).result()}function getAllProviderModels(provider){return provider?provider.getAllModels?.()??provider.getModels():[]}function mergeCompat(base,override){if(!override)return base;let merged={...base,...override},baseNested=base,overrideNested=override,mergedNested=merged;for(let key of["openRouterRouting","vercelGatewayRouting","chatTemplateKwargs","chatTemplateArgs"]){let baseValue=baseNested?.[key],overrideValue=overrideNested[key];(typeof baseValue=="object"&&baseValue!==null||typeof overrideValue=="object"&&overrideValue!==null)&&(mergedNested[key]={...baseValue,...overrideValue})}return merged}function mergeInputLimits(base,override){return override?{...base,...override,images:override.images?{...base?.images,...override.images,resize:override.images.resize?{...base?.images?.resize,...override.images.resize}:base?.images?.resize}:base?.images}:base}function mergeSamplingParamsByThinkingLevel(base,override){if(!override)return base;let merged={...base};for(let level of["off","minimal","low","medium","high","xhigh","max"]){let params=override[level];params&&(merged[level]={...base?.[level],...params})}return merged}function applyModelOverride(model,override){return{...model,name:override.name??model.name,reasoning:override.reasoning??model.reasoning,thinkingLevelMap:override.thinkingLevelMap?{...model.thinkingLevelMap,...override.thinkingLevelMap}:model.thinkingLevelMap,input:override.input??model.input,inputLimits:mergeInputLimits(model.inputLimits,override.inputLimits),cost:override.cost?{input:override.cost.input??model.cost.input,output:override.cost.output??model.cost.output,cacheRead:override.cost.cacheRead??model.cost.cacheRead,cacheWrite:override.cost.cacheWrite??model.cost.cacheWrite,tiers:override.cost.tiers??model.cost.tiers}:model.cost,promptCache:override.promptCache?{...model.promptCache,...override.promptCache}:model.promptCache,contextWindow:override.contextWindow??model.contextWindow,maxTokens:override.maxTokens??model.maxTokens,samplingParams:override.samplingParams?{...model.samplingParams,...override.samplingParams}:model.samplingParams,samplingParamsByThinkingLevel:mergeSamplingParamsByThinkingLevel(model.samplingParamsByThinkingLevel,override.samplingParamsByThinkingLevel),compat:mergeCompat(model.compat,override.compat)}}function modelFromJson(providerId,definition,providerConfig,defaults){let api=definition.api??providerConfig.api??defaults?.api;if(!api)throw new Error(`Provider ${providerId}, model ${definition.id}: no "api" specified. Set at provider or model level.`);let baseUrl=definition.baseUrl??providerConfig.baseUrl??defaults?.baseUrl;if(!baseUrl)throw new Error(`Provider ${providerId}: "baseUrl" is required when defining custom models.`);if(definition.contextWindow!==void 0&&definition.contextWindow<=0)throw new Error(`Provider ${providerId}, model ${definition.id}: invalid contextWindow`);if(definition.maxTokens!==void 0&&definition.maxTokens<=0)throw new Error(`Provider ${providerId}, model ${definition.id}: invalid maxTokens`);return{id:definition.id,name:definition.name??definition.id,api,provider:providerId,baseUrl,reasoning:definition.reasoning??!1,thinkingLevelMap:definition.thinkingLevelMap,input:definition.input??["text"],inputLimits:definition.inputLimits,cost:definition.cost??{input:0,output:0,cacheRead:0,cacheWrite:0},promptCache:definition.promptCache,contextWindow:definition.contextWindow??128e3,maxTokens:definition.maxTokens??16384,samplingParams:definition.samplingParams,samplingParamsByThinkingLevel:definition.samplingParamsByThinkingLevel,headers:void 0,compat:mergeCompat(providerConfig.compat,definition.compat)}}function findModelDefaults(models,modelId,api){let chatModels=models.filter(model=>isModelType(model,"chat"));return chatModels.find(model=>model.id===modelId)??(api?chatModels.find(model=>model.api===api):void 0)??chatModels.find(model=>model.api==="openai-completions")??chatModels[0]}function findExtensionModelDefaults(models,definition){let type=definition.type??"chat",candidates=models.filter(model=>isModelType(model,type));return candidates.find(model=>model.id===definition.id)??(definition.api?candidates.find(model=>model.api===definition.api):void 0)??(type==="chat"?candidates.find(model=>model.api==="openai-completions"):void 0)??candidates[0]}function extensionModelFromDefinition(providerId,models,config,definition){let type=definition.type??"chat",defaults=findExtensionModelDefaults(models,definition),api=definition.api??(type==="chat"?config.api:void 0)??defaults?.api;if(!api)throw new Error(`Provider ${providerId}, model ${definition.id}: no "api" specified. Set it at model level${type==="chat"?" or provider level":""}.`);let baseUrl=definition.baseUrl??config.baseUrl??defaults?.baseUrl;if(!baseUrl)throw new Error(`Provider ${providerId}: "baseUrl" is required when defining custom models.`);return definition.type==="image"?{...definition,api,provider:providerId,baseUrl,headers:void 0}:definition.type==="classifier"?{...definition,api,provider:providerId,baseUrl,headers:void 0}:{...definition,api,provider:providerId,baseUrl,headers:void 0}}function applyModelsJson(providerId,baseModels,config){if(!config)return[...baseModels];if(config.oauth&&!config.baseUrl)throw new Error(`Provider ${providerId}: "baseUrl" is required when "oauth" is set.`);let hasOverrides=config.modelOverrides&&Object.keys(config.modelOverrides).length>0;if(!config.models?.length&&!config.baseUrl&&!config.headers&&!config.compat&&!hasOverrides&&!config.apiKey&&!config.oauth&&config.authHeader===void 0)throw new Error(`Provider ${providerId}: must specify "baseUrl", "headers", "compat", "modelOverrides", or "models".`);let models=baseModels.map(model=>{let baseUrl=config.oauth==="radius"?model.baseUrl:config.baseUrl??model.baseUrl;return isModelType(model,"chat")?{...model,baseUrl,compat:mergeCompat(model.compat,config.compat)}:isModelType(model,"classifier")&&config.compat?{...model,baseUrl,compat:{...model.compat,...config.compat}}:{...model,baseUrl}});for(let definition of config.models??[]){let existingIndex=models.findIndex(model2=>isModelType(model2,"chat")&&model2.id===definition.id),defaults=findModelDefaults(models,definition.id,definition.api??config.api),model=modelFromJson(providerId,definition,config,defaults);existingIndex>=0?models[existingIndex]=model:models.push(model)}return models}function applyExtension(providerId,models,config){return config?config.models?config.models.map(definition=>extensionModelFromDefinition(providerId,models,config,definition)):config.baseUrl?models.map(model=>({...model,baseUrl:config.baseUrl})):[...models]:[...models]}function adaptOAuth(config){return{name:config.name,isSubscription:config.isSubscription,login:async callbacks=>({...await config.login({onAuth:info=>callbacks.notify({type:"auth_url",...info}),onDeviceCode:info=>callbacks.notify({type:"device_code",...info}),onPrompt:prompt=>callbacks.prompt({type:"text",...prompt}),onProgress:message=>callbacks.notify({type:"progress",message}),onManualCodeInput:()=>callbacks.prompt({type:"manual_code",message:"Paste the authorization code"}),onSelect:prompt=>callbacks.prompt({type:"select",...prompt}),signal:callbacks.signal}),type:"oauth"}),refresh:async(credential,signal)=>({...await config.refreshToken(credential,signal),type:"oauth"}),toAuth:async credential=>({apiKey:config.getApiKey(credential)})}}function withConfiguredAuth(auth,headers,authHeader){let mergedHeaders=auth.headers||headers?{...auth.headers,...headers}:void 0;if(authHeader){if(!auth.apiKey)throw new Error("authHeader requires a resolved API key");mergedHeaders={...mergedHeaders,Authorization:`Bearer ${auth.apiKey}`}}return{...auth,headers:mergedHeaders}}function configuredApiKey(config,extension){return extension?.apiKey??config?.apiKey}function configuredHeaders(config,extension){if(!(!config?.headers&&!extension?.headers))return{...config?.headers,...extension?.headers}}async function configContextEnv(values,ctx,explicit){let env={...explicit};for(let name of new Set(values.flatMap(getConfigValueEnvVarNames))){if(env[name]!==void 0)continue;let value=await ctx.env(name);value!==void 0&&(env[name]=value)}return Object.keys(env).length>0?env:void 0}function composeApiKeyAuth(providerId,base,config,extension){let inherited=base?.auth.apiKey,rawKey=configuredApiKey(config,extension),oauth=extension?.oauth??base?.auth.oauth;if(!inherited&&rawKey===void 0&&oauth)return;let rawHeaders=configuredHeaders(config,extension),authHeader=extension?.authHeader??config?.authHeader??!1;return{name:inherited?.name??"API key",login:inherited?.login??(async interaction=>({type:"api_key",key:await interaction.prompt({type:"secret",message:"Enter API key"})})),check:async input=>{if(input.credential){if(inherited?.check)return inherited.check(input);if(input.credential.key)return{type:"api_key",source:"stored credential"};let resolved2=await inherited?.resolve(input);return resolved2?{type:"api_key",source:resolved2.source}:void 0}if(rawKey!==void 0){if(isCommandConfigValue(rawKey))return{type:"api_key",source:"configured API key"};let envNames=getConfigValueEnvVarNames(rawKey);for(let name of envNames)if(await input.ctx.env(name)===void 0)return;return{type:"api_key",source:"configured API key"}}if(inherited?.check)return inherited.check(input);let resolved=await inherited?.resolve(input);return resolved?{type:"api_key",source:resolved.source}:void 0},resolve:async input=>{let result;if(input.credential)result=inherited?await inherited.resolve(input):input.credential.key?{auth:{apiKey:input.credential.key},env:input.credential.env,source:"stored credential"}:void 0;else if(rawKey!==void 0){let env=await configContextEnv([rawKey],input.ctx),key=resolveConfigValueOrThrow(rawKey,`API key for provider "${providerId}"`,env);result=inherited?await inherited.resolve({...input,credential:{type:"api_key",key}}):{auth:{apiKey:key},source:"configured API key"}}else result=await inherited?.resolve(input);if(!result)return;let explicitEnv={...input.credential?.env??{},...result.env??{}},headerEnv=await configContextEnv(Object.values(rawHeaders??{}),input.ctx,explicitEnv),headers=resolveHeadersOrThrow(rawHeaders,`provider "${providerId}"`,headerEnv);return{...result,auth:withConfiguredAuth(result.auth,headers,authHeader)}}}}function composeOAuthAuth(providerId,base,config,extension){let oauth=extension?.oauth?adaptOAuth(extension.oauth):base?.auth.oauth;if(!oauth)return;let rawHeaders=configuredHeaders(config,extension),authHeader=extension?.authHeader??config?.authHeader??!1;return{...oauth,toAuth:async credential=>{let auth=await oauth.toAuth(credential),env=credential.env,headers=resolveHeadersOrThrow(rawHeaders,`provider "${providerId}"`,typeof env=="object"&&env!==null?env:void 0);return withConfiguredAuth(auth,headers,authHeader)}}}function rawModelHeaders(model,config,extension){let chatDefinition=isModelType(model,"chat")?config?.models?.find(entry=>entry.id===model.id):void 0,extensionModel=extension?.models?.find(entry=>(entry.type??"chat")===(model.type??"chat")&&entry.id===model.id),headers={...isModelType(model,"chat")?config?.modelOverrides?.[model.id]?.headers:void 0,...chatDefinition?.headers,...extensionModel?.headers};return Object.keys(headers).length>0?headers:void 0}function validateExtensionProvider(providerId,base,modelsConfig,extension){if(extension.streamSimple&&!extension.api)throw new Error(`Provider ${providerId}: "api" is required when registering streamSimple.`);applyExtension(providerId,applyModelsJson(providerId,getAllProviderModels(base),modelsConfig),extension)}function composeModelProvider(providerId,base,modelConfig,extension){let config=modelConfig.getProvider(providerId),extensionOAuthCredential,refreshedExtensionModels,currentExtension=()=>extension&&refreshedExtensionModels?{...extension,models:refreshedExtensionModels}:extension,getAllModels=()=>{let models=applyExtension(providerId,applyModelsJson(providerId,getAllProviderModels(base),config),currentExtension());return extensionOAuthCredential&&extension?.oauth?.modifyModels&&(models=[...extension.oauth.modifyModels(models.filter(model=>isModelType(model,"chat")),extensionOAuthCredential),...models.filter(model=>!isModelType(model,"chat"))]),models.map(model=>{let override=config?.modelOverrides?.[model.id];return override&&isModelType(model,"chat")?applyModelOverride(model,override):model})};getAllModels();let apiKey=composeApiKeyAuth(providerId,base,config,extension),oauth=composeOAuthAuth(providerId,base,config,extension);if(!apiKey&&!oauth)throw new Error(`Provider ${providerId}: no authentication method configured.`);let supportsBaseApi=model=>base?.getModels().some(entry=>entry.api===model.api)??!1,streamWith=(model,context,options,simple)=>lazyStream(model,async()=>{if(extension?.streamSimple&&model.api===extension.api)return extension.streamSimple(model,context,options);if(base&&supportsBaseApi(model))return simple?base.streamSimple(model,context,options):base.stream(model,context,options);let api=getApiProvider(model.api);if(!api)throw new Error(`No API provider registered for api: ${model.api}`);return simple?api.streamSimple(model,context,options):api.stream(model,context,options)},void 0,options?.signal),provider={id:providerId,name:extension?.name??config?.name??base?.name??extension?.oauth?.name??providerId,baseUrl:extension?.baseUrl??config?.baseUrl??base?.baseUrl,headers:base?.headers,auth:{...apiKey?{apiKey}:{},...oauth?{oauth}:{}},getModels:()=>getAllModels().filter(model=>isModelType(model,"chat")),getAllModels,refreshModels:base?.refreshModels||extension?.refreshModels||extension?.oauth?.modifyModels?async context=>{await base?.refreshModels?.(context);let refreshed;if(extension?.refreshModels&&(refreshed=await extension.refreshModels(context)),context.signal.aborted)return;let oauthCredential=context.credential?.type==="oauth"?context.credential:void 0;await context.publish({update:()=>{refreshed&&(applyExtension(providerId,applyModelsJson(providerId,getAllProviderModels(base),config),{...extension,models:refreshed}),refreshedExtensionModels=refreshed),extensionOAuthCredential=oauthCredential}})}:void 0,filterModels:base?.filterModels?(models,credential)=>base.filterModels(models,credential):void 0,filterAllModels:base?.filterAllModels?(models,credential)=>base.filterAllModels(models,credential):void 0,stream:(model,context,options)=>streamWith(model,context,options,!1),streamSimple:(model,context,options)=>streamWith(model,context,options,!0)},fetchDeferred=base?.fetchDeferred;fetchDeferred&&(provider.fetchDeferred=(model,handle,options)=>fetchDeferred(model,handle,options));let cancelDeferred=base?.cancelDeferred;cancelDeferred&&(provider.cancelDeferred=(model,handle,options)=>cancelDeferred(model,handle,options));let extensionImages=extension?.images,generateImages2=base?.generateImages;(generateImages2||Object.keys(extensionImages??{}).length>0)&&(provider.generateImages=(model,context,options)=>{let implementation=extensionImages?.[model.api];return implementation?implementation.generateImages(model,context,options):generateImages2?generateImages2(model,context,options):Promise.resolve(imageErrorResult(model,new Error(`Provider ${providerId} has no image implementation for "${model.api}"`)))});let extensionClassifiers=extension?.classifiers,classify=base?.classify;return(classify||Object.keys(extensionClassifiers??{}).length>0)&&(provider.classify=(model,context,options)=>{let implementation=extensionClassifiers?.[model.api];return implementation?implementation.classify(model,context,options):classify?classify(model,context,options):Promise.resolve(classifierErrorResult(model,new Error(`Provider ${providerId} has no classifier implementation for "${model.api}"`)))}),provider}function resolveConfiguredModelHeaders(model,config,extension,env){return resolveHeadersOrThrow(rawModelHeaders(model,config,extension),`model "${model.provider}/${model.id}"`,env)}function resolveCompatibilityRequestConfig(model,config,extension){let configured=resolveHeadersOrThrow({...configuredHeaders(config,extension),...rawModelHeaders(model,config,extension)},`model "${model.provider}/${model.id}"`);return{headers:model.headers||configured?{...model.headers,...configured}:void 0,authHeader:extension?.authHeader??config?.authHeader??!1}}function configuredRequestAuthStatus(config,extension){let value=configuredApiKey(config,extension);if(value===void 0)return;if(isCommandConfigValue(value))return{configured:!0,source:"models_json_command"};let names2=getConfigValueEnvVarNames(value);return names2.length>0?isConfigValueConfigured(value)?{configured:!0,source:"environment",label:names2.join(", ")}:{configured:!1}:{configured:!0,source:extension?.apiKey!==void 0?"fallback":"models_json_key"}}var RETRYABLE_STATUS_CODES=new Set([408,425,429,500,502,503,504]);async function fetchWithRetry(input,init=void 0,options={}){let maxRetries=options.maxRetries===void 0||!Number.isFinite(options.maxRetries)?2:Math.max(0,Math.floor(options.maxRetries)),retryOnStatus=options.retryOnStatus??!0,parentSignal=init?.signal??void 0,timeoutSignal=options.timeoutMs!==void 0&&options.timeoutMs>0?AbortSignal.timeout(options.timeoutMs):void 0,attemptTimeoutMs=options.attemptTimeoutMs!==void 0&&options.attemptTimeoutMs>0?options.attemptTimeoutMs:void 0;for(let attempt=0;;attempt++){parentSignal?.throwIfAborted(),timeoutSignal?.throwIfAborted();let attemptTimeoutSignal=attemptTimeoutMs?AbortSignal.timeout(attemptTimeoutMs):void 0,signals=[parentSignal,timeoutSignal,attemptTimeoutSignal].filter(signal2=>signal2!==void 0),signal=signals.length>1?AbortSignal.any(signals):signals[0];try{let response=await fetch(input,signal?{...init,signal}:init);if(!(retryOnStatus&&RETRYABLE_STATUS_CODES.has(response.status)&&attempt<maxRetries))return response;try{await response.body?.cancel()}catch{}}catch(error){let attemptTimedOut=attemptTimeoutSignal?.aborted===!0&&!parentSignal?.aborted&&!timeoutSignal?.aborted;if(parentSignal?.aborted||timeoutSignal?.aborted||error instanceof Error&&error.name==="AbortError"&&!attemptTimedOut&&timeoutSignal===void 0||attempt>=maxRetries)throw error}}}function getPiUserAgent(version){return formatUserAgent({userAgent:"detailed",version})}var DEFAULT_CATALOG_BASE_URL="https://pi.dev",REMOTE_CATALOG_ATTEMPT_TIMEOUT_MS=4e3,REMOTE_CATALOG_REFRESH_INTERVAL_MS=14400*1e3,REMOTE_CATALOG_MODEL_TYPES=["chat","image","classifier"];function isSupportedModelType(model){return model.type===void 0||typeof model.type=="string"&&REMOTE_CATALOG_MODEL_TYPES.includes(model.type)}function mergeModels(baseline,dynamic){let merged=new Map;for(let model of[...baseline,...dynamic])merged.set(`${getModelType(model)}\0${model.id}`,model);return[...merged.values()]}function parseCatalog(providerId,value){let entries2=Array.isArray(value)?value:typeof value=="object"&&value!==null&&"models"in value&&Array.isArray(value.models)?value.models:typeof value=="object"&&value!==null?Object.values(value):void 0;if(!entries2)throw new Error(`Invalid model catalog for provider "${providerId}"`);return entries2.filter(entry=>typeof entry=="object"&&entry!==null&&"id"in entry).filter(isSupportedModelType).map(model=>({...model,provider:providerId}))}async function readCatalog(providerId,response){let lastModified=Date.parse(response.headers.get("last-modified")??"");return{models:parseCatalog(providerId,await response.json()),lastModified:Number.isNaN(lastModified)?0:lastModified,etag:response.headers.get("etag")??void 0}}function isNewer(lastModified,localGeneratedAt){return localGeneratedAt===void 0||lastModified!==void 0&&lastModified>localGeneratedAt}function remoteModels(entry,localGeneratedAt){return entry&&isNewer(entry.lastModified,localGeneratedAt)?entry.models:[]}function requestCatalog(providerId,catalogBaseUrl,signal,validator){let url=new URL(`/api/models/providers/${encodeURIComponent(providerId)}`,catalogBaseUrl);return url.searchParams.set("types",REMOTE_CATALOG_MODEL_TYPES.join(",")),fetchWithRetry(url,{headers:{accept:"application/json","User-Agent":getPiUserAgent(VERSION),...validator?{"if-none-match":validator}:{}},signal},{attemptTimeoutMs:REMOTE_CATALOG_ATTEMPT_TIMEOUT_MS})}function withRemoteCatalog(provider,catalogBaseUrl=DEFAULT_CATALOG_BASE_URL,localGeneratedAt){let dynamicModels=[];return{...provider,getModels:()=>mergeModels(provider.getModels(),dynamicModels.filter(model=>isModelType(model,"chat"))),getAllModels:()=>mergeModels(provider.getAllModels?.()??provider.getModels(),dynamicModels),refreshModels:async context=>{let stored=context.stored,restored=remoteModels(stored,localGeneratedAt).filter(model=>model.provider===provider.id);if(!await context.publish({update:()=>{dynamicModels=restored}})||!context.allowNetwork||context.signal.aborted||!context.force&&stored?.checkedAt!==void 0&&stored.lastModified!==void 0&&Date.now()-stored.checkedAt<REMOTE_CATALOG_REFRESH_INTERVAL_MS)return;let validator=stored&&stored.models.length>0?stored.etag:void 0,response=await requestCatalog(provider.id,catalogBaseUrl,context.signal,validator);if(context.signal.aborted)return;let checkedAt=Date.now();if(response.status===304&&stored){await context.publish({persist:{...stored,checkedAt}});return}if(response.status===404||response.status===501){await context.publish({persist:{...stored??{models:[]},checkedAt,lastModified:0,etag:void 0}});return}if(!response.ok)throw await context.publish({persist:{...stored??{models:[]},checkedAt}}),new Error(`Model catalog request failed for ${provider.id}: ${response.status}`);let catalog=await readCatalog(provider.id,response);if(context.signal.aborted)return;let entry={...catalog,checkedAt},published=remoteModels(entry,localGeneratedAt);await context.publish({persist:entry,update:()=>{dynamicModels=published}})}}}function withPersonalizedCatalog(provider,personalize,catalogBaseUrl=DEFAULT_CATALOG_BASE_URL,localGeneratedAt){let personalModels=[],builtinModels2=()=>provider.getAllModels?.()??provider.getModels(),getAllModels=()=>personalModels.length>0?personalModels:builtinModels2();return{...provider,getModels:()=>getAllModels().filter(model=>isModelType(model,"chat")),getAllModels,refreshModels:async context=>{let restored=(context.stored?.models??[]).filter(model=>model.provider===provider.id);if(!await context.publish({update:()=>{personalModels=restored}})||!context.allowNetwork||context.signal.aborted)return;let response=await requestCatalog(provider.id,catalogBaseUrl,context.signal);if(context.signal.aborted)return;let remote=[];if(response.status!==404&&response.status!==501){if(!response.ok)throw new Error(`Model catalog request failed for ${provider.id}: ${response.status}`);let catalog=await readCatalog(provider.id,response);isNewer(catalog.lastModified,localGeneratedAt)&&(remote=catalog.models)}let personalized=await personalize(mergeModels(builtinModels2(),remote),context);context.signal.aborted||await context.publish({persist:{models:personalized,checkedAt:Date.now()},update:()=>{personalModels=personalized}})}}}var RuntimeCredentials=class{store;overrides=new Map;pendingModifications=new Set;constructor(store){this.store=store}setRuntimeApiKey(providerId,apiKey){this.overrides.set(providerId,apiKey)}removeRuntimeApiKey(providerId){this.overrides.delete(providerId)}hasRuntimeApiKey(providerId){return this.overrides.has(providerId)}async read(providerId,options){options?.signal?.throwIfAborted();let override=this.overrides.get(providerId);return override?{type:"api_key",key:override}:this.store.read(providerId,options)}async list(options){let entries2=new Map((await this.store.list(options)).map(entry=>[entry.providerId,entry]));options?.signal?.throwIfAborted();for(let providerId of this.overrides.keys())entries2.set(providerId,{providerId,type:"api_key"});return[...entries2.values()]}modify(providerId,fn,options){let modification=this.store.modify(providerId,fn,options),pending=modification.then(()=>{},()=>{});return this.pendingModifications.add(pending),pending.finally(()=>this.pendingModifications.delete(pending)),modification}async settled(){await Promise.all(this.pendingModifications)}async delete(providerId,options){options?.signal?.throwIfAborted(),await this.store.delete(providerId,options),this.overrides.delete(providerId)}};var CredentialSynchronizationError=class extends Error{providerId;operation;credential;constructor(providerId,operation,credential,options){super(`Credential ${operation} committed for ${providerId}, but local synchronization failed`,options),this.name="CredentialSynchronizationError",this.providerId=providerId,this.operation=operation,this.credential=credential}};function mergeHeaders(base,override){if(!base&&!override)return;let merged={...base};for(let[name,value]of Object.entries(override??{})){let lowerName=name.toLowerCase();for(let existingName of Object.keys(merged))existingName.toLowerCase()===lowerName&&delete merged[existingName];merged[name]=value}return merged}var ModelRuntime=class _ModelRuntime{models;credentials;defaultBuiltins;builtins=new Map;nativeExtensionProviders=new Map;extensionProviders=new Map;virtualModels=new Map;compositionErrors=new Map;modelsPath;modelNetworkEnabled;config;snapshot={all:[],available:[],configuredProviders:new Set,storedProviders:new Set,auth:new Map};availabilityRefreshSeq=0;availabilityErrorSeq=0;providerAvailabilitySeq=new Map;availabilityError;credentialOperations=new Map;constructor(credentials,config,modelsPath,modelsStore,providers,modelNetworkEnabled){this.credentials=credentials,this.config=config,this.modelsPath=modelsPath,this.modelNetworkEnabled=modelNetworkEnabled,this.defaultBuiltins=new Map(providers.map(provider=>[provider.id,provider]));for(let[providerId,provider]of this.defaultBuiltins)this.builtins.set(providerId,provider);this.models=createModels({credentials,modelsStore}),this.rebuildProviders()}static async create(options={}){let credentials=new RuntimeCredentials(options.credentials??AuthStorage.create(options.authPath)),modelsPath=options.modelsPath===null?void 0:options.modelsPath??join2(getAgentDir(),"models.json"),config=await ModelConfig.load(modelsPath),modelsStore=options.modelsStore??(modelsPath?new FileModelsStore(options.modelsStorePath??join2(dirname(modelsPath),"models-store.json")):new InMemoryCodingAgentModelsStore),builtinModelDataGeneratedAt=getBuiltinModelDataGeneratedAt(),providers=builtinProviders().map(provider=>provider.id==="radius"?provider:provider.id==="openrouter"?withPersonalizedCatalog(provider,personalizeOpenRouterCatalog,options.catalogBaseUrl,builtinModelDataGeneratedAt):withRemoteCatalog(provider,options.catalogBaseUrl,builtinModelDataGeneratedAt)),runtime=new _ModelRuntime(credentials,config,modelsPath,modelsStore,providers,process.env.PI_OFFLINE===void 0);runtime.configureRadiusProviders(),runtime.rebuildProviders();let refreshFromNetwork=runtime.modelNetworkEnabled&&options.allowModelNetwork===!0,controller=refreshFromNetwork&&options.modelRefreshTimeoutMs!==void 0?new AbortController:void 0,timeout=controller?setTimeout(()=>controller.abort(),options.modelRefreshTimeoutMs):void 0,signal=controller?options.signal?AbortSignal.any([options.signal,controller.signal]):controller.signal:options.signal;try{options.refreshOnCreate!==!1&&await runtime.refresh({allowNetwork:refreshFromNetwork,signal})}finally{timeout&&clearTimeout(timeout)}return runtime}configureRadiusProviders(){this.builtins.clear();for(let[providerId,provider]of this.defaultBuiltins)this.builtins.set(providerId,provider);for(let providerId of this.config.getProviderIds()){let config=this.config.getProvider(providerId);config?.oauth!=="radius"||!config.baseUrl||this.builtins.set(providerId,radiusProvider({id:providerId,name:config.name??providerId,gateway:config.baseUrl.replace(/\/v1\/?$/u,"")}))}}providerIds(){return new Set([...this.builtins.keys(),...this.nativeExtensionProviders.keys(),...this.config.getProviderIds(),...this.extensionProviders.keys(),...this.virtualModels.keys()])}recomposeProvider(providerId){let provider=this.composeProvider(providerId),virtualModels=[...this.virtualModels.get(providerId)?.values()??[]].map(entry=>entry.model);return virtualModels.length>0?this.models.setProvider(withVirtualModels(providerId,provider,virtualModels)):provider?this.models.setProvider(provider):this.models.deleteProvider(providerId),provider}composeProvider(providerId){let base=this.nativeExtensionProviders.get(providerId)??this.builtins.get(providerId),extension=this.extensionProviders.get(providerId);if(!this.config.getProvider(providerId)&&!extension)return this.compositionErrors.delete(providerId),base;try{let provider=composeModelProvider(providerId,base,this.config,extension);return this.compositionErrors.delete(providerId),provider}catch(error){return this.compositionErrors.set(providerId,error instanceof Error?error.message:String(error)),base}}rebuildProviders(){this.models.clearProviders(),this.compositionErrors.clear();for(let providerId of this.providerIds())this.recomposeProvider(providerId);this.updateModelSnapshot()}updateModelSnapshot(){let all=[...this.models.getModels()];this.snapshot={...this.snapshot,all,available:all.filter(model=>this.snapshot.configuredProviders.has(model.provider))}}async runAvailabilityRefresh(seq,errorSeq,signal){let providers=this.models.getProviders(),[available,checks,credentials]=await Promise.all([this.models.getAvailable(void 0,{signal}),Promise.all(providers.map(async provider=>[provider.id,await this.models.checkAuth(provider.id,{signal})])),this.credentials.list({signal})]);if(seq!==this.availabilityRefreshSeq)return;let auth=new Map(checks),configuredProviders=new Set(checks.filter(entry=>entry[1]!==void 0).map(([providerId])=>providerId));this.snapshot={all:[...this.models.getModels()],available:[...available],configuredProviders,storedProviders:new Set(credentials.map(entry=>entry.providerId)),auth},errorSeq===this.availabilityErrorSeq&&(this.availabilityError=void 0)}queueAvailabilityRefresh(signal){let seq=++this.availabilityRefreshSeq;for(let[providerId,providerSeq]of this.providerAvailabilitySeq)this.providerAvailabilitySeq.set(providerId,providerSeq+1);let errorSeq=++this.availabilityErrorSeq,effectiveSignal=operationSignal(signal);return this.runAvailabilityRefresh(seq,errorSeq,effectiveSignal).catch(error=>{throw errorSeq===this.availabilityErrorSeq&&!effectiveSignal.aborted&&(this.availabilityError=error instanceof Error?error.message:String(error)),error})}async refreshProviderAvailability(providerId,signal){++this.availabilityRefreshSeq;let providerSeq=(this.providerAvailabilitySeq.get(providerId)??0)+1;this.providerAvailabilitySeq.set(providerId,providerSeq);let errorSeq=++this.availabilityErrorSeq;try{let[available,auth,credential]=await Promise.all([this.models.getAvailable(providerId,{signal}),this.models.checkAuth(providerId,{signal}),this.credentials.read(providerId,{signal})]);if(signal.throwIfAborted(),this.providerAvailabilitySeq.get(providerId)!==providerSeq)return;let configuredProviders=new Set(this.snapshot.configuredProviders),storedProviders=new Set(this.snapshot.storedProviders),authByProvider=new Map(this.snapshot.auth);auth?(configuredProviders.add(providerId),authByProvider.set(providerId,auth)):(configuredProviders.delete(providerId),authByProvider.delete(providerId)),credential?storedProviders.add(providerId):storedProviders.delete(providerId);let all=[...this.models.getModels()],availableById=new Map([...this.snapshot.available.filter(model=>model.provider!==providerId),...available].map(model=>[`${model.provider}\0${model.id}`,model]));this.snapshot={all,available:all.flatMap(model=>availableById.get(`${model.provider}\0${model.id}`)??[]),configuredProviders,storedProviders,auth:authByProvider},errorSeq===this.availabilityErrorSeq&&(this.availabilityError=void 0)}catch(error){throw this.providerAvailabilitySeq.get(providerId)===providerSeq&&errorSeq===this.availabilityErrorSeq&&!signal.aborted&&(this.availabilityError=error instanceof Error?error.message:String(error)),error}}getProviders(){return this.models.getProviders()}getProvider(providerId){return this.models.getProvider(providerId)}getModels(providerId){return this.models.getModels(providerId)}getModel(providerId,modelId){return this.models.getModel(providerId,modelId)}getModelsOfType(type,providerId){return this.models.getModelsOfType(type,providerId)}getModelOfType(type,providerId,modelId){return this.models.getModelOfType(type,providerId,modelId)}getAllModels(providerId){return this.models.getAllModels(providerId)}getAvailableOfType(type,providerId,options){return this.models.getAvailableOfType(type,providerId,options)}getAllAvailable(providerId,options){return this.models.getAllAvailable(providerId,options)}async checkAuth(providerId,options){return this.models.checkAuth(providerId,options)}async getAvailable(providerId,options){if(providerId){let errorSeq=++this.availabilityErrorSeq;try{let available=await this.models.getAvailable(providerId,options);return errorSeq===this.availabilityErrorSeq&&(this.availabilityError=void 0),available}catch(error){throw errorSeq===this.availabilityErrorSeq&&!options?.signal?.aborted&&(this.availabilityError=error instanceof Error?error.message:String(error)),error}}return await this.queueAvailabilityRefresh(options?.signal),this.snapshot.available}getAvailableSnapshot(){return this.snapshot.available}getError(){let errors=[],configError=this.config.getError();configError&&errors.push(configError);for(let[providerId,error]of this.compositionErrors)errors.push(`Provider "${providerId}": ${error}`);return this.availabilityError&&errors.push(`Availability refresh: ${this.availabilityError}`),errors.length>0?errors.join(`
27
+
28
+ `):void 0}getRegisteredProviderConfig(providerId){return this.extensionProviders.get(providerId)}getRegisteredProviderIds(){return[...new Set([...this.extensionProviders.keys(),...this.nativeExtensionProviders.keys()])]}getRegisteredNativeProvider(providerId){return this.nativeExtensionProviders.get(providerId)}getCompatibilityRequestConfig(model){return resolveCompatibilityRequestConfig(model,this.config.getProvider(model.provider),this.extensionProviders.get(model.provider))}isUsingOAuth(providerId){return this.snapshot.auth.get(providerId)?.type==="oauth"}isUsingSubscription(providerId){return this.isUsingOAuth(providerId)&&this.models.getProvider(providerId)?.auth.oauth?.isSubscription===!0}hasConfiguredAuth(providerId){return this.snapshot.configuredProviders.has(providerId)}async getAuth(providerOrModel,overrides={}){if(typeof providerOrModel=="string")return this.models.getAuth(providerOrModel,overrides);let resolution=await this.models.getAuth(providerOrModel,overrides);if(!resolution)return;let configuredHeaders2=resolveConfiguredModelHeaders(providerOrModel,this.config.getProvider(providerOrModel.provider),this.extensionProviders.get(providerOrModel.provider),{...resolution.env??{},...overrides.env??{}});return{...resolution,auth:{...resolution.auth,headers:mergeHeaders(resolution.auth.headers,configuredHeaders2)}}}enqueueCredentialOperation(providerId,signal,task){let previous=this.credentialOperations.get(providerId)??Promise.resolve(),markStarted,started=new Promise(resolve=>{markStarted=resolve}),operation=(async()=>(await previous.catch(()=>{}),signal.throwIfAborted(),markStarted?.(),task()))(),tail=operation.catch(()=>{});return this.credentialOperations.set(providerId,tail),tail.then(()=>{this.credentialOperations.get(providerId)===tail&&this.credentialOperations.delete(providerId)}),raceWithAbortSignal(started,signal).then(()=>operation)}async synchronizeCredentialState(providerId,operation,credential,signal){try{signal.throwIfAborted(),this.recomposeProvider(providerId);let compositionError=this.compositionErrors.get(providerId);if(compositionError)throw new Error(compositionError);let result=await this.models.refresh({allowNetwork:!1,providers:[providerId],signal});result.aborted&&signal.throwIfAborted();let refreshError=result.errors.get(providerId);if(refreshError)throw refreshError;this.updateModelSnapshot(),await this.refreshProviderAvailability(providerId,signal)}catch(cause){throw new CredentialSynchronizationError(providerId,operation,credential,{cause})}}setRuntimeApiKey(providerId,apiKey,options={}){let signal=operationSignal(options.signal);return this.enqueueCredentialOperation(providerId,signal,async()=>{this.credentials.setRuntimeApiKey(providerId,apiKey),await this.synchronizeCredentialState(providerId,"setRuntimeApiKey",{type:"api_key",key:apiKey},signal)})}removeRuntimeApiKey(providerId,options={}){let signal=operationSignal(options.signal);return this.enqueueCredentialOperation(providerId,signal,async()=>{this.credentials.removeRuntimeApiKey(providerId),await this.synchronizeCredentialState(providerId,"removeRuntimeApiKey",void 0,signal)})}settleCredentialWrites(){return this.credentials.settled()}listCredentials(options){return this.credentials.list(options)}getProviderAuthStatus(providerId){if(this.credentials.hasRuntimeApiKey(providerId))return{configured:!0,source:"runtime"};if(this.snapshot.storedProviders.has(providerId))return{configured:!0,source:"stored"};let configured=configuredRequestAuthStatus(this.config.getProvider(providerId),this.extensionProviders.get(providerId));if(configured)return configured;let check=this.snapshot.auth.get(providerId);return check?{configured:!0,source:"environment",label:check.source}:{configured:!1}}async prepareRequest(model,options){let provider=this.models.getProvider(model.provider);if(!provider)throw new ModelsError("provider",`Unknown provider: ${model.provider}`);let resolution=await this.getAuth(model,{apiKey:options?.apiKey,env:options?.env,signal:options?.signal});if(!resolution)throw new ModelsError("auth",`Provider is not configured: ${model.provider}`);let{transformHeaders,...rawProviderOptions}=options??{},providerOptions=rawProviderOptions,requestModel=resolution.auth.baseUrl?{...model,baseUrl:resolution.auth.baseUrl}:model,sessionId="sessionId"in providerOptions&&typeof providerOptions.sessionId=="string"?providerOptions.sessionId:void 0,headers=mergeHeaders(mergeHeaders(getOpenCodeSessionHeaders(requestModel,sessionId),resolution.auth.headers),providerOptions.headers);transformHeaders&&(headers=await transformHeaders(headers??{}));let env=resolution.env||providerOptions.env?{...resolution.env??{},...providerOptions.env??{}}:void 0;return{provider,model:requestModel,options:{...providerOptions,apiKey:providerOptions.apiKey??resolution.auth.apiKey,headers,env}}}stream(model,context,options){let transcript=normalizeContext(context);return lazyStream(model,async()=>{assertChatModel(model);let prepared=await this.prepareRequest(model,options);return prepared.provider.stream(prepared.model,transcript,prepared.options)},void 0,options?.signal)}complete(model,context,options){return this.stream(model,context,options).result()}streamSimple(model,context,options){let transcript=normalizeContext(context);return isVirtualModel(model)?lazyStream(model,async()=>{let route=await this.resolveModel(model,transcript.messages,{reason:"direct",thinkingLevel:options?.reasoning??"off",signal:options?.signal}),{maxTokens:limit}=route.model,maxTokens=options?.maxTokens&&limit>0?Math.min(options.maxTokens,limit):options?.maxTokens,reasoning=route.thinkingLevel==="off"?void 0:route.thinkingLevel,{apiKey,headers,env,...rest}=options??{},auth=route.model.provider===model.provider?{apiKey,headers,env}:{};return this.streamSimple(route.model,context,{...rest,...auth,maxTokens,reasoning})},void 0,options?.signal):lazyStream(model,async()=>{assertChatModel(model);let prepared=await this.prepareRequest(model,options);return prepared.provider.streamSimple(prepared.model,transcript,prepared.options)},void 0,options?.signal)}completeSimple(model,context,options){return this.streamSimple(model,context,options).result()}streamDeferred(model,handle,options){return lazyStream(model,async()=>{assertChatModel(model);let prepared=await this.prepareRequest(model,options);if(!prepared.provider.fetchDeferred)throw new ModelsError("provider",`Provider ${model.provider} does not support deferred responses`);return prepared.provider.fetchDeferred(prepared.model,handle,prepared.options)},void 0,options?.signal)}async fetchDeferred(model,handle,options){return this.streamDeferred(model,handle,options).result()}async cancelDeferred(model,handle,options){assertChatModel(model);let prepared=await this.prepareRequest(model,options);if(!prepared.provider.cancelDeferred)throw new ModelsError("provider",`Provider ${model.provider} does not support deferred responses`);await prepared.provider.cancelDeferred(prepared.model,handle,prepared.options)}async generateImages(model,context,options){try{assertImageModel(model);let prepared=await this.prepareRequest(model,options);if(!prepared.provider.generateImages)throw new ModelsError("provider",`Provider ${model.provider} does not support image generation`);return await prepared.provider.generateImages(prepared.model,context,prepared.options)}catch(error){return imageErrorResult(model,error,options?.signal?.aborted)}}async classify(model,context,options){try{assertClassifierModel(model),assertClassifierInputSupported(model,context);let prepared=await this.prepareRequest(model,options);if(!prepared.provider.classify)throw new ModelsError("provider",`Provider ${model.provider} does not support classification`);return await prepared.provider.classify(prepared.model,context,prepared.options)}catch(error){return classifierErrorResult(model,error,options?.signal?.aborted)}}login(providerId,type,interaction,options){let signal=operationSignal(interaction.signal);return this.enqueueCredentialOperation(providerId,signal,async()=>{let credential=await this.models.login(providerId,type,{...interaction,signal},options);return await this.synchronizeCredentialState(providerId,"login",credential,signal),credential})}logout(providerId,options={}){let signal=operationSignal(options.signal);return this.enqueueCredentialOperation(providerId,signal,async()=>{await this.models.logout(providerId,{signal}),await this.synchronizeCredentialState(providerId,"logout",void 0,signal)})}async refresh(options={}){if(this.config=await ModelConfig.load(this.modelsPath),this.configureRadiusProviders(),options.providers){for(let providerId of new Set(options.providers))this.recomposeProvider(providerId);this.updateModelSnapshot()}else this.rebuildProviders();let refreshOptions={...options,allowNetwork:options.allowNetwork??this.modelNetworkEnabled},result=await this.models.refresh(refreshOptions)??{aborted:refreshOptions.signal?.aborted??!1,errors:new Map},errors=new Map(result.errors);if(this.updateModelSnapshot(),options.providers)await Promise.all([...new Set(options.providers)].map(async providerId=>{try{await this.refreshProviderAvailability(providerId,operationSignal(options.signal))}catch(error){options.signal?.aborted||errors.set(providerId,error instanceof Error?error:new Error(String(error)))}}));else try{await this.queueAvailabilityRefresh(options.signal)}catch{}return{aborted:result.aborted||(options.signal?.aborted??!1),errors}}registerNativeProvider(provider){if(!provider.id.trim())throw new Error("Provider id must not be empty.");this.extensionProviders.delete(provider.id),this.nativeExtensionProviders.set(provider.id,provider),this.recomposeProvider(provider.id),this.updateModelSnapshot(),this.markProvisionallyConfigured(provider.id,configuredRequestAuthStatus(this.config.getProvider(provider.id),void 0),provider.auth.oauth&&!provider.auth.apiKey?"oauth":"api_key"),this.refresh({allowNetwork:!1})}markProvisionallyConfigured(providerId,configuredStatus,type){if(!this.snapshot.storedProviders.has(providerId)&&!configuredStatus?.configured)return;let configuredProviders=new Set(this.snapshot.configuredProviders).add(providerId),auth=new Map(this.snapshot.auth);auth.get(providerId)||auth.set(providerId,{type,source:"configured provider"}),this.snapshot={...this.snapshot,auth,configuredProviders,available:this.snapshot.all.filter(model=>configuredProviders.has(model.provider))}}registerProvider(providerId,config){validateExtensionProvider(providerId,this.builtins.get(providerId),this.config.getProvider(providerId),config),this.nativeExtensionProviders.delete(providerId);let effective={...this.extensionProviders.get(providerId)};for(let[key,value]of Object.entries(config))value!==void 0&&(effective[key]=value);this.extensionProviders.set(providerId,effective),this.recomposeProvider(providerId),this.updateModelSnapshot(),this.markProvisionallyConfigured(providerId,configuredRequestAuthStatus(this.config.getProvider(providerId),effective),effective.oauth&&!effective.apiKey?"oauth":"api_key"),this.refresh({allowNetwork:!1})}unregisterProvider(providerId){this.extensionProviders.delete(providerId),this.nativeExtensionProviders.delete(providerId),this.recomposeProvider(providerId),this.updateModelSnapshot(),this.refresh({allowNetwork:!1})}registerVirtualModel(definition){let{provider:providerId,id}=definition;if(!providerId.trim()||!id.trim())throw new Error("Virtual model provider and id must not be empty.");let existing=this.models.getModel(providerId,id);if(existing&&!isVirtualModel(existing))throw new Error(`Virtual model ${providerId}/${id} conflicts with a physical model.`);let models=this.virtualModels.get(providerId)??new Map;if(models.set(id,{model:createVirtualModel(definition),route:request=>definition.route(request)}),this.virtualModels.set(providerId,models),!this.recomposeProvider(providerId)&&!this.snapshot.configuredProviders.has(providerId)){let auth=new Map(this.snapshot.auth).set(providerId,{type:"api_key",source:"virtual"}),configuredProviders=new Set(this.snapshot.configuredProviders).add(providerId);this.snapshot={...this.snapshot,auth,configuredProviders}}this.updateModelSnapshot(),this.refresh({allowNetwork:!1})}unregisterVirtualModel(providerId,id){let models=this.virtualModels.get(providerId);models?.delete(id)&&(models.size===0&&this.virtualModels.delete(providerId),this.recomposeProvider(providerId),this.updateModelSnapshot(),this.refresh({allowNetwork:!1}))}async resolveModel(model,messages,options){let name=`Virtual model ${model.provider}/${model.id}`,virtual=this.virtualModels.get(model.provider)?.get(model.id);if(!virtual)throw new Error(`${name} is not registered.`);let{failed,...request}=options,latest=findLatestResponse(messages),previousModel=latest&&this.getPhysicalModel(latest.provider,latest.model),failedModel=failed&&this.getPhysicalModel(failed.provider,failed.model),route=await virtual.route({...request,model,previous:previousModel&&{model:previousModel,thinkingLevel:latest?.thinkingLevel},failed:failedModel&&failed&&{model:failedModel,thinkingLevel:failed.thinkingLevel,message:failed},messages}),target=this.getPhysicalModel(route.model.provider,route.model.id),routed=`${name} routed to ${route.model.provider}/${route.model.id}`;if(!target)throw new Error(`${routed}, which is not a physical model.`);if(!this.hasConfiguredAuth(target.provider))throw new Error(`${routed}, which has no credentials.`);return{model:target,thinkingLevel:clampThinkingLevel(target,route.thinkingLevel),state:route.state}}getPhysicalModel(providerId,modelId){let model=this.models.getModel(providerId,modelId);return model&&!isVirtualModel(model)?model:void 0}};var import_proper_lockfile=__toESM(require_proper_lockfile(),1);import{existsSync,mkdirSync,readFileSync,writeFileSync}from"node:fs";import{homedir}from"node:os";import{dirname as dirname2,join as join3}from"node:path";var TRUST_REQUIRING_PROJECT_CONFIG_RESOURCES=["settings.json","mcp.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"];function normalizeCwd(cwd){return canonicalizePath(resolvePath(cwd))}function findTrustFileKeys(data,path){return Object.keys(data).filter(key=>pathsEqual(key,path))}function findNearestTrustEntry(data,cwd){let currentDir=normalizeCwd(cwd);for(;;){for(let key of findTrustFileKeys(data,currentDir)){let value=data[key];if(value===!0||value===!1)return{path:key,decision:value}}let parentDir=dirname2(currentDir);if(parentDir===currentDir)return null;currentDir=parentDir}}function getProjectTrustParentPath(cwd){let trustPath=normalizeCwd(cwd),parentDir=dirname2(trustPath);return parentDir===trustPath?void 0:parentDir}function getProjectTrustOptions(cwd,options){let trustPath=normalizeCwd(cwd),trustOptions=[{label:"Trust",trusted:!0,updates:[{path:trustPath,decision:!0}],savedPath:trustPath}],parentPath=getProjectTrustParentPath(cwd);return parentPath!==void 0&&trustOptions.push({label:`Trust parent folder (${parentPath})`,trusted:!0,updates:[{path:parentPath,decision:!0},{path:trustPath,decision:null}],savedPath:parentPath}),options?.includeSessionOnly&&trustOptions.push({label:"Trust (this session only)",trusted:!0,updates:[]}),trustOptions.push({label:"Do not trust",trusted:!1,updates:[{path:trustPath,decision:!1}],savedPath:trustPath}),options?.includeSessionOnly&&trustOptions.push({label:"Do not trust (this session only)",trusted:!1,updates:[]}),trustOptions}function readTrustFile(path){if(!existsSync(path))return{};let parsed;try{parsed=JSON.parse(stripBom(readFileSync(path,"utf-8")))}catch(error){let message=error instanceof Error?error.message:String(error);throw new Error(`Failed to read trust store ${path}: ${message}`)}if(typeof parsed!="object"||parsed===null||Array.isArray(parsed))throw new Error(`Invalid trust store ${path}: expected an object`);let data={};for(let[key,value]of Object.entries(parsed)){if(value!==!0&&value!==!1&&value!==null)throw new Error(`Invalid trust store ${path}: value for ${JSON.stringify(key)} must be true, false, or null`);data[key]=value}return data}function writeTrustFile(path,data){let sorted={};for(let key of Object.keys(data).sort()){let value=data[key];(value===!0||value===!1||value===null)&&(sorted[key]=value)}mkdirSync(dirname2(path),{recursive:!0}),writeFileSync(path,`${JSON.stringify(sorted,null,2)}
29
+ `,"utf-8")}function acquireTrustLockSync(path){let trustDir=dirname2(path);mkdirSync(trustDir,{recursive:!0});let maxAttempts=10,delayMs=20,lastError;for(let attempt=1;attempt<=maxAttempts;attempt++)try{return import_proper_lockfile.default.lockSync(trustDir,{realpath:!1,lockfilePath:`${path}.lock`})}catch(error){if((typeof error=="object"&&error!==null&&"code"in error?String(error.code):void 0)!=="ELOCKED"||attempt===maxAttempts)throw error;lastError=error;let start=Date.now();for(;Date.now()-start<delayMs;);}throw lastError instanceof Error?lastError:new Error("Failed to acquire trust store lock")}function withTrustFileLock(path,fn){let release=acquireTrustLockSync(path);try{return fn()}finally{release()}}function hasTrustRequiringProjectResources(cwd){let homeDir=canonicalizePath(resolvePath(process.env.HOME||homedir())),userAgentsSkillsDir=join3(homeDir,".agents","skills"),currentDir=canonicalizePath(resolvePath(cwd)),configDir=join3(currentDir,CONFIG_DIR_NAME);if(TRUST_REQUIRING_PROJECT_CONFIG_RESOURCES.some(entry=>existsSync(join3(configDir,entry))))return!0;for(;;){let agentsSkillsDir=join3(currentDir,".agents","skills");if(!pathsEqual(agentsSkillsDir,userAgentsSkillsDir)&&existsSync(agentsSkillsDir))return!0;let parentDir=dirname2(currentDir);if(parentDir===currentDir)return!1;currentDir=parentDir}}var ProjectTrustStore=class{trustPath;constructor(agentDir){this.trustPath=join3(resolvePath(agentDir),"trust.json")}get(cwd){return this.getEntry(cwd)?.decision??null}getEntry(cwd){return withTrustFileLock(this.trustPath,()=>{let data=readTrustFile(this.trustPath);return findNearestTrustEntry(data,cwd)})}set(cwd,decision){this.setMany([{path:cwd,decision}])}setMany(decisions){withTrustFileLock(this.trustPath,()=>{let data=readTrustFile(this.trustPath);for(let{path,decision}of decisions){let key=normalizeCwd(path);for(let existingKey of findTrustFileKeys(data,key))delete data[existingKey];decision!==null&&(data[key]=decision)}writeTrustFile(this.trustPath,data)})}};import{spawn}from"node:child_process";function openBrowser(target){let[cmd,args]=process.platform==="darwin"?["open",[target]]:process.platform==="win32"?["rundll32",["url.dll,FileProtocolHandler",target]]:["xdg-open",[target]];spawn(cmd,args,{stdio:"ignore",detached:!0,cwd:"/"}).on("error",()=>{}).unref()}import{existsSync as existsSync2,mkdirSync as mkdirSync2,readFileSync as readFileSync2,writeFileSync as writeFileSync2}from"node:fs";import{dirname as dirname3,join as join4}from"node:path";var OVERRIDE_KEYS=["enabled","exposure","toolExposure"];function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function readConfigFile(path,scope,state2){let{servers,errors}=state2;if(!existsSync2(path))return;let parsed;try{parsed=JSON.parse(stripBom(readFileSync2(path,"utf8")))}catch(error){errors.push(`${path}: ${error instanceof Error?error.message:String(error)}`);return}if(!isRecord(parsed)||parsed.mcpServers!==void 0&&!isRecord(parsed.mcpServers)){errors.push(`${path}: expected an object with an "mcpServers" object`);return}typeof parsed.autoEnableCodemode=="boolean"?state2.autoEnableCodemode=parsed.autoEnableCodemode:parsed.autoEnableCodemode!==void 0&&errors.push(`${path}: autoEnableCodemode must be a boolean`);for(let[name,value]of Object.entries(parsed.mcpServers??{})){if(scope==="project"&&isRecord(value)&&isMcpServerOverride(value)){let base=servers.get(name),extra=Object.keys(value).filter(key=>!OVERRIDE_KEYS.includes(key));if(!base)errors.push(`${path}: server "${name}" needs "command" or "url", or a global server to override`);else if(extra.length>0)errors.push(`${path}: server "${name}": an override can only set ${OVERRIDE_KEYS.join(", ")}`);else{let config2=validateMcpServerConfig(name,{...base.config,...value});typeof config2=="string"?errors.push(`${path}: ${config2}`):servers.set(name,{...base,config:config2,override:path})}continue}let config=validateMcpServerConfig(name,value);if(typeof config=="string"){errors.push(`${path}: ${config}`);continue}let clash=[...servers.keys()].find(other=>other!==name&&mcpNamespace(other)===mcpNamespace(name));if(clash){errors.push(`${path}: server "${name}" conflicts with "${clash}"`);continue}if(scope==="project"&&"url"in config&&config.auth){errors.push(`${path}: server "${name}": auth is only allowed in the global mcp.json`);continue}servers.set(name,{name,config,source:path,scope})}}function loadMcpConfig(options){let state2={servers:new Map,errors:[]};readConfigFile(join4(options.agentDir,"mcp.json"),"global",state2);let projectConfig=options.projectTrusted?join4(options.cwd,CONFIG_DIR_NAME,"mcp.json"):void 0;return projectConfig&&readConfigFile(projectConfig,"project",state2),{servers:[...state2.servers.values()],...state2.autoEnableCodemode===void 0?{}:{autoEnableCodemode:state2.autoEnableCodemode},errors:state2.errors,...projectConfig?{projectConfig}:{}}}function updateMcpServerConfig(path,name,patch,options={}){editMcpServers(path,(servers,parsed)=>{let server=servers?.[name];if(server===void 0&&options.override&&(server={},parsed.mcpServers={...servers,[name]:server}),!isRecord(server))throw new Error(`${path} does not define MCP server "${name}"`);let keepDefaults=isMcpServerOverride(server);return patch.enabled!==void 0&&(patch.enabled&&!keepDefaults?delete server.enabled:server.enabled=patch.enabled),patch.exposure!==void 0&&(patch.exposure==="codemode"&&!keepDefaults?delete server.exposure:server.exposure=patch.exposure),!0})}function addMcpServerConfig(path,name,config){let replaced=!1;return editMcpServers(path,(servers,parsed)=>{let target=servers??{};return replaced=target[name]!==void 0,target[name]=config,parsed.mcpServers=target,!0}),replaced}function removeMcpServerConfig(path,name){if(!existsSync2(path))return!1;let removed=!1;return editMcpServers(path,servers=>!servers||servers[name]===void 0?!1:(delete servers[name],removed=!0,!0)),removed}function editMcpServers(path,edit){let text=existsSync2(path)?stripBom(readFileSync2(path,"utf8")):void 0,parsed=text===void 0?{}:JSON.parse(text);if(!isRecord(parsed)||parsed.mcpServers!==void 0&&!isRecord(parsed.mcpServers))throw new Error(`${path}: expected an object with an "mcpServers" object`);let servers=isRecord(parsed.mcpServers)?parsed.mcpServers:void 0;if(!edit(servers,parsed))return;let indent=text&&/^([ \t]+)\S/m.exec(text)?.[1]||" ";mkdirSync2(dirname3(path),{recursive:!0}),writeFileSync2(path,`${JSON.stringify(parsed,null,indent)}
30
+ `)}export{envApiKeyAuth,lazyOAuth,fauxText,fauxThinking,fauxToolCall,fauxAssistantMessage,createFauxCore,fauxProvider,isContextOverflow,isRecoverableLength,getOverflowPatterns,validateToolCall,validateToolArguments,piMessagesApi,DEFAULT_RADIUS_GATEWAY,normalizeRadiusGatewayUrl,all_exports,anthropicMessagesApi,openAICompletionsApi,value_exports2 as value_exports,Compile,compile_exports,InMemoryCodingAgentModelsStore,azureOpenAIResponsesApi,setBedrockProviderModule,bedrockConverseStreamApi,googleGenerativeAIApi,googleVertexApi,mistralConversationsApi,openAICodexResponsesApi,openAIResponsesApi,getImageModel,getImageProviders,getImageModels,registerImagesApiProvider,getImagesApiProvider,generateImagesOpenRouter,registerBuiltInImagesApiProviders,generateImages,streamAnthropic,streamSimpleAnthropic,streamAzureOpenAIResponses,streamSimpleAzureOpenAIResponses,streamGoogle,streamSimpleGoogle,streamGoogleVertex,streamSimpleGoogleVertex,streamMistral,streamSimpleMistral,streamOpenAICodexResponses,streamSimpleOpenAICodexResponses,streamOpenAICompletions,streamSimpleOpenAICompletions,streamOpenAIResponses,streamSimpleOpenAIResponses,getModel,getModels,getProviders,registerApiProvider,getApiProvider,getApiProviders,unregisterApiProviders,registerFauxProvider,registerBuiltInApiProviders,resetApiProviders,stream,complete,streamSimple,completeSimple,fetchWithRetry,getPiUserAgent,VIRTUAL_MODEL_STATE_ENTRY,isVirtualModel,findLatestResponse,getBranchSelection,getVirtualModelState,CredentialSynchronizationError,ModelRuntime,getProjectTrustOptions,hasTrustRequiringProjectResources,ProjectTrustStore,openBrowser,loadMcpConfig,updateMcpServerConfig,addMcpServerConfig,removeMcpServerConfig};