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