@ashx-j/lunr-ai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (662) hide show
  1. package/README.md +1621 -0
  2. package/dist/api/anthropic-messages.d.ts +71 -0
  3. package/dist/api/anthropic-messages.d.ts.map +1 -0
  4. package/dist/api/anthropic-messages.js +1060 -0
  5. package/dist/api/anthropic-messages.js.map +1 -0
  6. package/dist/api/anthropic-messages.lazy.d.ts +3 -0
  7. package/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
  8. package/dist/api/anthropic-messages.lazy.js +3 -0
  9. package/dist/api/anthropic-messages.lazy.js.map +1 -0
  10. package/dist/api/azure-openai-responses.d.ts +15 -0
  11. package/dist/api/azure-openai-responses.d.ts.map +1 -0
  12. package/dist/api/azure-openai-responses.js +221 -0
  13. package/dist/api/azure-openai-responses.js.map +1 -0
  14. package/dist/api/azure-openai-responses.lazy.d.ts +3 -0
  15. package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
  16. package/dist/api/azure-openai-responses.lazy.js +3 -0
  17. package/dist/api/azure-openai-responses.lazy.js.map +1 -0
  18. package/dist/api/bedrock-converse-stream.d.ts +38 -0
  19. package/dist/api/bedrock-converse-stream.d.ts.map +1 -0
  20. package/dist/api/bedrock-converse-stream.js +883 -0
  21. package/dist/api/bedrock-converse-stream.js.map +1 -0
  22. package/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
  23. package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
  24. package/dist/api/bedrock-converse-stream.lazy.js +30 -0
  25. package/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
  26. package/dist/api/cloudflare.d.ts +9 -0
  27. package/dist/api/cloudflare.d.ts.map +1 -0
  28. package/dist/api/cloudflare.js +9 -0
  29. package/dist/api/cloudflare.js.map +1 -0
  30. package/dist/api/github-copilot-headers.d.ts +8 -0
  31. package/dist/api/github-copilot-headers.d.ts.map +1 -0
  32. package/dist/api/github-copilot-headers.js +29 -0
  33. package/dist/api/github-copilot-headers.js.map +1 -0
  34. package/dist/api/google-generative-ai.d.ts +13 -0
  35. package/dist/api/google-generative-ai.d.ts.map +1 -0
  36. package/dist/api/google-generative-ai.js +407 -0
  37. package/dist/api/google-generative-ai.js.map +1 -0
  38. package/dist/api/google-generative-ai.lazy.d.ts +3 -0
  39. package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
  40. package/dist/api/google-generative-ai.lazy.js +3 -0
  41. package/dist/api/google-generative-ai.lazy.js.map +1 -0
  42. package/dist/api/google-shared.d.ts +70 -0
  43. package/dist/api/google-shared.d.ts.map +1 -0
  44. package/dist/api/google-shared.js +329 -0
  45. package/dist/api/google-shared.js.map +1 -0
  46. package/dist/api/google-vertex.d.ts +15 -0
  47. package/dist/api/google-vertex.d.ts.map +1 -0
  48. package/dist/api/google-vertex.js +456 -0
  49. package/dist/api/google-vertex.js.map +1 -0
  50. package/dist/api/google-vertex.lazy.d.ts +3 -0
  51. package/dist/api/google-vertex.lazy.d.ts.map +1 -0
  52. package/dist/api/google-vertex.lazy.js +3 -0
  53. package/dist/api/google-vertex.lazy.js.map +1 -0
  54. package/dist/api/lazy.d.ts +15 -0
  55. package/dist/api/lazy.d.ts.map +1 -0
  56. package/dist/api/lazy.js +58 -0
  57. package/dist/api/lazy.js.map +1 -0
  58. package/dist/api/mistral-conversations.d.ts +25 -0
  59. package/dist/api/mistral-conversations.d.ts.map +1 -0
  60. package/dist/api/mistral-conversations.js +555 -0
  61. package/dist/api/mistral-conversations.js.map +1 -0
  62. package/dist/api/mistral-conversations.lazy.d.ts +3 -0
  63. package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
  64. package/dist/api/mistral-conversations.lazy.js +3 -0
  65. package/dist/api/mistral-conversations.lazy.js.map +1 -0
  66. package/dist/api/openai-codex-responses.d.ts +31 -0
  67. package/dist/api/openai-codex-responses.d.ts.map +1 -0
  68. package/dist/api/openai-codex-responses.js +1227 -0
  69. package/dist/api/openai-codex-responses.js.map +1 -0
  70. package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
  71. package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
  72. package/dist/api/openai-codex-responses.lazy.js +3 -0
  73. package/dist/api/openai-codex-responses.lazy.js.map +1 -0
  74. package/dist/api/openai-completions.d.ts +20 -0
  75. package/dist/api/openai-completions.d.ts.map +1 -0
  76. package/dist/api/openai-completions.js +1116 -0
  77. package/dist/api/openai-completions.js.map +1 -0
  78. package/dist/api/openai-completions.lazy.d.ts +3 -0
  79. package/dist/api/openai-completions.lazy.d.ts.map +1 -0
  80. package/dist/api/openai-completions.lazy.js +3 -0
  81. package/dist/api/openai-completions.lazy.js.map +1 -0
  82. package/dist/api/openai-prompt-cache.d.ts +3 -0
  83. package/dist/api/openai-prompt-cache.d.ts.map +1 -0
  84. package/dist/api/openai-prompt-cache.js +10 -0
  85. package/dist/api/openai-prompt-cache.js.map +1 -0
  86. package/dist/api/openai-responses-shared.d.ts +20 -0
  87. package/dist/api/openai-responses-shared.d.ts.map +1 -0
  88. package/dist/api/openai-responses-shared.js +535 -0
  89. package/dist/api/openai-responses-shared.js.map +1 -0
  90. package/dist/api/openai-responses.d.ts +14 -0
  91. package/dist/api/openai-responses.d.ts.map +1 -0
  92. package/dist/api/openai-responses.js +246 -0
  93. package/dist/api/openai-responses.js.map +1 -0
  94. package/dist/api/openai-responses.lazy.d.ts +3 -0
  95. package/dist/api/openai-responses.lazy.d.ts.map +1 -0
  96. package/dist/api/openai-responses.lazy.js +3 -0
  97. package/dist/api/openai-responses.lazy.js.map +1 -0
  98. package/dist/api/openrouter-images.d.ts +3 -0
  99. package/dist/api/openrouter-images.d.ts.map +1 -0
  100. package/dist/api/openrouter-images.js +126 -0
  101. package/dist/api/openrouter-images.js.map +1 -0
  102. package/dist/api/openrouter-images.lazy.d.ts +3 -0
  103. package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
  104. package/dist/api/openrouter-images.lazy.js +4 -0
  105. package/dist/api/openrouter-images.lazy.js.map +1 -0
  106. package/dist/api/pi-messages.d.ts +97 -0
  107. package/dist/api/pi-messages.d.ts.map +1 -0
  108. package/dist/api/pi-messages.js +309 -0
  109. package/dist/api/pi-messages.js.map +1 -0
  110. package/dist/api/pi-messages.lazy.d.ts +3 -0
  111. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  112. package/dist/api/pi-messages.lazy.js +3 -0
  113. package/dist/api/pi-messages.lazy.js.map +1 -0
  114. package/dist/api/simple-options.d.ts +9 -0
  115. package/dist/api/simple-options.d.ts.map +1 -0
  116. package/dist/api/simple-options.js +52 -0
  117. package/dist/api/simple-options.js.map +1 -0
  118. package/dist/api/transform-messages.d.ts +8 -0
  119. package/dist/api/transform-messages.d.ts.map +1 -0
  120. package/dist/api/transform-messages.js +187 -0
  121. package/dist/api/transform-messages.js.map +1 -0
  122. package/dist/auth/context.d.ts +7 -0
  123. package/dist/auth/context.d.ts.map +1 -0
  124. package/dist/auth/context.js +42 -0
  125. package/dist/auth/context.js.map +1 -0
  126. package/dist/auth/credential-store.d.ts +17 -0
  127. package/dist/auth/credential-store.d.ts.map +1 -0
  128. package/dist/auth/credential-store.js +40 -0
  129. package/dist/auth/credential-store.js.map +1 -0
  130. package/dist/auth/helpers.d.ts +21 -0
  131. package/dist/auth/helpers.d.ts.map +1 -0
  132. package/dist/auth/helpers.js +47 -0
  133. package/dist/auth/helpers.js.map +1 -0
  134. package/dist/auth/oauth/anthropic.d.ts +9 -0
  135. package/dist/auth/oauth/anthropic.d.ts.map +1 -0
  136. package/dist/auth/oauth/anthropic.js +302 -0
  137. package/dist/auth/oauth/anthropic.js.map +1 -0
  138. package/dist/auth/oauth/device-code.d.ts +23 -0
  139. package/dist/auth/oauth/device-code.d.ts.map +1 -0
  140. package/dist/auth/oauth/device-code.js +69 -0
  141. package/dist/auth/oauth/device-code.js.map +1 -0
  142. package/dist/auth/oauth/github-copilot.d.ts +6 -0
  143. package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
  144. package/dist/auth/oauth/github-copilot.js +312 -0
  145. package/dist/auth/oauth/github-copilot.js.map +1 -0
  146. package/dist/auth/oauth/load.d.ts +23 -0
  147. package/dist/auth/oauth/load.d.ts.map +1 -0
  148. package/dist/auth/oauth/load.js +49 -0
  149. package/dist/auth/oauth/load.js.map +1 -0
  150. package/dist/auth/oauth/oauth-page.d.ts +3 -0
  151. package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
  152. package/dist/auth/oauth/oauth-page.js +105 -0
  153. package/dist/auth/oauth/oauth-page.js.map +1 -0
  154. package/dist/auth/oauth/openai-codex.d.ts +9 -0
  155. package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
  156. package/dist/auth/oauth/openai-codex.js +443 -0
  157. package/dist/auth/oauth/openai-codex.js.map +1 -0
  158. package/dist/auth/oauth/pkce.d.ts +13 -0
  159. package/dist/auth/oauth/pkce.d.ts.map +1 -0
  160. package/dist/auth/oauth/pkce.js +31 -0
  161. package/dist/auth/oauth/pkce.js.map +1 -0
  162. package/dist/auth/oauth/radius.d.ts +16 -0
  163. package/dist/auth/oauth/radius.d.ts.map +1 -0
  164. package/dist/auth/oauth/radius.js +318 -0
  165. package/dist/auth/oauth/radius.js.map +1 -0
  166. package/dist/auth/oauth/xai.d.ts +6 -0
  167. package/dist/auth/oauth/xai.d.ts.map +1 -0
  168. package/dist/auth/oauth/xai.js +189 -0
  169. package/dist/auth/oauth/xai.js.map +1 -0
  170. package/dist/auth/resolve.d.ts +24 -0
  171. package/dist/auth/resolve.d.ts.map +1 -0
  172. package/dist/auth/resolve.js +103 -0
  173. package/dist/auth/resolve.js.map +1 -0
  174. package/dist/auth/types.d.ts +219 -0
  175. package/dist/auth/types.d.ts.map +1 -0
  176. package/dist/auth/types.js +2 -0
  177. package/dist/auth/types.js.map +1 -0
  178. package/dist/bedrock-provider.d.ts +5 -0
  179. package/dist/bedrock-provider.d.ts.map +1 -0
  180. package/dist/bedrock-provider.js +6 -0
  181. package/dist/bedrock-provider.js.map +1 -0
  182. package/dist/bun-oauth.d.ts +3 -0
  183. package/dist/bun-oauth.d.ts.map +1 -0
  184. package/dist/bun-oauth.js +17 -0
  185. package/dist/bun-oauth.js.map +1 -0
  186. package/dist/cli.d.ts +3 -0
  187. package/dist/cli.d.ts.map +1 -0
  188. package/dist/cli.js +112 -0
  189. package/dist/cli.js.map +1 -0
  190. package/dist/compat/extension-oauth-types.d.ts +39 -0
  191. package/dist/compat/extension-oauth-types.d.ts.map +1 -0
  192. package/dist/compat/extension-oauth-types.js +2 -0
  193. package/dist/compat/extension-oauth-types.js.map +1 -0
  194. package/dist/compat.d.ts +67 -0
  195. package/dist/compat.d.ts.map +1 -0
  196. package/dist/compat.js +199 -0
  197. package/dist/compat.js.map +1 -0
  198. package/dist/env-api-keys.d.ts +18 -0
  199. package/dist/env-api-keys.d.ts.map +1 -0
  200. package/dist/env-api-keys.js +150 -0
  201. package/dist/env-api-keys.js.map +1 -0
  202. package/dist/image-models.d.ts +10 -0
  203. package/dist/image-models.d.ts.map +1 -0
  204. package/dist/image-models.generated.d.ts +545 -0
  205. package/dist/image-models.generated.d.ts.map +1 -0
  206. package/dist/image-models.generated.js +547 -0
  207. package/dist/image-models.generated.js.map +1 -0
  208. package/dist/image-models.js +23 -0
  209. package/dist/image-models.js.map +1 -0
  210. package/dist/images-api-registry.d.ts +14 -0
  211. package/dist/images-api-registry.d.ts.map +1 -0
  212. package/dist/images-api-registry.js +22 -0
  213. package/dist/images-api-registry.js.map +1 -0
  214. package/dist/images-models.d.ts +95 -0
  215. package/dist/images-models.d.ts.map +1 -0
  216. package/dist/images-models.js +142 -0
  217. package/dist/images-models.js.map +1 -0
  218. package/dist/images.d.ts +4 -0
  219. package/dist/images.d.ts.map +1 -0
  220. package/dist/images.js +14 -0
  221. package/dist/images.js.map +1 -0
  222. package/dist/index.d.ts +33 -0
  223. package/dist/index.d.ts.map +1 -0
  224. package/dist/index.js +20 -0
  225. package/dist/index.js.map +1 -0
  226. package/dist/legacy-api-aliases.d.ts +42 -0
  227. package/dist/legacy-api-aliases.d.ts.map +1 -0
  228. package/dist/legacy-api-aliases.js +49 -0
  229. package/dist/legacy-api-aliases.js.map +1 -0
  230. package/dist/models-store.d.ts +25 -0
  231. package/dist/models-store.d.ts.map +1 -0
  232. package/dist/models-store.js +14 -0
  233. package/dist/models-store.js.map +1 -0
  234. package/dist/models.d.ts +178 -0
  235. package/dist/models.d.ts.map +1 -0
  236. package/dist/models.generated.d.ts +23416 -0
  237. package/dist/models.generated.d.ts.map +1 -0
  238. package/dist/models.generated.js +83 -0
  239. package/dist/models.generated.js.map +1 -0
  240. package/dist/models.js +432 -0
  241. package/dist/models.js.map +1 -0
  242. package/dist/oauth.d.ts +3 -0
  243. package/dist/oauth.d.ts.map +1 -0
  244. package/dist/oauth.js +2 -0
  245. package/dist/oauth.js.map +1 -0
  246. package/dist/providers/all.d.ts +26 -0
  247. package/dist/providers/all.d.ts.map +1 -0
  248. package/dist/providers/all.js +125 -0
  249. package/dist/providers/all.js.map +1 -0
  250. package/dist/providers/amazon-bedrock.d.ts +3 -0
  251. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  252. package/dist/providers/amazon-bedrock.js +84 -0
  253. package/dist/providers/amazon-bedrock.js.map +1 -0
  254. package/dist/providers/amazon-bedrock.models.d.ts +1992 -0
  255. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
  256. package/dist/providers/amazon-bedrock.models.js +1895 -0
  257. package/dist/providers/amazon-bedrock.models.js.map +1 -0
  258. package/dist/providers/ant-ling.d.ts +3 -0
  259. package/dist/providers/ant-ling.d.ts.map +1 -0
  260. package/dist/providers/ant-ling.js +15 -0
  261. package/dist/providers/ant-ling.js.map +1 -0
  262. package/dist/providers/ant-ling.models.d.ts +86 -0
  263. package/dist/providers/ant-ling.models.d.ts.map +1 -0
  264. package/dist/providers/ant-ling.models.js +60 -0
  265. package/dist/providers/ant-ling.models.js.map +1 -0
  266. package/dist/providers/anthropic.d.ts +3 -0
  267. package/dist/providers/anthropic.d.ts.map +1 -0
  268. package/dist/providers/anthropic.js +20 -0
  269. package/dist/providers/anthropic.js.map +1 -0
  270. package/dist/providers/anthropic.models.d.ts +284 -0
  271. package/dist/providers/anthropic.models.d.ts.map +1 -0
  272. package/dist/providers/anthropic.models.js +255 -0
  273. package/dist/providers/anthropic.models.js.map +1 -0
  274. package/dist/providers/azure-openai-responses.d.ts +3 -0
  275. package/dist/providers/azure-openai-responses.d.ts.map +1 -0
  276. package/dist/providers/azure-openai-responses.js +14 -0
  277. package/dist/providers/azure-openai-responses.js.map +1 -0
  278. package/dist/providers/azure-openai-responses.models.d.ts +887 -0
  279. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
  280. package/dist/providers/azure-openai-responses.models.js +814 -0
  281. package/dist/providers/azure-openai-responses.models.js.map +1 -0
  282. package/dist/providers/cerebras.d.ts +3 -0
  283. package/dist/providers/cerebras.d.ts.map +1 -0
  284. package/dist/providers/cerebras.js +15 -0
  285. package/dist/providers/cerebras.js.map +1 -0
  286. package/dist/providers/cerebras.models.d.ts +66 -0
  287. package/dist/providers/cerebras.models.d.ts.map +1 -0
  288. package/dist/providers/cerebras.models.js +59 -0
  289. package/dist/providers/cerebras.models.js.map +1 -0
  290. package/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
  291. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
  292. package/dist/providers/cloudflare-ai-gateway.js +21 -0
  293. package/dist/providers/cloudflare-ai-gateway.js.map +1 -0
  294. package/dist/providers/cloudflare-ai-gateway.models.d.ts +888 -0
  295. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
  296. package/dist/providers/cloudflare-ai-gateway.models.js +758 -0
  297. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
  298. package/dist/providers/cloudflare-auth.d.ts +4 -0
  299. package/dist/providers/cloudflare-auth.d.ts.map +1 -0
  300. package/dist/providers/cloudflare-auth.js +81 -0
  301. package/dist/providers/cloudflare-auth.js.map +1 -0
  302. package/dist/providers/cloudflare-stream.d.ts +8 -0
  303. package/dist/providers/cloudflare-stream.d.ts.map +1 -0
  304. package/dist/providers/cloudflare-stream.js +21 -0
  305. package/dist/providers/cloudflare-stream.js.map +1 -0
  306. package/dist/providers/cloudflare-workers-ai.d.ts +3 -0
  307. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
  308. package/dist/providers/cloudflare-workers-ai.js +15 -0
  309. package/dist/providers/cloudflare-workers-ai.js.map +1 -0
  310. package/dist/providers/cloudflare-workers-ai.models.d.ts +302 -0
  311. package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
  312. package/dist/providers/cloudflare-workers-ai.models.js +239 -0
  313. package/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
  314. package/dist/providers/deepseek.d.ts +3 -0
  315. package/dist/providers/deepseek.d.ts.map +1 -0
  316. package/dist/providers/deepseek.js +15 -0
  317. package/dist/providers/deepseek.js.map +1 -0
  318. package/dist/providers/deepseek.models.d.ts +63 -0
  319. package/dist/providers/deepseek.models.d.ts.map +1 -0
  320. package/dist/providers/deepseek.models.js +43 -0
  321. package/dist/providers/deepseek.models.js.map +1 -0
  322. package/dist/providers/faux.d.ts +97 -0
  323. package/dist/providers/faux.d.ts.map +1 -0
  324. package/dist/providers/faux.js +395 -0
  325. package/dist/providers/faux.js.map +1 -0
  326. package/dist/providers/fireworks.d.ts +3 -0
  327. package/dist/providers/fireworks.d.ts.map +1 -0
  328. package/dist/providers/fireworks.js +19 -0
  329. package/dist/providers/fireworks.js.map +1 -0
  330. package/dist/providers/fireworks.models.d.ts +381 -0
  331. package/dist/providers/fireworks.models.d.ts.map +1 -0
  332. package/dist/providers/fireworks.models.js +295 -0
  333. package/dist/providers/fireworks.models.js.map +1 -0
  334. package/dist/providers/github-copilot.d.ts +3 -0
  335. package/dist/providers/github-copilot.d.ts.map +1 -0
  336. package/dist/providers/github-copilot.js +35 -0
  337. package/dist/providers/github-copilot.js.map +1 -0
  338. package/dist/providers/github-copilot.models.d.ts +791 -0
  339. package/dist/providers/github-copilot.models.d.ts.map +1 -0
  340. package/dist/providers/github-copilot.models.js +541 -0
  341. package/dist/providers/github-copilot.models.js.map +1 -0
  342. package/dist/providers/google-vertex.d.ts +3 -0
  343. package/dist/providers/google-vertex.d.ts.map +1 -0
  344. package/dist/providers/google-vertex.js +86 -0
  345. package/dist/providers/google-vertex.js.map +1 -0
  346. package/dist/providers/google-vertex.models.d.ts +202 -0
  347. package/dist/providers/google-vertex.models.d.ts.map +1 -0
  348. package/dist/providers/google-vertex.models.js +182 -0
  349. package/dist/providers/google-vertex.models.js.map +1 -0
  350. package/dist/providers/google.d.ts +3 -0
  351. package/dist/providers/google.d.ts.map +1 -0
  352. package/dist/providers/google.js +15 -0
  353. package/dist/providers/google.js.map +1 -0
  354. package/dist/providers/google.models.d.ts +328 -0
  355. package/dist/providers/google.models.d.ts.map +1 -0
  356. package/dist/providers/google.models.js +288 -0
  357. package/dist/providers/google.models.js.map +1 -0
  358. package/dist/providers/groq.d.ts +3 -0
  359. package/dist/providers/groq.d.ts.map +1 -0
  360. package/dist/providers/groq.js +15 -0
  361. package/dist/providers/groq.js.map +1 -0
  362. package/dist/providers/groq.models.d.ts +128 -0
  363. package/dist/providers/groq.models.d.ts.map +1 -0
  364. package/dist/providers/groq.models.js +125 -0
  365. package/dist/providers/groq.models.js.map +1 -0
  366. package/dist/providers/huggingface.d.ts +3 -0
  367. package/dist/providers/huggingface.d.ts.map +1 -0
  368. package/dist/providers/huggingface.js +15 -0
  369. package/dist/providers/huggingface.js.map +1 -0
  370. package/dist/providers/huggingface.models.d.ts +983 -0
  371. package/dist/providers/huggingface.models.d.ts.map +1 -0
  372. package/dist/providers/huggingface.models.js +887 -0
  373. package/dist/providers/huggingface.models.js.map +1 -0
  374. package/dist/providers/images/register-builtins.d.ts +4 -0
  375. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  376. package/dist/providers/images/register-builtins.js +34 -0
  377. package/dist/providers/images/register-builtins.js.map +1 -0
  378. package/dist/providers/kimi-coding.d.ts +3 -0
  379. package/dist/providers/kimi-coding.d.ts.map +1 -0
  380. package/dist/providers/kimi-coding.js +15 -0
  381. package/dist/providers/kimi-coding.js.map +1 -0
  382. package/dist/providers/kimi-coding.models.d.ts +82 -0
  383. package/dist/providers/kimi-coding.models.d.ts.map +1 -0
  384. package/dist/providers/kimi-coding.models.js +63 -0
  385. package/dist/providers/kimi-coding.models.js.map +1 -0
  386. package/dist/providers/minimax-cn.d.ts +3 -0
  387. package/dist/providers/minimax-cn.d.ts.map +1 -0
  388. package/dist/providers/minimax-cn.js +15 -0
  389. package/dist/providers/minimax-cn.js.map +1 -0
  390. package/dist/providers/minimax-cn.models.d.ts +54 -0
  391. package/dist/providers/minimax-cn.models.d.ts.map +1 -0
  392. package/dist/providers/minimax-cn.models.js +56 -0
  393. package/dist/providers/minimax-cn.models.js.map +1 -0
  394. package/dist/providers/minimax.d.ts +3 -0
  395. package/dist/providers/minimax.d.ts.map +1 -0
  396. package/dist/providers/minimax.js +15 -0
  397. package/dist/providers/minimax.js.map +1 -0
  398. package/dist/providers/minimax.models.d.ts +54 -0
  399. package/dist/providers/minimax.models.d.ts.map +1 -0
  400. package/dist/providers/minimax.models.js +56 -0
  401. package/dist/providers/minimax.models.js.map +1 -0
  402. package/dist/providers/mistral.d.ts +3 -0
  403. package/dist/providers/mistral.d.ts.map +1 -0
  404. package/dist/providers/mistral.js +15 -0
  405. package/dist/providers/mistral.js.map +1 -0
  406. package/dist/providers/mistral.models.d.ts +513 -0
  407. package/dist/providers/mistral.models.d.ts.map +1 -0
  408. package/dist/providers/mistral.models.js +515 -0
  409. package/dist/providers/mistral.models.js.map +1 -0
  410. package/dist/providers/moonshotai-cn.d.ts +3 -0
  411. package/dist/providers/moonshotai-cn.d.ts.map +1 -0
  412. package/dist/providers/moonshotai-cn.js +15 -0
  413. package/dist/providers/moonshotai-cn.js.map +1 -0
  414. package/dist/providers/moonshotai-cn.models.d.ts +270 -0
  415. package/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
  416. package/dist/providers/moonshotai-cn.models.js +188 -0
  417. package/dist/providers/moonshotai-cn.models.js.map +1 -0
  418. package/dist/providers/moonshotai.d.ts +3 -0
  419. package/dist/providers/moonshotai.d.ts.map +1 -0
  420. package/dist/providers/moonshotai.js +15 -0
  421. package/dist/providers/moonshotai.js.map +1 -0
  422. package/dist/providers/moonshotai.models.d.ts +270 -0
  423. package/dist/providers/moonshotai.models.d.ts.map +1 -0
  424. package/dist/providers/moonshotai.models.js +188 -0
  425. package/dist/providers/moonshotai.models.js.map +1 -0
  426. package/dist/providers/nvidia.d.ts +3 -0
  427. package/dist/providers/nvidia.d.ts.map +1 -0
  428. package/dist/providers/nvidia.js +15 -0
  429. package/dist/providers/nvidia.js.map +1 -0
  430. package/dist/providers/nvidia.models.d.ts +563 -0
  431. package/dist/providers/nvidia.models.d.ts.map +1 -0
  432. package/dist/providers/nvidia.models.js +385 -0
  433. package/dist/providers/nvidia.models.js.map +1 -0
  434. package/dist/providers/openai-codex.d.ts +3 -0
  435. package/dist/providers/openai-codex.d.ts.map +1 -0
  436. package/dist/providers/openai-codex.js +18 -0
  437. package/dist/providers/openai-codex.js.map +1 -0
  438. package/dist/providers/openai-codex.models.d.ts +206 -0
  439. package/dist/providers/openai-codex.models.d.ts.map +1 -0
  440. package/dist/providers/openai-codex.models.js +142 -0
  441. package/dist/providers/openai-codex.models.js.map +1 -0
  442. package/dist/providers/openai.d.ts +3 -0
  443. package/dist/providers/openai.d.ts.map +1 -0
  444. package/dist/providers/openai.js +15 -0
  445. package/dist/providers/openai.js.map +1 -0
  446. package/dist/providers/openai.models.d.ts +958 -0
  447. package/dist/providers/openai.models.d.ts.map +1 -0
  448. package/dist/providers/openai.models.js +828 -0
  449. package/dist/providers/openai.models.js.map +1 -0
  450. package/dist/providers/opencode-go.d.ts +3 -0
  451. package/dist/providers/opencode-go.d.ts.map +1 -0
  452. package/dist/providers/opencode-go.js +18 -0
  453. package/dist/providers/opencode-go.js.map +1 -0
  454. package/dist/providers/opencode-go.models.d.ts +353 -0
  455. package/dist/providers/opencode-go.models.d.ts.map +1 -0
  456. package/dist/providers/opencode-go.models.js +276 -0
  457. package/dist/providers/opencode-go.models.js.map +1 -0
  458. package/dist/providers/opencode.d.ts +3 -0
  459. package/dist/providers/opencode.d.ts.map +1 -0
  460. package/dist/providers/opencode.js +22 -0
  461. package/dist/providers/opencode.js.map +1 -0
  462. package/dist/providers/opencode.models.d.ts +1241 -0
  463. package/dist/providers/opencode.models.d.ts.map +1 -0
  464. package/dist/providers/opencode.models.js +999 -0
  465. package/dist/providers/opencode.models.js.map +1 -0
  466. package/dist/providers/openrouter-images.d.ts +3 -0
  467. package/dist/providers/openrouter-images.d.ts.map +1 -0
  468. package/dist/providers/openrouter-images.js +14 -0
  469. package/dist/providers/openrouter-images.js.map +1 -0
  470. package/dist/providers/openrouter.d.ts +3 -0
  471. package/dist/providers/openrouter.d.ts.map +1 -0
  472. package/dist/providers/openrouter.js +15 -0
  473. package/dist/providers/openrouter.js.map +1 -0
  474. package/dist/providers/openrouter.models.d.ts +5754 -0
  475. package/dist/providers/openrouter.models.d.ts.map +1 -0
  476. package/dist/providers/openrouter.models.js +4913 -0
  477. package/dist/providers/openrouter.models.js.map +1 -0
  478. package/dist/providers/qwen-cloud-cn.d.ts +3 -0
  479. package/dist/providers/qwen-cloud-cn.d.ts.map +1 -0
  480. package/dist/providers/qwen-cloud-cn.js +17 -0
  481. package/dist/providers/qwen-cloud-cn.js.map +1 -0
  482. package/dist/providers/qwen-cloud-cn.models.d.ts +192 -0
  483. package/dist/providers/qwen-cloud-cn.models.d.ts.map +1 -0
  484. package/dist/providers/qwen-cloud-cn.models.js +134 -0
  485. package/dist/providers/qwen-cloud-cn.models.js.map +1 -0
  486. package/dist/providers/qwen-cloud.d.ts +3 -0
  487. package/dist/providers/qwen-cloud.d.ts.map +1 -0
  488. package/dist/providers/qwen-cloud.js +17 -0
  489. package/dist/providers/qwen-cloud.js.map +1 -0
  490. package/dist/providers/qwen-cloud.models.d.ts +192 -0
  491. package/dist/providers/qwen-cloud.models.d.ts.map +1 -0
  492. package/dist/providers/qwen-cloud.models.js +134 -0
  493. package/dist/providers/qwen-cloud.models.js.map +1 -0
  494. package/dist/providers/qwen-token-plan-cn.d.ts +3 -0
  495. package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -0
  496. package/dist/providers/qwen-token-plan-cn.js +21 -0
  497. package/dist/providers/qwen-token-plan-cn.js.map +1 -0
  498. package/dist/providers/qwen-token-plan-cn.models.d.ts +364 -0
  499. package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -0
  500. package/dist/providers/qwen-token-plan-cn.models.js +277 -0
  501. package/dist/providers/qwen-token-plan-cn.models.js.map +1 -0
  502. package/dist/providers/qwen-token-plan.d.ts +3 -0
  503. package/dist/providers/qwen-token-plan.d.ts.map +1 -0
  504. package/dist/providers/qwen-token-plan.js +17 -0
  505. package/dist/providers/qwen-token-plan.js.map +1 -0
  506. package/dist/providers/qwen-token-plan.models.d.ts +366 -0
  507. package/dist/providers/qwen-token-plan.models.d.ts.map +1 -0
  508. package/dist/providers/qwen-token-plan.models.js +277 -0
  509. package/dist/providers/qwen-token-plan.models.js.map +1 -0
  510. package/dist/providers/radius-config.d.ts +26 -0
  511. package/dist/providers/radius-config.d.ts.map +1 -0
  512. package/dist/providers/radius-config.js +59 -0
  513. package/dist/providers/radius-config.js.map +1 -0
  514. package/dist/providers/radius.d.ts +9 -0
  515. package/dist/providers/radius.d.ts.map +1 -0
  516. package/dist/providers/radius.js +54 -0
  517. package/dist/providers/radius.js.map +1 -0
  518. package/dist/providers/together.d.ts +3 -0
  519. package/dist/providers/together.d.ts.map +1 -0
  520. package/dist/providers/together.js +15 -0
  521. package/dist/providers/together.js.map +1 -0
  522. package/dist/providers/together.models.d.ts +629 -0
  523. package/dist/providers/together.models.d.ts.map +1 -0
  524. package/dist/providers/together.models.js +399 -0
  525. package/dist/providers/together.models.js.map +1 -0
  526. package/dist/providers/vercel-ai-gateway.d.ts +3 -0
  527. package/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
  528. package/dist/providers/vercel-ai-gateway.js +15 -0
  529. package/dist/providers/vercel-ai-gateway.js.map +1 -0
  530. package/dist/providers/vercel-ai-gateway.models.d.ts +3306 -0
  531. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
  532. package/dist/providers/vercel-ai-gateway.models.js +3232 -0
  533. package/dist/providers/vercel-ai-gateway.models.js.map +1 -0
  534. package/dist/providers/xai.d.ts +3 -0
  535. package/dist/providers/xai.d.ts.map +1 -0
  536. package/dist/providers/xai.js +27 -0
  537. package/dist/providers/xai.js.map +1 -0
  538. package/dist/providers/xai.models.d.ts +71 -0
  539. package/dist/providers/xai.models.d.ts.map +1 -0
  540. package/dist/providers/xai.models.js +60 -0
  541. package/dist/providers/xai.models.js.map +1 -0
  542. package/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
  543. package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
  544. package/dist/providers/xiaomi-token-plan-ams.js +15 -0
  545. package/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
  546. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +66 -0
  547. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
  548. package/dist/providers/xiaomi-token-plan-ams.models.js +59 -0
  549. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
  550. package/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
  551. package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
  552. package/dist/providers/xiaomi-token-plan-cn.js +15 -0
  553. package/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
  554. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +66 -0
  555. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
  556. package/dist/providers/xiaomi-token-plan-cn.models.js +59 -0
  557. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
  558. package/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
  559. package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
  560. package/dist/providers/xiaomi-token-plan-sgp.js +15 -0
  561. package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
  562. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +66 -0
  563. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
  564. package/dist/providers/xiaomi-token-plan-sgp.models.js +59 -0
  565. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
  566. package/dist/providers/xiaomi.d.ts +3 -0
  567. package/dist/providers/xiaomi.d.ts.map +1 -0
  568. package/dist/providers/xiaomi.js +15 -0
  569. package/dist/providers/xiaomi.js.map +1 -0
  570. package/dist/providers/xiaomi.models.d.ts +129 -0
  571. package/dist/providers/xiaomi.models.d.ts.map +1 -0
  572. package/dist/providers/xiaomi.models.js +113 -0
  573. package/dist/providers/xiaomi.models.js.map +1 -0
  574. package/dist/providers/zai-coding-cn.d.ts +3 -0
  575. package/dist/providers/zai-coding-cn.d.ts.map +1 -0
  576. package/dist/providers/zai-coding-cn.js +15 -0
  577. package/dist/providers/zai-coding-cn.js.map +1 -0
  578. package/dist/providers/zai-coding-cn.models.d.ts +153 -0
  579. package/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
  580. package/dist/providers/zai-coding-cn.models.js +114 -0
  581. package/dist/providers/zai-coding-cn.models.js.map +1 -0
  582. package/dist/providers/zai.d.ts +3 -0
  583. package/dist/providers/zai.d.ts.map +1 -0
  584. package/dist/providers/zai.js +15 -0
  585. package/dist/providers/zai.js.map +1 -0
  586. package/dist/providers/zai.models.d.ts +153 -0
  587. package/dist/providers/zai.models.d.ts.map +1 -0
  588. package/dist/providers/zai.models.js +114 -0
  589. package/dist/providers/zai.models.js.map +1 -0
  590. package/dist/session-resources.d.ts +4 -0
  591. package/dist/session-resources.d.ts.map +1 -0
  592. package/dist/session-resources.js +22 -0
  593. package/dist/session-resources.js.map +1 -0
  594. package/dist/types.d.ts +627 -0
  595. package/dist/types.d.ts.map +1 -0
  596. package/dist/types.js +2 -0
  597. package/dist/types.js.map +1 -0
  598. package/dist/utils/abort-signals.d.ts +6 -0
  599. package/dist/utils/abort-signals.d.ts.map +1 -0
  600. package/dist/utils/abort-signals.js +34 -0
  601. package/dist/utils/abort-signals.js.map +1 -0
  602. package/dist/utils/deferred-tools.d.ts +9 -0
  603. package/dist/utils/deferred-tools.d.ts.map +1 -0
  604. package/dist/utils/deferred-tools.js +36 -0
  605. package/dist/utils/deferred-tools.js.map +1 -0
  606. package/dist/utils/diagnostics.d.ts +19 -0
  607. package/dist/utils/diagnostics.d.ts.map +1 -0
  608. package/dist/utils/diagnostics.js +25 -0
  609. package/dist/utils/diagnostics.js.map +1 -0
  610. package/dist/utils/error-body.d.ts +25 -0
  611. package/dist/utils/error-body.d.ts.map +1 -0
  612. package/dist/utils/error-body.js +109 -0
  613. package/dist/utils/error-body.js.map +1 -0
  614. package/dist/utils/estimate.d.ts +17 -0
  615. package/dist/utils/estimate.d.ts.map +1 -0
  616. package/dist/utils/estimate.js +116 -0
  617. package/dist/utils/estimate.js.map +1 -0
  618. package/dist/utils/event-stream.d.ts +21 -0
  619. package/dist/utils/event-stream.d.ts.map +1 -0
  620. package/dist/utils/event-stream.js +81 -0
  621. package/dist/utils/event-stream.js.map +1 -0
  622. package/dist/utils/hash.d.ts +3 -0
  623. package/dist/utils/hash.d.ts.map +1 -0
  624. package/dist/utils/hash.js +14 -0
  625. package/dist/utils/hash.js.map +1 -0
  626. package/dist/utils/headers.d.ts +4 -0
  627. package/dist/utils/headers.d.ts.map +1 -0
  628. package/dist/utils/headers.js +18 -0
  629. package/dist/utils/headers.js.map +1 -0
  630. package/dist/utils/json-parse.d.ts +16 -0
  631. package/dist/utils/json-parse.d.ts.map +1 -0
  632. package/dist/utils/json-parse.js +113 -0
  633. package/dist/utils/json-parse.js.map +1 -0
  634. package/dist/utils/node-http-proxy.d.ts +4 -0
  635. package/dist/utils/node-http-proxy.d.ts.map +1 -0
  636. package/dist/utils/node-http-proxy.js +92 -0
  637. package/dist/utils/node-http-proxy.js.map +1 -0
  638. package/dist/utils/overflow.d.ts +58 -0
  639. package/dist/utils/overflow.d.ts.map +1 -0
  640. package/dist/utils/overflow.js +158 -0
  641. package/dist/utils/overflow.js.map +1 -0
  642. package/dist/utils/provider-env.d.ts +7 -0
  643. package/dist/utils/provider-env.d.ts.map +1 -0
  644. package/dist/utils/provider-env.js +44 -0
  645. package/dist/utils/provider-env.js.map +1 -0
  646. package/dist/utils/retry.d.ts +12 -0
  647. package/dist/utils/retry.d.ts.map +1 -0
  648. package/dist/utils/retry.js +90 -0
  649. package/dist/utils/retry.js.map +1 -0
  650. package/dist/utils/sanitize-unicode.d.ts +22 -0
  651. package/dist/utils/sanitize-unicode.d.ts.map +1 -0
  652. package/dist/utils/sanitize-unicode.js +26 -0
  653. package/dist/utils/sanitize-unicode.js.map +1 -0
  654. package/dist/utils/typebox-helpers.d.ts +17 -0
  655. package/dist/utils/typebox-helpers.d.ts.map +1 -0
  656. package/dist/utils/typebox-helpers.js +21 -0
  657. package/dist/utils/typebox-helpers.js.map +1 -0
  658. package/dist/utils/validation.d.ts +18 -0
  659. package/dist/utils/validation.d.ts.map +1 -0
  660. package/dist/utils/validation.js +269 -0
  661. package/dist/utils/validation.js.map +1 -0
  662. package/package.json +96 -0
