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