gsd-pi 2.72.0-dev.de4c4b3 → 2.73.0-dev.1cfd50c

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 (259) hide show
  1. package/README.md +12 -2
  2. package/dist/cli.js +59 -3
  3. package/dist/onboarding.js +10 -0
  4. package/dist/resources/extensions/async-jobs/await-tool.js +7 -4
  5. package/dist/resources/extensions/async-jobs/job-manager.js +28 -3
  6. package/dist/resources/extensions/claude-code-cli/partial-builder.js +40 -12
  7. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +48 -23
  8. package/dist/resources/extensions/gsd/auto/loop.js +84 -1
  9. package/dist/resources/extensions/gsd/auto-post-unit.js +6 -0
  10. package/dist/resources/extensions/gsd/auto-recovery.js +11 -0
  11. package/dist/resources/extensions/gsd/auto.js +25 -19
  12. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +9 -11
  13. package/dist/resources/extensions/gsd/commands-handlers.js +4 -1
  14. package/dist/resources/extensions/gsd/context-injector.js +1 -1
  15. package/dist/resources/extensions/gsd/custom-workflow-engine.js +3 -7
  16. package/dist/resources/extensions/gsd/definition-io.js +15 -0
  17. package/dist/resources/extensions/gsd/dispatch-guard.js +4 -0
  18. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +6 -3
  19. package/dist/resources/extensions/gsd/git-service.js +11 -8
  20. package/dist/resources/extensions/gsd/gitignore.js +12 -6
  21. package/dist/resources/extensions/gsd/gsd-db.js +49 -6
  22. package/dist/resources/extensions/gsd/key-manager.js +2 -0
  23. package/dist/resources/extensions/gsd/preferences-skills.js +2 -34
  24. package/dist/resources/extensions/gsd/preferences-types.js +15 -0
  25. package/dist/resources/extensions/gsd/preferences.js +16 -3
  26. package/dist/resources/extensions/gsd/prompt-loader.js +4 -1
  27. package/dist/resources/extensions/gsd/prompts/discuss.md +122 -13
  28. package/dist/resources/extensions/gsd/prompts/system.md +1 -1
  29. package/dist/resources/extensions/gsd/state.js +21 -1
  30. package/dist/resources/extensions/gsd/workflow-projections.js +7 -0
  31. package/dist/resources/extensions/gsd/worktree-manager.js +30 -3
  32. package/dist/resources/extensions/gsd/write-intercept.js +10 -1
  33. package/dist/resources/extensions/ollama/index.js +4 -5
  34. package/dist/resources/extensions/ollama/ollama-client.js +35 -6
  35. package/dist/resources/extensions/ollama/ollama-discovery.js +32 -6
  36. package/dist/web/standalone/.next/BUILD_ID +1 -1
  37. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  38. package/dist/web/standalone/.next/build-manifest.json +2 -2
  39. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  40. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  41. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  42. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  43. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  44. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  45. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  46. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  47. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  48. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  51. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  53. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  64. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  70. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  80. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  85. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  88. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  95. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  96. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  97. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  98. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  102. package/dist/web/standalone/.next/server/app/index.html +1 -1
  103. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  104. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  105. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  106. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  107. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  108. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  109. package/dist/web/standalone/.next/server/app/page.js +2 -2
  110. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  112. package/dist/web/standalone/.next/server/chunks/2331.js +16 -16
  113. package/dist/web/standalone/.next/server/chunks/4741.js +12 -12
  114. package/dist/web/standalone/.next/server/chunks/5822.js +2 -2
  115. package/dist/web/standalone/.next/server/chunks/63.js +8 -8
  116. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  117. package/dist/web/standalone/.next/server/edge-runtime-webpack.js +2 -0
  118. package/dist/web/standalone/.next/server/functions-config-manifest.json +0 -9
  119. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  120. package/dist/web/standalone/.next/server/middleware-manifest.json +29 -2
  121. package/dist/web/standalone/.next/server/middleware.js +4 -12
  122. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  123. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  124. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  125. package/dist/web/standalone/.next/server/webpack-runtime.js +1 -1
  126. package/package.json +1 -1
  127. package/packages/pi-ai/dist/env-api-keys.js +1 -0
  128. package/packages/pi-ai/dist/env-api-keys.js.map +1 -1
  129. package/packages/pi-ai/dist/models.custom.d.ts +105 -0
  130. package/packages/pi-ai/dist/models.custom.d.ts.map +1 -1
  131. package/packages/pi-ai/dist/models.custom.js +97 -0
  132. package/packages/pi-ai/dist/models.custom.js.map +1 -1
  133. package/packages/pi-ai/dist/models.generated.d.ts +648 -140
  134. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  135. package/packages/pi-ai/dist/models.generated.js +867 -370
  136. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  137. package/packages/pi-ai/dist/models.generated.test.d.ts +2 -0
  138. package/packages/pi-ai/dist/models.generated.test.d.ts.map +1 -0
  139. package/packages/pi-ai/dist/models.generated.test.js +334 -0
  140. package/packages/pi-ai/dist/models.generated.test.js.map +1 -0
  141. package/packages/pi-ai/dist/models.test.js +105 -0
  142. package/packages/pi-ai/dist/models.test.js.map +1 -1
  143. package/packages/pi-ai/dist/types.d.ts +1 -1
  144. package/packages/pi-ai/dist/types.d.ts.map +1 -1
  145. package/packages/pi-ai/dist/types.js.map +1 -1
  146. package/packages/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  147. package/packages/pi-ai/dist/utils/oauth/github-copilot.js +5 -1
  148. package/packages/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  149. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.d.ts +2 -0
  150. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.d.ts.map +1 -0
  151. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js +57 -0
  152. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js.map +1 -0
  153. package/packages/pi-ai/src/env-api-keys.ts +1 -0
  154. package/packages/pi-ai/src/models.custom.ts +98 -0
  155. package/packages/pi-ai/src/models.generated.test.ts +373 -0
  156. package/packages/pi-ai/src/models.generated.ts +867 -370
  157. package/packages/pi-ai/src/models.test.ts +135 -0
  158. package/packages/pi-ai/src/types.ts +1 -0
  159. package/packages/pi-ai/src/utils/oauth/github-copilot.test.ts +71 -0
  160. package/packages/pi-ai/src/utils/oauth/github-copilot.ts +4 -1
  161. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  162. package/packages/pi-coding-agent/dist/core/model-resolver.js +1 -0
  163. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  164. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  165. package/packages/pi-coding-agent/dist/core/sdk.js +9 -0
  166. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  167. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +36 -0
  168. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  169. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  170. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +87 -12
  171. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  172. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +1 -0
  173. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  174. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +22 -9
  175. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  176. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.d.ts +2 -0
  177. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.d.ts.map +1 -0
  178. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js +63 -0
  179. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js.map +1 -0
  180. package/packages/pi-coding-agent/package.json +1 -1
  181. package/packages/pi-coding-agent/src/core/model-resolver.ts +1 -0
  182. package/packages/pi-coding-agent/src/core/sdk.ts +10 -0
  183. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +72 -0
  184. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +84 -12
  185. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.test.ts +71 -0
  186. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +23 -9
  187. package/packages/pi-tui/dist/components/__tests__/editor.test.js +12 -0
  188. package/packages/pi-tui/dist/components/__tests__/editor.test.js.map +1 -1
  189. package/packages/pi-tui/dist/components/__tests__/input.test.js +12 -0
  190. package/packages/pi-tui/dist/components/__tests__/input.test.js.map +1 -1
  191. package/packages/pi-tui/dist/keys.d.ts.map +1 -1
  192. package/packages/pi-tui/dist/keys.js +27 -0
  193. package/packages/pi-tui/dist/keys.js.map +1 -1
  194. package/packages/pi-tui/src/components/__tests__/editor.test.ts +18 -0
  195. package/packages/pi-tui/src/components/__tests__/input.test.ts +18 -0
  196. package/packages/pi-tui/src/keys.ts +32 -0
  197. package/pkg/package.json +1 -1
  198. package/src/resources/extensions/async-jobs/await-tool.test.ts +40 -7
  199. package/src/resources/extensions/async-jobs/await-tool.ts +7 -4
  200. package/src/resources/extensions/async-jobs/job-manager.ts +33 -3
  201. package/src/resources/extensions/claude-code-cli/partial-builder.ts +45 -12
  202. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +49 -24
  203. package/src/resources/extensions/claude-code-cli/tests/partial-builder.test.ts +91 -2
  204. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +112 -0
  205. package/src/resources/extensions/gsd/auto/loop.ts +89 -1
  206. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -0
  207. package/src/resources/extensions/gsd/auto-recovery.ts +10 -0
  208. package/src/resources/extensions/gsd/auto.ts +25 -20
  209. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +8 -10
  210. package/src/resources/extensions/gsd/commands-handlers.ts +5 -1
  211. package/src/resources/extensions/gsd/context-injector.ts +1 -1
  212. package/src/resources/extensions/gsd/custom-workflow-engine.ts +4 -8
  213. package/src/resources/extensions/gsd/definition-io.ts +18 -0
  214. package/src/resources/extensions/gsd/dispatch-guard.ts +5 -0
  215. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +6 -3
  216. package/src/resources/extensions/gsd/git-service.ts +11 -8
  217. package/src/resources/extensions/gsd/gitignore.ts +12 -6
  218. package/src/resources/extensions/gsd/gsd-db.ts +54 -6
  219. package/src/resources/extensions/gsd/key-manager.ts +2 -0
  220. package/src/resources/extensions/gsd/preferences-skills.ts +2 -36
  221. package/src/resources/extensions/gsd/preferences-types.ts +16 -0
  222. package/src/resources/extensions/gsd/preferences.ts +19 -6
  223. package/src/resources/extensions/gsd/prompt-loader.ts +6 -1
  224. package/src/resources/extensions/gsd/prompts/discuss.md +122 -13
  225. package/src/resources/extensions/gsd/prompts/system.md +1 -1
  226. package/src/resources/extensions/gsd/state.ts +20 -0
  227. package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +27 -0
  228. package/src/resources/extensions/gsd/tests/block-db-writes.test.ts +63 -0
  229. package/src/resources/extensions/gsd/tests/definition-io.test.ts +57 -0
  230. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +26 -0
  231. package/src/resources/extensions/gsd/tests/doctor-heal-fixable-warnings.test.ts +14 -0
  232. package/src/resources/extensions/gsd/tests/false-degraded-mode-warning.test.ts +104 -0
  233. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +107 -5
  234. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +8 -6
  235. package/src/resources/extensions/gsd/tests/key-manager.test.ts +63 -0
  236. package/src/resources/extensions/gsd/tests/memory-pressure-stuck-state.test.ts +54 -0
  237. package/src/resources/extensions/gsd/tests/plan-milestone-artifact-verification.test.ts +62 -0
  238. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +34 -0
  239. package/src/resources/extensions/gsd/tests/preferences-formatting.test.ts +87 -0
  240. package/src/resources/extensions/gsd/tests/preferences.test.ts +53 -0
  241. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +96 -1
  242. package/src/resources/extensions/gsd/tests/prompt-loader-working-directory.test.ts +19 -0
  243. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +97 -0
  244. package/src/resources/extensions/gsd/tests/stale-slice-rows.test.ts +41 -0
  245. package/src/resources/extensions/gsd/workflow-projections.ts +8 -0
  246. package/src/resources/extensions/gsd/worktree-manager.ts +29 -3
  247. package/src/resources/extensions/gsd/write-intercept.ts +10 -1
  248. package/src/resources/extensions/ollama/index.ts +4 -5
  249. package/src/resources/extensions/ollama/ollama-client.ts +35 -6
  250. package/src/resources/extensions/ollama/ollama-discovery.ts +37 -6
  251. package/src/resources/extensions/ollama/tests/ollama-discovery.test.ts +54 -0
  252. package/dist/resources/extensions/gsd/auto-observability.js +0 -54
  253. package/dist/resources/extensions/gsd/file-watcher.js +0 -80
  254. package/dist/resources/extensions/gsd/rtk-status.js +0 -43
  255. package/src/resources/extensions/gsd/auto-observability.ts +0 -72
  256. package/src/resources/extensions/gsd/file-watcher.ts +0 -100
  257. package/src/resources/extensions/gsd/rtk-status.ts +0 -53
  258. /package/dist/web/standalone/.next/static/{f-Gremw0nLxxFUySaHRPw → uNGVqSkAnszMl0okA4nnp}/_buildManifest.js +0 -0
  259. /package/dist/web/standalone/.next/static/{f-Gremw0nLxxFUySaHRPw → uNGVqSkAnszMl0okA4nnp}/_ssgManifest.js +0 -0