@@ -0,0 +1,4913 @@
1
+ // This file is auto-generated by scripts/generate-models.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+ export const OPENROUTER_MODELS = {
4
+ "ai21/jamba-large-1.7": {
5
+ id: "ai21/jamba-large-1.7",
6
+ name: "AI21: Jamba Large 1.7",
7
+ api: "openai-completions",
8
+ provider: "openrouter",
9
+ baseUrl: "https://openrouter.ai/api/v1",
10
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
11
+ reasoning: false,
12
+ input: ["text"],
13
+ cost: {
14
+ input: 2,
15
+ output: 8,
16
+ cacheRead: 0,
17
+ cacheWrite: 0,
18
+ },
19
+ contextWindow: 256000,
20
+ maxTokens: 4096,
21
+ },
22
+ "aion-labs/aion-2.0": {
23
+ id: "aion-labs/aion-2.0",
24
+ name: "AionLabs: Aion-2.0",
25
+ api: "openai-completions",
26
+ provider: "openrouter",
27
+ baseUrl: "https://openrouter.ai/api/v1",
28
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
29
+ reasoning: true,
30
+ input: ["text"],
31
+ cost: {
32
+ input: 0.8,
33
+ output: 1.6,
34
+ cacheRead: 0.2,
35
+ cacheWrite: 0,
36
+ },
37
+ contextWindow: 131072,
38
+ maxTokens: 32768,
39
+ },
40
+ "aion-labs/aion-3.0": {
41
+ id: "aion-labs/aion-3.0",
42
+ name: "AionLabs: Aion-3.0",
43
+ api: "openai-completions",
44
+ provider: "openrouter",
45
+ baseUrl: "https://openrouter.ai/api/v1",
46
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
47
+ reasoning: true,
48
+ input: ["text"],
49
+ cost: {
50
+ input: 3,
51
+ output: 6,
52
+ cacheRead: 0.75,
53
+ cacheWrite: 0,
54
+ },
55
+ contextWindow: 131072,
56
+ maxTokens: 32768,
57
+ },
58
+ "aion-labs/aion-3.0-mini": {
59
+ id: "aion-labs/aion-3.0-mini",
60
+ name: "AionLabs: Aion-3.0-Mini",
61
+ api: "openai-completions",
62
+ provider: "openrouter",
63
+ baseUrl: "https://openrouter.ai/api/v1",
64
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
65
+ reasoning: true,
66
+ input: ["text"],
67
+ cost: {
68
+ input: 0.7,
69
+ output: 1.4,
70
+ cacheRead: 0.18,
71
+ cacheWrite: 0,
72
+ },
73
+ contextWindow: 131072,
74
+ maxTokens: 32768,
75
+ },
76
+ "amazon/nova-2-lite-v1": {
77
+ id: "amazon/nova-2-lite-v1",
78
+ name: "Amazon: Nova 2 Lite",
79
+ api: "openai-completions",
80
+ provider: "openrouter",
81
+ baseUrl: "https://openrouter.ai/api/v1",
82
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
83
+ reasoning: true,
84
+ input: ["text", "image"],
85
+ cost: {
86
+ input: 0.3,
87
+ output: 2.5,
88
+ cacheRead: 0,
89
+ cacheWrite: 0,
90
+ },
91
+ contextWindow: 1000000,
92
+ maxTokens: 65535,
93
+ },
94
+ "amazon/nova-lite-v1": {
95
+ id: "amazon/nova-lite-v1",
96
+ name: "Amazon: Nova Lite 1.0",
97
+ api: "openai-completions",
98
+ provider: "openrouter",
99
+ baseUrl: "https://openrouter.ai/api/v1",
100
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
101
+ reasoning: false,
102
+ input: ["text", "image"],
103
+ cost: {
104
+ input: 0.06,
105
+ output: 0.24,
106
+ cacheRead: 0,
107
+ cacheWrite: 0,
108
+ },
109
+ contextWindow: 300000,
110
+ maxTokens: 5120,
111
+ },
112
+ "amazon/nova-micro-v1": {
113
+ id: "amazon/nova-micro-v1",
114
+ name: "Amazon: Nova Micro 1.0",
115
+ api: "openai-completions",
116
+ provider: "openrouter",
117
+ baseUrl: "https://openrouter.ai/api/v1",
118
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
119
+ reasoning: false,
120
+ input: ["text"],
121
+ cost: {
122
+ input: 0.035,
123
+ output: 0.14,
124
+ cacheRead: 0,
125
+ cacheWrite: 0,
126
+ },
127
+ contextWindow: 128000,
128
+ maxTokens: 5120,
129
+ },
130
+ "amazon/nova-premier-v1": {
131
+ id: "amazon/nova-premier-v1",
132
+ name: "Amazon: Nova Premier 1.0",
133
+ api: "openai-completions",
134
+ provider: "openrouter",
135
+ baseUrl: "https://openrouter.ai/api/v1",
136
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
137
+ reasoning: false,
138
+ input: ["text", "image"],
139
+ cost: {
140
+ input: 2.5,
141
+ output: 12.5,
142
+ cacheRead: 0.625,
143
+ cacheWrite: 0,
144
+ },
145
+ contextWindow: 1000000,
146
+ maxTokens: 32000,
147
+ },
148
+ "amazon/nova-pro-v1": {
149
+ id: "amazon/nova-pro-v1",
150
+ name: "Amazon: Nova Pro 1.0",
151
+ api: "openai-completions",
152
+ provider: "openrouter",
153
+ baseUrl: "https://openrouter.ai/api/v1",
154
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
155
+ reasoning: false,
156
+ input: ["text", "image"],
157
+ cost: {
158
+ input: 0.8,
159
+ output: 3.2,
160
+ cacheRead: 0,
161
+ cacheWrite: 0,
162
+ },
163
+ contextWindow: 300000,
164
+ maxTokens: 5120,
165
+ },
166
+ "anthropic/claude-3-haiku": {
167
+ id: "anthropic/claude-3-haiku",
168
+ name: "Anthropic: Claude 3 Haiku",
169
+ api: "openai-completions",
170
+ provider: "openrouter",
171
+ baseUrl: "https://openrouter.ai/api/v1",
172
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
173
+ reasoning: false,
174
+ input: ["text", "image"],
175
+ cost: {
176
+ input: 0.25,
177
+ output: 1.25,
178
+ cacheRead: 0.03,
179
+ cacheWrite: 0.3,
180
+ },
181
+ contextWindow: 200000,
182
+ maxTokens: 4096,
183
+ },
184
+ "anthropic/claude-fable-5": {
185
+ id: "anthropic/claude-fable-5",
186
+ name: "Anthropic: Claude Fable 5",
187
+ api: "openai-completions",
188
+ provider: "openrouter",
189
+ baseUrl: "https://openrouter.ai/api/v1",
190
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
191
+ reasoning: true,
192
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
193
+ input: ["text", "image"],
194
+ cost: {
195
+ input: 10,
196
+ output: 50,
197
+ cacheRead: 1,
198
+ cacheWrite: 12.5,
199
+ },
200
+ contextWindow: 1000000,
201
+ maxTokens: 128000,
202
+ },
203
+ "anthropic/claude-haiku-4.5": {
204
+ id: "anthropic/claude-haiku-4.5",
205
+ name: "Anthropic: Claude Haiku 4.5",
206
+ api: "openai-completions",
207
+ provider: "openrouter",
208
+ baseUrl: "https://openrouter.ai/api/v1",
209
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
210
+ reasoning: true,
211
+ input: ["text", "image"],
212
+ cost: {
213
+ input: 1,
214
+ output: 5,
215
+ cacheRead: 0.1,
216
+ cacheWrite: 1.25,
217
+ },
218
+ contextWindow: 200000,
219
+ maxTokens: 64000,
220
+ },
221
+ "anthropic/claude-opus-4": {
222
+ id: "anthropic/claude-opus-4",
223
+ name: "Anthropic: Claude Opus 4",
224
+ api: "openai-completions",
225
+ provider: "openrouter",
226
+ baseUrl: "https://openrouter.ai/api/v1",
227
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
228
+ reasoning: true,
229
+ input: ["text", "image"],
230
+ cost: {
231
+ input: 15,
232
+ output: 75,
233
+ cacheRead: 1.5,
234
+ cacheWrite: 18.75,
235
+ },
236
+ contextWindow: 200000,
237
+ maxTokens: 32000,
238
+ },
239
+ "anthropic/claude-opus-4.1": {
240
+ id: "anthropic/claude-opus-4.1",
241
+ name: "Anthropic: Claude Opus 4.1",
242
+ api: "openai-completions",
243
+ provider: "openrouter",
244
+ baseUrl: "https://openrouter.ai/api/v1",
245
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
246
+ reasoning: true,
247
+ input: ["text", "image"],
248
+ cost: {
249
+ input: 15,
250
+ output: 75,
251
+ cacheRead: 1.5,
252
+ cacheWrite: 18.75,
253
+ },
254
+ contextWindow: 200000,
255
+ maxTokens: 32000,
256
+ },
257
+ "anthropic/claude-opus-4.5": {
258
+ id: "anthropic/claude-opus-4.5",
259
+ name: "Anthropic: Claude Opus 4.5",
260
+ api: "openai-completions",
261
+ provider: "openrouter",
262
+ baseUrl: "https://openrouter.ai/api/v1",
263
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
264
+ reasoning: true,
265
+ input: ["text", "image"],
266
+ cost: {
267
+ input: 5,
268
+ output: 25,
269
+ cacheRead: 0.5,
270
+ cacheWrite: 6.25,
271
+ },
272
+ contextWindow: 200000,
273
+ maxTokens: 64000,
274
+ },
275
+ "anthropic/claude-opus-4.6": {
276
+ id: "anthropic/claude-opus-4.6",
277
+ name: "Anthropic: Claude Opus 4.6",
278
+ api: "openai-completions",
279
+ provider: "openrouter",
280
+ baseUrl: "https://openrouter.ai/api/v1",
281
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
282
+ reasoning: true,
283
+ thinkingLevelMap: { "max": "max" },
284
+ input: ["text", "image"],
285
+ cost: {
286
+ input: 5,
287
+ output: 25,
288
+ cacheRead: 0.5,
289
+ cacheWrite: 6.25,
290
+ },
291
+ contextWindow: 1000000,
292
+ maxTokens: 128000,
293
+ },
294
+ "anthropic/claude-opus-4.7": {
295
+ id: "anthropic/claude-opus-4.7",
296
+ name: "Anthropic: Claude Opus 4.7",
297
+ api: "openai-completions",
298
+ provider: "openrouter",
299
+ baseUrl: "https://openrouter.ai/api/v1",
300
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
301
+ reasoning: true,
302
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
303
+ input: ["text", "image"],
304
+ cost: {
305
+ input: 5,
306
+ output: 25,
307
+ cacheRead: 0.5,
308
+ cacheWrite: 6.25,
309
+ },
310
+ contextWindow: 1000000,
311
+ maxTokens: 128000,
312
+ },
313
+ "anthropic/claude-opus-4.7-fast": {
314
+ id: "anthropic/claude-opus-4.7-fast",
315
+ name: "Anthropic: Claude Opus 4.7 (Fast)",
316
+ api: "openai-completions",
317
+ provider: "openrouter",
318
+ baseUrl: "https://openrouter.ai/api/v1",
319
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
320
+ reasoning: true,
321
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
322
+ input: ["text", "image"],
323
+ cost: {
324
+ input: 30,
325
+ output: 150,
326
+ cacheRead: 3,
327
+ cacheWrite: 37.5,
328
+ },
329
+ contextWindow: 1000000,
330
+ maxTokens: 128000,
331
+ },
332
+ "anthropic/claude-opus-4.8": {
333
+ id: "anthropic/claude-opus-4.8",
334
+ name: "Anthropic: Claude Opus 4.8",
335
+ api: "openai-completions",
336
+ provider: "openrouter",
337
+ baseUrl: "https://openrouter.ai/api/v1",
338
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
339
+ reasoning: true,
340
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
341
+ input: ["text", "image"],
342
+ cost: {
343
+ input: 5,
344
+ output: 25,
345
+ cacheRead: 0.5,
346
+ cacheWrite: 6.25,
347
+ },
348
+ contextWindow: 1000000,
349
+ maxTokens: 128000,
350
+ },
351
+ "anthropic/claude-opus-4.8-fast": {
352
+ id: "anthropic/claude-opus-4.8-fast",
353
+ name: "Anthropic: Claude Opus 4.8 (Fast)",
354
+ api: "openai-completions",
355
+ provider: "openrouter",
356
+ baseUrl: "https://openrouter.ai/api/v1",
357
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
358
+ reasoning: true,
359
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
360
+ input: ["text", "image"],
361
+ cost: {
362
+ input: 10,
363
+ output: 50,
364
+ cacheRead: 1,
365
+ cacheWrite: 12.5,
366
+ },
367
+ contextWindow: 1000000,
368
+ maxTokens: 128000,
369
+ },
370
+ "anthropic/claude-sonnet-4": {
371
+ id: "anthropic/claude-sonnet-4",
372
+ name: "Anthropic: Claude Sonnet 4",
373
+ api: "openai-completions",
374
+ provider: "openrouter",
375
+ baseUrl: "https://openrouter.ai/api/v1",
376
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
377
+ reasoning: true,
378
+ input: ["text", "image"],
379
+ cost: {
380
+ input: 3,
381
+ output: 15,
382
+ cacheRead: 0.3,
383
+ cacheWrite: 3.75,
384
+ },
385
+ contextWindow: 200000,
386
+ maxTokens: 64000,
387
+ },
388
+ "anthropic/claude-sonnet-4.5": {
389
+ id: "anthropic/claude-sonnet-4.5",
390
+ name: "Anthropic: Claude Sonnet 4.5",
391
+ api: "openai-completions",
392
+ provider: "openrouter",
393
+ baseUrl: "https://openrouter.ai/api/v1",
394
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
395
+ reasoning: true,
396
+ input: ["text", "image"],
397
+ cost: {
398
+ input: 3,
399
+ output: 15,
400
+ cacheRead: 0.3,
401
+ cacheWrite: 3.75,
402
+ },
403
+ contextWindow: 1000000,
404
+ maxTokens: 64000,
405
+ },
406
+ "anthropic/claude-sonnet-4.6": {
407
+ id: "anthropic/claude-sonnet-4.6",
408
+ name: "Anthropic: Claude Sonnet 4.6",
409
+ api: "openai-completions",
410
+ provider: "openrouter",
411
+ baseUrl: "https://openrouter.ai/api/v1",
412
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
413
+ reasoning: true,
414
+ thinkingLevelMap: { "max": "max" },
415
+ input: ["text", "image"],
416
+ cost: {
417
+ input: 3,
418
+ output: 15,
419
+ cacheRead: 0.3,
420
+ cacheWrite: 3.75,
421
+ },
422
+ contextWindow: 1000000,
423
+ maxTokens: 128000,
424
+ },
425
+ "anthropic/claude-sonnet-5": {
426
+ id: "anthropic/claude-sonnet-5",
427
+ name: "Anthropic: Claude Sonnet 5",
428
+ api: "openai-completions",
429
+ provider: "openrouter",
430
+ baseUrl: "https://openrouter.ai/api/v1",
431
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
432
+ reasoning: true,
433
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
434
+ input: ["text", "image"],
435
+ cost: {
436
+ input: 2,
437
+ output: 10,
438
+ cacheRead: 0.2,
439
+ cacheWrite: 2.5,
440
+ },
441
+ contextWindow: 1000000,
442
+ maxTokens: 128000,
443
+ },
444
+ "arcee-ai/trinity-large-thinking": {
445
+ id: "arcee-ai/trinity-large-thinking",
446
+ name: "Arcee AI: Trinity Large Thinking",
447
+ api: "openai-completions",
448
+ provider: "openrouter",
449
+ baseUrl: "https://openrouter.ai/api/v1",
450
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
451
+ reasoning: true,
452
+ input: ["text"],
453
+ cost: {
454
+ input: 0.25,
455
+ output: 0.8,
456
+ cacheRead: 0.06,
457
+ cacheWrite: 0,
458
+ },
459
+ contextWindow: 262144,
460
+ maxTokens: 80000,
461
+ },
462
+ "arcee-ai/virtuoso-large": {
463
+ id: "arcee-ai/virtuoso-large",
464
+ name: "Arcee AI: Virtuoso Large",
465
+ api: "openai-completions",
466
+ provider: "openrouter",
467
+ baseUrl: "https://openrouter.ai/api/v1",
468
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
469
+ reasoning: false,
470
+ input: ["text"],
471
+ cost: {
472
+ input: 0.75,
473
+ output: 1.2,
474
+ cacheRead: 0,
475
+ cacheWrite: 0,
476
+ },
477
+ contextWindow: 131072,
478
+ maxTokens: 64000,
479
+ },
480
+ "auto": {
481
+ id: "auto",
482
+ name: "Auto",
483
+ api: "openai-completions",
484
+ provider: "openrouter",
485
+ baseUrl: "https://openrouter.ai/api/v1",
486
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
487
+ reasoning: true,
488
+ input: ["text", "image"],
489
+ cost: {
490
+ input: 0,
491
+ output: 0,
492
+ cacheRead: 0,
493
+ cacheWrite: 0,
494
+ },
495
+ contextWindow: 2000000,
496
+ maxTokens: 30000,
497
+ },
498
+ "bytedance-seed/seed-1.6": {
499
+ id: "bytedance-seed/seed-1.6",
500
+ name: "ByteDance Seed: Seed 1.6",
501
+ api: "openai-completions",
502
+ provider: "openrouter",
503
+ baseUrl: "https://openrouter.ai/api/v1",
504
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
505
+ reasoning: true,
506
+ input: ["text", "image"],
507
+ cost: {
508
+ input: 0.25,
509
+ output: 2,
510
+ cacheRead: 0,
511
+ cacheWrite: 0,
512
+ },
513
+ contextWindow: 262144,
514
+ maxTokens: 32768,
515
+ },
516
+ "bytedance-seed/seed-1.6-flash": {
517
+ id: "bytedance-seed/seed-1.6-flash",
518
+ name: "ByteDance Seed: Seed 1.6 Flash",
519
+ api: "openai-completions",
520
+ provider: "openrouter",
521
+ baseUrl: "https://openrouter.ai/api/v1",
522
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
523
+ reasoning: true,
524
+ input: ["text", "image"],
525
+ cost: {
526
+ input: 0.075,
527
+ output: 0.3,
528
+ cacheRead: 0,
529
+ cacheWrite: 0,
530
+ },
531
+ contextWindow: 262144,
532
+ maxTokens: 32768,
533
+ },
534
+ "bytedance-seed/seed-2.0-lite": {
535
+ id: "bytedance-seed/seed-2.0-lite",
536
+ name: "ByteDance Seed: Seed-2.0-Lite",
537
+ api: "openai-completions",
538
+ provider: "openrouter",
539
+ baseUrl: "https://openrouter.ai/api/v1",
540
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
541
+ reasoning: true,
542
+ input: ["text", "image"],
543
+ cost: {
544
+ input: 0.25,
545
+ output: 2,
546
+ cacheRead: 0,
547
+ cacheWrite: 0,
548
+ },
549
+ contextWindow: 262144,
550
+ maxTokens: 131072,
551
+ },
552
+ "bytedance-seed/seed-2.0-mini": {
553
+ id: "bytedance-seed/seed-2.0-mini",
554
+ name: "ByteDance Seed: Seed-2.0-Mini",
555
+ api: "openai-completions",
556
+ provider: "openrouter",
557
+ baseUrl: "https://openrouter.ai/api/v1",
558
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
559
+ reasoning: true,
560
+ input: ["text", "image"],
561
+ cost: {
562
+ input: 0.1,
563
+ output: 0.4,
564
+ cacheRead: 0,
565
+ cacheWrite: 0,
566
+ },
567
+ contextWindow: 262144,
568
+ maxTokens: 131072,
569
+ },
570
+ "cohere/command-r-08-2024": {
571
+ id: "cohere/command-r-08-2024",
572
+ name: "Cohere: Command R (08-2024)",
573
+ api: "openai-completions",
574
+ provider: "openrouter",
575
+ baseUrl: "https://openrouter.ai/api/v1",
576
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
577
+ reasoning: false,
578
+ input: ["text"],
579
+ cost: {
580
+ input: 0.15,
581
+ output: 0.6,
582
+ cacheRead: 0,
583
+ cacheWrite: 0,
584
+ },
585
+ contextWindow: 128000,
586
+ maxTokens: 4000,
587
+ },
588
+ "cohere/command-r-plus-08-2024": {
589
+ id: "cohere/command-r-plus-08-2024",
590
+ name: "Cohere: Command R+ (08-2024)",
591
+ api: "openai-completions",
592
+ provider: "openrouter",
593
+ baseUrl: "https://openrouter.ai/api/v1",
594
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
595
+ reasoning: false,
596
+ input: ["text"],
597
+ cost: {
598
+ input: 2.5,
599
+ output: 10,
600
+ cacheRead: 0,
601
+ cacheWrite: 0,
602
+ },
603
+ contextWindow: 128000,
604
+ maxTokens: 4000,
605
+ },
606
+ "cohere/north-mini-code:free": {
607
+ id: "cohere/north-mini-code:free",
608
+ name: "Cohere: North Mini Code (free)",
609
+ api: "openai-completions",
610
+ provider: "openrouter",
611
+ baseUrl: "https://openrouter.ai/api/v1",
612
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
613
+ reasoning: true,
614
+ input: ["text"],
615
+ cost: {
616
+ input: 0,
617
+ output: 0,
618
+ cacheRead: 0,
619
+ cacheWrite: 0,
620
+ },
621
+ contextWindow: 256000,
622
+ maxTokens: 64000,
623
+ },
624
+ "deepseek/deepseek-chat": {
625
+ id: "deepseek/deepseek-chat",
626
+ name: "DeepSeek: DeepSeek V3",
627
+ api: "openai-completions",
628
+ provider: "openrouter",
629
+ baseUrl: "https://openrouter.ai/api/v1",
630
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
631
+ reasoning: false,
632
+ input: ["text"],
633
+ cost: {
634
+ input: 0.2002,
635
+ output: 0.8001,
636
+ cacheRead: 0,
637
+ cacheWrite: 0,
638
+ },
639
+ contextWindow: 128000,
640
+ maxTokens: 16000,
641
+ },
642
+ "deepseek/deepseek-chat-v3-0324": {
643
+ id: "deepseek/deepseek-chat-v3-0324",
644
+ name: "DeepSeek: DeepSeek V3 0324",
645
+ api: "openai-completions",
646
+ provider: "openrouter",
647
+ baseUrl: "https://openrouter.ai/api/v1",
648
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
649
+ reasoning: false,
650
+ input: ["text"],
651
+ cost: {
652
+ input: 0.27,
653
+ output: 1.12,
654
+ cacheRead: 0.135,
655
+ cacheWrite: 0,
656
+ },
657
+ contextWindow: 163840,
658
+ maxTokens: 65536,
659
+ },
660
+ "deepseek/deepseek-chat-v3.1": {
661
+ id: "deepseek/deepseek-chat-v3.1",
662
+ name: "DeepSeek: DeepSeek V3.1",
663
+ api: "openai-completions",
664
+ provider: "openrouter",
665
+ baseUrl: "https://openrouter.ai/api/v1",
666
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
667
+ reasoning: true,
668
+ input: ["text"],
669
+ cost: {
670
+ input: 0.25,
671
+ output: 0.95,
672
+ cacheRead: 0.13,
673
+ cacheWrite: 0,
674
+ },
675
+ contextWindow: 163840,
676
+ maxTokens: 32768,
677
+ },
678
+ "deepseek/deepseek-r1": {
679
+ id: "deepseek/deepseek-r1",
680
+ name: "DeepSeek: R1",
681
+ api: "openai-completions",
682
+ provider: "openrouter",
683
+ baseUrl: "https://openrouter.ai/api/v1",
684
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
685
+ reasoning: true,
686
+ input: ["text"],
687
+ cost: {
688
+ input: 0.7,
689
+ output: 2.5,
690
+ cacheRead: 0,
691
+ cacheWrite: 0,
692
+ },
693
+ contextWindow: 64000,
694
+ maxTokens: 16000,
695
+ },
696
+ "deepseek/deepseek-r1-0528": {
697
+ id: "deepseek/deepseek-r1-0528",
698
+ name: "DeepSeek: R1 0528",
699
+ api: "openai-completions",
700
+ provider: "openrouter",
701
+ baseUrl: "https://openrouter.ai/api/v1",
702
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
703
+ reasoning: true,
704
+ input: ["text"],
705
+ cost: {
706
+ input: 0.5,
707
+ output: 2.15,
708
+ cacheRead: 0.35,
709
+ cacheWrite: 0,
710
+ },
711
+ contextWindow: 163840,
712
+ maxTokens: 32768,
713
+ },
714
+ "deepseek/deepseek-v3.1-terminus": {
715
+ id: "deepseek/deepseek-v3.1-terminus",
716
+ name: "DeepSeek: DeepSeek V3.1 Terminus",
717
+ api: "openai-completions",
718
+ provider: "openrouter",
719
+ baseUrl: "https://openrouter.ai/api/v1",
720
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
721
+ reasoning: true,
722
+ input: ["text"],
723
+ cost: {
724
+ input: 0.27,
725
+ output: 1,
726
+ cacheRead: 0.135,
727
+ cacheWrite: 0,
728
+ },
729
+ contextWindow: 131072,
730
+ maxTokens: 32768,
731
+ },
732
+ "deepseek/deepseek-v3.2": {
733
+ id: "deepseek/deepseek-v3.2",
734
+ name: "DeepSeek: DeepSeek V3.2",
735
+ api: "openai-completions",
736
+ provider: "openrouter",
737
+ baseUrl: "https://openrouter.ai/api/v1",
738
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
739
+ reasoning: true,
740
+ input: ["text"],
741
+ cost: {
742
+ input: 0.269,
743
+ output: 0.4,
744
+ cacheRead: 0.1345,
745
+ cacheWrite: 0,
746
+ },
747
+ contextWindow: 163840,
748
+ maxTokens: 65536,
749
+ },
750
+ "deepseek/deepseek-v3.2-exp": {
751
+ id: "deepseek/deepseek-v3.2-exp",
752
+ name: "DeepSeek: DeepSeek V3.2 Exp",
753
+ api: "openai-completions",
754
+ provider: "openrouter",
755
+ baseUrl: "https://openrouter.ai/api/v1",
756
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
757
+ reasoning: true,
758
+ input: ["text"],
759
+ cost: {
760
+ input: 0.27,
761
+ output: 0.41,
762
+ cacheRead: 0,
763
+ cacheWrite: 0,
764
+ },
765
+ contextWindow: 163840,
766
+ maxTokens: 65536,
767
+ },
768
+ "deepseek/deepseek-v4-flash": {
769
+ id: "deepseek/deepseek-v4-flash",
770
+ name: "DeepSeek: DeepSeek V4 Flash",
771
+ api: "openai-completions",
772
+ provider: "openrouter",
773
+ baseUrl: "https://openrouter.ai/api/v1",
774
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
775
+ reasoning: true,
776
+ thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "max": null, "xhigh": "xhigh" },
777
+ input: ["text"],
778
+ cost: {
779
+ input: 0.098,
780
+ output: 0.196,
781
+ cacheRead: 0.0196,
782
+ cacheWrite: 0,
783
+ },
784
+ contextWindow: 1048575,
785
+ maxTokens: 4096,
786
+ },
787
+ "deepseek/deepseek-v4-pro": {
788
+ id: "deepseek/deepseek-v4-pro",
789
+ name: "DeepSeek: DeepSeek V4 Pro",
790
+ api: "openai-completions",
791
+ provider: "openrouter",
792
+ baseUrl: "https://openrouter.ai/api/v1",
793
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
794
+ reasoning: true,
795
+ thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "max": null, "xhigh": "xhigh" },
796
+ input: ["text"],
797
+ cost: {
798
+ input: 0.435,
799
+ output: 0.87,
800
+ cacheRead: 0.003625,
801
+ cacheWrite: 0,
802
+ },
803
+ contextWindow: 1048576,
804
+ maxTokens: 384000,
805
+ },
806
+ "google/gemini-2.5-flash": {
807
+ id: "google/gemini-2.5-flash",
808
+ name: "Google: Gemini 2.5 Flash",
809
+ api: "openai-completions",
810
+ provider: "openrouter",
811
+ baseUrl: "https://openrouter.ai/api/v1",
812
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
813
+ reasoning: true,
814
+ input: ["text", "image"],
815
+ cost: {
816
+ input: 0.3,
817
+ output: 2.5,
818
+ cacheRead: 0.03,
819
+ cacheWrite: 0.083333,
820
+ },
821
+ contextWindow: 1048576,
822
+ maxTokens: 65535,
823
+ },
824
+ "google/gemini-2.5-flash-lite": {
825
+ id: "google/gemini-2.5-flash-lite",
826
+ name: "Google: Gemini 2.5 Flash Lite",
827
+ api: "openai-completions",
828
+ provider: "openrouter",
829
+ baseUrl: "https://openrouter.ai/api/v1",
830
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
831
+ reasoning: true,
832
+ input: ["text", "image"],
833
+ cost: {
834
+ input: 0.1,
835
+ output: 0.4,
836
+ cacheRead: 0.01,
837
+ cacheWrite: 0.083333,
838
+ },
839
+ contextWindow: 1048576,
840
+ maxTokens: 65535,
841
+ },
842
+ "google/gemini-2.5-pro": {
843
+ id: "google/gemini-2.5-pro",
844
+ name: "Google: Gemini 2.5 Pro",
845
+ api: "openai-completions",
846
+ provider: "openrouter",
847
+ baseUrl: "https://openrouter.ai/api/v1",
848
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
849
+ reasoning: true,
850
+ input: ["text", "image"],
851
+ cost: {
852
+ input: 1.25,
853
+ output: 10,
854
+ cacheRead: 0.125,
855
+ cacheWrite: 0.375,
856
+ },
857
+ contextWindow: 1048576,
858
+ maxTokens: 65536,
859
+ },
860
+ "google/gemini-2.5-pro-preview": {
861
+ id: "google/gemini-2.5-pro-preview",
862
+ name: "Google: Gemini 2.5 Pro Preview 06-05",
863
+ api: "openai-completions",
864
+ provider: "openrouter",
865
+ baseUrl: "https://openrouter.ai/api/v1",
866
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
867
+ reasoning: true,
868
+ input: ["text", "image"],
869
+ cost: {
870
+ input: 1.25,
871
+ output: 10,
872
+ cacheRead: 0.125,
873
+ cacheWrite: 0.375,
874
+ },
875
+ contextWindow: 1048576,
876
+ maxTokens: 65536,
877
+ },
878
+ "google/gemini-2.5-pro-preview-05-06": {
879
+ id: "google/gemini-2.5-pro-preview-05-06",
880
+ name: "Google: Gemini 2.5 Pro Preview 05-06",
881
+ api: "openai-completions",
882
+ provider: "openrouter",
883
+ baseUrl: "https://openrouter.ai/api/v1",
884
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
885
+ reasoning: true,
886
+ input: ["text", "image"],
887
+ cost: {
888
+ input: 1.25,
889
+ output: 10,
890
+ cacheRead: 0.125,
891
+ cacheWrite: 0.375,
892
+ },
893
+ contextWindow: 1048576,
894
+ maxTokens: 65535,
895
+ },
896
+ "google/gemini-3-flash-preview": {
897
+ id: "google/gemini-3-flash-preview",
898
+ name: "Google: Gemini 3 Flash Preview",
899
+ api: "openai-completions",
900
+ provider: "openrouter",
901
+ baseUrl: "https://openrouter.ai/api/v1",
902
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
903
+ reasoning: true,
904
+ input: ["text", "image"],
905
+ cost: {
906
+ input: 0.5,
907
+ output: 3,
908
+ cacheRead: 0.05,
909
+ cacheWrite: 0.083333,
910
+ },
911
+ contextWindow: 1048576,
912
+ maxTokens: 65535,
913
+ },
914
+ "google/gemini-3-pro-image": {
915
+ id: "google/gemini-3-pro-image",
916
+ name: "Google: Nano Banana Pro (Gemini 3 Pro Image)",
917
+ api: "openai-completions",
918
+ provider: "openrouter",
919
+ baseUrl: "https://openrouter.ai/api/v1",
920
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
921
+ reasoning: true,
922
+ input: ["text", "image"],
923
+ cost: {
924
+ input: 2,
925
+ output: 12,
926
+ cacheRead: 0.2,
927
+ cacheWrite: 0.375,
928
+ },
929
+ contextWindow: 65536,
930
+ maxTokens: 32768,
931
+ },
932
+ "google/gemini-3.1-flash-lite": {
933
+ id: "google/gemini-3.1-flash-lite",
934
+ name: "Google: Gemini 3.1 Flash Lite",
935
+ api: "openai-completions",
936
+ provider: "openrouter",
937
+ baseUrl: "https://openrouter.ai/api/v1",
938
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
939
+ reasoning: true,
940
+ input: ["text", "image"],
941
+ cost: {
942
+ input: 0.25,
943
+ output: 1.5,
944
+ cacheRead: 0.025,
945
+ cacheWrite: 0.083333,
946
+ },
947
+ contextWindow: 1048576,
948
+ maxTokens: 65536,
949
+ },
950
+ "google/gemini-3.1-flash-lite-preview": {
951
+ id: "google/gemini-3.1-flash-lite-preview",
952
+ name: "Google: Gemini 3.1 Flash Lite Preview",
953
+ api: "openai-completions",
954
+ provider: "openrouter",
955
+ baseUrl: "https://openrouter.ai/api/v1",
956
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
957
+ reasoning: true,
958
+ input: ["text", "image"],
959
+ cost: {
960
+ input: 0.25,
961
+ output: 1.5,
962
+ cacheRead: 0.025,
963
+ cacheWrite: 0.083333,
964
+ },
965
+ contextWindow: 1048576,
966
+ maxTokens: 65536,
967
+ },
968
+ "google/gemini-3.1-pro-preview": {
969
+ id: "google/gemini-3.1-pro-preview",
970
+ name: "Google: Gemini 3.1 Pro Preview",
971
+ api: "openai-completions",
972
+ provider: "openrouter",
973
+ baseUrl: "https://openrouter.ai/api/v1",
974
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
975
+ reasoning: true,
976
+ input: ["text", "image"],
977
+ cost: {
978
+ input: 2,
979
+ output: 12,
980
+ cacheRead: 0.2,
981
+ cacheWrite: 0.375,
982
+ },
983
+ contextWindow: 1048576,
984
+ maxTokens: 65536,
985
+ },
986
+ "google/gemini-3.1-pro-preview-customtools": {
987
+ id: "google/gemini-3.1-pro-preview-customtools",
988
+ name: "Google: Gemini 3.1 Pro Preview Custom Tools",
989
+ api: "openai-completions",
990
+ provider: "openrouter",
991
+ baseUrl: "https://openrouter.ai/api/v1",
992
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
993
+ reasoning: true,
994
+ input: ["text", "image"],
995
+ cost: {
996
+ input: 2,
997
+ output: 12,
998
+ cacheRead: 0.2,
999
+ cacheWrite: 0.375,
1000
+ },
1001
+ contextWindow: 1048576,
1002
+ maxTokens: 65536,
1003
+ },
1004
+ "google/gemini-3.5-flash": {
1005
+ id: "google/gemini-3.5-flash",
1006
+ name: "Google: Gemini 3.5 Flash",
1007
+ api: "openai-completions",
1008
+ provider: "openrouter",
1009
+ baseUrl: "https://openrouter.ai/api/v1",
1010
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1011
+ reasoning: true,
1012
+ input: ["text", "image"],
1013
+ cost: {
1014
+ input: 1.5,
1015
+ output: 9,
1016
+ cacheRead: 0.15,
1017
+ cacheWrite: 0.083333,
1018
+ },
1019
+ contextWindow: 1048576,
1020
+ maxTokens: 65536,
1021
+ },
1022
+ "google/gemma-3-12b-it": {
1023
+ id: "google/gemma-3-12b-it",
1024
+ name: "Google: Gemma 3 12B",
1025
+ api: "openai-completions",
1026
+ provider: "openrouter",
1027
+ baseUrl: "https://openrouter.ai/api/v1",
1028
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1029
+ reasoning: false,
1030
+ input: ["text", "image"],
1031
+ cost: {
1032
+ input: 0.05,
1033
+ output: 0.15,
1034
+ cacheRead: 0,
1035
+ cacheWrite: 0,
1036
+ },
1037
+ contextWindow: 131072,
1038
+ maxTokens: 16384,
1039
+ },
1040
+ "google/gemma-3-27b-it": {
1041
+ id: "google/gemma-3-27b-it",
1042
+ name: "Google: Gemma 3 27B",
1043
+ api: "openai-completions",
1044
+ provider: "openrouter",
1045
+ baseUrl: "https://openrouter.ai/api/v1",
1046
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1047
+ reasoning: false,
1048
+ input: ["text", "image"],
1049
+ cost: {
1050
+ input: 0.1,
1051
+ output: 0.3,
1052
+ cacheRead: 0,
1053
+ cacheWrite: 0,
1054
+ },
1055
+ contextWindow: 110000,
1056
+ maxTokens: 4096,
1057
+ },
1058
+ "google/gemma-4-26b-a4b-it": {
1059
+ id: "google/gemma-4-26b-a4b-it",
1060
+ name: "Google: Gemma 4 26B A4B ",
1061
+ api: "openai-completions",
1062
+ provider: "openrouter",
1063
+ baseUrl: "https://openrouter.ai/api/v1",
1064
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1065
+ reasoning: true,
1066
+ input: ["text", "image"],
1067
+ cost: {
1068
+ input: 0.1,
1069
+ output: 0.3,
1070
+ cacheRead: 0,
1071
+ cacheWrite: 0,
1072
+ },
1073
+ contextWindow: 256000,
1074
+ maxTokens: 256000,
1075
+ },
1076
+ "google/gemma-4-26b-a4b-it:free": {
1077
+ id: "google/gemma-4-26b-a4b-it:free",
1078
+ name: "Google: Gemma 4 26B A4B (free)",
1079
+ api: "openai-completions",
1080
+ provider: "openrouter",
1081
+ baseUrl: "https://openrouter.ai/api/v1",
1082
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1083
+ reasoning: true,
1084
+ input: ["text", "image"],
1085
+ cost: {
1086
+ input: 0,
1087
+ output: 0,
1088
+ cacheRead: 0,
1089
+ cacheWrite: 0,
1090
+ },
1091
+ contextWindow: 131072,
1092
+ maxTokens: 32768,
1093
+ },
1094
+ "google/gemma-4-31b-it": {
1095
+ id: "google/gemma-4-31b-it",
1096
+ name: "Google: Gemma 4 31B",
1097
+ api: "openai-completions",
1098
+ provider: "openrouter",
1099
+ baseUrl: "https://openrouter.ai/api/v1",
1100
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1101
+ reasoning: true,
1102
+ input: ["text", "image"],
1103
+ cost: {
1104
+ input: 0.12,
1105
+ output: 0.37,
1106
+ cacheRead: 0,
1107
+ cacheWrite: 0,
1108
+ },
1109
+ contextWindow: 262144,
1110
+ maxTokens: 16384,
1111
+ },
1112
+ "google/gemma-4-31b-it:free": {
1113
+ id: "google/gemma-4-31b-it:free",
1114
+ name: "Google: Gemma 4 31B (free)",
1115
+ api: "openai-completions",
1116
+ provider: "openrouter",
1117
+ baseUrl: "https://openrouter.ai/api/v1",
1118
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1119
+ reasoning: true,
1120
+ input: ["text", "image"],
1121
+ cost: {
1122
+ input: 0,
1123
+ output: 0,
1124
+ cacheRead: 0,
1125
+ cacheWrite: 0,
1126
+ },
1127
+ contextWindow: 262144,
1128
+ maxTokens: 32768,
1129
+ },
1130
+ "ibm-granite/granite-4.1-8b": {
1131
+ id: "ibm-granite/granite-4.1-8b",
1132
+ name: "IBM: Granite 4.1 8B",
1133
+ api: "openai-completions",
1134
+ provider: "openrouter",
1135
+ baseUrl: "https://openrouter.ai/api/v1",
1136
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1137
+ reasoning: false,
1138
+ input: ["text"],
1139
+ cost: {
1140
+ input: 0.05,
1141
+ output: 0.1,
1142
+ cacheRead: 0.05,
1143
+ cacheWrite: 0,
1144
+ },
1145
+ contextWindow: 131072,
1146
+ maxTokens: 131072,
1147
+ },
1148
+ "inception/mercury-2": {
1149
+ id: "inception/mercury-2",
1150
+ name: "Inception: Mercury 2",
1151
+ api: "openai-completions",
1152
+ provider: "openrouter",
1153
+ baseUrl: "https://openrouter.ai/api/v1",
1154
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1155
+ reasoning: true,
1156
+ thinkingLevelMap: { "off": null },
1157
+ input: ["text"],
1158
+ cost: {
1159
+ input: 0.25,
1160
+ output: 0.75,
1161
+ cacheRead: 0.025,
1162
+ cacheWrite: 0,
1163
+ },
1164
+ contextWindow: 128000,
1165
+ maxTokens: 50000,
1166
+ },
1167
+ "inclusionai/ling-2.6-1t": {
1168
+ id: "inclusionai/ling-2.6-1t",
1169
+ name: "inclusionAI: Ling-2.6-1T",
1170
+ api: "openai-completions",
1171
+ provider: "openrouter",
1172
+ baseUrl: "https://openrouter.ai/api/v1",
1173
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1174
+ reasoning: false,
1175
+ input: ["text"],
1176
+ cost: {
1177
+ input: 0.075,
1178
+ output: 0.625,
1179
+ cacheRead: 0.015,
1180
+ cacheWrite: 0,
1181
+ },
1182
+ contextWindow: 262144,
1183
+ maxTokens: 32768,
1184
+ },
1185
+ "inclusionai/ling-2.6-flash": {
1186
+ id: "inclusionai/ling-2.6-flash",
1187
+ name: "inclusionAI: Ling-2.6-flash",
1188
+ api: "openai-completions",
1189
+ provider: "openrouter",
1190
+ baseUrl: "https://openrouter.ai/api/v1",
1191
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1192
+ reasoning: false,
1193
+ input: ["text"],
1194
+ cost: {
1195
+ input: 0.01,
1196
+ output: 0.03,
1197
+ cacheRead: 0.002,
1198
+ cacheWrite: 0,
1199
+ },
1200
+ contextWindow: 262144,
1201
+ maxTokens: 32768,
1202
+ },
1203
+ "inclusionai/ring-2.6-1t": {
1204
+ id: "inclusionai/ring-2.6-1t",
1205
+ name: "inclusionAI: Ring-2.6-1T",
1206
+ api: "openai-completions",
1207
+ provider: "openrouter",
1208
+ baseUrl: "https://openrouter.ai/api/v1",
1209
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1210
+ reasoning: true,
1211
+ input: ["text"],
1212
+ cost: {
1213
+ input: 0.075,
1214
+ output: 0.625,
1215
+ cacheRead: 0.015,
1216
+ cacheWrite: 0,
1217
+ },
1218
+ contextWindow: 262144,
1219
+ maxTokens: 65536,
1220
+ },
1221
+ "kwaipilot/kat-coder-air-v2.5": {
1222
+ id: "kwaipilot/kat-coder-air-v2.5",
1223
+ name: "Kwaipilot: KAT-Coder-Air V2.5",
1224
+ api: "openai-completions",
1225
+ provider: "openrouter",
1226
+ baseUrl: "https://openrouter.ai/api/v1",
1227
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1228
+ reasoning: false,
1229
+ input: ["text"],
1230
+ cost: {
1231
+ input: 0.15,
1232
+ output: 0.6,
1233
+ cacheRead: 0.03,
1234
+ cacheWrite: 0,
1235
+ },
1236
+ contextWindow: 256000,
1237
+ maxTokens: 80000,
1238
+ },
1239
+ "kwaipilot/kat-coder-pro-v2": {
1240
+ id: "kwaipilot/kat-coder-pro-v2",
1241
+ name: "Kwaipilot: KAT-Coder-Pro V2",
1242
+ api: "openai-completions",
1243
+ provider: "openrouter",
1244
+ baseUrl: "https://openrouter.ai/api/v1",
1245
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1246
+ reasoning: false,
1247
+ input: ["text"],
1248
+ cost: {
1249
+ input: 0.3,
1250
+ output: 1.2,
1251
+ cacheRead: 0.06,
1252
+ cacheWrite: 0,
1253
+ },
1254
+ contextWindow: 256000,
1255
+ maxTokens: 80000,
1256
+ },
1257
+ "kwaipilot/kat-coder-pro-v2.5": {
1258
+ id: "kwaipilot/kat-coder-pro-v2.5",
1259
+ name: "Kwaipilot: KAT-Coder-Pro V2.5",
1260
+ api: "openai-completions",
1261
+ provider: "openrouter",
1262
+ baseUrl: "https://openrouter.ai/api/v1",
1263
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1264
+ reasoning: false,
1265
+ input: ["text"],
1266
+ cost: {
1267
+ input: 0.74,
1268
+ output: 2.96,
1269
+ cacheRead: 0.15,
1270
+ cacheWrite: 0,
1271
+ },
1272
+ contextWindow: 256000,
1273
+ maxTokens: 80000,
1274
+ },
1275
+ "meta-llama/llama-3.1-70b-instruct": {
1276
+ id: "meta-llama/llama-3.1-70b-instruct",
1277
+ name: "Meta: Llama 3.1 70B Instruct",
1278
+ api: "openai-completions",
1279
+ provider: "openrouter",
1280
+ baseUrl: "https://openrouter.ai/api/v1",
1281
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1282
+ reasoning: false,
1283
+ input: ["text"],
1284
+ cost: {
1285
+ input: 0.4,
1286
+ output: 0.4,
1287
+ cacheRead: 0,
1288
+ cacheWrite: 0,
1289
+ },
1290
+ contextWindow: 131072,
1291
+ maxTokens: 16384,
1292
+ },
1293
+ "meta-llama/llama-3.1-8b-instruct": {
1294
+ id: "meta-llama/llama-3.1-8b-instruct",
1295
+ name: "Meta: Llama 3.1 8B Instruct",
1296
+ api: "openai-completions",
1297
+ provider: "openrouter",
1298
+ baseUrl: "https://openrouter.ai/api/v1",
1299
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1300
+ reasoning: false,
1301
+ input: ["text"],
1302
+ cost: {
1303
+ input: 0.05,
1304
+ output: 0.08,
1305
+ cacheRead: 0.025,
1306
+ cacheWrite: 0,
1307
+ },
1308
+ contextWindow: 131072,
1309
+ maxTokens: 131072,
1310
+ },
1311
+ "meta-llama/llama-3.3-70b-instruct": {
1312
+ id: "meta-llama/llama-3.3-70b-instruct",
1313
+ name: "Meta: Llama 3.3 70B Instruct",
1314
+ api: "openai-completions",
1315
+ provider: "openrouter",
1316
+ baseUrl: "https://openrouter.ai/api/v1",
1317
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1318
+ reasoning: false,
1319
+ input: ["text"],
1320
+ cost: {
1321
+ input: 0.13,
1322
+ output: 0.4,
1323
+ cacheRead: 0,
1324
+ cacheWrite: 0,
1325
+ },
1326
+ contextWindow: 131072,
1327
+ maxTokens: 128000,
1328
+ },
1329
+ "meta-llama/llama-3.3-70b-instruct:free": {
1330
+ id: "meta-llama/llama-3.3-70b-instruct:free",
1331
+ name: "Meta: Llama 3.3 70B Instruct (free)",
1332
+ api: "openai-completions",
1333
+ provider: "openrouter",
1334
+ baseUrl: "https://openrouter.ai/api/v1",
1335
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1336
+ reasoning: false,
1337
+ input: ["text"],
1338
+ cost: {
1339
+ input: 0,
1340
+ output: 0,
1341
+ cacheRead: 0,
1342
+ cacheWrite: 0,
1343
+ },
1344
+ contextWindow: 65536,
1345
+ maxTokens: 4096,
1346
+ },
1347
+ "meta-llama/llama-4-maverick": {
1348
+ id: "meta-llama/llama-4-maverick",
1349
+ name: "Meta: Llama 4 Maverick",
1350
+ api: "openai-completions",
1351
+ provider: "openrouter",
1352
+ baseUrl: "https://openrouter.ai/api/v1",
1353
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1354
+ reasoning: false,
1355
+ input: ["text", "image"],
1356
+ cost: {
1357
+ input: 0.2,
1358
+ output: 0.8,
1359
+ cacheRead: 0,
1360
+ cacheWrite: 0,
1361
+ },
1362
+ contextWindow: 1048576,
1363
+ maxTokens: 16384,
1364
+ },
1365
+ "meta-llama/llama-4-scout": {
1366
+ id: "meta-llama/llama-4-scout",
1367
+ name: "Meta: Llama 4 Scout",
1368
+ api: "openai-completions",
1369
+ provider: "openrouter",
1370
+ baseUrl: "https://openrouter.ai/api/v1",
1371
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1372
+ reasoning: false,
1373
+ input: ["text", "image"],
1374
+ cost: {
1375
+ input: 0.1,
1376
+ output: 0.3,
1377
+ cacheRead: 0,
1378
+ cacheWrite: 0,
1379
+ },
1380
+ contextWindow: 327680,
1381
+ maxTokens: 16384,
1382
+ },
1383
+ "meta/muse-spark-1.1": {
1384
+ id: "meta/muse-spark-1.1",
1385
+ name: "Meta: Muse Spark 1.1",
1386
+ api: "openai-completions",
1387
+ provider: "openrouter",
1388
+ baseUrl: "https://openrouter.ai/api/v1",
1389
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1390
+ reasoning: true,
1391
+ input: ["text", "image"],
1392
+ cost: {
1393
+ input: 1.25,
1394
+ output: 4.25,
1395
+ cacheRead: 0.15,
1396
+ cacheWrite: 0,
1397
+ },
1398
+ contextWindow: 1048576,
1399
+ maxTokens: 4096,
1400
+ },
1401
+ "minimax/minimax-m1": {
1402
+ id: "minimax/minimax-m1",
1403
+ name: "MiniMax: MiniMax M1",
1404
+ api: "openai-completions",
1405
+ provider: "openrouter",
1406
+ baseUrl: "https://openrouter.ai/api/v1",
1407
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1408
+ reasoning: true,
1409
+ input: ["text"],
1410
+ cost: {
1411
+ input: 0.55,
1412
+ output: 2.2,
1413
+ cacheRead: 0,
1414
+ cacheWrite: 0,
1415
+ },
1416
+ contextWindow: 1000000,
1417
+ maxTokens: 40000,
1418
+ },
1419
+ "minimax/minimax-m2": {
1420
+ id: "minimax/minimax-m2",
1421
+ name: "MiniMax: MiniMax M2",
1422
+ api: "openai-completions",
1423
+ provider: "openrouter",
1424
+ baseUrl: "https://openrouter.ai/api/v1",
1425
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1426
+ reasoning: true,
1427
+ input: ["text"],
1428
+ cost: {
1429
+ input: 0.255,
1430
+ output: 1.02,
1431
+ cacheRead: 0,
1432
+ cacheWrite: 0,
1433
+ },
1434
+ contextWindow: 204800,
1435
+ maxTokens: 131072,
1436
+ },
1437
+ "minimax/minimax-m2.1": {
1438
+ id: "minimax/minimax-m2.1",
1439
+ name: "MiniMax: MiniMax M2.1",
1440
+ api: "openai-completions",
1441
+ provider: "openrouter",
1442
+ baseUrl: "https://openrouter.ai/api/v1",
1443
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1444
+ reasoning: true,
1445
+ input: ["text"],
1446
+ cost: {
1447
+ input: 0.3,
1448
+ output: 1.2,
1449
+ cacheRead: 0.03,
1450
+ cacheWrite: 0,
1451
+ },
1452
+ contextWindow: 204800,
1453
+ maxTokens: 131072,
1454
+ },
1455
+ "minimax/minimax-m2.5": {
1456
+ id: "minimax/minimax-m2.5",
1457
+ name: "MiniMax: MiniMax M2.5",
1458
+ api: "openai-completions",
1459
+ provider: "openrouter",
1460
+ baseUrl: "https://openrouter.ai/api/v1",
1461
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1462
+ reasoning: true,
1463
+ input: ["text"],
1464
+ cost: {
1465
+ input: 0.15,
1466
+ output: 0.9,
1467
+ cacheRead: 0.05,
1468
+ cacheWrite: 0,
1469
+ },
1470
+ contextWindow: 196608,
1471
+ maxTokens: 196608,
1472
+ },
1473
+ "minimax/minimax-m2.7": {
1474
+ id: "minimax/minimax-m2.7",
1475
+ name: "MiniMax: MiniMax M2.7",
1476
+ api: "openai-completions",
1477
+ provider: "openrouter",
1478
+ baseUrl: "https://openrouter.ai/api/v1",
1479
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1480
+ reasoning: true,
1481
+ input: ["text"],
1482
+ cost: {
1483
+ input: 0.25,
1484
+ output: 1,
1485
+ cacheRead: 0.05,
1486
+ cacheWrite: 0,
1487
+ },
1488
+ contextWindow: 196608,
1489
+ maxTokens: 131072,
1490
+ },
1491
+ "minimax/minimax-m3": {
1492
+ id: "minimax/minimax-m3",
1493
+ name: "MiniMax: MiniMax M3",
1494
+ api: "openai-completions",
1495
+ provider: "openrouter",
1496
+ baseUrl: "https://openrouter.ai/api/v1",
1497
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1498
+ reasoning: true,
1499
+ input: ["text", "image"],
1500
+ cost: {
1501
+ input: 0.3,
1502
+ output: 1.2,
1503
+ cacheRead: 0.06,
1504
+ cacheWrite: 0,
1505
+ },
1506
+ contextWindow: 524288,
1507
+ maxTokens: 512000,
1508
+ },
1509
+ "mistralai/codestral-2508": {
1510
+ id: "mistralai/codestral-2508",
1511
+ name: "Mistral: Codestral 2508",
1512
+ api: "openai-completions",
1513
+ provider: "openrouter",
1514
+ baseUrl: "https://openrouter.ai/api/v1",
1515
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1516
+ reasoning: false,
1517
+ input: ["text"],
1518
+ cost: {
1519
+ input: 0.3,
1520
+ output: 0.9,
1521
+ cacheRead: 0.03,
1522
+ cacheWrite: 0,
1523
+ },
1524
+ contextWindow: 256000,
1525
+ maxTokens: 4096,
1526
+ },
1527
+ "mistralai/devstral-2512": {
1528
+ id: "mistralai/devstral-2512",
1529
+ name: "Mistral: Devstral 2 2512",
1530
+ api: "openai-completions",
1531
+ provider: "openrouter",
1532
+ baseUrl: "https://openrouter.ai/api/v1",
1533
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1534
+ reasoning: false,
1535
+ input: ["text"],
1536
+ cost: {
1537
+ input: 0.4,
1538
+ output: 2,
1539
+ cacheRead: 0.04,
1540
+ cacheWrite: 0,
1541
+ },
1542
+ contextWindow: 262144,
1543
+ maxTokens: 4096,
1544
+ },
1545
+ "mistralai/ministral-14b-2512": {
1546
+ id: "mistralai/ministral-14b-2512",
1547
+ name: "Mistral: Ministral 3 14B 2512",
1548
+ api: "openai-completions",
1549
+ provider: "openrouter",
1550
+ baseUrl: "https://openrouter.ai/api/v1",
1551
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1552
+ reasoning: false,
1553
+ input: ["text", "image"],
1554
+ cost: {
1555
+ input: 0.2,
1556
+ output: 0.2,
1557
+ cacheRead: 0.02,
1558
+ cacheWrite: 0,
1559
+ },
1560
+ contextWindow: 262144,
1561
+ maxTokens: 4096,
1562
+ },
1563
+ "mistralai/ministral-3b-2512": {
1564
+ id: "mistralai/ministral-3b-2512",
1565
+ name: "Mistral: Ministral 3 3B 2512",
1566
+ api: "openai-completions",
1567
+ provider: "openrouter",
1568
+ baseUrl: "https://openrouter.ai/api/v1",
1569
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1570
+ reasoning: false,
1571
+ input: ["text", "image"],
1572
+ cost: {
1573
+ input: 0.1,
1574
+ output: 0.1,
1575
+ cacheRead: 0.01,
1576
+ cacheWrite: 0,
1577
+ },
1578
+ contextWindow: 131072,
1579
+ maxTokens: 4096,
1580
+ },
1581
+ "mistralai/ministral-8b-2512": {
1582
+ id: "mistralai/ministral-8b-2512",
1583
+ name: "Mistral: Ministral 3 8B 2512",
1584
+ api: "openai-completions",
1585
+ provider: "openrouter",
1586
+ baseUrl: "https://openrouter.ai/api/v1",
1587
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1588
+ reasoning: false,
1589
+ input: ["text", "image"],
1590
+ cost: {
1591
+ input: 0.15,
1592
+ output: 0.15,
1593
+ cacheRead: 0.015,
1594
+ cacheWrite: 0,
1595
+ },
1596
+ contextWindow: 262144,
1597
+ maxTokens: 4096,
1598
+ },
1599
+ "mistralai/mistral-large": {
1600
+ id: "mistralai/mistral-large",
1601
+ name: "Mistral Large",
1602
+ api: "openai-completions",
1603
+ provider: "openrouter",
1604
+ baseUrl: "https://openrouter.ai/api/v1",
1605
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1606
+ reasoning: false,
1607
+ input: ["text"],
1608
+ cost: {
1609
+ input: 2,
1610
+ output: 6,
1611
+ cacheRead: 0.2,
1612
+ cacheWrite: 0,
1613
+ },
1614
+ contextWindow: 128000,
1615
+ maxTokens: 4096,
1616
+ },
1617
+ "mistralai/mistral-large-2407": {
1618
+ id: "mistralai/mistral-large-2407",
1619
+ name: "Mistral Large 2407",
1620
+ api: "openai-completions",
1621
+ provider: "openrouter",
1622
+ baseUrl: "https://openrouter.ai/api/v1",
1623
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1624
+ reasoning: false,
1625
+ input: ["text"],
1626
+ cost: {
1627
+ input: 2,
1628
+ output: 6,
1629
+ cacheRead: 0.2,
1630
+ cacheWrite: 0,
1631
+ },
1632
+ contextWindow: 131072,
1633
+ maxTokens: 4096,
1634
+ },
1635
+ "mistralai/mistral-large-2512": {
1636
+ id: "mistralai/mistral-large-2512",
1637
+ name: "Mistral: Mistral Large 3 2512",
1638
+ api: "openai-completions",
1639
+ provider: "openrouter",
1640
+ baseUrl: "https://openrouter.ai/api/v1",
1641
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1642
+ reasoning: false,
1643
+ input: ["text", "image"],
1644
+ cost: {
1645
+ input: 0.5,
1646
+ output: 1.5,
1647
+ cacheRead: 0.05,
1648
+ cacheWrite: 0,
1649
+ },
1650
+ contextWindow: 262144,
1651
+ maxTokens: 4096,
1652
+ },
1653
+ "mistralai/mistral-medium-3": {
1654
+ id: "mistralai/mistral-medium-3",
1655
+ name: "Mistral: Mistral Medium 3",
1656
+ api: "openai-completions",
1657
+ provider: "openrouter",
1658
+ baseUrl: "https://openrouter.ai/api/v1",
1659
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1660
+ reasoning: false,
1661
+ input: ["text", "image"],
1662
+ cost: {
1663
+ input: 0.4,
1664
+ output: 2,
1665
+ cacheRead: 0.04,
1666
+ cacheWrite: 0,
1667
+ },
1668
+ contextWindow: 131072,
1669
+ maxTokens: 4096,
1670
+ },
1671
+ "mistralai/mistral-medium-3-5": {
1672
+ id: "mistralai/mistral-medium-3-5",
1673
+ name: "Mistral: Mistral Medium 3.5",
1674
+ api: "openai-completions",
1675
+ provider: "openrouter",
1676
+ baseUrl: "https://openrouter.ai/api/v1",
1677
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1678
+ reasoning: true,
1679
+ input: ["text", "image"],
1680
+ cost: {
1681
+ input: 1.5,
1682
+ output: 7.5,
1683
+ cacheRead: 0,
1684
+ cacheWrite: 0,
1685
+ },
1686
+ contextWindow: 262144,
1687
+ maxTokens: 4096,
1688
+ },
1689
+ "mistralai/mistral-medium-3.1": {
1690
+ id: "mistralai/mistral-medium-3.1",
1691
+ name: "Mistral: Mistral Medium 3.1",
1692
+ api: "openai-completions",
1693
+ provider: "openrouter",
1694
+ baseUrl: "https://openrouter.ai/api/v1",
1695
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1696
+ reasoning: false,
1697
+ input: ["text", "image"],
1698
+ cost: {
1699
+ input: 0.4,
1700
+ output: 2,
1701
+ cacheRead: 0.04,
1702
+ cacheWrite: 0,
1703
+ },
1704
+ contextWindow: 131072,
1705
+ maxTokens: 4096,
1706
+ },
1707
+ "mistralai/mistral-nemo": {
1708
+ id: "mistralai/mistral-nemo",
1709
+ name: "Mistral: Mistral Nemo",
1710
+ api: "openai-completions",
1711
+ provider: "openrouter",
1712
+ baseUrl: "https://openrouter.ai/api/v1",
1713
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1714
+ reasoning: false,
1715
+ input: ["text"],
1716
+ cost: {
1717
+ input: 0.019,
1718
+ output: 0.03,
1719
+ cacheRead: 0,
1720
+ cacheWrite: 0,
1721
+ },
1722
+ contextWindow: 131072,
1723
+ maxTokens: 16384,
1724
+ },
1725
+ "mistralai/mistral-saba": {
1726
+ id: "mistralai/mistral-saba",
1727
+ name: "Mistral: Saba",
1728
+ api: "openai-completions",
1729
+ provider: "openrouter",
1730
+ baseUrl: "https://openrouter.ai/api/v1",
1731
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1732
+ reasoning: false,
1733
+ input: ["text"],
1734
+ cost: {
1735
+ input: 0.2,
1736
+ output: 0.6,
1737
+ cacheRead: 0.02,
1738
+ cacheWrite: 0,
1739
+ },
1740
+ contextWindow: 32768,
1741
+ maxTokens: 4096,
1742
+ },
1743
+ "mistralai/mistral-small-2603": {
1744
+ id: "mistralai/mistral-small-2603",
1745
+ name: "Mistral: Mistral Small 4",
1746
+ api: "openai-completions",
1747
+ provider: "openrouter",
1748
+ baseUrl: "https://openrouter.ai/api/v1",
1749
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1750
+ reasoning: true,
1751
+ input: ["text", "image"],
1752
+ cost: {
1753
+ input: 0.15,
1754
+ output: 0.6,
1755
+ cacheRead: 0.015,
1756
+ cacheWrite: 0,
1757
+ },
1758
+ contextWindow: 262144,
1759
+ maxTokens: 4096,
1760
+ },
1761
+ "mistralai/mistral-small-3.2-24b-instruct": {
1762
+ id: "mistralai/mistral-small-3.2-24b-instruct",
1763
+ name: "Mistral: Mistral Small 3.2 24B",
1764
+ api: "openai-completions",
1765
+ provider: "openrouter",
1766
+ baseUrl: "https://openrouter.ai/api/v1",
1767
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1768
+ reasoning: false,
1769
+ input: ["text", "image"],
1770
+ cost: {
1771
+ input: 0.1,
1772
+ output: 0.3,
1773
+ cacheRead: 0.01,
1774
+ cacheWrite: 0,
1775
+ },
1776
+ contextWindow: 131072,
1777
+ maxTokens: 4096,
1778
+ },
1779
+ "mistralai/mixtral-8x22b-instruct": {
1780
+ id: "mistralai/mixtral-8x22b-instruct",
1781
+ name: "Mistral: Mixtral 8x22B Instruct",
1782
+ api: "openai-completions",
1783
+ provider: "openrouter",
1784
+ baseUrl: "https://openrouter.ai/api/v1",
1785
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1786
+ reasoning: false,
1787
+ input: ["text"],
1788
+ cost: {
1789
+ input: 2,
1790
+ output: 6,
1791
+ cacheRead: 0.2,
1792
+ cacheWrite: 0,
1793
+ },
1794
+ contextWindow: 65536,
1795
+ maxTokens: 4096,
1796
+ },
1797
+ "mistralai/voxtral-small-24b-2507": {
1798
+ id: "mistralai/voxtral-small-24b-2507",
1799
+ name: "Mistral: Voxtral Small 24B 2507",
1800
+ api: "openai-completions",
1801
+ provider: "openrouter",
1802
+ baseUrl: "https://openrouter.ai/api/v1",
1803
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1804
+ reasoning: false,
1805
+ input: ["text"],
1806
+ cost: {
1807
+ input: 0.1,
1808
+ output: 0.3,
1809
+ cacheRead: 0.01,
1810
+ cacheWrite: 0,
1811
+ },
1812
+ contextWindow: 32000,
1813
+ maxTokens: 4096,
1814
+ },
1815
+ "moonshotai/kimi-k2": {
1816
+ id: "moonshotai/kimi-k2",
1817
+ name: "MoonshotAI: Kimi K2 0711",
1818
+ api: "openai-completions",
1819
+ provider: "openrouter",
1820
+ baseUrl: "https://openrouter.ai/api/v1",
1821
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1822
+ reasoning: false,
1823
+ input: ["text"],
1824
+ cost: {
1825
+ input: 0.57,
1826
+ output: 2.3,
1827
+ cacheRead: 0,
1828
+ cacheWrite: 0,
1829
+ },
1830
+ contextWindow: 131072,
1831
+ maxTokens: 100352,
1832
+ },
1833
+ "moonshotai/kimi-k2-0905": {
1834
+ id: "moonshotai/kimi-k2-0905",
1835
+ name: "MoonshotAI: Kimi K2 0905",
1836
+ api: "openai-completions",
1837
+ provider: "openrouter",
1838
+ baseUrl: "https://openrouter.ai/api/v1",
1839
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1840
+ reasoning: false,
1841
+ input: ["text"],
1842
+ cost: {
1843
+ input: 0.6,
1844
+ output: 2.5,
1845
+ cacheRead: 0,
1846
+ cacheWrite: 0,
1847
+ },
1848
+ contextWindow: 262144,
1849
+ maxTokens: 100352,
1850
+ },
1851
+ "moonshotai/kimi-k2-thinking": {
1852
+ id: "moonshotai/kimi-k2-thinking",
1853
+ name: "MoonshotAI: Kimi K2 Thinking",
1854
+ api: "openai-completions",
1855
+ provider: "openrouter",
1856
+ baseUrl: "https://openrouter.ai/api/v1",
1857
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1858
+ reasoning: true,
1859
+ input: ["text"],
1860
+ cost: {
1861
+ input: 0.6,
1862
+ output: 2.5,
1863
+ cacheRead: 0,
1864
+ cacheWrite: 0,
1865
+ },
1866
+ contextWindow: 262144,
1867
+ maxTokens: 262144,
1868
+ },
1869
+ "moonshotai/kimi-k2.5": {
1870
+ id: "moonshotai/kimi-k2.5",
1871
+ name: "MoonshotAI: Kimi K2.5",
1872
+ api: "openai-completions",
1873
+ provider: "openrouter",
1874
+ baseUrl: "https://openrouter.ai/api/v1",
1875
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1876
+ reasoning: true,
1877
+ input: ["text", "image"],
1878
+ cost: {
1879
+ input: 0.41,
1880
+ output: 2.06,
1881
+ cacheRead: 0.07,
1882
+ cacheWrite: 0,
1883
+ },
1884
+ contextWindow: 262144,
1885
+ maxTokens: 4096,
1886
+ },
1887
+ "moonshotai/kimi-k2.6": {
1888
+ id: "moonshotai/kimi-k2.6",
1889
+ name: "MoonshotAI: Kimi K2.6",
1890
+ api: "openai-completions",
1891
+ provider: "openrouter",
1892
+ baseUrl: "https://openrouter.ai/api/v1",
1893
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
1894
+ reasoning: true,
1895
+ input: ["text", "image"],
1896
+ cost: {
1897
+ input: 0.95,
1898
+ output: 4,
1899
+ cacheRead: 0.16,
1900
+ cacheWrite: 0,
1901
+ },
1902
+ contextWindow: 262144,
1903
+ maxTokens: 4096,
1904
+ },
1905
+ "moonshotai/kimi-k2.7-code": {
1906
+ id: "moonshotai/kimi-k2.7-code",
1907
+ name: "MoonshotAI: Kimi K2.7 Code",
1908
+ api: "openai-completions",
1909
+ provider: "openrouter",
1910
+ baseUrl: "https://openrouter.ai/api/v1",
1911
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1912
+ reasoning: true,
1913
+ input: ["text", "image"],
1914
+ cost: {
1915
+ input: 0.75,
1916
+ output: 3.5,
1917
+ cacheRead: 0.16,
1918
+ cacheWrite: 0,
1919
+ },
1920
+ contextWindow: 262144,
1921
+ maxTokens: 262144,
1922
+ },
1923
+ "moonshotai/kimi-k3": {
1924
+ id: "moonshotai/kimi-k3",
1925
+ name: "MoonshotAI: Kimi K3",
1926
+ api: "openai-completions",
1927
+ provider: "openrouter",
1928
+ baseUrl: "https://openrouter.ai/api/v1",
1929
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1930
+ reasoning: true,
1931
+ input: ["text", "image"],
1932
+ cost: {
1933
+ input: 3,
1934
+ output: 15,
1935
+ cacheRead: 0.3,
1936
+ cacheWrite: 0,
1937
+ },
1938
+ contextWindow: 1048576,
1939
+ maxTokens: 131072,
1940
+ },
1941
+ "nex-agi/nex-n2-mini": {
1942
+ id: "nex-agi/nex-n2-mini",
1943
+ name: "Nex AGI: Nex-N2-Mini",
1944
+ api: "openai-completions",
1945
+ provider: "openrouter",
1946
+ baseUrl: "https://openrouter.ai/api/v1",
1947
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1948
+ reasoning: true,
1949
+ input: ["text", "image"],
1950
+ cost: {
1951
+ input: 0.025,
1952
+ output: 0.1,
1953
+ cacheRead: 0.0025,
1954
+ cacheWrite: 0,
1955
+ },
1956
+ contextWindow: 262144,
1957
+ maxTokens: 262144,
1958
+ },
1959
+ "nex-agi/nex-n2-pro": {
1960
+ id: "nex-agi/nex-n2-pro",
1961
+ name: "Nex AGI: Nex-N2-Pro",
1962
+ api: "openai-completions",
1963
+ provider: "openrouter",
1964
+ baseUrl: "https://openrouter.ai/api/v1",
1965
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1966
+ reasoning: true,
1967
+ input: ["text", "image"],
1968
+ cost: {
1969
+ input: 0.25,
1970
+ output: 1,
1971
+ cacheRead: 0.025,
1972
+ cacheWrite: 0,
1973
+ },
1974
+ contextWindow: 262144,
1975
+ maxTokens: 262144,
1976
+ },
1977
+ "nvidia/nemotron-3-nano-30b-a3b": {
1978
+ id: "nvidia/nemotron-3-nano-30b-a3b",
1979
+ name: "NVIDIA: Nemotron 3 Nano 30B A3B",
1980
+ api: "openai-completions",
1981
+ provider: "openrouter",
1982
+ baseUrl: "https://openrouter.ai/api/v1",
1983
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1984
+ reasoning: true,
1985
+ input: ["text"],
1986
+ cost: {
1987
+ input: 0.05,
1988
+ output: 0.2,
1989
+ cacheRead: 0,
1990
+ cacheWrite: 0,
1991
+ },
1992
+ contextWindow: 262144,
1993
+ maxTokens: 228000,
1994
+ },
1995
+ "nvidia/nemotron-3-nano-30b-a3b:free": {
1996
+ id: "nvidia/nemotron-3-nano-30b-a3b:free",
1997
+ name: "NVIDIA: Nemotron 3 Nano 30B A3B (free)",
1998
+ api: "openai-completions",
1999
+ provider: "openrouter",
2000
+ baseUrl: "https://openrouter.ai/api/v1",
2001
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2002
+ reasoning: true,
2003
+ input: ["text"],
2004
+ cost: {
2005
+ input: 0,
2006
+ output: 0,
2007
+ cacheRead: 0,
2008
+ cacheWrite: 0,
2009
+ },
2010
+ contextWindow: 256000,
2011
+ maxTokens: 4096,
2012
+ },
2013
+ "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free": {
2014
+ id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
2015
+ name: "NVIDIA: Nemotron 3 Nano Omni (free)",
2016
+ api: "openai-completions",
2017
+ provider: "openrouter",
2018
+ baseUrl: "https://openrouter.ai/api/v1",
2019
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2020
+ reasoning: true,
2021
+ input: ["text", "image"],
2022
+ cost: {
2023
+ input: 0,
2024
+ output: 0,
2025
+ cacheRead: 0,
2026
+ cacheWrite: 0,
2027
+ },
2028
+ contextWindow: 256000,
2029
+ maxTokens: 65536,
2030
+ },
2031
+ "nvidia/nemotron-3-super-120b-a12b": {
2032
+ id: "nvidia/nemotron-3-super-120b-a12b",
2033
+ name: "NVIDIA: Nemotron 3 Super",
2034
+ api: "openai-completions",
2035
+ provider: "openrouter",
2036
+ baseUrl: "https://openrouter.ai/api/v1",
2037
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2038
+ reasoning: true,
2039
+ input: ["text"],
2040
+ cost: {
2041
+ input: 0.21,
2042
+ output: 0.455,
2043
+ cacheRead: 0.06,
2044
+ cacheWrite: 0,
2045
+ },
2046
+ contextWindow: 1000000,
2047
+ maxTokens: 4096,
2048
+ },
2049
+ "nvidia/nemotron-3-super-120b-a12b:free": {
2050
+ id: "nvidia/nemotron-3-super-120b-a12b:free",
2051
+ name: "NVIDIA: Nemotron 3 Super (free)",
2052
+ api: "openai-completions",
2053
+ provider: "openrouter",
2054
+ baseUrl: "https://openrouter.ai/api/v1",
2055
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2056
+ reasoning: true,
2057
+ input: ["text"],
2058
+ cost: {
2059
+ input: 0,
2060
+ output: 0,
2061
+ cacheRead: 0,
2062
+ cacheWrite: 0,
2063
+ },
2064
+ contextWindow: 262144,
2065
+ maxTokens: 262144,
2066
+ },
2067
+ "nvidia/nemotron-3-ultra-550b-a55b": {
2068
+ id: "nvidia/nemotron-3-ultra-550b-a55b",
2069
+ name: "NVIDIA: Nemotron 3 Ultra",
2070
+ api: "openai-completions",
2071
+ provider: "openrouter",
2072
+ baseUrl: "https://openrouter.ai/api/v1",
2073
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2074
+ reasoning: true,
2075
+ input: ["text"],
2076
+ cost: {
2077
+ input: 0.6,
2078
+ output: 3.6,
2079
+ cacheRead: 0.2,
2080
+ cacheWrite: 0,
2081
+ },
2082
+ contextWindow: 512288,
2083
+ maxTokens: 4096,
2084
+ },
2085
+ "nvidia/nemotron-3-ultra-550b-a55b:free": {
2086
+ id: "nvidia/nemotron-3-ultra-550b-a55b:free",
2087
+ name: "NVIDIA: Nemotron 3 Ultra (free)",
2088
+ api: "openai-completions",
2089
+ provider: "openrouter",
2090
+ baseUrl: "https://openrouter.ai/api/v1",
2091
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2092
+ reasoning: true,
2093
+ input: ["text"],
2094
+ cost: {
2095
+ input: 0,
2096
+ output: 0,
2097
+ cacheRead: 0,
2098
+ cacheWrite: 0,
2099
+ },
2100
+ contextWindow: 1000000,
2101
+ maxTokens: 65536,
2102
+ },
2103
+ "nvidia/nemotron-nano-12b-v2-vl:free": {
2104
+ id: "nvidia/nemotron-nano-12b-v2-vl:free",
2105
+ name: "NVIDIA: Nemotron Nano 12B 2 VL (free)",
2106
+ api: "openai-completions",
2107
+ provider: "openrouter",
2108
+ baseUrl: "https://openrouter.ai/api/v1",
2109
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2110
+ reasoning: true,
2111
+ input: ["text", "image"],
2112
+ cost: {
2113
+ input: 0,
2114
+ output: 0,
2115
+ cacheRead: 0,
2116
+ cacheWrite: 0,
2117
+ },
2118
+ contextWindow: 128000,
2119
+ maxTokens: 128000,
2120
+ },
2121
+ "nvidia/nemotron-nano-9b-v2:free": {
2122
+ id: "nvidia/nemotron-nano-9b-v2:free",
2123
+ name: "NVIDIA: Nemotron Nano 9B V2 (free)",
2124
+ api: "openai-completions",
2125
+ provider: "openrouter",
2126
+ baseUrl: "https://openrouter.ai/api/v1",
2127
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2128
+ reasoning: true,
2129
+ input: ["text"],
2130
+ cost: {
2131
+ input: 0,
2132
+ output: 0,
2133
+ cacheRead: 0,
2134
+ cacheWrite: 0,
2135
+ },
2136
+ contextWindow: 128000,
2137
+ maxTokens: 4096,
2138
+ },
2139
+ "openai/gpt-3.5-turbo": {
2140
+ id: "openai/gpt-3.5-turbo",
2141
+ name: "OpenAI: GPT-3.5 Turbo",
2142
+ api: "openai-completions",
2143
+ provider: "openrouter",
2144
+ baseUrl: "https://openrouter.ai/api/v1",
2145
+ compat: { "thinkingFormat": "openrouter" },
2146
+ reasoning: false,
2147
+ input: ["text"],
2148
+ cost: {
2149
+ input: 0.5,
2150
+ output: 1.5,
2151
+ cacheRead: 0,
2152
+ cacheWrite: 0,
2153
+ },
2154
+ contextWindow: 16385,
2155
+ maxTokens: 4096,
2156
+ },
2157
+ "openai/gpt-3.5-turbo-0613": {
2158
+ id: "openai/gpt-3.5-turbo-0613",
2159
+ name: "OpenAI: GPT-3.5 Turbo (older v0613)",
2160
+ api: "openai-completions",
2161
+ provider: "openrouter",
2162
+ baseUrl: "https://openrouter.ai/api/v1",
2163
+ compat: { "thinkingFormat": "openrouter" },
2164
+ reasoning: false,
2165
+ input: ["text"],
2166
+ cost: {
2167
+ input: 1,
2168
+ output: 2,
2169
+ cacheRead: 0,
2170
+ cacheWrite: 0,
2171
+ },
2172
+ contextWindow: 4095,
2173
+ maxTokens: 4096,
2174
+ },
2175
+ "openai/gpt-3.5-turbo-16k": {
2176
+ id: "openai/gpt-3.5-turbo-16k",
2177
+ name: "OpenAI: GPT-3.5 Turbo 16k",
2178
+ api: "openai-completions",
2179
+ provider: "openrouter",
2180
+ baseUrl: "https://openrouter.ai/api/v1",
2181
+ compat: { "thinkingFormat": "openrouter" },
2182
+ reasoning: false,
2183
+ input: ["text"],
2184
+ cost: {
2185
+ input: 3,
2186
+ output: 4,
2187
+ cacheRead: 0,
2188
+ cacheWrite: 0,
2189
+ },
2190
+ contextWindow: 16385,
2191
+ maxTokens: 4096,
2192
+ },
2193
+ "openai/gpt-4": {
2194
+ id: "openai/gpt-4",
2195
+ name: "OpenAI: GPT-4",
2196
+ api: "openai-completions",
2197
+ provider: "openrouter",
2198
+ baseUrl: "https://openrouter.ai/api/v1",
2199
+ compat: { "thinkingFormat": "openrouter" },
2200
+ reasoning: false,
2201
+ input: ["text"],
2202
+ cost: {
2203
+ input: 30,
2204
+ output: 60,
2205
+ cacheRead: 0,
2206
+ cacheWrite: 0,
2207
+ },
2208
+ contextWindow: 8191,
2209
+ maxTokens: 4096,
2210
+ },
2211
+ "openai/gpt-4-turbo": {
2212
+ id: "openai/gpt-4-turbo",
2213
+ name: "OpenAI: GPT-4 Turbo",
2214
+ api: "openai-completions",
2215
+ provider: "openrouter",
2216
+ baseUrl: "https://openrouter.ai/api/v1",
2217
+ compat: { "thinkingFormat": "openrouter" },
2218
+ reasoning: false,
2219
+ input: ["text", "image"],
2220
+ cost: {
2221
+ input: 10,
2222
+ output: 30,
2223
+ cacheRead: 0,
2224
+ cacheWrite: 0,
2225
+ },
2226
+ contextWindow: 128000,
2227
+ maxTokens: 4096,
2228
+ },
2229
+ "openai/gpt-4-turbo-preview": {
2230
+ id: "openai/gpt-4-turbo-preview",
2231
+ name: "OpenAI: GPT-4 Turbo Preview",
2232
+ api: "openai-completions",
2233
+ provider: "openrouter",
2234
+ baseUrl: "https://openrouter.ai/api/v1",
2235
+ compat: { "thinkingFormat": "openrouter" },
2236
+ reasoning: false,
2237
+ input: ["text"],
2238
+ cost: {
2239
+ input: 10,
2240
+ output: 30,
2241
+ cacheRead: 0,
2242
+ cacheWrite: 0,
2243
+ },
2244
+ contextWindow: 128000,
2245
+ maxTokens: 4096,
2246
+ },
2247
+ "openai/gpt-4.1": {
2248
+ id: "openai/gpt-4.1",
2249
+ name: "OpenAI: GPT-4.1",
2250
+ api: "openai-completions",
2251
+ provider: "openrouter",
2252
+ baseUrl: "https://openrouter.ai/api/v1",
2253
+ compat: { "thinkingFormat": "openrouter" },
2254
+ reasoning: false,
2255
+ input: ["text", "image"],
2256
+ cost: {
2257
+ input: 2,
2258
+ output: 8,
2259
+ cacheRead: 0.5,
2260
+ cacheWrite: 0,
2261
+ },
2262
+ contextWindow: 1047576,
2263
+ maxTokens: 32768,
2264
+ },
2265
+ "openai/gpt-4.1-mini": {
2266
+ id: "openai/gpt-4.1-mini",
2267
+ name: "OpenAI: GPT-4.1 Mini",
2268
+ api: "openai-completions",
2269
+ provider: "openrouter",
2270
+ baseUrl: "https://openrouter.ai/api/v1",
2271
+ compat: { "thinkingFormat": "openrouter" },
2272
+ reasoning: false,
2273
+ input: ["text", "image"],
2274
+ cost: {
2275
+ input: 0.4,
2276
+ output: 1.6,
2277
+ cacheRead: 0.1,
2278
+ cacheWrite: 0,
2279
+ },
2280
+ contextWindow: 1047576,
2281
+ maxTokens: 32768,
2282
+ },
2283
+ "openai/gpt-4.1-nano": {
2284
+ id: "openai/gpt-4.1-nano",
2285
+ name: "OpenAI: GPT-4.1 Nano",
2286
+ api: "openai-completions",
2287
+ provider: "openrouter",
2288
+ baseUrl: "https://openrouter.ai/api/v1",
2289
+ compat: { "thinkingFormat": "openrouter" },
2290
+ reasoning: false,
2291
+ input: ["text", "image"],
2292
+ cost: {
2293
+ input: 0.1,
2294
+ output: 0.4,
2295
+ cacheRead: 0.025,
2296
+ cacheWrite: 0,
2297
+ },
2298
+ contextWindow: 1047576,
2299
+ maxTokens: 32768,
2300
+ },
2301
+ "openai/gpt-4o": {
2302
+ id: "openai/gpt-4o",
2303
+ name: "OpenAI: GPT-4o",
2304
+ api: "openai-completions",
2305
+ provider: "openrouter",
2306
+ baseUrl: "https://openrouter.ai/api/v1",
2307
+ compat: { "thinkingFormat": "openrouter" },
2308
+ reasoning: false,
2309
+ input: ["text", "image"],
2310
+ cost: {
2311
+ input: 2.5,
2312
+ output: 10,
2313
+ cacheRead: 1.25,
2314
+ cacheWrite: 0,
2315
+ },
2316
+ contextWindow: 128000,
2317
+ maxTokens: 16384,
2318
+ },
2319
+ "openai/gpt-4o-2024-05-13": {
2320
+ id: "openai/gpt-4o-2024-05-13",
2321
+ name: "OpenAI: GPT-4o (2024-05-13)",
2322
+ api: "openai-completions",
2323
+ provider: "openrouter",
2324
+ baseUrl: "https://openrouter.ai/api/v1",
2325
+ compat: { "thinkingFormat": "openrouter" },
2326
+ reasoning: false,
2327
+ input: ["text", "image"],
2328
+ cost: {
2329
+ input: 5,
2330
+ output: 15,
2331
+ cacheRead: 0,
2332
+ cacheWrite: 0,
2333
+ },
2334
+ contextWindow: 128000,
2335
+ maxTokens: 4096,
2336
+ },
2337
+ "openai/gpt-4o-2024-08-06": {
2338
+ id: "openai/gpt-4o-2024-08-06",
2339
+ name: "OpenAI: GPT-4o (2024-08-06)",
2340
+ api: "openai-completions",
2341
+ provider: "openrouter",
2342
+ baseUrl: "https://openrouter.ai/api/v1",
2343
+ compat: { "thinkingFormat": "openrouter" },
2344
+ reasoning: false,
2345
+ input: ["text", "image"],
2346
+ cost: {
2347
+ input: 2.5,
2348
+ output: 10,
2349
+ cacheRead: 1.25,
2350
+ cacheWrite: 0,
2351
+ },
2352
+ contextWindow: 128000,
2353
+ maxTokens: 16384,
2354
+ },
2355
+ "openai/gpt-4o-2024-11-20": {
2356
+ id: "openai/gpt-4o-2024-11-20",
2357
+ name: "OpenAI: GPT-4o (2024-11-20)",
2358
+ api: "openai-completions",
2359
+ provider: "openrouter",
2360
+ baseUrl: "https://openrouter.ai/api/v1",
2361
+ compat: { "thinkingFormat": "openrouter" },
2362
+ reasoning: false,
2363
+ input: ["text", "image"],
2364
+ cost: {
2365
+ input: 2.5,
2366
+ output: 10,
2367
+ cacheRead: 1.25,
2368
+ cacheWrite: 0,
2369
+ },
2370
+ contextWindow: 128000,
2371
+ maxTokens: 16384,
2372
+ },
2373
+ "openai/gpt-4o-mini": {
2374
+ id: "openai/gpt-4o-mini",
2375
+ name: "OpenAI: GPT-4o-mini",
2376
+ api: "openai-completions",
2377
+ provider: "openrouter",
2378
+ baseUrl: "https://openrouter.ai/api/v1",
2379
+ compat: { "thinkingFormat": "openrouter" },
2380
+ reasoning: false,
2381
+ input: ["text", "image"],
2382
+ cost: {
2383
+ input: 0.15,
2384
+ output: 0.6,
2385
+ cacheRead: 0.075,
2386
+ cacheWrite: 0,
2387
+ },
2388
+ contextWindow: 128000,
2389
+ maxTokens: 16384,
2390
+ },
2391
+ "openai/gpt-4o-mini-2024-07-18": {
2392
+ id: "openai/gpt-4o-mini-2024-07-18",
2393
+ name: "OpenAI: GPT-4o-mini (2024-07-18)",
2394
+ api: "openai-completions",
2395
+ provider: "openrouter",
2396
+ baseUrl: "https://openrouter.ai/api/v1",
2397
+ compat: { "thinkingFormat": "openrouter" },
2398
+ reasoning: false,
2399
+ input: ["text", "image"],
2400
+ cost: {
2401
+ input: 0.15,
2402
+ output: 0.6,
2403
+ cacheRead: 0.075,
2404
+ cacheWrite: 0,
2405
+ },
2406
+ contextWindow: 128000,
2407
+ maxTokens: 16384,
2408
+ },
2409
+ "openai/gpt-5": {
2410
+ id: "openai/gpt-5",
2411
+ name: "OpenAI: GPT-5",
2412
+ api: "openai-completions",
2413
+ provider: "openrouter",
2414
+ baseUrl: "https://openrouter.ai/api/v1",
2415
+ compat: { "thinkingFormat": "openrouter" },
2416
+ reasoning: true,
2417
+ input: ["text", "image"],
2418
+ cost: {
2419
+ input: 1.25,
2420
+ output: 10,
2421
+ cacheRead: 0.125,
2422
+ cacheWrite: 0,
2423
+ },
2424
+ contextWindow: 400000,
2425
+ maxTokens: 128000,
2426
+ },
2427
+ "openai/gpt-5-codex": {
2428
+ id: "openai/gpt-5-codex",
2429
+ name: "OpenAI: GPT-5 Codex",
2430
+ api: "openai-completions",
2431
+ provider: "openrouter",
2432
+ baseUrl: "https://openrouter.ai/api/v1",
2433
+ compat: { "thinkingFormat": "openrouter" },
2434
+ reasoning: true,
2435
+ input: ["text", "image"],
2436
+ cost: {
2437
+ input: 1.25,
2438
+ output: 10,
2439
+ cacheRead: 0.125,
2440
+ cacheWrite: 0,
2441
+ },
2442
+ contextWindow: 400000,
2443
+ maxTokens: 128000,
2444
+ },
2445
+ "openai/gpt-5-mini": {
2446
+ id: "openai/gpt-5-mini",
2447
+ name: "OpenAI: GPT-5 Mini",
2448
+ api: "openai-completions",
2449
+ provider: "openrouter",
2450
+ baseUrl: "https://openrouter.ai/api/v1",
2451
+ compat: { "thinkingFormat": "openrouter" },
2452
+ reasoning: true,
2453
+ input: ["text", "image"],
2454
+ cost: {
2455
+ input: 0.25,
2456
+ output: 2,
2457
+ cacheRead: 0.025,
2458
+ cacheWrite: 0,
2459
+ },
2460
+ contextWindow: 400000,
2461
+ maxTokens: 128000,
2462
+ },
2463
+ "openai/gpt-5-nano": {
2464
+ id: "openai/gpt-5-nano",
2465
+ name: "OpenAI: GPT-5 Nano",
2466
+ api: "openai-completions",
2467
+ provider: "openrouter",
2468
+ baseUrl: "https://openrouter.ai/api/v1",
2469
+ compat: { "thinkingFormat": "openrouter" },
2470
+ reasoning: true,
2471
+ input: ["text", "image"],
2472
+ cost: {
2473
+ input: 0.05,
2474
+ output: 0.4,
2475
+ cacheRead: 0.005,
2476
+ cacheWrite: 0,
2477
+ },
2478
+ contextWindow: 400000,
2479
+ maxTokens: 128000,
2480
+ },
2481
+ "openai/gpt-5-pro": {
2482
+ id: "openai/gpt-5-pro",
2483
+ name: "OpenAI: GPT-5 Pro",
2484
+ api: "openai-completions",
2485
+ provider: "openrouter",
2486
+ baseUrl: "https://openrouter.ai/api/v1",
2487
+ compat: { "thinkingFormat": "openrouter" },
2488
+ reasoning: true,
2489
+ input: ["text", "image"],
2490
+ cost: {
2491
+ input: 15,
2492
+ output: 120,
2493
+ cacheRead: 0,
2494
+ cacheWrite: 0,
2495
+ },
2496
+ contextWindow: 400000,
2497
+ maxTokens: 128000,
2498
+ },
2499
+ "openai/gpt-5.1": {
2500
+ id: "openai/gpt-5.1",
2501
+ name: "OpenAI: GPT-5.1",
2502
+ api: "openai-completions",
2503
+ provider: "openrouter",
2504
+ baseUrl: "https://openrouter.ai/api/v1",
2505
+ compat: { "thinkingFormat": "openrouter" },
2506
+ reasoning: true,
2507
+ input: ["text", "image"],
2508
+ cost: {
2509
+ input: 1.25,
2510
+ output: 10,
2511
+ cacheRead: 0.125,
2512
+ cacheWrite: 0,
2513
+ },
2514
+ contextWindow: 400000,
2515
+ maxTokens: 128000,
2516
+ },
2517
+ "openai/gpt-5.1-chat": {
2518
+ id: "openai/gpt-5.1-chat",
2519
+ name: "OpenAI: GPT-5.1 Chat",
2520
+ api: "openai-completions",
2521
+ provider: "openrouter",
2522
+ baseUrl: "https://openrouter.ai/api/v1",
2523
+ compat: { "thinkingFormat": "openrouter" },
2524
+ reasoning: false,
2525
+ input: ["text", "image"],
2526
+ cost: {
2527
+ input: 1.25,
2528
+ output: 10,
2529
+ cacheRead: 0.125,
2530
+ cacheWrite: 0,
2531
+ },
2532
+ contextWindow: 128000,
2533
+ maxTokens: 16384,
2534
+ },
2535
+ "openai/gpt-5.1-codex": {
2536
+ id: "openai/gpt-5.1-codex",
2537
+ name: "OpenAI: GPT-5.1-Codex",
2538
+ api: "openai-completions",
2539
+ provider: "openrouter",
2540
+ baseUrl: "https://openrouter.ai/api/v1",
2541
+ compat: { "thinkingFormat": "openrouter" },
2542
+ reasoning: true,
2543
+ input: ["text", "image"],
2544
+ cost: {
2545
+ input: 1.25,
2546
+ output: 10,
2547
+ cacheRead: 0.125,
2548
+ cacheWrite: 0,
2549
+ },
2550
+ contextWindow: 400000,
2551
+ maxTokens: 128000,
2552
+ },
2553
+ "openai/gpt-5.1-codex-max": {
2554
+ id: "openai/gpt-5.1-codex-max",
2555
+ name: "OpenAI: GPT-5.1-Codex-Max",
2556
+ api: "openai-completions",
2557
+ provider: "openrouter",
2558
+ baseUrl: "https://openrouter.ai/api/v1",
2559
+ compat: { "thinkingFormat": "openrouter" },
2560
+ reasoning: true,
2561
+ input: ["text", "image"],
2562
+ cost: {
2563
+ input: 1.25,
2564
+ output: 10,
2565
+ cacheRead: 0.125,
2566
+ cacheWrite: 0,
2567
+ },
2568
+ contextWindow: 400000,
2569
+ maxTokens: 128000,
2570
+ },
2571
+ "openai/gpt-5.1-codex-mini": {
2572
+ id: "openai/gpt-5.1-codex-mini",
2573
+ name: "OpenAI: GPT-5.1-Codex-Mini",
2574
+ api: "openai-completions",
2575
+ provider: "openrouter",
2576
+ baseUrl: "https://openrouter.ai/api/v1",
2577
+ compat: { "thinkingFormat": "openrouter" },
2578
+ reasoning: true,
2579
+ input: ["text", "image"],
2580
+ cost: {
2581
+ input: 0.25,
2582
+ output: 2,
2583
+ cacheRead: 0.025,
2584
+ cacheWrite: 0,
2585
+ },
2586
+ contextWindow: 400000,
2587
+ maxTokens: 100000,
2588
+ },
2589
+ "openai/gpt-5.2": {
2590
+ id: "openai/gpt-5.2",
2591
+ name: "OpenAI: GPT-5.2",
2592
+ api: "openai-completions",
2593
+ provider: "openrouter",
2594
+ baseUrl: "https://openrouter.ai/api/v1",
2595
+ compat: { "thinkingFormat": "openrouter" },
2596
+ reasoning: true,
2597
+ thinkingLevelMap: { "xhigh": "xhigh" },
2598
+ input: ["text", "image"],
2599
+ cost: {
2600
+ input: 1.75,
2601
+ output: 14,
2602
+ cacheRead: 0.175,
2603
+ cacheWrite: 0,
2604
+ },
2605
+ contextWindow: 400000,
2606
+ maxTokens: 128000,
2607
+ },
2608
+ "openai/gpt-5.2-chat": {
2609
+ id: "openai/gpt-5.2-chat",
2610
+ name: "OpenAI: GPT-5.2 Chat",
2611
+ api: "openai-completions",
2612
+ provider: "openrouter",
2613
+ baseUrl: "https://openrouter.ai/api/v1",
2614
+ compat: { "thinkingFormat": "openrouter" },
2615
+ reasoning: false,
2616
+ thinkingLevelMap: { "xhigh": "xhigh" },
2617
+ input: ["text", "image"],
2618
+ cost: {
2619
+ input: 1.75,
2620
+ output: 14,
2621
+ cacheRead: 0.175,
2622
+ cacheWrite: 0,
2623
+ },
2624
+ contextWindow: 128000,
2625
+ maxTokens: 16384,
2626
+ },
2627
+ "openai/gpt-5.2-codex": {
2628
+ id: "openai/gpt-5.2-codex",
2629
+ name: "OpenAI: GPT-5.2-Codex",
2630
+ api: "openai-completions",
2631
+ provider: "openrouter",
2632
+ baseUrl: "https://openrouter.ai/api/v1",
2633
+ compat: { "thinkingFormat": "openrouter" },
2634
+ reasoning: true,
2635
+ thinkingLevelMap: { "xhigh": "xhigh" },
2636
+ input: ["text", "image"],
2637
+ cost: {
2638
+ input: 1.75,
2639
+ output: 14,
2640
+ cacheRead: 0.175,
2641
+ cacheWrite: 0,
2642
+ },
2643
+ contextWindow: 400000,
2644
+ maxTokens: 128000,
2645
+ },
2646
+ "openai/gpt-5.2-pro": {
2647
+ id: "openai/gpt-5.2-pro",
2648
+ name: "OpenAI: GPT-5.2 Pro",
2649
+ api: "openai-completions",
2650
+ provider: "openrouter",
2651
+ baseUrl: "https://openrouter.ai/api/v1",
2652
+ compat: { "thinkingFormat": "openrouter" },
2653
+ reasoning: true,
2654
+ thinkingLevelMap: { "xhigh": "xhigh" },
2655
+ input: ["text", "image"],
2656
+ cost: {
2657
+ input: 21,
2658
+ output: 168,
2659
+ cacheRead: 0,
2660
+ cacheWrite: 0,
2661
+ },
2662
+ contextWindow: 400000,
2663
+ maxTokens: 128000,
2664
+ },
2665
+ "openai/gpt-5.3-chat": {
2666
+ id: "openai/gpt-5.3-chat",
2667
+ name: "OpenAI: GPT-5.3 Chat",
2668
+ api: "openai-completions",
2669
+ provider: "openrouter",
2670
+ baseUrl: "https://openrouter.ai/api/v1",
2671
+ compat: { "thinkingFormat": "openrouter" },
2672
+ reasoning: false,
2673
+ thinkingLevelMap: { "xhigh": "xhigh" },
2674
+ input: ["text", "image"],
2675
+ cost: {
2676
+ input: 1.75,
2677
+ output: 14,
2678
+ cacheRead: 0.175,
2679
+ cacheWrite: 0,
2680
+ },
2681
+ contextWindow: 128000,
2682
+ maxTokens: 16384,
2683
+ },
2684
+ "openai/gpt-5.3-codex": {
2685
+ id: "openai/gpt-5.3-codex",
2686
+ name: "OpenAI: GPT-5.3-Codex",
2687
+ api: "openai-completions",
2688
+ provider: "openrouter",
2689
+ baseUrl: "https://openrouter.ai/api/v1",
2690
+ compat: { "thinkingFormat": "openrouter" },
2691
+ reasoning: true,
2692
+ thinkingLevelMap: { "xhigh": "xhigh" },
2693
+ input: ["text", "image"],
2694
+ cost: {
2695
+ input: 1.75,
2696
+ output: 14,
2697
+ cacheRead: 0.175,
2698
+ cacheWrite: 0,
2699
+ },
2700
+ contextWindow: 400000,
2701
+ maxTokens: 128000,
2702
+ },
2703
+ "openai/gpt-5.4": {
2704
+ id: "openai/gpt-5.4",
2705
+ name: "OpenAI: GPT-5.4",
2706
+ api: "openai-completions",
2707
+ provider: "openrouter",
2708
+ baseUrl: "https://openrouter.ai/api/v1",
2709
+ compat: { "thinkingFormat": "openrouter" },
2710
+ reasoning: true,
2711
+ thinkingLevelMap: { "xhigh": "xhigh" },
2712
+ input: ["text", "image"],
2713
+ cost: {
2714
+ input: 2.5,
2715
+ output: 15,
2716
+ cacheRead: 0.25,
2717
+ cacheWrite: 0,
2718
+ },
2719
+ contextWindow: 1050000,
2720
+ maxTokens: 128000,
2721
+ },
2722
+ "openai/gpt-5.4-mini": {
2723
+ id: "openai/gpt-5.4-mini",
2724
+ name: "OpenAI: GPT-5.4 Mini",
2725
+ api: "openai-completions",
2726
+ provider: "openrouter",
2727
+ baseUrl: "https://openrouter.ai/api/v1",
2728
+ compat: { "thinkingFormat": "openrouter" },
2729
+ reasoning: true,
2730
+ thinkingLevelMap: { "xhigh": "xhigh" },
2731
+ input: ["text", "image"],
2732
+ cost: {
2733
+ input: 0.75,
2734
+ output: 4.5,
2735
+ cacheRead: 0.075,
2736
+ cacheWrite: 0,
2737
+ },
2738
+ contextWindow: 400000,
2739
+ maxTokens: 128000,
2740
+ },
2741
+ "openai/gpt-5.4-nano": {
2742
+ id: "openai/gpt-5.4-nano",
2743
+ name: "OpenAI: GPT-5.4 Nano",
2744
+ api: "openai-completions",
2745
+ provider: "openrouter",
2746
+ baseUrl: "https://openrouter.ai/api/v1",
2747
+ compat: { "thinkingFormat": "openrouter" },
2748
+ reasoning: true,
2749
+ thinkingLevelMap: { "xhigh": "xhigh" },
2750
+ input: ["text", "image"],
2751
+ cost: {
2752
+ input: 0.2,
2753
+ output: 1.25,
2754
+ cacheRead: 0.02,
2755
+ cacheWrite: 0,
2756
+ },
2757
+ contextWindow: 400000,
2758
+ maxTokens: 128000,
2759
+ },
2760
+ "openai/gpt-5.4-pro": {
2761
+ id: "openai/gpt-5.4-pro",
2762
+ name: "OpenAI: GPT-5.4 Pro",
2763
+ api: "openai-completions",
2764
+ provider: "openrouter",
2765
+ baseUrl: "https://openrouter.ai/api/v1",
2766
+ compat: { "thinkingFormat": "openrouter" },
2767
+ reasoning: true,
2768
+ thinkingLevelMap: { "xhigh": "xhigh" },
2769
+ input: ["text", "image"],
2770
+ cost: {
2771
+ input: 30,
2772
+ output: 180,
2773
+ cacheRead: 0,
2774
+ cacheWrite: 0,
2775
+ },
2776
+ contextWindow: 1050000,
2777
+ maxTokens: 128000,
2778
+ },
2779
+ "openai/gpt-5.5": {
2780
+ id: "openai/gpt-5.5",
2781
+ name: "OpenAI: GPT-5.5",
2782
+ api: "openai-completions",
2783
+ provider: "openrouter",
2784
+ baseUrl: "https://openrouter.ai/api/v1",
2785
+ compat: { "thinkingFormat": "openrouter" },
2786
+ reasoning: true,
2787
+ thinkingLevelMap: { "xhigh": "xhigh" },
2788
+ input: ["text", "image"],
2789
+ cost: {
2790
+ input: 5,
2791
+ output: 30,
2792
+ cacheRead: 0.5,
2793
+ cacheWrite: 0,
2794
+ },
2795
+ contextWindow: 1050000,
2796
+ maxTokens: 128000,
2797
+ },
2798
+ "openai/gpt-5.5-pro": {
2799
+ id: "openai/gpt-5.5-pro",
2800
+ name: "OpenAI: GPT-5.5 Pro",
2801
+ api: "openai-completions",
2802
+ provider: "openrouter",
2803
+ baseUrl: "https://openrouter.ai/api/v1",
2804
+ compat: { "thinkingFormat": "openrouter" },
2805
+ reasoning: true,
2806
+ thinkingLevelMap: { "xhigh": "xhigh", "off": null, "minimal": null, "low": null },
2807
+ input: ["text", "image"],
2808
+ cost: {
2809
+ input: 30,
2810
+ output: 180,
2811
+ cacheRead: 0,
2812
+ cacheWrite: 0,
2813
+ },
2814
+ contextWindow: 1050000,
2815
+ maxTokens: 128000,
2816
+ },
2817
+ "openai/gpt-5.6-luna": {
2818
+ id: "openai/gpt-5.6-luna",
2819
+ name: "OpenAI: GPT-5.6 Luna",
2820
+ api: "openai-completions",
2821
+ provider: "openrouter",
2822
+ baseUrl: "https://openrouter.ai/api/v1",
2823
+ compat: { "thinkingFormat": "openrouter" },
2824
+ reasoning: true,
2825
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2826
+ input: ["text", "image"],
2827
+ cost: {
2828
+ input: 1,
2829
+ output: 6,
2830
+ cacheRead: 0.1,
2831
+ cacheWrite: 1.25,
2832
+ },
2833
+ contextWindow: 1050000,
2834
+ maxTokens: 128000,
2835
+ },
2836
+ "openai/gpt-5.6-luna-pro": {
2837
+ id: "openai/gpt-5.6-luna-pro",
2838
+ name: "OpenAI: GPT-5.6 Luna Pro",
2839
+ api: "openai-completions",
2840
+ provider: "openrouter",
2841
+ baseUrl: "https://openrouter.ai/api/v1",
2842
+ compat: { "thinkingFormat": "openrouter" },
2843
+ reasoning: true,
2844
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2845
+ input: ["text", "image"],
2846
+ cost: {
2847
+ input: 1,
2848
+ output: 6,
2849
+ cacheRead: 0.1,
2850
+ cacheWrite: 1.25,
2851
+ },
2852
+ contextWindow: 1050000,
2853
+ maxTokens: 128000,
2854
+ },
2855
+ "openai/gpt-5.6-sol": {
2856
+ id: "openai/gpt-5.6-sol",
2857
+ name: "OpenAI: GPT-5.6 Sol",
2858
+ api: "openai-completions",
2859
+ provider: "openrouter",
2860
+ baseUrl: "https://openrouter.ai/api/v1",
2861
+ compat: { "thinkingFormat": "openrouter" },
2862
+ reasoning: true,
2863
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2864
+ input: ["text", "image"],
2865
+ cost: {
2866
+ input: 5,
2867
+ output: 30,
2868
+ cacheRead: 0.5,
2869
+ cacheWrite: 6.25,
2870
+ },
2871
+ contextWindow: 1050000,
2872
+ maxTokens: 128000,
2873
+ },
2874
+ "openai/gpt-5.6-sol-pro": {
2875
+ id: "openai/gpt-5.6-sol-pro",
2876
+ name: "OpenAI: GPT-5.6 Sol Pro",
2877
+ api: "openai-completions",
2878
+ provider: "openrouter",
2879
+ baseUrl: "https://openrouter.ai/api/v1",
2880
+ compat: { "thinkingFormat": "openrouter" },
2881
+ reasoning: true,
2882
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2883
+ input: ["text", "image"],
2884
+ cost: {
2885
+ input: 5,
2886
+ output: 30,
2887
+ cacheRead: 0.5,
2888
+ cacheWrite: 6.25,
2889
+ },
2890
+ contextWindow: 1050000,
2891
+ maxTokens: 128000,
2892
+ },
2893
+ "openai/gpt-5.6-terra": {
2894
+ id: "openai/gpt-5.6-terra",
2895
+ name: "OpenAI: GPT-5.6 Terra",
2896
+ api: "openai-completions",
2897
+ provider: "openrouter",
2898
+ baseUrl: "https://openrouter.ai/api/v1",
2899
+ compat: { "thinkingFormat": "openrouter" },
2900
+ reasoning: true,
2901
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2902
+ input: ["text", "image"],
2903
+ cost: {
2904
+ input: 2.5,
2905
+ output: 15,
2906
+ cacheRead: 0.25,
2907
+ cacheWrite: 3.125,
2908
+ },
2909
+ contextWindow: 1050000,
2910
+ maxTokens: 128000,
2911
+ },
2912
+ "openai/gpt-5.6-terra-pro": {
2913
+ id: "openai/gpt-5.6-terra-pro",
2914
+ name: "OpenAI: GPT-5.6 Terra Pro",
2915
+ api: "openai-completions",
2916
+ provider: "openrouter",
2917
+ baseUrl: "https://openrouter.ai/api/v1",
2918
+ compat: { "thinkingFormat": "openrouter" },
2919
+ reasoning: true,
2920
+ thinkingLevelMap: { "xhigh": "xhigh", "max": "max" },
2921
+ input: ["text", "image"],
2922
+ cost: {
2923
+ input: 2.5,
2924
+ output: 15,
2925
+ cacheRead: 0.25,
2926
+ cacheWrite: 3.125,
2927
+ },
2928
+ contextWindow: 1050000,
2929
+ maxTokens: 128000,
2930
+ },
2931
+ "openai/gpt-audio": {
2932
+ id: "openai/gpt-audio",
2933
+ name: "OpenAI: GPT Audio",
2934
+ api: "openai-completions",
2935
+ provider: "openrouter",
2936
+ baseUrl: "https://openrouter.ai/api/v1",
2937
+ compat: { "thinkingFormat": "openrouter" },
2938
+ reasoning: false,
2939
+ input: ["text"],
2940
+ cost: {
2941
+ input: 2.5,
2942
+ output: 10,
2943
+ cacheRead: 0,
2944
+ cacheWrite: 0,
2945
+ },
2946
+ contextWindow: 128000,
2947
+ maxTokens: 16384,
2948
+ },
2949
+ "openai/gpt-audio-mini": {
2950
+ id: "openai/gpt-audio-mini",
2951
+ name: "OpenAI: GPT Audio Mini",
2952
+ api: "openai-completions",
2953
+ provider: "openrouter",
2954
+ baseUrl: "https://openrouter.ai/api/v1",
2955
+ compat: { "thinkingFormat": "openrouter" },
2956
+ reasoning: false,
2957
+ input: ["text"],
2958
+ cost: {
2959
+ input: 0.6,
2960
+ output: 2.4,
2961
+ cacheRead: 0,
2962
+ cacheWrite: 0,
2963
+ },
2964
+ contextWindow: 128000,
2965
+ maxTokens: 16384,
2966
+ },
2967
+ "openai/gpt-chat-latest": {
2968
+ id: "openai/gpt-chat-latest",
2969
+ name: "OpenAI: GPT Chat Latest",
2970
+ api: "openai-completions",
2971
+ provider: "openrouter",
2972
+ baseUrl: "https://openrouter.ai/api/v1",
2973
+ compat: { "thinkingFormat": "openrouter" },
2974
+ reasoning: false,
2975
+ input: ["text", "image"],
2976
+ cost: {
2977
+ input: 5,
2978
+ output: 30,
2979
+ cacheRead: 0.5,
2980
+ cacheWrite: 0,
2981
+ },
2982
+ contextWindow: 400000,
2983
+ maxTokens: 128000,
2984
+ },
2985
+ "openai/gpt-oss-120b": {
2986
+ id: "openai/gpt-oss-120b",
2987
+ name: "OpenAI: gpt-oss-120b",
2988
+ api: "openai-completions",
2989
+ provider: "openrouter",
2990
+ baseUrl: "https://openrouter.ai/api/v1",
2991
+ compat: { "thinkingFormat": "openrouter" },
2992
+ reasoning: true,
2993
+ input: ["text"],
2994
+ cost: {
2995
+ input: 0.037,
2996
+ output: 0.17,
2997
+ cacheRead: 0,
2998
+ cacheWrite: 0,
2999
+ },
3000
+ contextWindow: 131072,
3001
+ maxTokens: 131072,
3002
+ },
3003
+ "openai/gpt-oss-20b": {
3004
+ id: "openai/gpt-oss-20b",
3005
+ name: "OpenAI: gpt-oss-20b",
3006
+ api: "openai-completions",
3007
+ provider: "openrouter",
3008
+ baseUrl: "https://openrouter.ai/api/v1",
3009
+ compat: { "thinkingFormat": "openrouter" },
3010
+ reasoning: true,
3011
+ input: ["text"],
3012
+ cost: {
3013
+ input: 0.03,
3014
+ output: 0.13,
3015
+ cacheRead: 0.03,
3016
+ cacheWrite: 0,
3017
+ },
3018
+ contextWindow: 131072,
3019
+ maxTokens: 131072,
3020
+ },
3021
+ "openai/gpt-oss-20b:free": {
3022
+ id: "openai/gpt-oss-20b:free",
3023
+ name: "OpenAI: gpt-oss-20b (free)",
3024
+ api: "openai-completions",
3025
+ provider: "openrouter",
3026
+ baseUrl: "https://openrouter.ai/api/v1",
3027
+ compat: { "thinkingFormat": "openrouter" },
3028
+ reasoning: true,
3029
+ input: ["text"],
3030
+ cost: {
3031
+ input: 0,
3032
+ output: 0,
3033
+ cacheRead: 0,
3034
+ cacheWrite: 0,
3035
+ },
3036
+ contextWindow: 131072,
3037
+ maxTokens: 32768,
3038
+ },
3039
+ "openai/gpt-oss-safeguard-20b": {
3040
+ id: "openai/gpt-oss-safeguard-20b",
3041
+ name: "OpenAI: gpt-oss-safeguard-20b",
3042
+ api: "openai-completions",
3043
+ provider: "openrouter",
3044
+ baseUrl: "https://openrouter.ai/api/v1",
3045
+ compat: { "thinkingFormat": "openrouter" },
3046
+ reasoning: true,
3047
+ input: ["text"],
3048
+ cost: {
3049
+ input: 0.075,
3050
+ output: 0.3,
3051
+ cacheRead: 0.0375,
3052
+ cacheWrite: 0,
3053
+ },
3054
+ contextWindow: 131072,
3055
+ maxTokens: 65536,
3056
+ },
3057
+ "openai/o1": {
3058
+ id: "openai/o1",
3059
+ name: "OpenAI: o1",
3060
+ api: "openai-completions",
3061
+ provider: "openrouter",
3062
+ baseUrl: "https://openrouter.ai/api/v1",
3063
+ compat: { "thinkingFormat": "openrouter" },
3064
+ reasoning: true,
3065
+ input: ["text", "image"],
3066
+ cost: {
3067
+ input: 15,
3068
+ output: 60,
3069
+ cacheRead: 7.5,
3070
+ cacheWrite: 0,
3071
+ },
3072
+ contextWindow: 200000,
3073
+ maxTokens: 100000,
3074
+ },
3075
+ "openai/o3": {
3076
+ id: "openai/o3",
3077
+ name: "OpenAI: o3",
3078
+ api: "openai-completions",
3079
+ provider: "openrouter",
3080
+ baseUrl: "https://openrouter.ai/api/v1",
3081
+ compat: { "thinkingFormat": "openrouter" },
3082
+ reasoning: true,
3083
+ input: ["text", "image"],
3084
+ cost: {
3085
+ input: 2,
3086
+ output: 8,
3087
+ cacheRead: 0.5,
3088
+ cacheWrite: 0,
3089
+ },
3090
+ contextWindow: 200000,
3091
+ maxTokens: 100000,
3092
+ },
3093
+ "openai/o3-deep-research": {
3094
+ id: "openai/o3-deep-research",
3095
+ name: "OpenAI: o3 Deep Research",
3096
+ api: "openai-completions",
3097
+ provider: "openrouter",
3098
+ baseUrl: "https://openrouter.ai/api/v1",
3099
+ compat: { "thinkingFormat": "openrouter" },
3100
+ reasoning: true,
3101
+ input: ["text", "image"],
3102
+ cost: {
3103
+ input: 10,
3104
+ output: 40,
3105
+ cacheRead: 2.5,
3106
+ cacheWrite: 0,
3107
+ },
3108
+ contextWindow: 200000,
3109
+ maxTokens: 100000,
3110
+ },
3111
+ "openai/o3-mini": {
3112
+ id: "openai/o3-mini",
3113
+ name: "OpenAI: o3 Mini",
3114
+ api: "openai-completions",
3115
+ provider: "openrouter",
3116
+ baseUrl: "https://openrouter.ai/api/v1",
3117
+ compat: { "thinkingFormat": "openrouter" },
3118
+ reasoning: true,
3119
+ input: ["text"],
3120
+ cost: {
3121
+ input: 1.1,
3122
+ output: 4.4,
3123
+ cacheRead: 0.55,
3124
+ cacheWrite: 0,
3125
+ },
3126
+ contextWindow: 200000,
3127
+ maxTokens: 100000,
3128
+ },
3129
+ "openai/o3-mini-high": {
3130
+ id: "openai/o3-mini-high",
3131
+ name: "OpenAI: o3 Mini High",
3132
+ api: "openai-completions",
3133
+ provider: "openrouter",
3134
+ baseUrl: "https://openrouter.ai/api/v1",
3135
+ compat: { "thinkingFormat": "openrouter" },
3136
+ reasoning: true,
3137
+ input: ["text"],
3138
+ cost: {
3139
+ input: 1.1,
3140
+ output: 4.4,
3141
+ cacheRead: 0.55,
3142
+ cacheWrite: 0,
3143
+ },
3144
+ contextWindow: 200000,
3145
+ maxTokens: 100000,
3146
+ },
3147
+ "openai/o3-pro": {
3148
+ id: "openai/o3-pro",
3149
+ name: "OpenAI: o3 Pro",
3150
+ api: "openai-completions",
3151
+ provider: "openrouter",
3152
+ baseUrl: "https://openrouter.ai/api/v1",
3153
+ compat: { "thinkingFormat": "openrouter" },
3154
+ reasoning: true,
3155
+ input: ["text", "image"],
3156
+ cost: {
3157
+ input: 20,
3158
+ output: 80,
3159
+ cacheRead: 0,
3160
+ cacheWrite: 0,
3161
+ },
3162
+ contextWindow: 200000,
3163
+ maxTokens: 100000,
3164
+ },
3165
+ "openai/o4-mini": {
3166
+ id: "openai/o4-mini",
3167
+ name: "OpenAI: o4 Mini",
3168
+ api: "openai-completions",
3169
+ provider: "openrouter",
3170
+ baseUrl: "https://openrouter.ai/api/v1",
3171
+ compat: { "thinkingFormat": "openrouter" },
3172
+ reasoning: true,
3173
+ input: ["text", "image"],
3174
+ cost: {
3175
+ input: 1.1,
3176
+ output: 4.4,
3177
+ cacheRead: 0.275,
3178
+ cacheWrite: 0,
3179
+ },
3180
+ contextWindow: 200000,
3181
+ maxTokens: 100000,
3182
+ },
3183
+ "openai/o4-mini-deep-research": {
3184
+ id: "openai/o4-mini-deep-research",
3185
+ name: "OpenAI: o4 Mini Deep Research",
3186
+ api: "openai-completions",
3187
+ provider: "openrouter",
3188
+ baseUrl: "https://openrouter.ai/api/v1",
3189
+ compat: { "thinkingFormat": "openrouter" },
3190
+ reasoning: true,
3191
+ input: ["text", "image"],
3192
+ cost: {
3193
+ input: 2,
3194
+ output: 8,
3195
+ cacheRead: 0.5,
3196
+ cacheWrite: 0,
3197
+ },
3198
+ contextWindow: 200000,
3199
+ maxTokens: 100000,
3200
+ },
3201
+ "openai/o4-mini-high": {
3202
+ id: "openai/o4-mini-high",
3203
+ name: "OpenAI: o4 Mini High",
3204
+ api: "openai-completions",
3205
+ provider: "openrouter",
3206
+ baseUrl: "https://openrouter.ai/api/v1",
3207
+ compat: { "thinkingFormat": "openrouter" },
3208
+ reasoning: true,
3209
+ input: ["text", "image"],
3210
+ cost: {
3211
+ input: 1.1,
3212
+ output: 4.4,
3213
+ cacheRead: 0.275,
3214
+ cacheWrite: 0,
3215
+ },
3216
+ contextWindow: 200000,
3217
+ maxTokens: 100000,
3218
+ },
3219
+ "openrouter/auto": {
3220
+ id: "openrouter/auto",
3221
+ name: "Auto Router",
3222
+ api: "openai-completions",
3223
+ provider: "openrouter",
3224
+ baseUrl: "https://openrouter.ai/api/v1",
3225
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3226
+ reasoning: true,
3227
+ input: ["text", "image"],
3228
+ cost: {
3229
+ input: -1000000,
3230
+ output: -1000000,
3231
+ cacheRead: 0,
3232
+ cacheWrite: 0,
3233
+ },
3234
+ contextWindow: 2000000,
3235
+ maxTokens: 4096,
3236
+ },
3237
+ "openrouter/auto-beta": {
3238
+ id: "openrouter/auto-beta",
3239
+ name: "Auto Router (Beta)",
3240
+ api: "openai-completions",
3241
+ provider: "openrouter",
3242
+ baseUrl: "https://openrouter.ai/api/v1",
3243
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3244
+ reasoning: true,
3245
+ input: ["text", "image"],
3246
+ cost: {
3247
+ input: -1000000,
3248
+ output: -1000000,
3249
+ cacheRead: 0,
3250
+ cacheWrite: 0,
3251
+ },
3252
+ contextWindow: 2000000,
3253
+ maxTokens: 4096,
3254
+ },
3255
+ "openrouter/free": {
3256
+ id: "openrouter/free",
3257
+ name: "Free Models Router",
3258
+ api: "openai-completions",
3259
+ provider: "openrouter",
3260
+ baseUrl: "https://openrouter.ai/api/v1",
3261
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3262
+ reasoning: true,
3263
+ input: ["text", "image"],
3264
+ cost: {
3265
+ input: 0,
3266
+ output: 0,
3267
+ cacheRead: 0,
3268
+ cacheWrite: 0,
3269
+ },
3270
+ contextWindow: 200000,
3271
+ maxTokens: 4096,
3272
+ },
3273
+ "openrouter/fusion": {
3274
+ id: "openrouter/fusion",
3275
+ name: "OpenRouter: Fusion",
3276
+ api: "openai-completions",
3277
+ provider: "openrouter",
3278
+ baseUrl: "https://openrouter.ai/api/v1",
3279
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3280
+ reasoning: true,
3281
+ input: ["text"],
3282
+ cost: {
3283
+ input: 0,
3284
+ output: 0,
3285
+ cacheRead: 0,
3286
+ cacheWrite: 0,
3287
+ },
3288
+ contextWindow: 1000000,
3289
+ maxTokens: 30000,
3290
+ },
3291
+ "poolside/laguna-m.1": {
3292
+ id: "poolside/laguna-m.1",
3293
+ name: "Poolside: Laguna M.1",
3294
+ api: "openai-completions",
3295
+ provider: "openrouter",
3296
+ baseUrl: "https://openrouter.ai/api/v1",
3297
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3298
+ reasoning: true,
3299
+ input: ["text"],
3300
+ cost: {
3301
+ input: 0.2,
3302
+ output: 0.4,
3303
+ cacheRead: 0.1,
3304
+ cacheWrite: 0,
3305
+ },
3306
+ contextWindow: 262144,
3307
+ maxTokens: 32768,
3308
+ },
3309
+ "poolside/laguna-m.1:free": {
3310
+ id: "poolside/laguna-m.1:free",
3311
+ name: "Poolside: Laguna M.1 (free)",
3312
+ api: "openai-completions",
3313
+ provider: "openrouter",
3314
+ baseUrl: "https://openrouter.ai/api/v1",
3315
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3316
+ reasoning: true,
3317
+ input: ["text"],
3318
+ cost: {
3319
+ input: 0,
3320
+ output: 0,
3321
+ cacheRead: 0,
3322
+ cacheWrite: 0,
3323
+ },
3324
+ contextWindow: 262144,
3325
+ maxTokens: 32768,
3326
+ },
3327
+ "poolside/laguna-xs-2.1": {
3328
+ id: "poolside/laguna-xs-2.1",
3329
+ name: "Poolside: Laguna XS 2.1",
3330
+ api: "openai-completions",
3331
+ provider: "openrouter",
3332
+ baseUrl: "https://openrouter.ai/api/v1",
3333
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3334
+ reasoning: true,
3335
+ input: ["text"],
3336
+ cost: {
3337
+ input: 0.06,
3338
+ output: 0.12,
3339
+ cacheRead: 0.03,
3340
+ cacheWrite: 0,
3341
+ },
3342
+ contextWindow: 262144,
3343
+ maxTokens: 32768,
3344
+ },
3345
+ "poolside/laguna-xs-2.1:free": {
3346
+ id: "poolside/laguna-xs-2.1:free",
3347
+ name: "Poolside: Laguna XS 2.1 (free)",
3348
+ api: "openai-completions",
3349
+ provider: "openrouter",
3350
+ baseUrl: "https://openrouter.ai/api/v1",
3351
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3352
+ reasoning: true,
3353
+ input: ["text"],
3354
+ cost: {
3355
+ input: 0,
3356
+ output: 0,
3357
+ cacheRead: 0,
3358
+ cacheWrite: 0,
3359
+ },
3360
+ contextWindow: 262144,
3361
+ maxTokens: 32768,
3362
+ },
3363
+ "qwen/qwen-2.5-72b-instruct": {
3364
+ id: "qwen/qwen-2.5-72b-instruct",
3365
+ name: "Qwen2.5 72B Instruct",
3366
+ api: "openai-completions",
3367
+ provider: "openrouter",
3368
+ baseUrl: "https://openrouter.ai/api/v1",
3369
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3370
+ reasoning: false,
3371
+ input: ["text"],
3372
+ cost: {
3373
+ input: 0.36,
3374
+ output: 0.4,
3375
+ cacheRead: 0,
3376
+ cacheWrite: 0,
3377
+ },
3378
+ contextWindow: 32768,
3379
+ maxTokens: 16384,
3380
+ },
3381
+ "qwen/qwen-2.5-7b-instruct": {
3382
+ id: "qwen/qwen-2.5-7b-instruct",
3383
+ name: "Qwen: Qwen2.5 7B Instruct",
3384
+ api: "openai-completions",
3385
+ provider: "openrouter",
3386
+ baseUrl: "https://openrouter.ai/api/v1",
3387
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3388
+ reasoning: false,
3389
+ input: ["text"],
3390
+ cost: {
3391
+ input: 0.04,
3392
+ output: 0.1,
3393
+ cacheRead: 0,
3394
+ cacheWrite: 0,
3395
+ },
3396
+ contextWindow: 32768,
3397
+ maxTokens: 32768,
3398
+ },
3399
+ "qwen/qwen-plus": {
3400
+ id: "qwen/qwen-plus",
3401
+ name: "Qwen: Qwen-Plus",
3402
+ api: "openai-completions",
3403
+ provider: "openrouter",
3404
+ baseUrl: "https://openrouter.ai/api/v1",
3405
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3406
+ reasoning: false,
3407
+ input: ["text"],
3408
+ cost: {
3409
+ input: 0.26,
3410
+ output: 0.78,
3411
+ cacheRead: 0.052,
3412
+ cacheWrite: 0.325,
3413
+ },
3414
+ contextWindow: 1000000,
3415
+ maxTokens: 32768,
3416
+ },
3417
+ "qwen/qwen-plus-2025-07-28": {
3418
+ id: "qwen/qwen-plus-2025-07-28",
3419
+ name: "Qwen: Qwen Plus 0728",
3420
+ api: "openai-completions",
3421
+ provider: "openrouter",
3422
+ baseUrl: "https://openrouter.ai/api/v1",
3423
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3424
+ reasoning: false,
3425
+ input: ["text"],
3426
+ cost: {
3427
+ input: 0.26,
3428
+ output: 0.78,
3429
+ cacheRead: 0,
3430
+ cacheWrite: 0,
3431
+ },
3432
+ contextWindow: 1000000,
3433
+ maxTokens: 32768,
3434
+ },
3435
+ "qwen/qwen-plus-2025-07-28:thinking": {
3436
+ id: "qwen/qwen-plus-2025-07-28:thinking",
3437
+ name: "Qwen: Qwen Plus 0728 (thinking)",
3438
+ api: "openai-completions",
3439
+ provider: "openrouter",
3440
+ baseUrl: "https://openrouter.ai/api/v1",
3441
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3442
+ reasoning: true,
3443
+ input: ["text"],
3444
+ cost: {
3445
+ input: 0.26,
3446
+ output: 0.78,
3447
+ cacheRead: 0,
3448
+ cacheWrite: 0.325,
3449
+ },
3450
+ contextWindow: 1000000,
3451
+ maxTokens: 32768,
3452
+ },
3453
+ "qwen/qwen3-14b": {
3454
+ id: "qwen/qwen3-14b",
3455
+ name: "Qwen: Qwen3 14B",
3456
+ api: "openai-completions",
3457
+ provider: "openrouter",
3458
+ baseUrl: "https://openrouter.ai/api/v1",
3459
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3460
+ reasoning: true,
3461
+ input: ["text"],
3462
+ cost: {
3463
+ input: 0.12,
3464
+ output: 0.24,
3465
+ cacheRead: 0,
3466
+ cacheWrite: 0,
3467
+ },
3468
+ contextWindow: 40960,
3469
+ maxTokens: 16384,
3470
+ },
3471
+ "qwen/qwen3-235b-a22b": {
3472
+ id: "qwen/qwen3-235b-a22b",
3473
+ name: "Qwen: Qwen3 235B A22B",
3474
+ api: "openai-completions",
3475
+ provider: "openrouter",
3476
+ baseUrl: "https://openrouter.ai/api/v1",
3477
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3478
+ reasoning: true,
3479
+ input: ["text"],
3480
+ cost: {
3481
+ input: 0.455,
3482
+ output: 1.82,
3483
+ cacheRead: 0,
3484
+ cacheWrite: 0,
3485
+ },
3486
+ contextWindow: 131072,
3487
+ maxTokens: 8192,
3488
+ },
3489
+ "qwen/qwen3-235b-a22b-2507": {
3490
+ id: "qwen/qwen3-235b-a22b-2507",
3491
+ name: "Qwen: Qwen3 235B A22B Instruct 2507",
3492
+ api: "openai-completions",
3493
+ provider: "openrouter",
3494
+ baseUrl: "https://openrouter.ai/api/v1",
3495
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3496
+ reasoning: false,
3497
+ input: ["text"],
3498
+ cost: {
3499
+ input: 0.09,
3500
+ output: 0.55,
3501
+ cacheRead: 0,
3502
+ cacheWrite: 0,
3503
+ },
3504
+ contextWindow: 262144,
3505
+ maxTokens: 16384,
3506
+ },
3507
+ "qwen/qwen3-235b-a22b-thinking-2507": {
3508
+ id: "qwen/qwen3-235b-a22b-thinking-2507",
3509
+ name: "Qwen: Qwen3 235B A22B Thinking 2507",
3510
+ api: "openai-completions",
3511
+ provider: "openrouter",
3512
+ baseUrl: "https://openrouter.ai/api/v1",
3513
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3514
+ reasoning: true,
3515
+ input: ["text"],
3516
+ cost: {
3517
+ input: 0.1495,
3518
+ output: 1.495,
3519
+ cacheRead: 0,
3520
+ cacheWrite: 0,
3521
+ },
3522
+ contextWindow: 131072,
3523
+ maxTokens: 4096,
3524
+ },
3525
+ "qwen/qwen3-30b-a3b": {
3526
+ id: "qwen/qwen3-30b-a3b",
3527
+ name: "Qwen: Qwen3 30B A3B",
3528
+ api: "openai-completions",
3529
+ provider: "openrouter",
3530
+ baseUrl: "https://openrouter.ai/api/v1",
3531
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3532
+ reasoning: true,
3533
+ input: ["text"],
3534
+ cost: {
3535
+ input: 0.12,
3536
+ output: 0.5,
3537
+ cacheRead: 0,
3538
+ cacheWrite: 0,
3539
+ },
3540
+ contextWindow: 40960,
3541
+ maxTokens: 16384,
3542
+ },
3543
+ "qwen/qwen3-30b-a3b-instruct-2507": {
3544
+ id: "qwen/qwen3-30b-a3b-instruct-2507",
3545
+ name: "Qwen: Qwen3 30B A3B Instruct 2507",
3546
+ api: "openai-completions",
3547
+ provider: "openrouter",
3548
+ baseUrl: "https://openrouter.ai/api/v1",
3549
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3550
+ reasoning: false,
3551
+ input: ["text"],
3552
+ cost: {
3553
+ input: 0.1,
3554
+ output: 0.3,
3555
+ cacheRead: 0,
3556
+ cacheWrite: 0,
3557
+ },
3558
+ contextWindow: 262144,
3559
+ maxTokens: 4096,
3560
+ },
3561
+ "qwen/qwen3-30b-a3b-thinking-2507": {
3562
+ id: "qwen/qwen3-30b-a3b-thinking-2507",
3563
+ name: "Qwen: Qwen3 30B A3B Thinking 2507",
3564
+ api: "openai-completions",
3565
+ provider: "openrouter",
3566
+ baseUrl: "https://openrouter.ai/api/v1",
3567
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3568
+ reasoning: true,
3569
+ input: ["text"],
3570
+ cost: {
3571
+ input: 0.13,
3572
+ output: 1.56,
3573
+ cacheRead: 0,
3574
+ cacheWrite: 0,
3575
+ },
3576
+ contextWindow: 81920,
3577
+ maxTokens: 32768,
3578
+ },
3579
+ "qwen/qwen3-32b": {
3580
+ id: "qwen/qwen3-32b",
3581
+ name: "Qwen: Qwen3 32B",
3582
+ api: "openai-completions",
3583
+ provider: "openrouter",
3584
+ baseUrl: "https://openrouter.ai/api/v1",
3585
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3586
+ reasoning: true,
3587
+ input: ["text"],
3588
+ cost: {
3589
+ input: 0.08,
3590
+ output: 0.28,
3591
+ cacheRead: 0,
3592
+ cacheWrite: 0,
3593
+ },
3594
+ contextWindow: 40960,
3595
+ maxTokens: 16384,
3596
+ },
3597
+ "qwen/qwen3-8b": {
3598
+ id: "qwen/qwen3-8b",
3599
+ name: "Qwen: Qwen3 8B",
3600
+ api: "openai-completions",
3601
+ provider: "openrouter",
3602
+ baseUrl: "https://openrouter.ai/api/v1",
3603
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3604
+ reasoning: true,
3605
+ input: ["text"],
3606
+ cost: {
3607
+ input: 0.117,
3608
+ output: 0.455,
3609
+ cacheRead: 0,
3610
+ cacheWrite: 0,
3611
+ },
3612
+ contextWindow: 131072,
3613
+ maxTokens: 8192,
3614
+ },
3615
+ "qwen/qwen3-coder": {
3616
+ id: "qwen/qwen3-coder",
3617
+ name: "Qwen: Qwen3 Coder 480B A35B",
3618
+ api: "openai-completions",
3619
+ provider: "openrouter",
3620
+ baseUrl: "https://openrouter.ai/api/v1",
3621
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3622
+ reasoning: false,
3623
+ input: ["text"],
3624
+ cost: {
3625
+ input: 0.3,
3626
+ output: 1,
3627
+ cacheRead: 0.1,
3628
+ cacheWrite: 0,
3629
+ },
3630
+ contextWindow: 262144,
3631
+ maxTokens: 65536,
3632
+ },
3633
+ "qwen/qwen3-coder-30b-a3b-instruct": {
3634
+ id: "qwen/qwen3-coder-30b-a3b-instruct",
3635
+ name: "Qwen: Qwen3 Coder 30B A3B Instruct",
3636
+ api: "openai-completions",
3637
+ provider: "openrouter",
3638
+ baseUrl: "https://openrouter.ai/api/v1",
3639
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3640
+ reasoning: false,
3641
+ input: ["text"],
3642
+ cost: {
3643
+ input: 0.07,
3644
+ output: 0.27,
3645
+ cacheRead: 0,
3646
+ cacheWrite: 0,
3647
+ },
3648
+ contextWindow: 160000,
3649
+ maxTokens: 32768,
3650
+ },
3651
+ "qwen/qwen3-coder-flash": {
3652
+ id: "qwen/qwen3-coder-flash",
3653
+ name: "Qwen: Qwen3 Coder Flash",
3654
+ api: "openai-completions",
3655
+ provider: "openrouter",
3656
+ baseUrl: "https://openrouter.ai/api/v1",
3657
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3658
+ reasoning: false,
3659
+ input: ["text"],
3660
+ cost: {
3661
+ input: 0.195,
3662
+ output: 0.975,
3663
+ cacheRead: 0.039,
3664
+ cacheWrite: 0.24375,
3665
+ },
3666
+ contextWindow: 1000000,
3667
+ maxTokens: 65536,
3668
+ },
3669
+ "qwen/qwen3-coder-next": {
3670
+ id: "qwen/qwen3-coder-next",
3671
+ name: "Qwen: Qwen3 Coder Next",
3672
+ api: "openai-completions",
3673
+ provider: "openrouter",
3674
+ baseUrl: "https://openrouter.ai/api/v1",
3675
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3676
+ reasoning: false,
3677
+ input: ["text"],
3678
+ cost: {
3679
+ input: 0.11,
3680
+ output: 0.8,
3681
+ cacheRead: 0.07,
3682
+ cacheWrite: 0,
3683
+ },
3684
+ contextWindow: 262144,
3685
+ maxTokens: 262144,
3686
+ },
3687
+ "qwen/qwen3-coder-plus": {
3688
+ id: "qwen/qwen3-coder-plus",
3689
+ name: "Qwen: Qwen3 Coder Plus",
3690
+ api: "openai-completions",
3691
+ provider: "openrouter",
3692
+ baseUrl: "https://openrouter.ai/api/v1",
3693
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3694
+ reasoning: false,
3695
+ input: ["text"],
3696
+ cost: {
3697
+ input: 0.65,
3698
+ output: 3.25,
3699
+ cacheRead: 0.13,
3700
+ cacheWrite: 0.8125,
3701
+ },
3702
+ contextWindow: 1000000,
3703
+ maxTokens: 65536,
3704
+ },
3705
+ "qwen/qwen3-coder:free": {
3706
+ id: "qwen/qwen3-coder:free",
3707
+ name: "Qwen: Qwen3 Coder 480B A35B (free)",
3708
+ api: "openai-completions",
3709
+ provider: "openrouter",
3710
+ baseUrl: "https://openrouter.ai/api/v1",
3711
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3712
+ reasoning: false,
3713
+ input: ["text"],
3714
+ cost: {
3715
+ input: 0,
3716
+ output: 0,
3717
+ cacheRead: 0,
3718
+ cacheWrite: 0,
3719
+ },
3720
+ contextWindow: 262000,
3721
+ maxTokens: 262000,
3722
+ },
3723
+ "qwen/qwen3-max": {
3724
+ id: "qwen/qwen3-max",
3725
+ name: "Qwen: Qwen3 Max",
3726
+ api: "openai-completions",
3727
+ provider: "openrouter",
3728
+ baseUrl: "https://openrouter.ai/api/v1",
3729
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3730
+ reasoning: false,
3731
+ input: ["text"],
3732
+ cost: {
3733
+ input: 0.78,
3734
+ output: 3.9,
3735
+ cacheRead: 0.156,
3736
+ cacheWrite: 0.975,
3737
+ },
3738
+ contextWindow: 262144,
3739
+ maxTokens: 32768,
3740
+ },
3741
+ "qwen/qwen3-max-thinking": {
3742
+ id: "qwen/qwen3-max-thinking",
3743
+ name: "Qwen: Qwen3 Max Thinking",
3744
+ api: "openai-completions",
3745
+ provider: "openrouter",
3746
+ baseUrl: "https://openrouter.ai/api/v1",
3747
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3748
+ reasoning: true,
3749
+ input: ["text"],
3750
+ cost: {
3751
+ input: 0.78,
3752
+ output: 3.9,
3753
+ cacheRead: 0,
3754
+ cacheWrite: 0,
3755
+ },
3756
+ contextWindow: 262144,
3757
+ maxTokens: 32768,
3758
+ },
3759
+ "qwen/qwen3-next-80b-a3b-instruct": {
3760
+ id: "qwen/qwen3-next-80b-a3b-instruct",
3761
+ name: "Qwen: Qwen3 Next 80B A3B Instruct",
3762
+ api: "openai-completions",
3763
+ provider: "openrouter",
3764
+ baseUrl: "https://openrouter.ai/api/v1",
3765
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3766
+ reasoning: false,
3767
+ input: ["text"],
3768
+ cost: {
3769
+ input: 0.1,
3770
+ output: 1.1,
3771
+ cacheRead: 0.07,
3772
+ cacheWrite: 0,
3773
+ },
3774
+ contextWindow: 262144,
3775
+ maxTokens: 262144,
3776
+ },
3777
+ "qwen/qwen3-next-80b-a3b-instruct:free": {
3778
+ id: "qwen/qwen3-next-80b-a3b-instruct:free",
3779
+ name: "Qwen: Qwen3 Next 80B A3B Instruct (free)",
3780
+ api: "openai-completions",
3781
+ provider: "openrouter",
3782
+ baseUrl: "https://openrouter.ai/api/v1",
3783
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3784
+ reasoning: false,
3785
+ input: ["text"],
3786
+ cost: {
3787
+ input: 0,
3788
+ output: 0,
3789
+ cacheRead: 0,
3790
+ cacheWrite: 0,
3791
+ },
3792
+ contextWindow: 262144,
3793
+ maxTokens: 4096,
3794
+ },
3795
+ "qwen/qwen3-next-80b-a3b-thinking": {
3796
+ id: "qwen/qwen3-next-80b-a3b-thinking",
3797
+ name: "Qwen: Qwen3 Next 80B A3B Thinking",
3798
+ api: "openai-completions",
3799
+ provider: "openrouter",
3800
+ baseUrl: "https://openrouter.ai/api/v1",
3801
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3802
+ reasoning: true,
3803
+ input: ["text"],
3804
+ cost: {
3805
+ input: 0.0975,
3806
+ output: 0.78,
3807
+ cacheRead: 0,
3808
+ cacheWrite: 0,
3809
+ },
3810
+ contextWindow: 131072,
3811
+ maxTokens: 32768,
3812
+ },
3813
+ "qwen/qwen3-vl-235b-a22b-instruct": {
3814
+ id: "qwen/qwen3-vl-235b-a22b-instruct",
3815
+ name: "Qwen: Qwen3 VL 235B A22B Instruct",
3816
+ api: "openai-completions",
3817
+ provider: "openrouter",
3818
+ baseUrl: "https://openrouter.ai/api/v1",
3819
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3820
+ reasoning: false,
3821
+ input: ["text", "image"],
3822
+ cost: {
3823
+ input: 0.21,
3824
+ output: 1.9,
3825
+ cacheRead: 0.1,
3826
+ cacheWrite: 0,
3827
+ },
3828
+ contextWindow: 131072,
3829
+ maxTokens: 32768,
3830
+ },
3831
+ "qwen/qwen3-vl-235b-a22b-thinking": {
3832
+ id: "qwen/qwen3-vl-235b-a22b-thinking",
3833
+ name: "Qwen: Qwen3 VL 235B A22B Thinking",
3834
+ api: "openai-completions",
3835
+ provider: "openrouter",
3836
+ baseUrl: "https://openrouter.ai/api/v1",
3837
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3838
+ reasoning: true,
3839
+ input: ["text", "image"],
3840
+ cost: {
3841
+ input: 0.26,
3842
+ output: 2.6,
3843
+ cacheRead: 0,
3844
+ cacheWrite: 0,
3845
+ },
3846
+ contextWindow: 131072,
3847
+ maxTokens: 32768,
3848
+ },
3849
+ "qwen/qwen3-vl-30b-a3b-instruct": {
3850
+ id: "qwen/qwen3-vl-30b-a3b-instruct",
3851
+ name: "Qwen: Qwen3 VL 30B A3B Instruct",
3852
+ api: "openai-completions",
3853
+ provider: "openrouter",
3854
+ baseUrl: "https://openrouter.ai/api/v1",
3855
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3856
+ reasoning: false,
3857
+ input: ["text", "image"],
3858
+ cost: {
3859
+ input: 0.13,
3860
+ output: 0.52,
3861
+ cacheRead: 0,
3862
+ cacheWrite: 0,
3863
+ },
3864
+ contextWindow: 131072,
3865
+ maxTokens: 32768,
3866
+ },
3867
+ "qwen/qwen3-vl-30b-a3b-thinking": {
3868
+ id: "qwen/qwen3-vl-30b-a3b-thinking",
3869
+ name: "Qwen: Qwen3 VL 30B A3B Thinking",
3870
+ api: "openai-completions",
3871
+ provider: "openrouter",
3872
+ baseUrl: "https://openrouter.ai/api/v1",
3873
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3874
+ reasoning: true,
3875
+ input: ["text", "image"],
3876
+ cost: {
3877
+ input: 0.13,
3878
+ output: 1.56,
3879
+ cacheRead: 0,
3880
+ cacheWrite: 0,
3881
+ },
3882
+ contextWindow: 131072,
3883
+ maxTokens: 32768,
3884
+ },
3885
+ "qwen/qwen3-vl-32b-instruct": {
3886
+ id: "qwen/qwen3-vl-32b-instruct",
3887
+ name: "Qwen: Qwen3 VL 32B Instruct",
3888
+ api: "openai-completions",
3889
+ provider: "openrouter",
3890
+ baseUrl: "https://openrouter.ai/api/v1",
3891
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3892
+ reasoning: false,
3893
+ input: ["text", "image"],
3894
+ cost: {
3895
+ input: 0.104,
3896
+ output: 0.416,
3897
+ cacheRead: 0,
3898
+ cacheWrite: 0,
3899
+ },
3900
+ contextWindow: 131072,
3901
+ maxTokens: 32768,
3902
+ },
3903
+ "qwen/qwen3-vl-8b-instruct": {
3904
+ id: "qwen/qwen3-vl-8b-instruct",
3905
+ name: "Qwen: Qwen3 VL 8B Instruct",
3906
+ api: "openai-completions",
3907
+ provider: "openrouter",
3908
+ baseUrl: "https://openrouter.ai/api/v1",
3909
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3910
+ reasoning: false,
3911
+ input: ["text", "image"],
3912
+ cost: {
3913
+ input: 0.117,
3914
+ output: 0.455,
3915
+ cacheRead: 0,
3916
+ cacheWrite: 0,
3917
+ },
3918
+ contextWindow: 131072,
3919
+ maxTokens: 32768,
3920
+ },
3921
+ "qwen/qwen3-vl-8b-thinking": {
3922
+ id: "qwen/qwen3-vl-8b-thinking",
3923
+ name: "Qwen: Qwen3 VL 8B Thinking",
3924
+ api: "openai-completions",
3925
+ provider: "openrouter",
3926
+ baseUrl: "https://openrouter.ai/api/v1",
3927
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3928
+ reasoning: true,
3929
+ input: ["text", "image"],
3930
+ cost: {
3931
+ input: 0.117,
3932
+ output: 1.365,
3933
+ cacheRead: 0,
3934
+ cacheWrite: 0,
3935
+ },
3936
+ contextWindow: 131072,
3937
+ maxTokens: 32768,
3938
+ },
3939
+ "qwen/qwen3.5-122b-a10b": {
3940
+ id: "qwen/qwen3.5-122b-a10b",
3941
+ name: "Qwen: Qwen3.5-122B-A10B",
3942
+ api: "openai-completions",
3943
+ provider: "openrouter",
3944
+ baseUrl: "https://openrouter.ai/api/v1",
3945
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3946
+ reasoning: true,
3947
+ input: ["text", "image"],
3948
+ cost: {
3949
+ input: 0.26,
3950
+ output: 2.08,
3951
+ cacheRead: 0,
3952
+ cacheWrite: 0,
3953
+ },
3954
+ contextWindow: 262144,
3955
+ maxTokens: 65536,
3956
+ },
3957
+ "qwen/qwen3.5-27b": {
3958
+ id: "qwen/qwen3.5-27b",
3959
+ name: "Qwen: Qwen3.5-27B",
3960
+ api: "openai-completions",
3961
+ provider: "openrouter",
3962
+ baseUrl: "https://openrouter.ai/api/v1",
3963
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3964
+ reasoning: true,
3965
+ input: ["text", "image"],
3966
+ cost: {
3967
+ input: 0.195,
3968
+ output: 1.56,
3969
+ cacheRead: 0,
3970
+ cacheWrite: 0,
3971
+ },
3972
+ contextWindow: 262144,
3973
+ maxTokens: 65536,
3974
+ },
3975
+ "qwen/qwen3.5-35b-a3b": {
3976
+ id: "qwen/qwen3.5-35b-a3b",
3977
+ name: "Qwen: Qwen3.5-35B-A3B",
3978
+ api: "openai-completions",
3979
+ provider: "openrouter",
3980
+ baseUrl: "https://openrouter.ai/api/v1",
3981
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3982
+ reasoning: true,
3983
+ input: ["text", "image"],
3984
+ cost: {
3985
+ input: 0.14,
3986
+ output: 1,
3987
+ cacheRead: 0,
3988
+ cacheWrite: 0,
3989
+ },
3990
+ contextWindow: 262144,
3991
+ maxTokens: 262144,
3992
+ },
3993
+ "qwen/qwen3.5-397b-a17b": {
3994
+ id: "qwen/qwen3.5-397b-a17b",
3995
+ name: "Qwen: Qwen3.5 397B A17B",
3996
+ api: "openai-completions",
3997
+ provider: "openrouter",
3998
+ baseUrl: "https://openrouter.ai/api/v1",
3999
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4000
+ reasoning: true,
4001
+ input: ["text", "image"],
4002
+ cost: {
4003
+ input: 0.39,
4004
+ output: 2.34,
4005
+ cacheRead: 0,
4006
+ cacheWrite: 0,
4007
+ },
4008
+ contextWindow: 262144,
4009
+ maxTokens: 65536,
4010
+ },
4011
+ "qwen/qwen3.5-9b": {
4012
+ id: "qwen/qwen3.5-9b",
4013
+ name: "Qwen: Qwen3.5-9B",
4014
+ api: "openai-completions",
4015
+ provider: "openrouter",
4016
+ baseUrl: "https://openrouter.ai/api/v1",
4017
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4018
+ reasoning: true,
4019
+ input: ["text", "image"],
4020
+ cost: {
4021
+ input: 0.1,
4022
+ output: 0.15,
4023
+ cacheRead: 0,
4024
+ cacheWrite: 0,
4025
+ },
4026
+ contextWindow: 262144,
4027
+ maxTokens: 262144,
4028
+ },
4029
+ "qwen/qwen3.5-flash-02-23": {
4030
+ id: "qwen/qwen3.5-flash-02-23",
4031
+ name: "Qwen: Qwen3.5-Flash",
4032
+ api: "openai-completions",
4033
+ provider: "openrouter",
4034
+ baseUrl: "https://openrouter.ai/api/v1",
4035
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4036
+ reasoning: true,
4037
+ input: ["text", "image"],
4038
+ cost: {
4039
+ input: 0.065,
4040
+ output: 0.26,
4041
+ cacheRead: 0,
4042
+ cacheWrite: 0,
4043
+ },
4044
+ contextWindow: 1000000,
4045
+ maxTokens: 65536,
4046
+ },
4047
+ "qwen/qwen3.5-plus-02-15": {
4048
+ id: "qwen/qwen3.5-plus-02-15",
4049
+ name: "Qwen: Qwen3.5 Plus 2026-02-15",
4050
+ api: "openai-completions",
4051
+ provider: "openrouter",
4052
+ baseUrl: "https://openrouter.ai/api/v1",
4053
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4054
+ reasoning: true,
4055
+ input: ["text", "image"],
4056
+ cost: {
4057
+ input: 0.26,
4058
+ output: 1.56,
4059
+ cacheRead: 0,
4060
+ cacheWrite: 0,
4061
+ },
4062
+ contextWindow: 1000000,
4063
+ maxTokens: 65536,
4064
+ },
4065
+ "qwen/qwen3.5-plus-20260420": {
4066
+ id: "qwen/qwen3.5-plus-20260420",
4067
+ name: "Qwen: Qwen3.5 Plus 2026-04-20",
4068
+ api: "openai-completions",
4069
+ provider: "openrouter",
4070
+ baseUrl: "https://openrouter.ai/api/v1",
4071
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4072
+ reasoning: true,
4073
+ input: ["text", "image"],
4074
+ cost: {
4075
+ input: 0.3,
4076
+ output: 1.8,
4077
+ cacheRead: 0,
4078
+ cacheWrite: 0.375,
4079
+ },
4080
+ contextWindow: 1000000,
4081
+ maxTokens: 65536,
4082
+ },
4083
+ "qwen/qwen3.6-27b": {
4084
+ id: "qwen/qwen3.6-27b",
4085
+ name: "Qwen: Qwen3.6 27B",
4086
+ api: "openai-completions",
4087
+ provider: "openrouter",
4088
+ baseUrl: "https://openrouter.ai/api/v1",
4089
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4090
+ reasoning: true,
4091
+ input: ["text", "image"],
4092
+ cost: {
4093
+ input: 0.45,
4094
+ output: 2.7,
4095
+ cacheRead: 0,
4096
+ cacheWrite: 0,
4097
+ },
4098
+ contextWindow: 262144,
4099
+ maxTokens: 65536,
4100
+ },
4101
+ "qwen/qwen3.6-35b-a3b": {
4102
+ id: "qwen/qwen3.6-35b-a3b",
4103
+ name: "Qwen: Qwen3.6 35B A3B",
4104
+ api: "openai-completions",
4105
+ provider: "openrouter",
4106
+ baseUrl: "https://openrouter.ai/api/v1",
4107
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4108
+ reasoning: true,
4109
+ input: ["text", "image"],
4110
+ cost: {
4111
+ input: 0.14,
4112
+ output: 1,
4113
+ cacheRead: 0,
4114
+ cacheWrite: 0,
4115
+ },
4116
+ contextWindow: 262144,
4117
+ maxTokens: 262144,
4118
+ },
4119
+ "qwen/qwen3.6-flash": {
4120
+ id: "qwen/qwen3.6-flash",
4121
+ name: "Qwen: Qwen3.6 Flash",
4122
+ api: "openai-completions",
4123
+ provider: "openrouter",
4124
+ baseUrl: "https://openrouter.ai/api/v1",
4125
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4126
+ reasoning: true,
4127
+ input: ["text", "image"],
4128
+ cost: {
4129
+ input: 0.1875,
4130
+ output: 1.125,
4131
+ cacheRead: 0,
4132
+ cacheWrite: 0.234375,
4133
+ },
4134
+ contextWindow: 1000000,
4135
+ maxTokens: 65536,
4136
+ },
4137
+ "qwen/qwen3.6-max-preview": {
4138
+ id: "qwen/qwen3.6-max-preview",
4139
+ name: "Qwen: Qwen3.6 Max Preview",
4140
+ api: "openai-completions",
4141
+ provider: "openrouter",
4142
+ baseUrl: "https://openrouter.ai/api/v1",
4143
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4144
+ reasoning: true,
4145
+ input: ["text"],
4146
+ cost: {
4147
+ input: 1.04,
4148
+ output: 6.24,
4149
+ cacheRead: 0,
4150
+ cacheWrite: 1.3,
4151
+ },
4152
+ contextWindow: 262144,
4153
+ maxTokens: 65536,
4154
+ },
4155
+ "qwen/qwen3.6-plus": {
4156
+ id: "qwen/qwen3.6-plus",
4157
+ name: "Qwen: Qwen3.6 Plus",
4158
+ api: "openai-completions",
4159
+ provider: "openrouter",
4160
+ baseUrl: "https://openrouter.ai/api/v1",
4161
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4162
+ reasoning: true,
4163
+ input: ["text", "image"],
4164
+ cost: {
4165
+ input: 0.325,
4166
+ output: 1.95,
4167
+ cacheRead: 0,
4168
+ cacheWrite: 0.40625,
4169
+ },
4170
+ contextWindow: 1000000,
4171
+ maxTokens: 65536,
4172
+ },
4173
+ "qwen/qwen3.7-max": {
4174
+ id: "qwen/qwen3.7-max",
4175
+ name: "Qwen: Qwen3.7 Max",
4176
+ api: "openai-completions",
4177
+ provider: "openrouter",
4178
+ baseUrl: "https://openrouter.ai/api/v1",
4179
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4180
+ reasoning: true,
4181
+ input: ["text"],
4182
+ cost: {
4183
+ input: 1.475,
4184
+ output: 4.425,
4185
+ cacheRead: 0.295,
4186
+ cacheWrite: 1.84375,
4187
+ },
4188
+ contextWindow: 1000000,
4189
+ maxTokens: 65536,
4190
+ },
4191
+ "qwen/qwen3.7-plus": {
4192
+ id: "qwen/qwen3.7-plus",
4193
+ name: "Qwen: Qwen3.7 Plus",
4194
+ api: "openai-completions",
4195
+ provider: "openrouter",
4196
+ baseUrl: "https://openrouter.ai/api/v1",
4197
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4198
+ reasoning: true,
4199
+ input: ["text", "image"],
4200
+ cost: {
4201
+ input: 0.32,
4202
+ output: 1.28,
4203
+ cacheRead: 0.064,
4204
+ cacheWrite: 0.4,
4205
+ },
4206
+ contextWindow: 1000000,
4207
+ maxTokens: 65536,
4208
+ },
4209
+ "rekaai/reka-edge": {
4210
+ id: "rekaai/reka-edge",
4211
+ name: "Reka Edge",
4212
+ api: "openai-completions",
4213
+ provider: "openrouter",
4214
+ baseUrl: "https://openrouter.ai/api/v1",
4215
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4216
+ reasoning: false,
4217
+ input: ["text", "image"],
4218
+ cost: {
4219
+ input: 0.1,
4220
+ output: 0.1,
4221
+ cacheRead: 0,
4222
+ cacheWrite: 0,
4223
+ },
4224
+ contextWindow: 16384,
4225
+ maxTokens: 16384,
4226
+ },
4227
+ "relace/relace-search": {
4228
+ id: "relace/relace-search",
4229
+ name: "Relace: Relace Search",
4230
+ api: "openai-completions",
4231
+ provider: "openrouter",
4232
+ baseUrl: "https://openrouter.ai/api/v1",
4233
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4234
+ reasoning: false,
4235
+ input: ["text"],
4236
+ cost: {
4237
+ input: 1,
4238
+ output: 3,
4239
+ cacheRead: 0,
4240
+ cacheWrite: 0,
4241
+ },
4242
+ contextWindow: 256000,
4243
+ maxTokens: 128000,
4244
+ },
4245
+ "sakana/fugu-ultra": {
4246
+ id: "sakana/fugu-ultra",
4247
+ name: "Sakana: Fugu Ultra",
4248
+ api: "openai-completions",
4249
+ provider: "openrouter",
4250
+ baseUrl: "https://openrouter.ai/api/v1",
4251
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4252
+ reasoning: true,
4253
+ input: ["text", "image"],
4254
+ cost: {
4255
+ input: 5,
4256
+ output: 30,
4257
+ cacheRead: 0.5,
4258
+ cacheWrite: 0,
4259
+ },
4260
+ contextWindow: 1000000,
4261
+ maxTokens: 128000,
4262
+ },
4263
+ "sao10k/l3.1-euryale-70b": {
4264
+ id: "sao10k/l3.1-euryale-70b",
4265
+ name: "Sao10K: Llama 3.1 Euryale 70B v2.2",
4266
+ api: "openai-completions",
4267
+ provider: "openrouter",
4268
+ baseUrl: "https://openrouter.ai/api/v1",
4269
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4270
+ reasoning: false,
4271
+ input: ["text"],
4272
+ cost: {
4273
+ input: 0.85,
4274
+ output: 0.85,
4275
+ cacheRead: 0,
4276
+ cacheWrite: 0,
4277
+ },
4278
+ contextWindow: 131072,
4279
+ maxTokens: 16384,
4280
+ },
4281
+ "stepfun/step-3.5-flash": {
4282
+ id: "stepfun/step-3.5-flash",
4283
+ name: "StepFun: Step 3.5 Flash",
4284
+ api: "openai-completions",
4285
+ provider: "openrouter",
4286
+ baseUrl: "https://openrouter.ai/api/v1",
4287
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4288
+ reasoning: true,
4289
+ input: ["text"],
4290
+ cost: {
4291
+ input: 0.1,
4292
+ output: 0.3,
4293
+ cacheRead: 0,
4294
+ cacheWrite: 0,
4295
+ },
4296
+ contextWindow: 262144,
4297
+ maxTokens: 65536,
4298
+ },
4299
+ "stepfun/step-3.7-flash": {
4300
+ id: "stepfun/step-3.7-flash",
4301
+ name: "StepFun: Step 3.7 Flash",
4302
+ api: "openai-completions",
4303
+ provider: "openrouter",
4304
+ baseUrl: "https://openrouter.ai/api/v1",
4305
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4306
+ reasoning: true,
4307
+ input: ["text", "image"],
4308
+ cost: {
4309
+ input: 0.2,
4310
+ output: 1.15,
4311
+ cacheRead: 0.04,
4312
+ cacheWrite: 0,
4313
+ },
4314
+ contextWindow: 256000,
4315
+ maxTokens: 256000,
4316
+ },
4317
+ "tencent/hy3": {
4318
+ id: "tencent/hy3",
4319
+ name: "Tencent: Hy3",
4320
+ api: "openai-completions",
4321
+ provider: "openrouter",
4322
+ baseUrl: "https://openrouter.ai/api/v1",
4323
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4324
+ reasoning: true,
4325
+ input: ["text"],
4326
+ cost: {
4327
+ input: 0.2,
4328
+ output: 0.8,
4329
+ cacheRead: 0.05,
4330
+ cacheWrite: 0,
4331
+ },
4332
+ contextWindow: 262144,
4333
+ maxTokens: 131072,
4334
+ },
4335
+ "tencent/hy3-preview": {
4336
+ id: "tencent/hy3-preview",
4337
+ name: "Tencent: Hy3 preview",
4338
+ api: "openai-completions",
4339
+ provider: "openrouter",
4340
+ baseUrl: "https://openrouter.ai/api/v1",
4341
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4342
+ reasoning: true,
4343
+ input: ["text"],
4344
+ cost: {
4345
+ input: 0.063,
4346
+ output: 0.21,
4347
+ cacheRead: 0.021,
4348
+ cacheWrite: 0,
4349
+ },
4350
+ contextWindow: 262144,
4351
+ maxTokens: 4096,
4352
+ },
4353
+ "tencent/hy3:free": {
4354
+ id: "tencent/hy3:free",
4355
+ name: "Tencent: Hy3 (free)",
4356
+ api: "openai-completions",
4357
+ provider: "openrouter",
4358
+ baseUrl: "https://openrouter.ai/api/v1",
4359
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4360
+ reasoning: true,
4361
+ input: ["text"],
4362
+ cost: {
4363
+ input: 0,
4364
+ output: 0,
4365
+ cacheRead: 0,
4366
+ cacheWrite: 0,
4367
+ },
4368
+ contextWindow: 262144,
4369
+ maxTokens: 262144,
4370
+ },
4371
+ "thedrummer/unslopnemo-12b": {
4372
+ id: "thedrummer/unslopnemo-12b",
4373
+ name: "TheDrummer: UnslopNemo 12B",
4374
+ api: "openai-completions",
4375
+ provider: "openrouter",
4376
+ baseUrl: "https://openrouter.ai/api/v1",
4377
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4378
+ reasoning: false,
4379
+ input: ["text"],
4380
+ cost: {
4381
+ input: 0.4,
4382
+ output: 0.4,
4383
+ cacheRead: 0,
4384
+ cacheWrite: 0,
4385
+ },
4386
+ contextWindow: 32768,
4387
+ maxTokens: 32768,
4388
+ },
4389
+ "upstage/solar-pro-3": {
4390
+ id: "upstage/solar-pro-3",
4391
+ name: "Upstage: Solar Pro 3",
4392
+ api: "openai-completions",
4393
+ provider: "openrouter",
4394
+ baseUrl: "https://openrouter.ai/api/v1",
4395
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4396
+ reasoning: true,
4397
+ input: ["text"],
4398
+ cost: {
4399
+ input: 0.15,
4400
+ output: 0.6,
4401
+ cacheRead: 0.015,
4402
+ cacheWrite: 0,
4403
+ },
4404
+ contextWindow: 128000,
4405
+ maxTokens: 4096,
4406
+ },
4407
+ "x-ai/grok-4.20": {
4408
+ id: "x-ai/grok-4.20",
4409
+ name: "xAI: Grok 4.20",
4410
+ api: "openai-completions",
4411
+ provider: "openrouter",
4412
+ baseUrl: "https://openrouter.ai/api/v1",
4413
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4414
+ reasoning: true,
4415
+ input: ["text", "image"],
4416
+ cost: {
4417
+ input: 1.25,
4418
+ output: 2.5,
4419
+ cacheRead: 0.2,
4420
+ cacheWrite: 0,
4421
+ },
4422
+ contextWindow: 2000000,
4423
+ maxTokens: 4096,
4424
+ },
4425
+ "x-ai/grok-4.3": {
4426
+ id: "x-ai/grok-4.3",
4427
+ name: "xAI: Grok 4.3",
4428
+ api: "openai-completions",
4429
+ provider: "openrouter",
4430
+ baseUrl: "https://openrouter.ai/api/v1",
4431
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4432
+ reasoning: true,
4433
+ input: ["text", "image"],
4434
+ cost: {
4435
+ input: 1.25,
4436
+ output: 2.5,
4437
+ cacheRead: 0.2,
4438
+ cacheWrite: 0,
4439
+ },
4440
+ contextWindow: 1000000,
4441
+ maxTokens: 4096,
4442
+ },
4443
+ "x-ai/grok-4.5": {
4444
+ id: "x-ai/grok-4.5",
4445
+ name: "xAI: Grok 4.5",
4446
+ api: "openai-completions",
4447
+ provider: "openrouter",
4448
+ baseUrl: "https://openrouter.ai/api/v1",
4449
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4450
+ reasoning: true,
4451
+ input: ["text", "image"],
4452
+ cost: {
4453
+ input: 2,
4454
+ output: 6,
4455
+ cacheRead: 0.5,
4456
+ cacheWrite: 0,
4457
+ },
4458
+ contextWindow: 500000,
4459
+ maxTokens: 4096,
4460
+ },
4461
+ "x-ai/grok-build-0.1": {
4462
+ id: "x-ai/grok-build-0.1",
4463
+ name: "xAI: Grok Build 0.1",
4464
+ api: "openai-completions",
4465
+ provider: "openrouter",
4466
+ baseUrl: "https://openrouter.ai/api/v1",
4467
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4468
+ reasoning: true,
4469
+ input: ["text", "image"],
4470
+ cost: {
4471
+ input: 1,
4472
+ output: 2,
4473
+ cacheRead: 0.2,
4474
+ cacheWrite: 0,
4475
+ },
4476
+ contextWindow: 256000,
4477
+ maxTokens: 4096,
4478
+ },
4479
+ "xiaomi/mimo-v2.5": {
4480
+ id: "xiaomi/mimo-v2.5",
4481
+ name: "Xiaomi: MiMo-V2.5",
4482
+ api: "openai-completions",
4483
+ provider: "openrouter",
4484
+ baseUrl: "https://openrouter.ai/api/v1",
4485
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4486
+ reasoning: true,
4487
+ input: ["text", "image"],
4488
+ cost: {
4489
+ input: 0.14,
4490
+ output: 0.28,
4491
+ cacheRead: 0.0028,
4492
+ cacheWrite: 0,
4493
+ },
4494
+ contextWindow: 1048576,
4495
+ maxTokens: 131072,
4496
+ },
4497
+ "xiaomi/mimo-v2.5-pro": {
4498
+ id: "xiaomi/mimo-v2.5-pro",
4499
+ name: "Xiaomi: MiMo-V2.5-Pro",
4500
+ api: "openai-completions",
4501
+ provider: "openrouter",
4502
+ baseUrl: "https://openrouter.ai/api/v1",
4503
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4504
+ reasoning: true,
4505
+ input: ["text"],
4506
+ cost: {
4507
+ input: 0.435,
4508
+ output: 0.87,
4509
+ cacheRead: 0.0036,
4510
+ cacheWrite: 0,
4511
+ },
4512
+ contextWindow: 1048576,
4513
+ maxTokens: 131072,
4514
+ },
4515
+ "z-ai/glm-4.5": {
4516
+ id: "z-ai/glm-4.5",
4517
+ name: "Z.ai: GLM 4.5",
4518
+ api: "openai-completions",
4519
+ provider: "openrouter",
4520
+ baseUrl: "https://openrouter.ai/api/v1",
4521
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4522
+ reasoning: true,
4523
+ input: ["text"],
4524
+ cost: {
4525
+ input: 0.6,
4526
+ output: 2.2,
4527
+ cacheRead: 0.11,
4528
+ cacheWrite: 0,
4529
+ },
4530
+ contextWindow: 131072,
4531
+ maxTokens: 98304,
4532
+ },
4533
+ "z-ai/glm-4.5-air": {
4534
+ id: "z-ai/glm-4.5-air",
4535
+ name: "Z.ai: GLM 4.5 Air",
4536
+ api: "openai-completions",
4537
+ provider: "openrouter",
4538
+ baseUrl: "https://openrouter.ai/api/v1",
4539
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4540
+ reasoning: true,
4541
+ input: ["text"],
4542
+ cost: {
4543
+ input: 0.13,
4544
+ output: 0.85,
4545
+ cacheRead: 0.025,
4546
+ cacheWrite: 0,
4547
+ },
4548
+ contextWindow: 131072,
4549
+ maxTokens: 98304,
4550
+ },
4551
+ "z-ai/glm-4.5v": {
4552
+ id: "z-ai/glm-4.5v",
4553
+ name: "Z.ai: GLM 4.5V",
4554
+ api: "openai-completions",
4555
+ provider: "openrouter",
4556
+ baseUrl: "https://openrouter.ai/api/v1",
4557
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4558
+ reasoning: true,
4559
+ input: ["text", "image"],
4560
+ cost: {
4561
+ input: 0.6,
4562
+ output: 1.8,
4563
+ cacheRead: 0.11,
4564
+ cacheWrite: 0,
4565
+ },
4566
+ contextWindow: 65536,
4567
+ maxTokens: 16384,
4568
+ },
4569
+ "z-ai/glm-4.6": {
4570
+ id: "z-ai/glm-4.6",
4571
+ name: "Z.ai: GLM 4.6",
4572
+ api: "openai-completions",
4573
+ provider: "openrouter",
4574
+ baseUrl: "https://openrouter.ai/api/v1",
4575
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4576
+ reasoning: true,
4577
+ input: ["text"],
4578
+ cost: {
4579
+ input: 0.5,
4580
+ output: 2,
4581
+ cacheRead: 0.1,
4582
+ cacheWrite: 0,
4583
+ },
4584
+ contextWindow: 202752,
4585
+ maxTokens: 131072,
4586
+ },
4587
+ "z-ai/glm-4.6v": {
4588
+ id: "z-ai/glm-4.6v",
4589
+ name: "Z.ai: GLM 4.6V",
4590
+ api: "openai-completions",
4591
+ provider: "openrouter",
4592
+ baseUrl: "https://openrouter.ai/api/v1",
4593
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4594
+ reasoning: true,
4595
+ input: ["text", "image"],
4596
+ cost: {
4597
+ input: 0.3,
4598
+ output: 0.9,
4599
+ cacheRead: 0.055,
4600
+ cacheWrite: 0,
4601
+ },
4602
+ contextWindow: 131072,
4603
+ maxTokens: 32768,
4604
+ },
4605
+ "z-ai/glm-4.7": {
4606
+ id: "z-ai/glm-4.7",
4607
+ name: "Z.ai: GLM 4.7",
4608
+ api: "openai-completions",
4609
+ provider: "openrouter",
4610
+ baseUrl: "https://openrouter.ai/api/v1",
4611
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4612
+ reasoning: true,
4613
+ input: ["text"],
4614
+ cost: {
4615
+ input: 0.4,
4616
+ output: 1.75,
4617
+ cacheRead: 0.08,
4618
+ cacheWrite: 0,
4619
+ },
4620
+ contextWindow: 202752,
4621
+ maxTokens: 131072,
4622
+ },
4623
+ "z-ai/glm-4.7-flash": {
4624
+ id: "z-ai/glm-4.7-flash",
4625
+ name: "Z.ai: GLM 4.7 Flash",
4626
+ api: "openai-completions",
4627
+ provider: "openrouter",
4628
+ baseUrl: "https://openrouter.ai/api/v1",
4629
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4630
+ reasoning: true,
4631
+ input: ["text"],
4632
+ cost: {
4633
+ input: 0.0605,
4634
+ output: 0.4,
4635
+ cacheRead: 0,
4636
+ cacheWrite: 0,
4637
+ },
4638
+ contextWindow: 131072,
4639
+ maxTokens: 131072,
4640
+ },
4641
+ "z-ai/glm-5": {
4642
+ id: "z-ai/glm-5",
4643
+ name: "Z.ai: GLM 5",
4644
+ api: "openai-completions",
4645
+ provider: "openrouter",
4646
+ baseUrl: "https://openrouter.ai/api/v1",
4647
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4648
+ reasoning: true,
4649
+ input: ["text"],
4650
+ cost: {
4651
+ input: 0.6,
4652
+ output: 1.9,
4653
+ cacheRead: 0.119,
4654
+ cacheWrite: 0,
4655
+ },
4656
+ contextWindow: 202752,
4657
+ maxTokens: 202752,
4658
+ },
4659
+ "z-ai/glm-5-turbo": {
4660
+ id: "z-ai/glm-5-turbo",
4661
+ name: "Z.ai: GLM 5 Turbo",
4662
+ api: "openai-completions",
4663
+ provider: "openrouter",
4664
+ baseUrl: "https://openrouter.ai/api/v1",
4665
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4666
+ reasoning: true,
4667
+ input: ["text"],
4668
+ cost: {
4669
+ input: 1.2,
4670
+ output: 4,
4671
+ cacheRead: 0.24,
4672
+ cacheWrite: 0,
4673
+ },
4674
+ contextWindow: 202752,
4675
+ maxTokens: 131072,
4676
+ },
4677
+ "z-ai/glm-5.1": {
4678
+ id: "z-ai/glm-5.1",
4679
+ name: "Z.ai: GLM 5.1",
4680
+ api: "openai-completions",
4681
+ provider: "openrouter",
4682
+ baseUrl: "https://openrouter.ai/api/v1",
4683
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4684
+ reasoning: true,
4685
+ input: ["text"],
4686
+ cost: {
4687
+ input: 0.966,
4688
+ output: 3.036,
4689
+ cacheRead: 0.1794,
4690
+ cacheWrite: 0,
4691
+ },
4692
+ contextWindow: 200000,
4693
+ maxTokens: 128000,
4694
+ },
4695
+ "z-ai/glm-5.2": {
4696
+ id: "z-ai/glm-5.2",
4697
+ name: "Z.ai: GLM 5.2",
4698
+ api: "openai-completions",
4699
+ provider: "openrouter",
4700
+ baseUrl: "https://openrouter.ai/api/v1",
4701
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4702
+ reasoning: true,
4703
+ thinkingLevelMap: { "xhigh": "xhigh" },
4704
+ input: ["text"],
4705
+ cost: {
4706
+ input: 0.9142,
4707
+ output: 2.8732,
4708
+ cacheRead: 0.16978,
4709
+ cacheWrite: 0,
4710
+ },
4711
+ contextWindow: 1048576,
4712
+ maxTokens: 131072,
4713
+ },
4714
+ "z-ai/glm-5v-turbo": {
4715
+ id: "z-ai/glm-5v-turbo",
4716
+ name: "Z.ai: GLM 5V Turbo",
4717
+ api: "openai-completions",
4718
+ provider: "openrouter",
4719
+ baseUrl: "https://openrouter.ai/api/v1",
4720
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4721
+ reasoning: true,
4722
+ input: ["text", "image"],
4723
+ cost: {
4724
+ input: 1.2,
4725
+ output: 4,
4726
+ cacheRead: 0.24,
4727
+ cacheWrite: 0,
4728
+ },
4729
+ contextWindow: 202752,
4730
+ maxTokens: 131072,
4731
+ },
4732
+ "~anthropic/claude-fable-latest": {
4733
+ id: "~anthropic/claude-fable-latest",
4734
+ name: "Anthropic: Claude Fable Latest",
4735
+ api: "openai-completions",
4736
+ provider: "openrouter",
4737
+ baseUrl: "https://openrouter.ai/api/v1",
4738
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4739
+ reasoning: true,
4740
+ input: ["text", "image"],
4741
+ cost: {
4742
+ input: 10,
4743
+ output: 50,
4744
+ cacheRead: 1,
4745
+ cacheWrite: 12.5,
4746
+ },
4747
+ contextWindow: 1000000,
4748
+ maxTokens: 128000,
4749
+ },
4750
+ "~anthropic/claude-haiku-latest": {
4751
+ id: "~anthropic/claude-haiku-latest",
4752
+ name: "Anthropic Claude Haiku Latest",
4753
+ api: "openai-completions",
4754
+ provider: "openrouter",
4755
+ baseUrl: "https://openrouter.ai/api/v1",
4756
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4757
+ reasoning: true,
4758
+ input: ["text", "image"],
4759
+ cost: {
4760
+ input: 1,
4761
+ output: 5,
4762
+ cacheRead: 0.1,
4763
+ cacheWrite: 1.25,
4764
+ },
4765
+ contextWindow: 200000,
4766
+ maxTokens: 64000,
4767
+ },
4768
+ "~anthropic/claude-opus-latest": {
4769
+ id: "~anthropic/claude-opus-latest",
4770
+ name: "Anthropic: Claude Opus Latest",
4771
+ api: "openai-completions",
4772
+ provider: "openrouter",
4773
+ baseUrl: "https://openrouter.ai/api/v1",
4774
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4775
+ reasoning: true,
4776
+ input: ["text", "image"],
4777
+ cost: {
4778
+ input: 5,
4779
+ output: 25,
4780
+ cacheRead: 0.5,
4781
+ cacheWrite: 6.25,
4782
+ },
4783
+ contextWindow: 1000000,
4784
+ maxTokens: 128000,
4785
+ },
4786
+ "~anthropic/claude-sonnet-latest": {
4787
+ id: "~anthropic/claude-sonnet-latest",
4788
+ name: "Anthropic Claude Sonnet Latest",
4789
+ api: "openai-completions",
4790
+ provider: "openrouter",
4791
+ baseUrl: "https://openrouter.ai/api/v1",
4792
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4793
+ reasoning: true,
4794
+ input: ["text", "image"],
4795
+ cost: {
4796
+ input: 2,
4797
+ output: 10,
4798
+ cacheRead: 0.2,
4799
+ cacheWrite: 2.5,
4800
+ },
4801
+ contextWindow: 1000000,
4802
+ maxTokens: 128000,
4803
+ },
4804
+ "~google/gemini-flash-latest": {
4805
+ id: "~google/gemini-flash-latest",
4806
+ name: "Google Gemini Flash Latest",
4807
+ api: "openai-completions",
4808
+ provider: "openrouter",
4809
+ baseUrl: "https://openrouter.ai/api/v1",
4810
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4811
+ reasoning: true,
4812
+ input: ["text", "image"],
4813
+ cost: {
4814
+ input: 1.5,
4815
+ output: 9,
4816
+ cacheRead: 0.15,
4817
+ cacheWrite: 0.083333,
4818
+ },
4819
+ contextWindow: 1048576,
4820
+ maxTokens: 65536,
4821
+ },
4822
+ "~google/gemini-pro-latest": {
4823
+ id: "~google/gemini-pro-latest",
4824
+ name: "Google Gemini Pro Latest",
4825
+ api: "openai-completions",
4826
+ provider: "openrouter",
4827
+ baseUrl: "https://openrouter.ai/api/v1",
4828
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4829
+ reasoning: true,
4830
+ input: ["text", "image"],
4831
+ cost: {
4832
+ input: 2,
4833
+ output: 12,
4834
+ cacheRead: 0.2,
4835
+ cacheWrite: 0.375,
4836
+ },
4837
+ contextWindow: 1048576,
4838
+ maxTokens: 65536,
4839
+ },
4840
+ "~moonshotai/kimi-latest": {
4841
+ id: "~moonshotai/kimi-latest",
4842
+ name: "MoonshotAI Kimi Latest",
4843
+ api: "openai-completions",
4844
+ provider: "openrouter",
4845
+ baseUrl: "https://openrouter.ai/api/v1",
4846
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4847
+ reasoning: true,
4848
+ input: ["text", "image"],
4849
+ cost: {
4850
+ input: 3,
4851
+ output: 15,
4852
+ cacheRead: 0.3,
4853
+ cacheWrite: 0,
4854
+ },
4855
+ contextWindow: 1048576,
4856
+ maxTokens: 131072,
4857
+ },
4858
+ "~openai/gpt-latest": {
4859
+ id: "~openai/gpt-latest",
4860
+ name: "OpenAI GPT Latest",
4861
+ api: "openai-completions",
4862
+ provider: "openrouter",
4863
+ baseUrl: "https://openrouter.ai/api/v1",
4864
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4865
+ reasoning: true,
4866
+ input: ["text", "image"],
4867
+ cost: {
4868
+ input: 5,
4869
+ output: 30,
4870
+ cacheRead: 0.5,
4871
+ cacheWrite: 6.25,
4872
+ },
4873
+ contextWindow: 1050000,
4874
+ maxTokens: 128000,
4875
+ },
4876
+ "~openai/gpt-mini-latest": {
4877
+ id: "~openai/gpt-mini-latest",
4878
+ name: "OpenAI GPT Mini Latest",
4879
+ api: "openai-completions",
4880
+ provider: "openrouter",
4881
+ baseUrl: "https://openrouter.ai/api/v1",
4882
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4883
+ reasoning: true,
4884
+ input: ["text", "image"],
4885
+ cost: {
4886
+ input: 0.75,
4887
+ output: 4.5,
4888
+ cacheRead: 0.075,
4889
+ cacheWrite: 0,
4890
+ },
4891
+ contextWindow: 400000,
4892
+ maxTokens: 128000,
4893
+ },
4894
+ "~x-ai/grok-latest": {
4895
+ id: "~x-ai/grok-latest",
4896
+ name: "xAI: Grok Latest",
4897
+ api: "openai-completions",
4898
+ provider: "openrouter",
4899
+ baseUrl: "https://openrouter.ai/api/v1",
4900
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4901
+ reasoning: true,
4902
+ input: ["text", "image"],
4903
+ cost: {
4904
+ input: 2,
4905
+ output: 6,
4906
+ cacheRead: 0.5,
4907
+ cacheWrite: 0,
4908
+ },
4909
+ contextWindow: 500000,
4910
+ maxTokens: 4096,
4911
+ },
4912
+ };
4913
+ //# sourceMappingURL=openrouter.models.js.map