gsd-pi 2.74.0-dev.b741afb → 2.74.0-dev.ffbcc03

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