@@ -804,6 +804,23 @@ export const MODELS = {
804
804
  contextWindow: 204800,
805
805
  maxTokens: 131072,
806
806
  } satisfies Model<"bedrock-converse-stream">,
807
+ "minimax.minimax-m2.5": {
808
+ id: "minimax.minimax-m2.5",
809
+ name: "MiniMax M2.5",
810
+ api: "bedrock-converse-stream",
811
+ provider: "amazon-bedrock",
812
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
813
+ reasoning: true,
814
+ input: ["text"],
815
+ cost: {
816
+ input: 0.3,
817
+ output: 1.2,
818
+ cacheRead: 0,
819
+ cacheWrite: 0,
820
+ },
821
+ contextWindow: 196608,
822
+ maxTokens: 98304,
823
+ } satisfies Model<"bedrock-converse-stream">,
807
824
  "mistral.devstral-2-123b": {
808
825
  id: "mistral.devstral-2-123b",
809
826
  name: "Devstral 2 123B",
@@ -1042,6 +1059,23 @@ export const MODELS = {
1042
1059
  contextWindow: 128000,
1043
1060
  maxTokens: 4096,
1044
1061
  } satisfies Model<"bedrock-converse-stream">,
1062
+ "nvidia.nemotron-super-3-120b": {
1063
+ id: "nvidia.nemotron-super-3-120b",
1064
+ name: "NVIDIA Nemotron 3 Super 120B A12B",
1065
+ api: "bedrock-converse-stream",
1066
+ provider: "amazon-bedrock",
1067
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1068
+ reasoning: true,
1069
+ input: ["text"],
1070
+ cost: {
1071
+ input: 0.15,
1072
+ output: 0.65,
1073
+ cacheRead: 0,
1074
+ cacheWrite: 0,
1075
+ },
1076
+ contextWindow: 262144,
1077
+ maxTokens: 131072,
1078
+ } satisfies Model<"bedrock-converse-stream">,
1045
1079
  "openai.gpt-oss-120b-1:0": {
1046
1080
  id: "openai.gpt-oss-120b-1:0",
1047
1081
  name: "gpt-oss-120b",
@@ -1178,6 +1212,23 @@ export const MODELS = {
1178
1212
  contextWindow: 131072,
1179
1213
  maxTokens: 65536,
1180
1214
  } satisfies Model<"bedrock-converse-stream">,
1215
+ "qwen.qwen3-coder-next": {
1216
+ id: "qwen.qwen3-coder-next",
1217
+ name: "Qwen3 Coder Next",
1218
+ api: "bedrock-converse-stream",
1219
+ provider: "amazon-bedrock",
1220
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1221
+ reasoning: true,
1222
+ input: ["text"],
1223
+ cost: {
1224
+ input: 0.22,
1225
+ output: 1.8,
1226
+ cacheRead: 0,
1227
+ cacheWrite: 0,
1228
+ },
1229
+ contextWindow: 131072,
1230
+ maxTokens: 65536,
1231
+ } satisfies Model<"bedrock-converse-stream">,
1181
1232
  "qwen.qwen3-next-80b-a3b": {
1182
1233
  id: "qwen.qwen3-next-80b-a3b",
1183
1234
  name: "Qwen/Qwen3-Next-80B-A3B-Instruct",
@@ -1416,6 +1467,23 @@ export const MODELS = {
1416
1467
  contextWindow: 200000,
1417
1468
  maxTokens: 131072,
1418
1469
  } satisfies Model<"bedrock-converse-stream">,
1470
+ "zai.glm-5": {
1471
+ id: "zai.glm-5",
1472
+ name: "GLM-5",
1473
+ api: "bedrock-converse-stream",
1474
+ provider: "amazon-bedrock",
1475
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1476
+ reasoning: true,
1477
+ input: ["text"],
1478
+ cost: {
1479
+ input: 1,
1480
+ output: 3.2,
1481
+ cacheRead: 0,
1482
+ cacheWrite: 0,
1483
+ },
1484
+ contextWindow: 202752,
1485
+ maxTokens: 101376,
1486
+ } satisfies Model<"bedrock-converse-stream">,
1419
1487
  },
1420
1488
  "anthropic": {
1421
1489
  "claude-3-5-haiku-20241022": {
@@ -1503,23 +1571,6 @@ export const MODELS = {
1503
1571
  contextWindow: 200000,
1504
1572
  maxTokens: 64000,
1505
1573
  } satisfies Model<"anthropic-messages">,
1506
- "claude-3-7-sonnet-latest": {
1507
- id: "claude-3-7-sonnet-latest",
1508
- name: "Claude Sonnet 3.7 (latest)",
1509
- api: "anthropic-messages",
1510
- provider: "anthropic",
1511
- baseUrl: "https://api.anthropic.com",
1512
- reasoning: true,
1513
- input: ["text", "image"],
1514
- cost: {
1515
- input: 3,
1516
- output: 15,
1517
- cacheRead: 0.3,
1518
- cacheWrite: 3.75,
1519
- },
1520
- contextWindow: 200000,
1521
- maxTokens: 64000,
1522
- } satisfies Model<"anthropic-messages">,
1523
1574
  "claude-3-haiku-20240307": {
1524
1575
  id: "claude-3-haiku-20240307",
1525
1576
  name: "Claude Haiku 3",
@@ -2253,6 +2304,23 @@ export const MODELS = {
2253
2304
  contextWindow: 400000,
2254
2305
  maxTokens: 128000,
2255
2306
  } satisfies Model<"azure-openai-responses">,
2307
+ "gpt-5.3-chat-latest": {
2308
+ id: "gpt-5.3-chat-latest",
2309
+ name: "GPT-5.3 Chat (latest)",
2310
+ api: "azure-openai-responses",
2311
+ provider: "azure-openai-responses",
2312
+ baseUrl: "",
2313
+ reasoning: false,
2314
+ input: ["text", "image"],
2315
+ cost: {
2316
+ input: 1.75,
2317
+ output: 14,
2318
+ cacheRead: 0.175,
2319
+ cacheWrite: 0,
2320
+ },
2321
+ contextWindow: 128000,
2322
+ maxTokens: 16384,
2323
+ } satisfies Model<"azure-openai-responses">,
2256
2324
  "gpt-5.3-codex": {
2257
2325
  id: "gpt-5.3-codex",
2258
2326
  name: "GPT-5.3 Codex",
@@ -2967,7 +3035,7 @@ export const MODELS = {
2967
3035
  } satisfies Model<"openai-responses">,
2968
3036
  "gpt-5.4-mini": {
2969
3037
  id: "gpt-5.4-mini",
2970
- name: "GPT-5.4 mini",
3038
+ name: "GPT-5.4 Mini",
2971
3039
  api: "openai-responses",
2972
3040
  provider: "github-copilot",
2973
3041
  baseUrl: "https://api.individual.githubcopilot.com",
@@ -3412,6 +3480,57 @@ export const MODELS = {
3412
3480
  contextWindow: 131072,
3413
3481
  maxTokens: 65536,
3414
3482
  } satisfies Model<"google-generative-ai">,
3483
+ "gemma-3-27b-it": {
3484
+ id: "gemma-3-27b-it",
3485
+ name: "Gemma 3 27B",
3486
+ api: "google-generative-ai",
3487
+ provider: "google",
3488
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
3489
+ reasoning: false,
3490
+ input: ["text", "image"],
3491
+ cost: {
3492
+ input: 0,
3493
+ output: 0,
3494
+ cacheRead: 0,
3495
+ cacheWrite: 0,
3496
+ },
3497
+ contextWindow: 131072,
3498
+ maxTokens: 8192,
3499
+ } satisfies Model<"google-generative-ai">,
3500
+ "gemma-4-26b-it": {
3501
+ id: "gemma-4-26b-it",
3502
+ name: "Gemma 4 26B",
3503
+ api: "google-generative-ai",
3504
+ provider: "google",
3505
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
3506
+ reasoning: true,
3507
+ input: ["text", "image"],
3508
+ cost: {
3509
+ input: 0,
3510
+ output: 0,
3511
+ cacheRead: 0,
3512
+ cacheWrite: 0,
3513
+ },
3514
+ contextWindow: 256000,
3515
+ maxTokens: 8192,
3516
+ } satisfies Model<"google-generative-ai">,
3517
+ "gemma-4-31b-it": {
3518
+ id: "gemma-4-31b-it",
3519
+ name: "Gemma 4 31B",
3520
+ api: "google-generative-ai",
3521
+ provider: "google",
3522
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta",
3523
+ reasoning: true,
3524
+ input: ["text", "image"],
3525
+ cost: {
3526
+ input: 0,
3527
+ output: 0,
3528
+ cacheRead: 0,
3529
+ cacheWrite: 0,
3530
+ },
3531
+ contextWindow: 256000,
3532
+ maxTokens: 8192,
3533
+ } satisfies Model<"google-generative-ai">,
3415
3534
  },
3416
3535
  "google-antigravity": {
3417
3536
  "claude-opus-4-5-thinking": {
@@ -3913,6 +4032,40 @@ export const MODELS = {
3913
4032
  contextWindow: 8192,
3914
4033
  maxTokens: 8192,
3915
4034
  } satisfies Model<"openai-completions">,
4035
+ "groq/compound": {
4036
+ id: "groq/compound",
4037
+ name: "Compound",
4038
+ api: "openai-completions",
4039
+ provider: "groq",
4040
+ baseUrl: "https://api.groq.com/openai/v1",
4041
+ reasoning: true,
4042
+ input: ["text"],
4043
+ cost: {
4044
+ input: 0,
4045
+ output: 0,
4046
+ cacheRead: 0,
4047
+ cacheWrite: 0,
4048
+ },
4049
+ contextWindow: 131072,
4050
+ maxTokens: 8192,
4051
+ } satisfies Model<"openai-completions">,
4052
+ "groq/compound-mini": {
4053
+ id: "groq/compound-mini",
4054
+ name: "Compound Mini",
4055
+ api: "openai-completions",
4056
+ provider: "groq",
4057
+ baseUrl: "https://api.groq.com/openai/v1",
4058
+ reasoning: true,
4059
+ input: ["text"],
4060
+ cost: {
4061
+ input: 0,
4062
+ output: 0,
4063
+ cacheRead: 0,
4064
+ cacheWrite: 0,
4065
+ },
4066
+ contextWindow: 131072,
4067
+ maxTokens: 8192,
4068
+ } satisfies Model<"openai-completions">,
3916
4069
  "llama-3.1-8b-instant": {
3917
4070
  id: "llama-3.1-8b-instant",
3918
4071
  name: "Llama 3.1 8B Instant",
@@ -4100,6 +4253,23 @@ export const MODELS = {
4100
4253
  contextWindow: 131072,
4101
4254
  maxTokens: 65536,
4102
4255
  } satisfies Model<"openai-completions">,
4256
+ "openai/gpt-oss-safeguard-20b": {
4257
+ id: "openai/gpt-oss-safeguard-20b",
4258
+ name: "Safety GPT OSS 20B",
4259
+ api: "openai-completions",
4260
+ provider: "groq",
4261
+ baseUrl: "https://api.groq.com/openai/v1",
4262
+ reasoning: true,
4263
+ input: ["text"],
4264
+ cost: {
4265
+ input: 0.075,
4266
+ output: 0.3,
4267
+ cacheRead: 0.037,
4268
+ cacheWrite: 0,
4269
+ },
4270
+ contextWindow: 131072,
4271
+ maxTokens: 65536,
4272
+ } satisfies Model<"openai-completions">,
4103
4273
  "qwen-qwq-32b": {
4104
4274
  id: "qwen-qwq-32b",
4105
4275
  name: "Qwen QwQ 32B",
@@ -4132,7 +4302,7 @@ export const MODELS = {
4132
4302
  cacheWrite: 0,
4133
4303
  },
4134
4304
  contextWindow: 131072,
4135
- maxTokens: 16384,
4305
+ maxTokens: 40960,
4136
4306
  } satisfies Model<"openai-completions">,
4137
4307
  },
4138
4308
  "huggingface": {
@@ -4460,6 +4630,24 @@ export const MODELS = {
4460
4630
  contextWindow: 202752,
4461
4631
  maxTokens: 131072,
4462
4632
  } satisfies Model<"openai-completions">,
4633
+ "zai-org/GLM-5.1": {
4634
+ id: "zai-org/GLM-5.1",
4635
+ name: "GLM-5.1",
4636
+ api: "openai-completions",
4637
+ provider: "huggingface",
4638
+ baseUrl: "https://router.huggingface.co/v1",
4639
+ compat: {"supportsDeveloperRole":false},
4640
+ reasoning: true,
4641
+ input: ["text"],
4642
+ cost: {
4643
+ input: 1,
4644
+ output: 3.2,
4645
+ cacheRead: 0.2,
4646
+ cacheWrite: 0,
4647
+ },
4648
+ contextWindow: 202752,
4649
+ maxTokens: 131072,
4650
+ } satisfies Model<"openai-completions">,
4463
4651
  },
4464
4652
  "kimi-coding": {
4465
4653
  "k2p5": {
@@ -5029,22 +5217,39 @@ export const MODELS = {
5029
5217
  contextWindow: 128000,
5030
5218
  maxTokens: 16384,
5031
5219
  } satisfies Model<"mistral-conversations">,
5220
+ "mistral-small-2603": {
5221
+ id: "mistral-small-2603",
5222
+ name: "Mistral Small 4",
5223
+ api: "mistral-conversations",
5224
+ provider: "mistral",
5225
+ baseUrl: "https://api.mistral.ai",
5226
+ reasoning: true,
5227
+ input: ["text", "image"],
5228
+ cost: {
5229
+ input: 0.15,
5230
+ output: 0.6,
5231
+ cacheRead: 0,
5232
+ cacheWrite: 0,
5233
+ },
5234
+ contextWindow: 256000,
5235
+ maxTokens: 256000,
5236
+ } satisfies Model<"mistral-conversations">,
5032
5237
  "mistral-small-latest": {
5033
5238
  id: "mistral-small-latest",
5034
5239
  name: "Mistral Small (latest)",
5035
5240
  api: "mistral-conversations",
5036
5241
  provider: "mistral",
5037
5242
  baseUrl: "https://api.mistral.ai",
5038
- reasoning: false,
5243
+ reasoning: true,
5039
5244
  input: ["text", "image"],
5040
5245
  cost: {
5041
- input: 0.1,
5042
- output: 0.3,
5246
+ input: 0.15,
5247
+ output: 0.6,
5043
5248
  cacheRead: 0,
5044
5249
  cacheWrite: 0,
5045
5250
  },
5046
- contextWindow: 128000,
5047
- maxTokens: 16384,
5251
+ contextWindow: 256000,
5252
+ maxTokens: 256000,
5048
5253
  } satisfies Model<"mistral-conversations">,
5049
5254
  "open-mistral-7b": {
5050
5255
  id: "open-mistral-7b",
@@ -5575,6 +5780,23 @@ export const MODELS = {
5575
5780
  contextWindow: 400000,
5576
5781
  maxTokens: 128000,
5577
5782
  } satisfies Model<"openai-responses">,
5783
+ "gpt-5.3-chat-latest": {
5784
+ id: "gpt-5.3-chat-latest",
5785
+ name: "GPT-5.3 Chat (latest)",
5786
+ api: "openai-responses",
5787
+ provider: "openai",
5788
+ baseUrl: "https://api.openai.com/v1",
5789
+ reasoning: false,
5790
+ input: ["text", "image"],
5791
+ cost: {
5792
+ input: 1.75,
5793
+ output: 14,
5794
+ cacheRead: 0.175,
5795
+ cacheWrite: 0,
5796
+ },
5797
+ contextWindow: 128000,
5798
+ maxTokens: 16384,
5799
+ } satisfies Model<"openai-responses">,
5578
5800
  "gpt-5.3-codex": {
5579
5801
  id: "gpt-5.3-codex",
5580
5802
  name: "GPT-5.3 Codex",
@@ -6157,6 +6379,23 @@ export const MODELS = {
6157
6379
  contextWindow: 204800,
6158
6380
  maxTokens: 131072,
6159
6381
  } satisfies Model<"openai-completions">,
6382
+ "glm-5.1": {
6383
+ id: "glm-5.1",
6384
+ name: "GLM-5.1",
6385
+ api: "openai-completions",
6386
+ provider: "opencode",
6387
+ baseUrl: "https://opencode.ai/zen/v1",
6388
+ reasoning: true,
6389
+ input: ["text"],
6390
+ cost: {
6391
+ input: 1.4,
6392
+ output: 4.4,
6393
+ cacheRead: 0.26,
6394
+ cacheWrite: 0,
6395
+ },
6396
+ contextWindow: 204800,
6397
+ maxTokens: 131072,
6398
+ } satisfies Model<"openai-completions">,
6160
6399
  "gpt-5": {
6161
6400
  id: "gpt-5",
6162
6401
  name: "GPT-5",
@@ -6412,56 +6651,22 @@ export const MODELS = {
6412
6651
  contextWindow: 262144,
6413
6652
  maxTokens: 65536,
6414
6653
  } satisfies Model<"openai-completions">,
6415
- "mimo-v2-omni-free": {
6416
- id: "mimo-v2-omni-free",
6417
- name: "MiMo V2 Omni Free",
6654
+ "minimax-m2.5": {
6655
+ id: "minimax-m2.5",
6656
+ name: "MiniMax M2.5",
6418
6657
  api: "openai-completions",
6419
6658
  provider: "opencode",
6420
6659
  baseUrl: "https://opencode.ai/zen/v1",
6421
6660
  reasoning: true,
6422
- input: ["text", "image"],
6661
+ input: ["text"],
6423
6662
  cost: {
6424
- input: 0,
6425
- output: 0,
6426
- cacheRead: 0,
6663
+ input: 0.3,
6664
+ output: 1.2,
6665
+ cacheRead: 0.06,
6427
6666
  cacheWrite: 0,
6428
6667
  },
6429
- contextWindow: 262144,
6430
- maxTokens: 64000,
6431
- } satisfies Model<"openai-completions">,
6432
- "mimo-v2-pro-free": {
6433
- id: "mimo-v2-pro-free",
6434
- name: "MiMo V2 Pro Free",
6435
- api: "openai-completions",
6436
- provider: "opencode",
6437
- baseUrl: "https://opencode.ai/zen/v1",
6438
- reasoning: true,
6439
- input: ["text"],
6440
- cost: {
6441
- input: 0,
6442
- output: 0,
6443
- cacheRead: 0,
6444
- cacheWrite: 0,
6445
- },
6446
- contextWindow: 1048576,
6447
- maxTokens: 64000,
6448
- } satisfies Model<"openai-completions">,
6449
- "minimax-m2.5": {
6450
- id: "minimax-m2.5",
6451
- name: "MiniMax M2.5",
6452
- api: "openai-completions",
6453
- provider: "opencode",
6454
- baseUrl: "https://opencode.ai/zen/v1",
6455
- reasoning: true,
6456
- input: ["text"],
6457
- cost: {
6458
- input: 0.3,
6459
- output: 1.2,
6460
- cacheRead: 0.06,
6461
- cacheWrite: 0,
6462
- },
6463
- contextWindow: 204800,
6464
- maxTokens: 131072,
6668
+ contextWindow: 204800,
6669
+ maxTokens: 131072,
6465
6670
  } satisfies Model<"openai-completions">,
6466
6671
  "minimax-m2.5-free": {
6467
6672
  id: "minimax-m2.5-free",
@@ -6494,7 +6699,7 @@ export const MODELS = {
6494
6699
  cacheRead: 0,
6495
6700
  cacheWrite: 0,
6496
6701
  },
6497
- contextWindow: 1000000,
6702
+ contextWindow: 204800,
6498
6703
  maxTokens: 128000,
6499
6704
  } satisfies Model<"openai-completions">,
6500
6705
  },
@@ -6516,6 +6721,23 @@ export const MODELS = {
6516
6721
  contextWindow: 204800,
6517
6722
  maxTokens: 131072,
6518
6723
  } satisfies Model<"openai-completions">,
6724
+ "glm-5.1": {
6725
+ id: "glm-5.1",
6726
+ name: "GLM-5.1",
6727
+ api: "openai-completions",
6728
+ provider: "opencode-go",
6729
+ baseUrl: "https://opencode.ai/zen/go/v1",
6730
+ reasoning: true,
6731
+ input: ["text"],
6732
+ cost: {
6733
+ input: 1.4,
6734
+ output: 4.4,
6735
+ cacheRead: 0.26,
6736
+ cacheWrite: 0,
6737
+ },
6738
+ contextWindow: 204800,
6739
+ maxTokens: 131072,
6740
+ } satisfies Model<"openai-completions">,
6519
6741
  "kimi-k2.5": {
6520
6742
  id: "kimi-k2.5",
6521
6743
  name: "Kimi K2.5",
@@ -6533,6 +6755,40 @@ export const MODELS = {
6533
6755
  contextWindow: 262144,
6534
6756
  maxTokens: 65536,
6535
6757
  } satisfies Model<"openai-completions">,
6758
+ "mimo-v2-omni": {
6759
+ id: "mimo-v2-omni",
6760
+ name: "MiMo V2 Omni",
6761
+ api: "openai-completions",
6762
+ provider: "opencode-go",
6763
+ baseUrl: "https://opencode.ai/zen/go/v1",
6764
+ reasoning: true,
6765
+ input: ["text", "image"],
6766
+ cost: {
6767
+ input: 0.4,
6768
+ output: 2,
6769
+ cacheRead: 0.08,
6770
+ cacheWrite: 0,
6771
+ },
6772
+ contextWindow: 262144,
6773
+ maxTokens: 64000,
6774
+ } satisfies Model<"openai-completions">,
6775
+ "mimo-v2-pro": {
6776
+ id: "mimo-v2-pro",
6777
+ name: "MiMo V2 Pro",
6778
+ api: "openai-completions",
6779
+ provider: "opencode-go",
6780
+ baseUrl: "https://opencode.ai/zen/go/v1",
6781
+ reasoning: true,
6782
+ input: ["text"],
6783
+ cost: {
6784
+ input: 1,
6785
+ output: 3,
6786
+ cacheRead: 0.2,
6787
+ cacheWrite: 0,
6788
+ },
6789
+ contextWindow: 1048576,
6790
+ maxTokens: 64000,
6791
+ } satisfies Model<"openai-completions">,
6536
6792
  "minimax-m2.5": {
6537
6793
  id: "minimax-m2.5",
6538
6794
  name: "MiniMax M2.5",
@@ -6739,23 +6995,6 @@ export const MODELS = {
6739
6995
  contextWindow: 200000,
6740
6996
  maxTokens: 8192,
6741
6997
  } satisfies Model<"openai-completions">,
6742
- "anthropic/claude-3.5-sonnet": {
6743
- id: "anthropic/claude-3.5-sonnet",
6744
- name: "Anthropic: Claude 3.5 Sonnet",
6745
- api: "openai-completions",
6746
- provider: "openrouter",
6747
- baseUrl: "https://openrouter.ai/api/v1",
6748
- reasoning: false,
6749
- input: ["text", "image"],
6750
- cost: {
6751
- input: 6,
6752
- output: 30,
6753
- cacheRead: 0.6,
6754
- cacheWrite: 7.5,
6755
- },
6756
- contextWindow: 200000,
6757
- maxTokens: 8192,
6758
- } satisfies Model<"openai-completions">,
6759
6998
  "anthropic/claude-3.7-sonnet": {
6760
6999
  id: "anthropic/claude-3.7-sonnet",
6761
7000
  name: "Anthropic: Claude 3.7 Sonnet",
@@ -6771,7 +7010,7 @@ export const MODELS = {
6771
7010
  cacheWrite: 3.75,
6772
7011
  },
6773
7012
  contextWindow: 200000,
6774
- maxTokens: 64000,
7013
+ maxTokens: 128000,
6775
7014
  } satisfies Model<"openai-completions">,
6776
7015
  "anthropic/claude-3.7-sonnet:thinking": {
6777
7016
  id: "anthropic/claude-3.7-sonnet:thinking",
@@ -6875,6 +7114,23 @@ export const MODELS = {
6875
7114
  contextWindow: 1000000,
6876
7115
  maxTokens: 128000,
6877
7116
  } satisfies Model<"openai-completions">,
7117
+ "anthropic/claude-opus-4.6-fast": {
7118
+ id: "anthropic/claude-opus-4.6-fast",
7119
+ name: "Anthropic: Claude Opus 4.6 (Fast)",
7120
+ api: "openai-completions",
7121
+ provider: "openrouter",
7122
+ baseUrl: "https://openrouter.ai/api/v1",
7123
+ reasoning: true,
7124
+ input: ["text", "image"],
7125
+ cost: {
7126
+ input: 30,
7127
+ output: 150,
7128
+ cacheRead: 3,
7129
+ cacheWrite: 37.5,
7130
+ },
7131
+ contextWindow: 1000000,
7132
+ maxTokens: 128000,
7133
+ } satisfies Model<"openai-completions">,
6878
7134
  "anthropic/claude-sonnet-4": {
6879
7135
  id: "anthropic/claude-sonnet-4",
6880
7136
  name: "Anthropic: Claude Sonnet 4",
@@ -6889,7 +7145,7 @@ export const MODELS = {
6889
7145
  cacheRead: 0.3,
6890
7146
  cacheWrite: 3.75,
6891
7147
  },
6892
- contextWindow: 200000,
7148
+ contextWindow: 1000000,
6893
7149
  maxTokens: 64000,
6894
7150
  } satisfies Model<"openai-completions">,
6895
7151
  "anthropic/claude-sonnet-4.5": {
@@ -6943,39 +7199,39 @@ export const MODELS = {
6943
7199
  contextWindow: 131000,
6944
7200
  maxTokens: 4096,
6945
7201
  } satisfies Model<"openai-completions">,
6946
- "arcee-ai/trinity-mini": {
6947
- id: "arcee-ai/trinity-mini",
6948
- name: "Arcee AI: Trinity Mini",
7202
+ "arcee-ai/trinity-large-thinking": {
7203
+ id: "arcee-ai/trinity-large-thinking",
7204
+ name: "Arcee AI: Trinity Large Thinking",
6949
7205
  api: "openai-completions",
6950
7206
  provider: "openrouter",
6951
7207
  baseUrl: "https://openrouter.ai/api/v1",
6952
7208
  reasoning: true,
6953
7209
  input: ["text"],
6954
7210
  cost: {
6955
- input: 0.045,
6956
- output: 0.15,
7211
+ input: 0.22,
7212
+ output: 0.85,
6957
7213
  cacheRead: 0,
6958
7214
  cacheWrite: 0,
6959
7215
  },
6960
- contextWindow: 131072,
6961
- maxTokens: 131072,
7216
+ contextWindow: 262144,
7217
+ maxTokens: 262144,
6962
7218
  } satisfies Model<"openai-completions">,
6963
- "arcee-ai/trinity-mini:free": {
6964
- id: "arcee-ai/trinity-mini:free",
6965
- name: "Arcee AI: Trinity Mini (free)",
7219
+ "arcee-ai/trinity-mini": {
7220
+ id: "arcee-ai/trinity-mini",
7221
+ name: "Arcee AI: Trinity Mini",
6966
7222
  api: "openai-completions",
6967
7223
  provider: "openrouter",
6968
7224
  baseUrl: "https://openrouter.ai/api/v1",
6969
7225
  reasoning: true,
6970
7226
  input: ["text"],
6971
7227
  cost: {
6972
- input: 0,
6973
- output: 0,
7228
+ input: 0.045,
7229
+ output: 0.15,
6974
7230
  cacheRead: 0,
6975
7231
  cacheWrite: 0,
6976
7232
  },
6977
7233
  contextWindow: 131072,
6978
- maxTokens: 4096,
7234
+ maxTokens: 131072,
6979
7235
  } satisfies Model<"openai-completions">,
6980
7236
  "arcee-ai/virtuoso-large": {
6981
7237
  id: "arcee-ai/virtuoso-large",
@@ -7224,13 +7480,13 @@ export const MODELS = {
7224
7480
  reasoning: true,
7225
7481
  input: ["text"],
7226
7482
  cost: {
7227
- input: 0.44999999999999996,
7483
+ input: 0.5,
7228
7484
  output: 2.1500000000000004,
7229
- cacheRead: 0.22499999999999998,
7485
+ cacheRead: 0.35,
7230
7486
  cacheWrite: 0,
7231
7487
  },
7232
7488
  contextWindow: 163840,
7233
- maxTokens: 65536,
7489
+ maxTokens: 4096,
7234
7490
  } satisfies Model<"openai-completions">,
7235
7491
  "deepseek/deepseek-v3.1-terminus": {
7236
7492
  id: "deepseek/deepseek-v3.1-terminus",
@@ -7383,7 +7639,7 @@ export const MODELS = {
7383
7639
  cacheWrite: 0.08333333333333334,
7384
7640
  },
7385
7641
  contextWindow: 1048576,
7386
- maxTokens: 65536,
7642
+ maxTokens: 65535,
7387
7643
  } satisfies Model<"openai-completions">,
7388
7644
  "google/gemini-2.5-pro": {
7389
7645
  id: "google/gemini-2.5-pro",
@@ -7453,23 +7709,6 @@ export const MODELS = {
7453
7709
  contextWindow: 1048576,
7454
7710
  maxTokens: 65536,
7455
7711
  } satisfies Model<"openai-completions">,
7456
- "google/gemini-3-pro-preview": {
7457
- id: "google/gemini-3-pro-preview",
7458
- name: "Google: Gemini 3 Pro Preview",
7459
- api: "openai-completions",
7460
- provider: "openrouter",
7461
- baseUrl: "https://openrouter.ai/api/v1",
7462
- reasoning: true,
7463
- input: ["text", "image"],
7464
- cost: {
7465
- input: 2,
7466
- output: 12,
7467
- cacheRead: 0.19999999999999998,
7468
- cacheWrite: 0.375,
7469
- },
7470
- contextWindow: 1048576,
7471
- maxTokens: 65536,
7472
- } satisfies Model<"openai-completions">,
7473
7712
  "google/gemini-3.1-flash-lite-preview": {
7474
7713
  id: "google/gemini-3.1-flash-lite-preview",
7475
7714
  name: "Google: Gemini 3.1 Flash Lite Preview",
@@ -7521,6 +7760,74 @@ export const MODELS = {
7521
7760
  contextWindow: 1048576,
7522
7761
  maxTokens: 65536,
7523
7762
  } satisfies Model<"openai-completions">,
7763
+ "google/gemma-4-26b-a4b-it": {
7764
+ id: "google/gemma-4-26b-a4b-it",
7765
+ name: "Google: Gemma 4 26B A4B ",
7766
+ api: "openai-completions",
7767
+ provider: "openrouter",
7768
+ baseUrl: "https://openrouter.ai/api/v1",
7769
+ reasoning: true,
7770
+ input: ["text", "image"],
7771
+ cost: {
7772
+ input: 0.12,
7773
+ output: 0.39999999999999997,
7774
+ cacheRead: 0,
7775
+ cacheWrite: 0,
7776
+ },
7777
+ contextWindow: 262144,
7778
+ maxTokens: 262144,
7779
+ } satisfies Model<"openai-completions">,
7780
+ "google/gemma-4-26b-a4b-it:free": {
7781
+ id: "google/gemma-4-26b-a4b-it:free",
7782
+ name: "Google: Gemma 4 26B A4B (free)",
7783
+ api: "openai-completions",
7784
+ provider: "openrouter",
7785
+ baseUrl: "https://openrouter.ai/api/v1",
7786
+ reasoning: true,
7787
+ input: ["text", "image"],
7788
+ cost: {
7789
+ input: 0,
7790
+ output: 0,
7791
+ cacheRead: 0,
7792
+ cacheWrite: 0,
7793
+ },
7794
+ contextWindow: 262144,
7795
+ maxTokens: 32768,
7796
+ } satisfies Model<"openai-completions">,
7797
+ "google/gemma-4-31b-it": {
7798
+ id: "google/gemma-4-31b-it",
7799
+ name: "Google: Gemma 4 31B",
7800
+ api: "openai-completions",
7801
+ provider: "openrouter",
7802
+ baseUrl: "https://openrouter.ai/api/v1",
7803
+ reasoning: true,
7804
+ input: ["text", "image"],
7805
+ cost: {
7806
+ input: 0.14,
7807
+ output: 0.39999999999999997,
7808
+ cacheRead: 0,
7809
+ cacheWrite: 0,
7810
+ },
7811
+ contextWindow: 262144,
7812
+ maxTokens: 131072,
7813
+ } satisfies Model<"openai-completions">,
7814
+ "google/gemma-4-31b-it:free": {
7815
+ id: "google/gemma-4-31b-it:free",
7816
+ name: "Google: Gemma 4 31B (free)",
7817
+ api: "openai-completions",
7818
+ provider: "openrouter",
7819
+ baseUrl: "https://openrouter.ai/api/v1",
7820
+ reasoning: true,
7821
+ input: ["text", "image"],
7822
+ cost: {
7823
+ input: 0,
7824
+ output: 0,
7825
+ cacheRead: 0,
7826
+ cacheWrite: 0,
7827
+ },
7828
+ contextWindow: 262144,
7829
+ maxTokens: 32768,
7830
+ } satisfies Model<"openai-completions">,
7524
7831
  "inception/mercury": {
7525
7832
  id: "inception/mercury",
7526
7833
  name: "Inception: Mercury",
@@ -7572,22 +7879,22 @@ export const MODELS = {
7572
7879
  contextWindow: 128000,
7573
7880
  maxTokens: 32000,
7574
7881
  } satisfies Model<"openai-completions">,
7575
- "kwaipilot/kat-coder-pro": {
7576
- id: "kwaipilot/kat-coder-pro",
7577
- name: "Kwaipilot: KAT-Coder-Pro V1",
7882
+ "kwaipilot/kat-coder-pro-v2": {
7883
+ id: "kwaipilot/kat-coder-pro-v2",
7884
+ name: "Kwaipilot: KAT-Coder-Pro V2",
7578
7885
  api: "openai-completions",
7579
7886
  provider: "openrouter",
7580
7887
  baseUrl: "https://openrouter.ai/api/v1",
7581
7888
  reasoning: false,
7582
7889
  input: ["text"],
7583
7890
  cost: {
7584
- input: 0.207,
7585
- output: 0.828,
7586
- cacheRead: 0.0414,
7891
+ input: 0.3,
7892
+ output: 1.2,
7893
+ cacheRead: 0.06,
7587
7894
  cacheWrite: 0,
7588
7895
  },
7589
7896
  contextWindow: 256000,
7590
- maxTokens: 128000,
7897
+ maxTokens: 80000,
7591
7898
  } satisfies Model<"openai-completions">,
7592
7899
  "meituan/longcat-flash-chat": {
7593
7900
  id: "meituan/longcat-flash-chat",
@@ -7768,13 +8075,13 @@ export const MODELS = {
7768
8075
  reasoning: true,
7769
8076
  input: ["text"],
7770
8077
  cost: {
7771
- input: 0.27,
8078
+ input: 0.29,
7772
8079
  output: 0.95,
7773
- cacheRead: 0.0290000007,
8080
+ cacheRead: 0.03,
7774
8081
  cacheWrite: 0,
7775
8082
  },
7776
8083
  contextWindow: 196608,
7777
- maxTokens: 4096,
8084
+ maxTokens: 196608,
7778
8085
  } satisfies Model<"openai-completions">,
7779
8086
  "minimax/minimax-m2.5": {
7780
8087
  id: "minimax/minimax-m2.5",
@@ -7785,9 +8092,9 @@ export const MODELS = {
7785
8092
  reasoning: true,
7786
8093
  input: ["text"],
7787
8094
  cost: {
7788
- input: 0.19999999999999998,
7789
- output: 1.17,
7790
- cacheRead: 0.09999999999999999,
8095
+ input: 0.118,
8096
+ output: 0.9900000000000001,
8097
+ cacheRead: 0.059,
7791
8098
  cacheWrite: 0,
7792
8099
  },
7793
8100
  contextWindow: 196608,
@@ -7808,7 +8115,7 @@ export const MODELS = {
7808
8115
  cacheWrite: 0,
7809
8116
  },
7810
8117
  contextWindow: 196608,
7811
- maxTokens: 196608,
8118
+ maxTokens: 8192,
7812
8119
  } satisfies Model<"openai-completions">,
7813
8120
  "minimax/minimax-m2.7": {
7814
8121
  id: "minimax/minimax-m2.7",
@@ -7821,11 +8128,11 @@ export const MODELS = {
7821
8128
  cost: {
7822
8129
  input: 0.3,
7823
8130
  output: 1.2,
7824
- cacheRead: 0.06,
8131
+ cacheRead: 0.059,
7825
8132
  cacheWrite: 0,
7826
8133
  },
7827
- contextWindow: 204800,
7828
- maxTokens: 131072,
8134
+ contextWindow: 196608,
8135
+ maxTokens: 4096,
7829
8136
  } satisfies Model<"openai-completions">,
7830
8137
  "mistralai/codestral-2508": {
7831
8138
  id: "mistralai/codestral-2508",
@@ -8082,23 +8389,6 @@ export const MODELS = {
8082
8389
  contextWindow: 32768,
8083
8390
  maxTokens: 4096,
8084
8391
  } satisfies Model<"openai-completions">,
8085
- "mistralai/mistral-small-24b-instruct-2501": {
8086
- id: "mistralai/mistral-small-24b-instruct-2501",
8087
- name: "Mistral: Mistral Small 3",
8088
- api: "openai-completions",
8089
- provider: "openrouter",
8090
- baseUrl: "https://openrouter.ai/api/v1",
8091
- reasoning: false,
8092
- input: ["text"],
8093
- cost: {
8094
- input: 0.049999999999999996,
8095
- output: 0.08,
8096
- cacheRead: 0,
8097
- cacheWrite: 0,
8098
- },
8099
- contextWindow: 32768,
8100
- maxTokens: 16384,
8101
- } satisfies Model<"openai-completions">,
8102
8392
  "mistralai/mistral-small-2603": {
8103
8393
  id: "mistralai/mistral-small-2603",
8104
8394
  name: "Mistral: Mistral Small 4",
@@ -8116,23 +8406,6 @@ export const MODELS = {
8116
8406
  contextWindow: 262144,
8117
8407
  maxTokens: 4096,
8118
8408
  } satisfies Model<"openai-completions">,
8119
- "mistralai/mistral-small-3.1-24b-instruct:free": {
8120
- id: "mistralai/mistral-small-3.1-24b-instruct:free",
8121
- name: "Mistral: Mistral Small 3.1 24B (free)",
8122
- api: "openai-completions",
8123
- provider: "openrouter",
8124
- baseUrl: "https://openrouter.ai/api/v1",
8125
- reasoning: false,
8126
- input: ["text", "image"],
8127
- cost: {
8128
- input: 0,
8129
- output: 0,
8130
- cacheRead: 0,
8131
- cacheWrite: 0,
8132
- },
8133
- contextWindow: 128000,
8134
- maxTokens: 4096,
8135
- } satisfies Model<"openai-completions">,
8136
8409
  "mistralai/mistral-small-3.2-24b-instruct": {
8137
8410
  id: "mistralai/mistral-small-3.2-24b-instruct",
8138
8411
  name: "Mistral: Mistral Small 3.2 24B",
@@ -8244,13 +8517,13 @@ export const MODELS = {
8244
8517
  reasoning: false,
8245
8518
  input: ["text"],
8246
8519
  cost: {
8247
- input: 0.55,
8248
- output: 2.2,
8520
+ input: 0.5700000000000001,
8521
+ output: 2.3,
8249
8522
  cacheRead: 0,
8250
8523
  cacheWrite: 0,
8251
8524
  },
8252
- contextWindow: 131000,
8253
- maxTokens: 4096,
8525
+ contextWindow: 131072,
8526
+ maxTokens: 131072,
8254
8527
  } satisfies Model<"openai-completions">,
8255
8528
  "moonshotai/kimi-k2-0905": {
8256
8529
  id: "moonshotai/kimi-k2-0905",
@@ -8263,11 +8536,11 @@ export const MODELS = {
8263
8536
  cost: {
8264
8537
  input: 0.39999999999999997,
8265
8538
  output: 2,
8266
- cacheRead: 0.15,
8539
+ cacheRead: 0,
8267
8540
  cacheWrite: 0,
8268
8541
  },
8269
- contextWindow: 131072,
8270
- maxTokens: 4096,
8542
+ contextWindow: 262144,
8543
+ maxTokens: 262144,
8271
8544
  } satisfies Model<"openai-completions">,
8272
8545
  "moonshotai/kimi-k2-thinking": {
8273
8546
  id: "moonshotai/kimi-k2-thinking",
@@ -8278,12 +8551,12 @@ export const MODELS = {
8278
8551
  reasoning: true,
8279
8552
  input: ["text"],
8280
8553
  cost: {
8281
- input: 0.47,
8282
- output: 2,
8283
- cacheRead: 0.14100000000000001,
8554
+ input: 0.6,
8555
+ output: 2.5,
8556
+ cacheRead: 0,
8284
8557
  cacheWrite: 0,
8285
8558
  },
8286
- contextWindow: 131072,
8559
+ contextWindow: 262144,
8287
8560
  maxTokens: 4096,
8288
8561
  } satisfies Model<"openai-completions">,
8289
8562
  "moonshotai/kimi-k2.5": {
@@ -8312,8 +8585,8 @@ export const MODELS = {
8312
8585
  reasoning: false,
8313
8586
  input: ["text"],
8314
8587
  cost: {
8315
- input: 0.27,
8316
- output: 1,
8588
+ input: 0.135,
8589
+ output: 0.5,
8317
8590
  cacheRead: 0,
8318
8591
  cacheWrite: 0,
8319
8592
  },
@@ -8399,7 +8672,7 @@ export const MODELS = {
8399
8672
  cost: {
8400
8673
  input: 0.09999999999999999,
8401
8674
  output: 0.5,
8402
- cacheRead: 0.04,
8675
+ cacheRead: 0.09999999999999999,
8403
8676
  cacheWrite: 0,
8404
8677
  },
8405
8678
  contextWindow: 262144,
@@ -8624,7 +8897,7 @@ export const MODELS = {
8624
8897
  cacheWrite: 0,
8625
8898
  },
8626
8899
  contextWindow: 1047576,
8627
- maxTokens: 32768,
8900
+ maxTokens: 4096,
8628
8901
  } satisfies Model<"openai-completions">,
8629
8902
  "openai/gpt-4.1-mini": {
8630
8903
  id: "openai/gpt-4.1-mini",
@@ -8671,7 +8944,7 @@ export const MODELS = {
8671
8944
  cost: {
8672
8945
  input: 2.5,
8673
8946
  output: 10,
8674
- cacheRead: 1.25,
8947
+ cacheRead: 0,
8675
8948
  cacheWrite: 0,
8676
8949
  },
8677
8950
  contextWindow: 128000,
@@ -8892,11 +9165,11 @@ export const MODELS = {
8892
9165
  cost: {
8893
9166
  input: 0.049999999999999996,
8894
9167
  output: 0.39999999999999997,
8895
- cacheRead: 0.005,
9168
+ cacheRead: 0.01,
8896
9169
  cacheWrite: 0,
8897
9170
  },
8898
9171
  contextWindow: 400000,
8899
- maxTokens: 128000,
9172
+ maxTokens: 4096,
8900
9173
  } satisfies Model<"openai-completions">,
8901
9174
  "openai/gpt-5-pro": {
8902
9175
  id: "openai/gpt-5-pro",
@@ -8926,7 +9199,7 @@ export const MODELS = {
8926
9199
  cost: {
8927
9200
  input: 1.25,
8928
9201
  output: 10,
8929
- cacheRead: 0.125,
9202
+ cacheRead: 0.13,
8930
9203
  cacheWrite: 0,
8931
9204
  },
8932
9205
  contextWindow: 400000,
@@ -8994,11 +9267,11 @@ export const MODELS = {
8994
9267
  cost: {
8995
9268
  input: 0.25,
8996
9269
  output: 2,
8997
- cacheRead: 0.024999999999999998,
9270
+ cacheRead: 0.03,
8998
9271
  cacheWrite: 0,
8999
9272
  },
9000
9273
  contextWindow: 400000,
9001
- maxTokens: 100000,
9274
+ maxTokens: 128000,
9002
9275
  } satisfies Model<"openai-completions">,
9003
9276
  "openai/gpt-5.2": {
9004
9277
  id: "openai/gpt-5.2",
@@ -9032,7 +9305,7 @@ export const MODELS = {
9032
9305
  cacheWrite: 0,
9033
9306
  },
9034
9307
  contextWindow: 128000,
9035
- maxTokens: 16384,
9308
+ maxTokens: 32000,
9036
9309
  } satisfies Model<"openai-completions">,
9037
9310
  "openai/gpt-5.2-codex": {
9038
9311
  id: "openai/gpt-5.2-codex",
@@ -9170,6 +9443,40 @@ export const MODELS = {
9170
9443
  contextWindow: 1050000,
9171
9444
  maxTokens: 128000,
9172
9445
  } satisfies Model<"openai-completions">,
9446
+ "openai/gpt-audio": {
9447
+ id: "openai/gpt-audio",
9448
+ name: "OpenAI: GPT Audio",
9449
+ api: "openai-completions",
9450
+ provider: "openrouter",
9451
+ baseUrl: "https://openrouter.ai/api/v1",
9452
+ reasoning: false,
9453
+ input: ["text"],
9454
+ cost: {
9455
+ input: 2.5,
9456
+ output: 10,
9457
+ cacheRead: 0,
9458
+ cacheWrite: 0,
9459
+ },
9460
+ contextWindow: 128000,
9461
+ maxTokens: 16384,
9462
+ } satisfies Model<"openai-completions">,
9463
+ "openai/gpt-audio-mini": {
9464
+ id: "openai/gpt-audio-mini",
9465
+ name: "OpenAI: GPT Audio Mini",
9466
+ api: "openai-completions",
9467
+ provider: "openrouter",
9468
+ baseUrl: "https://openrouter.ai/api/v1",
9469
+ reasoning: false,
9470
+ input: ["text"],
9471
+ cost: {
9472
+ input: 0.6,
9473
+ output: 2.4,
9474
+ cacheRead: 0,
9475
+ cacheWrite: 0,
9476
+ },
9477
+ contextWindow: 128000,
9478
+ maxTokens: 16384,
9479
+ } satisfies Model<"openai-completions">,
9173
9480
  "openai/gpt-oss-120b": {
9174
9481
  id: "openai/gpt-oss-120b",
9175
9482
  name: "OpenAI: gpt-oss-120b",
@@ -9214,12 +9521,12 @@ export const MODELS = {
9214
9521
  input: ["text"],
9215
9522
  cost: {
9216
9523
  input: 0.03,
9217
- output: 0.11,
9218
- cacheRead: 0.015,
9524
+ output: 0.14,
9525
+ cacheRead: 0,
9219
9526
  cacheWrite: 0,
9220
9527
  },
9221
9528
  contextWindow: 131072,
9222
- maxTokens: 131072,
9529
+ maxTokens: 4096,
9223
9530
  } satisfies Model<"openai-completions">,
9224
9531
  "openai/gpt-oss-20b:free": {
9225
9532
  id: "openai/gpt-oss-20b:free",
@@ -9236,7 +9543,7 @@ export const MODELS = {
9236
9543
  cacheWrite: 0,
9237
9544
  },
9238
9545
  contextWindow: 131072,
9239
- maxTokens: 131072,
9546
+ maxTokens: 8192,
9240
9547
  } satisfies Model<"openai-completions">,
9241
9548
  "openai/gpt-oss-safeguard-20b": {
9242
9549
  id: "openai/gpt-oss-safeguard-20b",
@@ -9491,7 +9798,7 @@ export const MODELS = {
9491
9798
  cacheWrite: 0,
9492
9799
  },
9493
9800
  contextWindow: 32768,
9494
- maxTokens: 4096,
9801
+ maxTokens: 32768,
9495
9802
  } satisfies Model<"openai-completions">,
9496
9803
  "qwen/qwen-max": {
9497
9804
  id: "qwen/qwen-max",
@@ -9731,23 +10038,6 @@ export const MODELS = {
9731
10038
  contextWindow: 40960,
9732
10039
  maxTokens: 40960,
9733
10040
  } satisfies Model<"openai-completions">,
9734
- "qwen/qwen3-4b:free": {
9735
- id: "qwen/qwen3-4b:free",
9736
- name: "Qwen: Qwen3 4B (free)",
9737
- api: "openai-completions",
9738
- provider: "openrouter",
9739
- baseUrl: "https://openrouter.ai/api/v1",
9740
- reasoning: true,
9741
- input: ["text"],
9742
- cost: {
9743
- input: 0,
9744
- output: 0,
9745
- cacheRead: 0,
9746
- cacheWrite: 0,
9747
- },
9748
- contextWindow: 40960,
9749
- maxTokens: 4096,
9750
- } satisfies Model<"openai-completions">,
9751
10041
  "qwen/qwen3-8b": {
9752
10042
  id: "qwen/qwen3-8b",
9753
10043
  name: "Qwen: Qwen3 8B",
@@ -9825,13 +10115,13 @@ export const MODELS = {
9825
10115
  reasoning: false,
9826
10116
  input: ["text"],
9827
10117
  cost: {
9828
- input: 0.12,
9829
- output: 0.75,
9830
- cacheRead: 0.06,
10118
+ input: 0.15,
10119
+ output: 0.7999999999999999,
10120
+ cacheRead: 0.12,
9831
10121
  cacheWrite: 0,
9832
10122
  },
9833
10123
  contextWindow: 262144,
9834
- maxTokens: 65536,
10124
+ maxTokens: 262144,
9835
10125
  } satisfies Model<"openai-completions">,
9836
10126
  "qwen/qwen3-coder-plus": {
9837
10127
  id: "qwen/qwen3-coder-plus",
@@ -10154,7 +10444,7 @@ export const MODELS = {
10154
10444
  cacheWrite: 0,
10155
10445
  },
10156
10446
  contextWindow: 256000,
10157
- maxTokens: 4096,
10447
+ maxTokens: 32768,
10158
10448
  } satisfies Model<"openai-completions">,
10159
10449
  "qwen/qwen3.5-flash-02-23": {
10160
10450
  id: "qwen/qwen3.5-flash-02-23",
@@ -10190,6 +10480,23 @@ export const MODELS = {
10190
10480
  contextWindow: 1000000,
10191
10481
  maxTokens: 65536,
10192
10482
  } satisfies Model<"openai-completions">,
10483
+ "qwen/qwen3.6-plus": {
10484
+ id: "qwen/qwen3.6-plus",
10485
+ name: "Qwen: Qwen3.6 Plus",
10486
+ api: "openai-completions",
10487
+ provider: "openrouter",
10488
+ baseUrl: "https://openrouter.ai/api/v1",
10489
+ reasoning: true,
10490
+ input: ["text", "image"],
10491
+ cost: {
10492
+ input: 0.325,
10493
+ output: 1.95,
10494
+ cacheRead: 0,
10495
+ cacheWrite: 0,
10496
+ },
10497
+ contextWindow: 1000000,
10498
+ maxTokens: 65536,
10499
+ } satisfies Model<"openai-completions">,
10193
10500
  "qwen/qwq-32b": {
10194
10501
  id: "qwen/qwq-32b",
10195
10502
  name: "Qwen: QwQ 32B",
@@ -10207,6 +10514,23 @@ export const MODELS = {
10207
10514
  contextWindow: 131072,
10208
10515
  maxTokens: 131072,
10209
10516
  } satisfies Model<"openai-completions">,
10517
+ "rekaai/reka-edge": {
10518
+ id: "rekaai/reka-edge",
10519
+ name: "Reka Edge",
10520
+ api: "openai-completions",
10521
+ provider: "openrouter",
10522
+ baseUrl: "https://openrouter.ai/api/v1",
10523
+ reasoning: false,
10524
+ input: ["text", "image"],
10525
+ cost: {
10526
+ input: 0.09999999999999999,
10527
+ output: 0.09999999999999999,
10528
+ cacheRead: 0,
10529
+ cacheWrite: 0,
10530
+ },
10531
+ contextWindow: 16384,
10532
+ maxTokens: 16384,
10533
+ } satisfies Model<"openai-completions">,
10210
10534
  "relace/relace-search": {
10211
10535
  id: "relace/relace-search",
10212
10536
  name: "Relace: Relace Search",
@@ -10269,28 +10593,11 @@ export const MODELS = {
10269
10593
  cost: {
10270
10594
  input: 0.09999999999999999,
10271
10595
  output: 0.3,
10272
- cacheRead: 0.02,
10273
- cacheWrite: 0,
10274
- },
10275
- contextWindow: 256000,
10276
- maxTokens: 256000,
10277
- } satisfies Model<"openai-completions">,
10278
- "stepfun/step-3.5-flash:free": {
10279
- id: "stepfun/step-3.5-flash:free",
10280
- name: "StepFun: Step 3.5 Flash (free)",
10281
- api: "openai-completions",
10282
- provider: "openrouter",
10283
- baseUrl: "https://openrouter.ai/api/v1",
10284
- reasoning: true,
10285
- input: ["text"],
10286
- cost: {
10287
- input: 0,
10288
- output: 0,
10289
10596
  cacheRead: 0,
10290
10597
  cacheWrite: 0,
10291
10598
  },
10292
- contextWindow: 256000,
10293
- maxTokens: 256000,
10599
+ contextWindow: 262144,
10600
+ maxTokens: 65536,
10294
10601
  } satisfies Model<"openai-completions">,
10295
10602
  "thedrummer/rocinante-12b": {
10296
10603
  id: "thedrummer/rocinante-12b",
@@ -10479,9 +10786,9 @@ export const MODELS = {
10479
10786
  contextWindow: 2000000,
10480
10787
  maxTokens: 30000,
10481
10788
  } satisfies Model<"openai-completions">,
10482
- "x-ai/grok-4.20-beta": {
10483
- id: "x-ai/grok-4.20-beta",
10484
- name: "xAI: Grok 4.20 Beta",
10789
+ "x-ai/grok-4.20": {
10790
+ id: "x-ai/grok-4.20",
10791
+ name: "xAI: Grok 4.20",
10485
10792
  api: "openai-completions",
10486
10793
  provider: "openrouter",
10487
10794
  baseUrl: "https://openrouter.ai/api/v1",
@@ -10743,9 +11050,43 @@ export const MODELS = {
10743
11050
  reasoning: true,
10744
11051
  input: ["text"],
10745
11052
  cost: {
10746
- input: 0.96,
10747
- output: 3.1999999999999997,
10748
- cacheRead: 0.192,
11053
+ input: 1.2,
11054
+ output: 4,
11055
+ cacheRead: 0.24,
11056
+ cacheWrite: 0,
11057
+ },
11058
+ contextWindow: 202752,
11059
+ maxTokens: 131072,
11060
+ } satisfies Model<"openai-completions">,
11061
+ "z-ai/glm-5.1": {
11062
+ id: "z-ai/glm-5.1",
11063
+ name: "Z.ai: GLM 5.1",
11064
+ api: "openai-completions",
11065
+ provider: "openrouter",
11066
+ baseUrl: "https://openrouter.ai/api/v1",
11067
+ reasoning: true,
11068
+ input: ["text"],
11069
+ cost: {
11070
+ input: 0.95,
11071
+ output: 3.15,
11072
+ cacheRead: 0.475,
11073
+ cacheWrite: 0,
11074
+ },
11075
+ contextWindow: 202752,
11076
+ maxTokens: 65535,
11077
+ } satisfies Model<"openai-completions">,
11078
+ "z-ai/glm-5v-turbo": {
11079
+ id: "z-ai/glm-5v-turbo",
11080
+ name: "Z.ai: GLM 5V Turbo",
11081
+ api: "openai-completions",
11082
+ provider: "openrouter",
11083
+ baseUrl: "https://openrouter.ai/api/v1",
11084
+ reasoning: true,
11085
+ input: ["text", "image"],
11086
+ cost: {
11087
+ input: 1.2,
11088
+ output: 4,
11089
+ cacheRead: 0.24,
10749
11090
  cacheWrite: 0,
10750
11091
  },
10751
11092
  contextWindow: 202752,
@@ -10772,20 +11113,20 @@ export const MODELS = {
10772
11113
  } satisfies Model<"anthropic-messages">,
10773
11114
  "alibaba/qwen-3-235b": {
10774
11115
  id: "alibaba/qwen-3-235b",
10775
- name: "Qwen3-235B-A22B",
11116
+ name: "Qwen3 235B A22b Instruct 2507",
10776
11117
  api: "anthropic-messages",
10777
11118
  provider: "vercel-ai-gateway",
10778
11119
  baseUrl: "https://ai-gateway.vercel.sh",
10779
11120
  reasoning: false,
10780
11121
  input: ["text"],
10781
11122
  cost: {
10782
- input: 0.071,
10783
- output: 0.463,
10784
- cacheRead: 0,
11123
+ input: 0.6,
11124
+ output: 1.2,
11125
+ cacheRead: 0.6,
10785
11126
  cacheWrite: 0,
10786
11127
  },
10787
- contextWindow: 40960,
10788
- maxTokens: 16384,
11128
+ contextWindow: 131000,
11129
+ maxTokens: 40000,
10789
11130
  } satisfies Model<"anthropic-messages">,
10790
11131
  "alibaba/qwen-3-30b": {
10791
11132
  id: "alibaba/qwen-3-30b",
@@ -10813,13 +11154,13 @@ export const MODELS = {
10813
11154
  reasoning: true,
10814
11155
  input: ["text"],
10815
11156
  cost: {
10816
- input: 0.29,
10817
- output: 0.59,
10818
- cacheRead: 0.145,
11157
+ input: 0.16,
11158
+ output: 0.64,
11159
+ cacheRead: 0,
10819
11160
  cacheWrite: 0,
10820
11161
  },
10821
- contextWindow: 131072,
10822
- maxTokens: 40960,
11162
+ contextWindow: 128000,
11163
+ maxTokens: 8192,
10823
11164
  } satisfies Model<"anthropic-messages">,
10824
11165
  "alibaba/qwen3-235b-a22b-thinking": {
10825
11166
  id: "alibaba/qwen3-235b-a22b-thinking",
@@ -10847,13 +11188,13 @@ export const MODELS = {
10847
11188
  reasoning: false,
10848
11189
  input: ["text"],
10849
11190
  cost: {
10850
- input: 0.39999999999999997,
10851
- output: 1.5999999999999999,
10852
- cacheRead: 0.022,
11191
+ input: 1.5,
11192
+ output: 7.5,
11193
+ cacheRead: 0.3,
10853
11194
  cacheWrite: 0,
10854
11195
  },
10855
11196
  contextWindow: 262144,
10856
- maxTokens: 66536,
11197
+ maxTokens: 65536,
10857
11198
  } satisfies Model<"anthropic-messages">,
10858
11199
  "alibaba/qwen3-coder-30b-a3b": {
10859
11200
  id: "alibaba/qwen3-coder-30b-a3b",
@@ -10966,13 +11307,13 @@ export const MODELS = {
10966
11307
  reasoning: true,
10967
11308
  input: ["text", "image"],
10968
11309
  cost: {
10969
- input: 0.22,
10970
- output: 0.88,
11310
+ input: 0.39999999999999997,
11311
+ output: 4,
10971
11312
  cacheRead: 0,
10972
11313
  cacheWrite: 0,
10973
11314
  },
10974
- contextWindow: 256000,
10975
- maxTokens: 256000,
11315
+ contextWindow: 131072,
11316
+ maxTokens: 32768,
10976
11317
  } satisfies Model<"anthropic-messages">,
10977
11318
  "alibaba/qwen3.5-flash": {
10978
11319
  id: "alibaba/qwen3.5-flash",
@@ -11008,6 +11349,23 @@ export const MODELS = {
11008
11349
  contextWindow: 1000000,
11009
11350
  maxTokens: 64000,
11010
11351
  } satisfies Model<"anthropic-messages">,
11352
+ "alibaba/qwen3.6-plus": {
11353
+ id: "alibaba/qwen3.6-plus",
11354
+ name: "Qwen 3.6 Plus",
11355
+ api: "anthropic-messages",
11356
+ provider: "vercel-ai-gateway",
11357
+ baseUrl: "https://ai-gateway.vercel.sh",
11358
+ reasoning: true,
11359
+ input: ["text", "image"],
11360
+ cost: {
11361
+ input: 0.5,
11362
+ output: 3,
11363
+ cacheRead: 0.09999999999999999,
11364
+ cacheWrite: 0,
11365
+ },
11366
+ contextWindow: 1000000,
11367
+ maxTokens: 64000,
11368
+ } satisfies Model<"anthropic-messages">,
11011
11369
  "anthropic/claude-3-haiku": {
11012
11370
  id: "anthropic/claude-3-haiku",
11013
11371
  name: "Claude 3 Haiku",
@@ -11031,47 +11389,13 @@ export const MODELS = {
11031
11389
  api: "anthropic-messages",
11032
11390
  provider: "vercel-ai-gateway",
11033
11391
  baseUrl: "https://ai-gateway.vercel.sh",
11034
- reasoning: false,
11035
- input: ["text", "image"],
11036
- cost: {
11037
- input: 0.7999999999999999,
11038
- output: 4,
11039
- cacheRead: 0.08,
11040
- cacheWrite: 1,
11041
- },
11042
- contextWindow: 200000,
11043
- maxTokens: 8192,
11044
- } satisfies Model<"anthropic-messages">,
11045
- "anthropic/claude-3.5-sonnet": {
11046
- id: "anthropic/claude-3.5-sonnet",
11047
- name: "Claude 3.5 Sonnet",
11048
- api: "anthropic-messages",
11049
- provider: "vercel-ai-gateway",
11050
- baseUrl: "https://ai-gateway.vercel.sh",
11051
- reasoning: false,
11052
- input: ["text", "image"],
11053
- cost: {
11054
- input: 3,
11055
- output: 15,
11056
- cacheRead: 0.3,
11057
- cacheWrite: 3.75,
11058
- },
11059
- contextWindow: 200000,
11060
- maxTokens: 8192,
11061
- } satisfies Model<"anthropic-messages">,
11062
- "anthropic/claude-3.5-sonnet-20240620": {
11063
- id: "anthropic/claude-3.5-sonnet-20240620",
11064
- name: "Claude 3.5 Sonnet (2024-06-20)",
11065
- api: "anthropic-messages",
11066
- provider: "vercel-ai-gateway",
11067
- baseUrl: "https://ai-gateway.vercel.sh",
11068
- reasoning: false,
11069
- input: ["text", "image"],
11070
- cost: {
11071
- input: 3,
11072
- output: 15,
11073
- cacheRead: 0.3,
11074
- cacheWrite: 3.75,
11392
+ reasoning: false,
11393
+ input: ["text", "image"],
11394
+ cost: {
11395
+ input: 0.7999999999999999,
11396
+ output: 4,
11397
+ cacheRead: 0.08,
11398
+ cacheWrite: 1,
11075
11399
  },
11076
11400
  contextWindow: 200000,
11077
11401
  maxTokens: 8192,
@@ -11246,6 +11570,23 @@ export const MODELS = {
11246
11570
  contextWindow: 131000,
11247
11571
  maxTokens: 131000,
11248
11572
  } satisfies Model<"anthropic-messages">,
11573
+ "arcee-ai/trinity-large-thinking": {
11574
+ id: "arcee-ai/trinity-large-thinking",
11575
+ name: "Trinity Large Thinking",
11576
+ api: "anthropic-messages",
11577
+ provider: "vercel-ai-gateway",
11578
+ baseUrl: "https://ai-gateway.vercel.sh",
11579
+ reasoning: true,
11580
+ input: ["text"],
11581
+ cost: {
11582
+ input: 0.25,
11583
+ output: 0.8999999999999999,
11584
+ cacheRead: 0,
11585
+ cacheWrite: 0,
11586
+ },
11587
+ contextWindow: 262100,
11588
+ maxTokens: 80000,
11589
+ } satisfies Model<"anthropic-messages">,
11249
11590
  "bytedance/seed-1.6": {
11250
11591
  id: "bytedance/seed-1.6",
11251
11592
  name: "Seed 1.6",
@@ -11323,13 +11664,13 @@ export const MODELS = {
11323
11664
  reasoning: true,
11324
11665
  input: ["text"],
11325
11666
  cost: {
11326
- input: 0.5,
11327
- output: 1.5,
11328
- cacheRead: 0,
11667
+ input: 0.56,
11668
+ output: 1.68,
11669
+ cacheRead: 0.28,
11329
11670
  cacheWrite: 0,
11330
11671
  },
11331
11672
  contextWindow: 163840,
11332
- maxTokens: 16384,
11673
+ maxTokens: 8192,
11333
11674
  } satisfies Model<"anthropic-messages">,
11334
11675
  "deepseek/deepseek-v3.1-terminus": {
11335
11676
  id: "deepseek/deepseek-v3.1-terminus",
@@ -11512,7 +11853,7 @@ export const MODELS = {
11512
11853
  cost: {
11513
11854
  input: 0.25,
11514
11855
  output: 1.5,
11515
- cacheRead: 0,
11856
+ cacheRead: 0.03,
11516
11857
  cacheWrite: 0,
11517
11858
  },
11518
11859
  contextWindow: 1000000,
@@ -11535,6 +11876,40 @@ export const MODELS = {
11535
11876
  contextWindow: 1000000,
11536
11877
  maxTokens: 64000,
11537
11878
  } satisfies Model<"anthropic-messages">,
11879
+ "google/gemma-4-26b-a4b-it": {
11880
+ id: "google/gemma-4-26b-a4b-it",
11881
+ name: "Gemma 4 26B A4B IT",
11882
+ api: "anthropic-messages",
11883
+ provider: "vercel-ai-gateway",
11884
+ baseUrl: "https://ai-gateway.vercel.sh",
11885
+ reasoning: false,
11886
+ input: ["text", "image"],
11887
+ cost: {
11888
+ input: 0.13,
11889
+ output: 0.39999999999999997,
11890
+ cacheRead: 0,
11891
+ cacheWrite: 0,
11892
+ },
11893
+ contextWindow: 262144,
11894
+ maxTokens: 131072,
11895
+ } satisfies Model<"anthropic-messages">,
11896
+ "google/gemma-4-31b-it": {
11897
+ id: "google/gemma-4-31b-it",
11898
+ name: "Gemma 4 31B IT",
11899
+ api: "anthropic-messages",
11900
+ provider: "vercel-ai-gateway",
11901
+ baseUrl: "https://ai-gateway.vercel.sh",
11902
+ reasoning: false,
11903
+ input: ["text", "image"],
11904
+ cost: {
11905
+ input: 0.14,
11906
+ output: 0.39999999999999997,
11907
+ cacheRead: 0,
11908
+ cacheWrite: 0,
11909
+ },
11910
+ contextWindow: 262144,
11911
+ maxTokens: 131072,
11912
+ } satisfies Model<"anthropic-messages">,
11538
11913
  "inception/mercury-2": {
11539
11914
  id: "inception/mercury-2",
11540
11915
  name: "Mercury 2",
@@ -11569,39 +11944,39 @@ export const MODELS = {
11569
11944
  contextWindow: 32000,
11570
11945
  maxTokens: 16384,
11571
11946
  } satisfies Model<"anthropic-messages">,
11572
- "meituan/longcat-flash-chat": {
11573
- id: "meituan/longcat-flash-chat",
11574
- name: "LongCat Flash Chat",
11947
+ "kwaipilot/kat-coder-pro-v2": {
11948
+ id: "kwaipilot/kat-coder-pro-v2",
11949
+ name: "Kat Coder Pro V2",
11575
11950
  api: "anthropic-messages",
11576
11951
  provider: "vercel-ai-gateway",
11577
11952
  baseUrl: "https://ai-gateway.vercel.sh",
11578
- reasoning: false,
11953
+ reasoning: true,
11579
11954
  input: ["text"],
11580
11955
  cost: {
11581
- input: 0,
11582
- output: 0,
11583
- cacheRead: 0,
11956
+ input: 0.3,
11957
+ output: 1.2,
11958
+ cacheRead: 0.06,
11584
11959
  cacheWrite: 0,
11585
11960
  },
11586
- contextWindow: 128000,
11587
- maxTokens: 100000,
11961
+ contextWindow: 256000,
11962
+ maxTokens: 256000,
11588
11963
  } satisfies Model<"anthropic-messages">,
11589
- "meituan/longcat-flash-thinking": {
11590
- id: "meituan/longcat-flash-thinking",
11591
- name: "LongCat Flash Thinking",
11964
+ "meituan/longcat-flash-chat": {
11965
+ id: "meituan/longcat-flash-chat",
11966
+ name: "LongCat Flash Chat",
11592
11967
  api: "anthropic-messages",
11593
11968
  provider: "vercel-ai-gateway",
11594
11969
  baseUrl: "https://ai-gateway.vercel.sh",
11595
- reasoning: true,
11970
+ reasoning: false,
11596
11971
  input: ["text"],
11597
11972
  cost: {
11598
- input: 0.15,
11599
- output: 1.5,
11973
+ input: 0,
11974
+ output: 0,
11600
11975
  cacheRead: 0,
11601
11976
  cacheWrite: 0,
11602
11977
  },
11603
11978
  contextWindow: 128000,
11604
- maxTokens: 8192,
11979
+ maxTokens: 100000,
11605
11980
  } satisfies Model<"anthropic-messages">,
11606
11981
  "meta/llama-3.1-70b": {
11607
11982
  id: "meta/llama-3.1-70b",
@@ -11629,13 +12004,13 @@ export const MODELS = {
11629
12004
  reasoning: false,
11630
12005
  input: ["text"],
11631
12006
  cost: {
11632
- input: 0.09999999999999999,
11633
- output: 0.09999999999999999,
11634
- cacheRead: 0.09999999999999999,
12007
+ input: 0.22,
12008
+ output: 0.22,
12009
+ cacheRead: 0,
11635
12010
  cacheWrite: 0,
11636
12011
  },
11637
12012
  contextWindow: 128000,
11638
- maxTokens: 16384,
12013
+ maxTokens: 8192,
11639
12014
  } satisfies Model<"anthropic-messages">,
11640
12015
  "meta/llama-3.2-11b": {
11641
12016
  id: "meta/llama-3.2-11b",
@@ -12013,20 +12388,20 @@ export const MODELS = {
12013
12388
  } satisfies Model<"anthropic-messages">,
12014
12389
  "moonshotai/kimi-k2": {
12015
12390
  id: "moonshotai/kimi-k2",
12016
- name: "Kimi K2",
12391
+ name: "Kimi K2 Instruct",
12017
12392
  api: "anthropic-messages",
12018
12393
  provider: "vercel-ai-gateway",
12019
12394
  baseUrl: "https://ai-gateway.vercel.sh",
12020
12395
  reasoning: false,
12021
12396
  input: ["text"],
12022
12397
  cost: {
12023
- input: 0.6,
12024
- output: 2.5,
12025
- cacheRead: 0.15,
12398
+ input: 0.5700000000000001,
12399
+ output: 2.3,
12400
+ cacheRead: 0,
12026
12401
  cacheWrite: 0,
12027
12402
  },
12028
12403
  contextWindow: 131072,
12029
- maxTokens: 16384,
12404
+ maxTokens: 131072,
12030
12405
  } satisfies Model<"anthropic-messages">,
12031
12406
  "moonshotai/kimi-k2-0905": {
12032
12407
  id: "moonshotai/kimi-k2-0905",
@@ -12039,11 +12414,11 @@ export const MODELS = {
12039
12414
  cost: {
12040
12415
  input: 0.6,
12041
12416
  output: 2.5,
12042
- cacheRead: 0.15,
12417
+ cacheRead: 0.3,
12043
12418
  cacheWrite: 0,
12044
12419
  },
12045
12420
  contextWindow: 256000,
12046
- maxTokens: 16384,
12421
+ maxTokens: 128000,
12047
12422
  } satisfies Model<"anthropic-messages">,
12048
12423
  "moonshotai/kimi-k2-thinking": {
12049
12424
  id: "moonshotai/kimi-k2-thinking",
@@ -12615,12 +12990,12 @@ export const MODELS = {
12615
12990
  reasoning: true,
12616
12991
  input: ["text"],
12617
12992
  cost: {
12618
- input: 0.07,
12619
- output: 0.3,
12993
+ input: 0.049999999999999996,
12994
+ output: 0.19999999999999998,
12620
12995
  cacheRead: 0,
12621
12996
  cacheWrite: 0,
12622
12997
  },
12623
- contextWindow: 128000,
12998
+ contextWindow: 131072,
12624
12999
  maxTokens: 8192,
12625
13000
  } satisfies Model<"anthropic-messages">,
12626
13001
  "openai/gpt-oss-safeguard-20b": {
@@ -12751,8 +13126,8 @@ export const MODELS = {
12751
13126
  reasoning: false,
12752
13127
  input: ["text", "image"],
12753
13128
  cost: {
12754
- input: 1,
12755
- output: 1,
13129
+ input: 0,
13130
+ output: 0,
12756
13131
  cacheRead: 0,
12757
13132
  cacheWrite: 0,
12758
13133
  },
@@ -12768,8 +13143,8 @@ export const MODELS = {
12768
13143
  reasoning: false,
12769
13144
  input: ["text", "image"],
12770
13145
  cost: {
12771
- input: 3,
12772
- output: 15,
13146
+ input: 0,
13147
+ output: 0,
12773
13148
  cacheRead: 0,
12774
13149
  cacheWrite: 0,
12775
13150
  },
@@ -12793,23 +13168,6 @@ export const MODELS = {
12793
13168
  contextWindow: 131072,
12794
13169
  maxTokens: 131072,
12795
13170
  } satisfies Model<"anthropic-messages">,
12796
- "xai/grok-2-vision": {
12797
- id: "xai/grok-2-vision",
12798
- name: "Grok 2 Vision",
12799
- api: "anthropic-messages",
12800
- provider: "vercel-ai-gateway",
12801
- baseUrl: "https://ai-gateway.vercel.sh",
12802
- reasoning: false,
12803
- input: ["text", "image"],
12804
- cost: {
12805
- input: 2,
12806
- output: 10,
12807
- cacheRead: 0,
12808
- cacheWrite: 0,
12809
- },
12810
- contextWindow: 32768,
12811
- maxTokens: 32768,
12812
- } satisfies Model<"anthropic-messages">,
12813
13171
  "xai/grok-3": {
12814
13172
  id: "xai/grok-3",
12815
13173
  name: "Grok 3 Beta",
@@ -12963,6 +13321,23 @@ export const MODELS = {
12963
13321
  contextWindow: 2000000,
12964
13322
  maxTokens: 30000,
12965
13323
  } satisfies Model<"anthropic-messages">,
13324
+ "xai/grok-4.20-multi-agent": {
13325
+ id: "xai/grok-4.20-multi-agent",
13326
+ name: "Grok 4.20 Multi-Agent",
13327
+ api: "anthropic-messages",
13328
+ provider: "vercel-ai-gateway",
13329
+ baseUrl: "https://ai-gateway.vercel.sh",
13330
+ reasoning: true,
13331
+ input: ["text"],
13332
+ cost: {
13333
+ input: 2,
13334
+ output: 6,
13335
+ cacheRead: 0.19999999999999998,
13336
+ cacheWrite: 0,
13337
+ },
13338
+ contextWindow: 2000000,
13339
+ maxTokens: 2000000,
13340
+ } satisfies Model<"anthropic-messages">,
12966
13341
  "xai/grok-4.20-multi-agent-beta": {
12967
13342
  id: "xai/grok-4.20-multi-agent-beta",
12968
13343
  name: "Grok 4.20 Multi Agent Beta",
@@ -12980,6 +13355,23 @@ export const MODELS = {
12980
13355
  contextWindow: 2000000,
12981
13356
  maxTokens: 2000000,
12982
13357
  } satisfies Model<"anthropic-messages">,
13358
+ "xai/grok-4.20-non-reasoning": {
13359
+ id: "xai/grok-4.20-non-reasoning",
13360
+ name: "Grok 4.20 Non-Reasoning",
13361
+ api: "anthropic-messages",
13362
+ provider: "vercel-ai-gateway",
13363
+ baseUrl: "https://ai-gateway.vercel.sh",
13364
+ reasoning: false,
13365
+ input: ["text", "image"],
13366
+ cost: {
13367
+ input: 2,
13368
+ output: 6,
13369
+ cacheRead: 0.19999999999999998,
13370
+ cacheWrite: 0,
13371
+ },
13372
+ contextWindow: 2000000,
13373
+ maxTokens: 2000000,
13374
+ } satisfies Model<"anthropic-messages">,
12983
13375
  "xai/grok-4.20-non-reasoning-beta": {
12984
13376
  id: "xai/grok-4.20-non-reasoning-beta",
12985
13377
  name: "Grok 4.20 Beta Non-Reasoning",
@@ -12997,6 +13389,23 @@ export const MODELS = {
12997
13389
  contextWindow: 2000000,
12998
13390
  maxTokens: 2000000,
12999
13391
  } satisfies Model<"anthropic-messages">,
13392
+ "xai/grok-4.20-reasoning": {
13393
+ id: "xai/grok-4.20-reasoning",
13394
+ name: "Grok 4.20 Reasoning",
13395
+ api: "anthropic-messages",
13396
+ provider: "vercel-ai-gateway",
13397
+ baseUrl: "https://ai-gateway.vercel.sh",
13398
+ reasoning: true,
13399
+ input: ["text", "image"],
13400
+ cost: {
13401
+ input: 2,
13402
+ output: 6,
13403
+ cacheRead: 0.19999999999999998,
13404
+ cacheWrite: 0,
13405
+ },
13406
+ contextWindow: 2000000,
13407
+ maxTokens: 2000000,
13408
+ } satisfies Model<"anthropic-messages">,
13000
13409
  "xai/grok-4.20-reasoning-beta": {
13001
13410
  id: "xai/grok-4.20-reasoning-beta",
13002
13411
  name: "Grok 4.20 Beta Reasoning",
@@ -13040,9 +13449,9 @@ export const MODELS = {
13040
13449
  reasoning: true,
13041
13450
  input: ["text"],
13042
13451
  cost: {
13043
- input: 0.09999999999999999,
13044
- output: 0.3,
13045
- cacheRead: 0.02,
13452
+ input: 0.09,
13453
+ output: 0.29,
13454
+ cacheRead: 0.045,
13046
13455
  cacheWrite: 0,
13047
13456
  },
13048
13457
  contextWindow: 262144,
@@ -13176,13 +13585,13 @@ export const MODELS = {
13176
13585
  reasoning: true,
13177
13586
  input: ["text"],
13178
13587
  cost: {
13179
- input: 0.6,
13180
- output: 2.2,
13181
- cacheRead: 0,
13588
+ input: 2.25,
13589
+ output: 2.75,
13590
+ cacheRead: 2.25,
13182
13591
  cacheWrite: 0,
13183
13592
  },
13184
- contextWindow: 200000,
13185
- maxTokens: 120000,
13593
+ contextWindow: 131000,
13594
+ maxTokens: 40000,
13186
13595
  } satisfies Model<"anthropic-messages">,
13187
13596
  "zai/glm-4.7-flash": {
13188
13597
  id: "zai/glm-4.7-flash",
@@ -13252,6 +13661,40 @@ export const MODELS = {
13252
13661
  contextWindow: 202800,
13253
13662
  maxTokens: 131100,
13254
13663
  } satisfies Model<"anthropic-messages">,
13664
+ "zai/glm-5.1": {
13665
+ id: "zai/glm-5.1",
13666
+ name: "GLM 5.1",
13667
+ api: "anthropic-messages",
13668
+ provider: "vercel-ai-gateway",
13669
+ baseUrl: "https://ai-gateway.vercel.sh",
13670
+ reasoning: true,
13671
+ input: ["text"],
13672
+ cost: {
13673
+ input: 1.4,
13674
+ output: 4.4,
13675
+ cacheRead: 0.26,
13676
+ cacheWrite: 0,
13677
+ },
13678
+ contextWindow: 202800,
13679
+ maxTokens: 64000,
13680
+ } satisfies Model<"anthropic-messages">,
13681
+ "zai/glm-5v-turbo": {
13682
+ id: "zai/glm-5v-turbo",
13683
+ name: "GLM 5V Turbo",
13684
+ api: "anthropic-messages",
13685
+ provider: "vercel-ai-gateway",
13686
+ baseUrl: "https://ai-gateway.vercel.sh",
13687
+ reasoning: true,
13688
+ input: ["text", "image"],
13689
+ cost: {
13690
+ input: 1.2,
13691
+ output: 4,
13692
+ cacheRead: 0.24,
13693
+ cacheWrite: 0,
13694
+ },
13695
+ contextWindow: 200000,
13696
+ maxTokens: 128000,
13697
+ } satisfies Model<"anthropic-messages">,
13255
13698
  },
13256
13699
  "xai": {
13257
13700
  "grok-2": {
@@ -13808,6 +14251,24 @@ export const MODELS = {
13808
14251
  contextWindow: 200000,
13809
14252
  maxTokens: 131072,
13810
14253
  } satisfies Model<"openai-completions">,
14254
+ "glm-4.7-flashx": {
14255
+ id: "glm-4.7-flashx",
14256
+ name: "GLM-4.7-FlashX",
14257
+ api: "openai-completions",
14258
+ provider: "zai",
14259
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
14260
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
14261
+ reasoning: true,
14262
+ input: ["text"],
14263
+ cost: {
14264
+ input: 0.07,
14265
+ output: 0.4,
14266
+ cacheRead: 0.01,
14267
+ cacheWrite: 0,
14268
+ },
14269
+ contextWindow: 200000,
14270
+ maxTokens: 131072,
14271
+ } satisfies Model<"openai-completions">,
13811
14272
  "glm-5": {
13812
14273
  id: "glm-5",
13813
14274
  name: "GLM-5",
@@ -13844,5 +14305,41 @@ export const MODELS = {
13844
14305
  contextWindow: 200000,
13845
14306
  maxTokens: 131072,
13846
14307
  } satisfies Model<"openai-completions">,
14308
+ "glm-5.1": {
14309
+ id: "glm-5.1",
14310
+ name: "GLM-5.1",
14311
+ api: "openai-completions",
14312
+ provider: "zai",
14313
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
14314
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
14315
+ reasoning: true,
14316
+ input: ["text"],
14317
+ cost: {
14318
+ input: 1.4,
14319
+ output: 4.4,
14320
+ cacheRead: 0.26,
14321
+ cacheWrite: 0,
14322
+ },
14323
+ contextWindow: 200000,
14324
+ maxTokens: 131072,
14325
+ } satisfies Model<"openai-completions">,
14326
+ "glm-5v-turbo": {
14327
+ id: "glm-5v-turbo",
14328
+ name: "glm-5v-turbo",
14329
+ api: "openai-completions",
14330
+ provider: "zai",
14331
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
14332
+ compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"},
14333
+ reasoning: true,
14334
+ input: ["text", "image"],
14335
+ cost: {
14336
+ input: 1.2,
14337
+ output: 4,
14338
+ cacheRead: 0.24,
14339
+ cacheWrite: 0,
14340
+ },
14341
+ contextWindow: 200000,
14342
+ maxTokens: 131072,
14343
+ } satisfies Model<"openai-completions">,
13847
14344
  },
13848
14345
  } as const;