@draht/ai 2026.7.13 → 2026.9.5-1

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