gsd-pi 2.74.0 → 2.75.0-dev.063e5a3

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 (627) hide show
  1. package/dist/cli.js +85 -0
  2. package/dist/headless-query.js +4 -1
  3. package/dist/help-text.js +23 -0
  4. package/dist/resources/extensions/gsd/activity-log.js +16 -0
  5. package/dist/resources/extensions/gsd/auto/detect-stuck.js +11 -4
  6. package/dist/resources/extensions/gsd/auto/loop.js +147 -10
  7. package/dist/resources/extensions/gsd/auto/phases.js +209 -10
  8. package/dist/resources/extensions/gsd/auto/session.js +10 -0
  9. package/dist/resources/extensions/gsd/auto-dispatch.js +11 -1
  10. package/dist/resources/extensions/gsd/auto-model-selection.js +54 -8
  11. package/dist/resources/extensions/gsd/auto-post-unit.js +220 -17
  12. package/dist/resources/extensions/gsd/auto-prompts.js +12 -0
  13. package/dist/resources/extensions/gsd/auto-recovery.js +24 -10
  14. package/dist/resources/extensions/gsd/auto-unit-closeout.js +18 -0
  15. package/dist/resources/extensions/gsd/auto-verification.js +100 -2
  16. package/dist/resources/extensions/gsd/auto-worktree.js +2 -0
  17. package/dist/resources/extensions/gsd/auto.js +36 -4
  18. package/dist/resources/extensions/gsd/bootstrap/provider-error-resume.js +5 -3
  19. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +30 -8
  20. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +61 -9
  21. package/dist/resources/extensions/gsd/cache.js +16 -5
  22. package/dist/resources/extensions/gsd/commands/catalog.js +31 -1
  23. package/dist/resources/extensions/gsd/commands/handlers/core.js +5 -1
  24. package/dist/resources/extensions/gsd/commands/handlers/ops.js +25 -0
  25. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +68 -9
  26. package/dist/resources/extensions/gsd/commands-add-tests.js +111 -0
  27. package/dist/resources/extensions/gsd/commands-backlog.js +140 -0
  28. package/dist/resources/extensions/gsd/commands-do.js +79 -0
  29. package/dist/resources/extensions/gsd/commands-extract-learnings.js +225 -0
  30. package/dist/resources/extensions/gsd/commands-maintenance.js +6 -6
  31. package/dist/resources/extensions/gsd/commands-pr-branch.js +180 -0
  32. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +51 -4
  33. package/dist/resources/extensions/gsd/commands-session-report.js +82 -0
  34. package/dist/resources/extensions/gsd/commands-ship.js +187 -0
  35. package/dist/resources/extensions/gsd/db-writer.js +3 -5
  36. package/dist/resources/extensions/gsd/docs/preferences-reference.md +16 -1
  37. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  38. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  39. package/dist/resources/extensions/gsd/git-service.js +49 -1
  40. package/dist/resources/extensions/gsd/graph-context.js +157 -0
  41. package/dist/resources/extensions/gsd/gsd-db.js +581 -2
  42. package/dist/resources/extensions/gsd/guided-flow.js +31 -6
  43. package/dist/resources/extensions/gsd/index.js +15 -2
  44. package/dist/resources/extensions/gsd/init-wizard.js +1 -0
  45. package/dist/resources/extensions/gsd/journal.js +27 -0
  46. package/dist/resources/extensions/gsd/md-importer.js +3 -4
  47. package/dist/resources/extensions/gsd/memory-store.js +19 -51
  48. package/dist/resources/extensions/gsd/metrics.js +19 -0
  49. package/dist/resources/extensions/gsd/milestone-validation-gates.js +13 -12
  50. package/dist/resources/extensions/gsd/native-git-bridge.js +7 -4
  51. package/dist/resources/extensions/gsd/parallel-orchestrator.js +33 -1
  52. package/dist/resources/extensions/gsd/preferences-models.js +20 -3
  53. package/dist/resources/extensions/gsd/preferences-types.js +2 -0
  54. package/dist/resources/extensions/gsd/preferences-validation.js +118 -2
  55. package/dist/resources/extensions/gsd/preferences.js +31 -0
  56. package/dist/resources/extensions/gsd/prompts/add-tests.md +35 -0
  57. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  58. package/dist/resources/extensions/gsd/slice-parallel-orchestrator.js +12 -2
  59. package/dist/resources/extensions/gsd/state.js +5 -1
  60. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +19 -0
  61. package/dist/resources/extensions/gsd/tools/complete-slice.js +20 -0
  62. package/dist/resources/extensions/gsd/tools/validate-milestone.js +39 -4
  63. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +3 -14
  64. package/dist/resources/extensions/gsd/triage-resolution.js +2 -5
  65. package/dist/resources/extensions/gsd/unit-ownership.js +1 -1
  66. package/dist/resources/extensions/gsd/uok/audit-toggle.js +7 -0
  67. package/dist/resources/extensions/gsd/uok/audit.js +40 -0
  68. package/dist/resources/extensions/gsd/uok/contracts.js +1 -0
  69. package/dist/resources/extensions/gsd/uok/execution-graph.js +179 -0
  70. package/dist/resources/extensions/gsd/uok/flags.js +29 -0
  71. package/dist/resources/extensions/gsd/uok/gate-runner.js +109 -0
  72. package/dist/resources/extensions/gsd/uok/gitops.js +53 -0
  73. package/dist/resources/extensions/gsd/uok/kernel.js +80 -0
  74. package/dist/resources/extensions/gsd/uok/loop-adapter.js +133 -0
  75. package/dist/resources/extensions/gsd/uok/model-policy.js +66 -0
  76. package/dist/resources/extensions/gsd/uok/plan-v2.js +132 -0
  77. package/dist/resources/extensions/gsd/workflow-logger.js +22 -0
  78. package/dist/resources/extensions/gsd/workflow-manifest.js +8 -69
  79. package/dist/resources/extensions/gsd/workflow-migration.js +21 -22
  80. package/dist/resources/extensions/gsd/workflow-projections.js +4 -1
  81. package/dist/resources/extensions/gsd/workflow-reconcile.js +14 -11
  82. package/dist/resources/extensions/ttsr/ttsr-manager.js +3 -1
  83. package/dist/tsconfig.extensions.tsbuildinfo +1 -0
  84. package/dist/web/standalone/.next/BUILD_ID +1 -1
  85. package/dist/web/standalone/.next/app-path-routes-manifest.json +13 -13
  86. package/dist/web/standalone/.next/build-manifest.json +3 -3
  87. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  88. package/dist/web/standalone/.next/required-server-files.json +3 -3
  89. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  90. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  91. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  92. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  93. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  94. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  95. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  96. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  97. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  98. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  99. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  100. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  101. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  102. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  103. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  104. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  105. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  106. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  107. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  108. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  109. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  115. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  116. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  125. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  126. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  128. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  129. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  130. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  131. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  132. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  133. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  134. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  135. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  136. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  137. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  138. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  139. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  140. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  141. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  144. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  145. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  146. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  148. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  149. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  150. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  152. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  154. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  155. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  156. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  157. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  158. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  160. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  162. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  163. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  164. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  165. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  166. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  168. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  169. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  170. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  171. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  172. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  174. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  175. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  177. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  178. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  179. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  180. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  181. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  182. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  183. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  184. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  186. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  188. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  191. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  192. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  193. package/dist/web/standalone/.next/server/app/index.html +1 -1
  194. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  195. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  196. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  197. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  198. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  199. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  200. package/dist/web/standalone/.next/server/app/page.js +2 -2
  201. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  202. package/dist/web/standalone/.next/server/app-paths-manifest.json +13 -13
  203. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  204. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  205. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  206. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  207. package/dist/web/standalone/.next/server/middleware.js +2 -2
  208. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  209. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  210. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  211. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  212. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  213. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  214. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  215. package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +1 -0
  216. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  217. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  218. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  219. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  220. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  221. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  222. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  223. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  224. package/dist/web/standalone/server.js +1 -1
  225. package/package.json +3 -2
  226. package/packages/daemon/package.json +2 -2
  227. package/packages/mcp-server/dist/index.d.ts +3 -0
  228. package/packages/mcp-server/dist/index.d.ts.map +1 -1
  229. package/packages/mcp-server/dist/index.js +3 -0
  230. package/packages/mcp-server/dist/index.js.map +1 -1
  231. package/packages/mcp-server/dist/readers/graph.d.ts +87 -0
  232. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -0
  233. package/packages/mcp-server/dist/readers/graph.js +655 -0
  234. package/packages/mcp-server/dist/readers/graph.js.map +1 -0
  235. package/packages/mcp-server/dist/readers/index.d.ts +2 -0
  236. package/packages/mcp-server/dist/readers/index.d.ts.map +1 -1
  237. package/packages/mcp-server/dist/readers/index.js +1 -0
  238. package/packages/mcp-server/dist/readers/index.js.map +1 -1
  239. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  240. package/packages/mcp-server/dist/server.js +65 -0
  241. package/packages/mcp-server/dist/server.js.map +1 -1
  242. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  243. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  244. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  245. package/packages/mcp-server/package.json +2 -2
  246. package/packages/mcp-server/src/index.ts +15 -0
  247. package/packages/mcp-server/src/readers/graph.test.ts +604 -0
  248. package/packages/mcp-server/src/readers/graph.ts +855 -0
  249. package/packages/mcp-server/src/readers/index.ts +12 -0
  250. package/packages/mcp-server/src/server.ts +83 -0
  251. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  252. package/packages/mcp-server/tsconfig.json +1 -0
  253. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -0
  254. package/packages/native/package.json +2 -2
  255. package/packages/native/tsconfig.tsbuildinfo +1 -0
  256. package/packages/pi-agent-core/package.json +1 -1
  257. package/packages/pi-agent-core/tsconfig.json +1 -0
  258. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -0
  259. package/packages/pi-ai/dist/index.d.ts +1 -9
  260. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  261. package/packages/pi-ai/dist/index.js +1 -9
  262. package/packages/pi-ai/dist/index.js.map +1 -1
  263. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  264. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  265. package/packages/pi-ai/dist/models/capability-patches.js +36 -0
  266. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  267. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  268. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  269. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  270. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  271. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1482 -0
  272. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  273. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1484 -0
  274. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  275. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +377 -0
  276. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  277. package/packages/pi-ai/dist/models/generated/anthropic.js +379 -0
  278. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  279. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  280. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  281. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  282. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  283. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  284. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  285. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  286. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  287. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  288. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  289. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  290. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  291. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +156 -0
  292. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  293. package/packages/pi-ai/dist/models/generated/google-antigravity.js +158 -0
  294. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  295. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  296. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  297. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  298. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  299. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  300. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  301. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  302. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  303. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  304. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  305. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  306. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  307. package/packages/pi-ai/dist/models/generated/groq.d.ts +309 -0
  308. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  309. package/packages/pi-ai/dist/models/generated/groq.js +311 -0
  310. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  311. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  312. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  313. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  314. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  315. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +1 -1
  316. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  317. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  318. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  319. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  320. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  321. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  322. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  323. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  324. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  325. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  326. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  327. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  328. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  329. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  330. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  331. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  332. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  333. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  334. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  335. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +139 -0
  336. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  337. package/packages/pi-ai/dist/models/generated/openai-codex.js +141 -0
  338. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  339. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  340. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  341. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  342. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  343. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  344. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  345. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  346. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  347. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  348. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  349. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  350. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  351. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4270 -0
  352. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  353. package/packages/pi-ai/dist/models/generated/openrouter.js +4272 -0
  354. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  355. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  356. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  357. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  358. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  359. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  360. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  361. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  362. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  363. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  364. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  365. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  366. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  367. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  368. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  369. package/packages/pi-ai/dist/models/index.js +80 -0
  370. package/packages/pi-ai/dist/models/index.js.map +1 -0
  371. package/packages/pi-ai/dist/models.d.ts +1 -36
  372. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  373. package/packages/pi-ai/dist/models.generated.test.js +1 -2
  374. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  375. package/packages/pi-ai/dist/models.js +3 -112
  376. package/packages/pi-ai/dist/models.js.map +1 -1
  377. package/packages/pi-ai/dist/models.test.js +6 -5
  378. package/packages/pi-ai/dist/models.test.js.map +1 -1
  379. package/packages/pi-ai/package.json +1 -1
  380. package/packages/pi-ai/scripts/generate-models.ts +74 -40
  381. package/packages/pi-ai/src/index.ts +1 -9
  382. package/packages/pi-ai/src/models/capability-patches.ts +40 -0
  383. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  384. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1486 -0
  385. package/packages/pi-ai/src/models/generated/anthropic.ts +381 -0
  386. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  387. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  388. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  389. package/packages/pi-ai/src/models/generated/google-antigravity.ts +160 -0
  390. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  391. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  392. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  393. package/packages/pi-ai/src/models/generated/groq.ts +313 -0
  394. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  395. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  396. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  397. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  398. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  399. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  400. package/packages/pi-ai/src/models/generated/openai-codex.ts +143 -0
  401. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  402. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  403. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  404. package/packages/pi-ai/src/models/generated/openrouter.ts +4274 -0
  405. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  406. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  407. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  408. package/packages/pi-ai/src/models/index.ts +106 -0
  409. package/packages/pi-ai/src/models.generated.test.ts +1 -2
  410. package/packages/pi-ai/src/models.test.ts +6 -5
  411. package/packages/pi-ai/src/models.ts +3 -153
  412. package/packages/pi-ai/tsconfig.json +1 -0
  413. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -0
  414. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  415. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  416. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  417. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +472 -0
  418. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  419. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts +2 -0
  420. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.d.ts.map +1 -0
  421. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js +52 -0
  422. package/packages/pi-coding-agent/dist/core/model-registry-env-fallback.test.js.map +1 -0
  423. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  424. package/packages/pi-coding-agent/dist/core/model-registry.js +2 -2
  425. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  426. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts +2 -0
  427. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts.map +1 -0
  428. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +61 -0
  429. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -0
  430. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  431. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  432. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  433. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  434. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -9
  435. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  436. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  437. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  438. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +53 -0
  439. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  440. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +8 -5
  441. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  442. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js +27 -13
  443. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  444. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  445. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  446. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +68 -8
  447. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  448. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  449. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  450. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  451. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  452. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +232 -18
  453. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  454. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  455. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  456. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  457. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  458. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +14 -0
  459. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  460. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +70 -6
  461. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  462. package/packages/pi-coding-agent/package.json +1 -1
  463. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  464. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +612 -0
  465. package/packages/pi-coding-agent/src/core/model-registry-env-fallback.test.ts +59 -0
  466. package/packages/pi-coding-agent/src/core/model-registry.ts +2 -1
  467. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +92 -0
  468. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  469. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +25 -10
  470. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +75 -0
  471. package/packages/pi-coding-agent/src/modes/interactive/components/compaction-summary-message.ts +36 -15
  472. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +83 -7
  473. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  474. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +298 -41
  475. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  476. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +92 -6
  477. package/packages/pi-coding-agent/src/types/ambient-modules.d.ts +69 -0
  478. package/packages/pi-coding-agent/tsconfig.json +3 -2
  479. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -0
  480. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  481. package/packages/pi-tui/dist/tui.js +9 -2
  482. package/packages/pi-tui/dist/tui.js.map +1 -1
  483. package/packages/pi-tui/package.json +1 -1
  484. package/packages/pi-tui/src/tui.ts +9 -1
  485. package/packages/pi-tui/tsconfig.json +1 -0
  486. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -0
  487. package/packages/rpc-client/package.json +1 -1
  488. package/packages/rpc-client/tsconfig.json +1 -0
  489. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -0
  490. package/pkg/package.json +1 -1
  491. package/src/resources/extensions/gsd/activity-log.ts +21 -0
  492. package/src/resources/extensions/gsd/auto/detect-stuck.ts +12 -4
  493. package/src/resources/extensions/gsd/auto/loop-deps.ts +10 -0
  494. package/src/resources/extensions/gsd/auto/loop.ts +159 -10
  495. package/src/resources/extensions/gsd/auto/phases.ts +261 -10
  496. package/src/resources/extensions/gsd/auto/session.ts +10 -0
  497. package/src/resources/extensions/gsd/auto-dispatch.ts +16 -6
  498. package/src/resources/extensions/gsd/auto-model-selection.ts +69 -8
  499. package/src/resources/extensions/gsd/auto-post-unit.ts +238 -18
  500. package/src/resources/extensions/gsd/auto-prompts.ts +13 -0
  501. package/src/resources/extensions/gsd/auto-recovery.ts +29 -9
  502. package/src/resources/extensions/gsd/auto-unit-closeout.ts +25 -1
  503. package/src/resources/extensions/gsd/auto-verification.ts +129 -2
  504. package/src/resources/extensions/gsd/auto-worktree.ts +1 -0
  505. package/src/resources/extensions/gsd/auto.ts +41 -2
  506. package/src/resources/extensions/gsd/bootstrap/provider-error-resume.ts +5 -3
  507. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +38 -8
  508. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +72 -8
  509. package/src/resources/extensions/gsd/cache.ts +16 -5
  510. package/src/resources/extensions/gsd/commands/catalog.ts +31 -1
  511. package/src/resources/extensions/gsd/commands/handlers/core.ts +5 -1
  512. package/src/resources/extensions/gsd/commands/handlers/ops.ts +25 -0
  513. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +74 -9
  514. package/src/resources/extensions/gsd/commands-add-tests.ts +137 -0
  515. package/src/resources/extensions/gsd/commands-backlog.ts +182 -0
  516. package/src/resources/extensions/gsd/commands-do.ts +109 -0
  517. package/src/resources/extensions/gsd/commands-extract-learnings.ts +304 -0
  518. package/src/resources/extensions/gsd/commands-maintenance.ts +6 -6
  519. package/src/resources/extensions/gsd/commands-pr-branch.ts +234 -0
  520. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +58 -4
  521. package/src/resources/extensions/gsd/commands-session-report.ts +101 -0
  522. package/src/resources/extensions/gsd/commands-ship.ts +219 -0
  523. package/src/resources/extensions/gsd/db-writer.ts +3 -5
  524. package/src/resources/extensions/gsd/docs/preferences-reference.md +16 -1
  525. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  526. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  527. package/src/resources/extensions/gsd/git-service.ts +68 -0
  528. package/src/resources/extensions/gsd/graph-context.ts +212 -0
  529. package/src/resources/extensions/gsd/gsd-db.ts +788 -3
  530. package/src/resources/extensions/gsd/guided-flow.ts +36 -2
  531. package/src/resources/extensions/gsd/index.ts +18 -2
  532. package/src/resources/extensions/gsd/init-wizard.ts +3 -2
  533. package/src/resources/extensions/gsd/journal.ts +30 -0
  534. package/src/resources/extensions/gsd/md-importer.ts +3 -5
  535. package/src/resources/extensions/gsd/memory-store.ts +31 -62
  536. package/src/resources/extensions/gsd/metrics.ts +26 -0
  537. package/src/resources/extensions/gsd/milestone-validation-gates.ts +13 -14
  538. package/src/resources/extensions/gsd/native-git-bridge.ts +11 -12
  539. package/src/resources/extensions/gsd/parallel-orchestrator.ts +40 -1
  540. package/src/resources/extensions/gsd/preferences-models.ts +20 -3
  541. package/src/resources/extensions/gsd/preferences-types.ts +38 -0
  542. package/src/resources/extensions/gsd/preferences-validation.ts +117 -2
  543. package/src/resources/extensions/gsd/preferences.ts +34 -0
  544. package/src/resources/extensions/gsd/prompts/add-tests.md +35 -0
  545. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  546. package/src/resources/extensions/gsd/session-lock.ts +14 -2
  547. package/src/resources/extensions/gsd/slice-parallel-orchestrator.ts +20 -1
  548. package/src/resources/extensions/gsd/state.ts +9 -2
  549. package/src/resources/extensions/gsd/templates/PREFERENCES.md +19 -0
  550. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  551. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +7 -3
  552. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +20 -0
  553. package/src/resources/extensions/gsd/tests/auto-project-root-env.test.ts +7 -3
  554. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  555. package/src/resources/extensions/gsd/tests/auto-warning-noise-regression.test.ts +117 -0
  556. package/src/resources/extensions/gsd/tests/cold-resume-db-reopen.test.ts +6 -2
  557. package/src/resources/extensions/gsd/tests/commands-backlog.test.ts +158 -0
  558. package/src/resources/extensions/gsd/tests/commands-do.test.ts +127 -0
  559. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +340 -0
  560. package/src/resources/extensions/gsd/tests/commands-pr-branch.test.ts +68 -0
  561. package/src/resources/extensions/gsd/tests/commands-session-report.test.ts +82 -0
  562. package/src/resources/extensions/gsd/tests/commands-ship.test.ts +71 -0
  563. package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +14 -0
  564. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +2 -2
  565. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  566. package/src/resources/extensions/gsd/tests/extension-bootstrap-isolation.test.ts +154 -0
  567. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +10 -7
  568. package/src/resources/extensions/gsd/tests/graph-context.test.ts +337 -0
  569. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +1 -1
  570. package/src/resources/extensions/gsd/tests/health-widget.test.ts +1 -1
  571. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +71 -4
  572. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -2
  573. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -3
  574. package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +140 -0
  575. package/src/resources/extensions/gsd/tests/post-exec-retry-bypass.test.ts +79 -1
  576. package/src/resources/extensions/gsd/tests/post-unit-state-rebuild.test.ts +2 -1
  577. package/src/resources/extensions/gsd/tests/pre-execution-pause-wiring.test.ts +40 -1
  578. package/src/resources/extensions/gsd/tests/preferences.test.ts +145 -0
  579. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +57 -2
  580. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +1 -1
  581. package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +180 -0
  582. package/src/resources/extensions/gsd/tests/token-profile.test.ts +8 -5
  583. package/src/resources/extensions/gsd/tests/uok-audit-unified.test.ts +101 -0
  584. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +85 -0
  585. package/src/resources/extensions/gsd/tests/uok-execution-graph.test.ts +69 -0
  586. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +39 -0
  587. package/src/resources/extensions/gsd/tests/uok-gate-runner.test.ts +70 -0
  588. package/src/resources/extensions/gsd/tests/uok-gitops-turn-action.test.ts +85 -0
  589. package/src/resources/extensions/gsd/tests/uok-gitops-wiring.test.ts +35 -0
  590. package/src/resources/extensions/gsd/tests/uok-model-policy.test.ts +89 -0
  591. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +167 -0
  592. package/src/resources/extensions/gsd/tests/uok-preferences.test.ts +42 -0
  593. package/src/resources/extensions/gsd/tests/validate-milestone-write-order.test.ts +39 -0
  594. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +223 -0
  595. package/src/resources/extensions/gsd/tools/complete-slice.ts +26 -0
  596. package/src/resources/extensions/gsd/tools/validate-milestone.ts +48 -3
  597. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +3 -11
  598. package/src/resources/extensions/gsd/triage-resolution.ts +2 -7
  599. package/src/resources/extensions/gsd/types.ts +14 -1
  600. package/src/resources/extensions/gsd/unit-ownership.ts +2 -2
  601. package/src/resources/extensions/gsd/uok/audit-toggle.ts +9 -0
  602. package/src/resources/extensions/gsd/uok/audit.ts +51 -0
  603. package/src/resources/extensions/gsd/uok/contracts.ts +135 -0
  604. package/src/resources/extensions/gsd/uok/execution-graph.ts +241 -0
  605. package/src/resources/extensions/gsd/uok/flags.ts +45 -0
  606. package/src/resources/extensions/gsd/uok/gate-runner.ts +146 -0
  607. package/src/resources/extensions/gsd/uok/gitops.ts +75 -0
  608. package/src/resources/extensions/gsd/uok/kernel.ts +105 -0
  609. package/src/resources/extensions/gsd/uok/loop-adapter.ts +162 -0
  610. package/src/resources/extensions/gsd/uok/model-policy.ts +112 -0
  611. package/src/resources/extensions/gsd/uok/plan-v2.ts +156 -0
  612. package/src/resources/extensions/gsd/workflow-logger.ts +27 -1
  613. package/src/resources/extensions/gsd/workflow-manifest.ts +9 -104
  614. package/src/resources/extensions/gsd/workflow-migration.ts +21 -29
  615. package/src/resources/extensions/gsd/workflow-projections.ts +8 -1
  616. package/src/resources/extensions/gsd/workflow-reconcile.ts +15 -15
  617. package/src/resources/extensions/ttsr/ttsr-manager.ts +10 -5
  618. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  619. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  620. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  621. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  622. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  623. package/packages/pi-ai/dist/models.generated.js +0 -14343
  624. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  625. package/packages/pi-ai/src/models.generated.ts +0 -14345
  626. /package/dist/web/standalone/.next/static/{JpjdI2QtmIkQr4xz6gbhM → j7IBD35UgrL2b298GLK3V}/_buildManifest.js +0 -0
  627. /package/dist/web/standalone/.next/static/{JpjdI2QtmIkQr4xz6gbhM → j7IBD35UgrL2b298GLK3V}/_ssgManifest.js +0 -0
@@ -0,0 +1,2608 @@
1
+ // This file is auto-generated by scripts/generate-models.ts
2
+ // Do not edit manually - run 'npm run generate-models' to update
3
+
4
+ import type { Model } from "../../types.js";
5
+
6
+ export const VERCEL_AI_GATEWAY_MODELS = {
7
+ "alibaba/qwen-3-14b": {
8
+ id: "alibaba/qwen-3-14b",
9
+ name: "Qwen3-14B",
10
+ api: "anthropic-messages",
11
+ provider: "vercel-ai-gateway",
12
+ baseUrl: "https://ai-gateway.vercel.sh",
13
+ reasoning: true,
14
+ input: ["text"],
15
+ cost: {
16
+ input: 0.12,
17
+ output: 0.24,
18
+ cacheRead: 0,
19
+ cacheWrite: 0,
20
+ },
21
+ contextWindow: 40960,
22
+ maxTokens: 16384,
23
+ } satisfies Model<"anthropic-messages">,
24
+ "alibaba/qwen-3-235b": {
25
+ id: "alibaba/qwen-3-235b",
26
+ name: "Qwen3 235B A22b Instruct 2507",
27
+ api: "anthropic-messages",
28
+ provider: "vercel-ai-gateway",
29
+ baseUrl: "https://ai-gateway.vercel.sh",
30
+ reasoning: false,
31
+ input: ["text"],
32
+ cost: {
33
+ input: 0.6,
34
+ output: 1.2,
35
+ cacheRead: 0.6,
36
+ cacheWrite: 0,
37
+ },
38
+ contextWindow: 131000,
39
+ maxTokens: 40000,
40
+ } satisfies Model<"anthropic-messages">,
41
+ "alibaba/qwen-3-30b": {
42
+ id: "alibaba/qwen-3-30b",
43
+ name: "Qwen3-30B-A3B",
44
+ api: "anthropic-messages",
45
+ provider: "vercel-ai-gateway",
46
+ baseUrl: "https://ai-gateway.vercel.sh",
47
+ reasoning: true,
48
+ input: ["text"],
49
+ cost: {
50
+ input: 0.08,
51
+ output: 0.29,
52
+ cacheRead: 0,
53
+ cacheWrite: 0,
54
+ },
55
+ contextWindow: 40960,
56
+ maxTokens: 16384,
57
+ } satisfies Model<"anthropic-messages">,
58
+ "alibaba/qwen-3-32b": {
59
+ id: "alibaba/qwen-3-32b",
60
+ name: "Qwen 3 32B",
61
+ api: "anthropic-messages",
62
+ provider: "vercel-ai-gateway",
63
+ baseUrl: "https://ai-gateway.vercel.sh",
64
+ reasoning: true,
65
+ input: ["text"],
66
+ cost: {
67
+ input: 0.16,
68
+ output: 0.64,
69
+ cacheRead: 0,
70
+ cacheWrite: 0,
71
+ },
72
+ contextWindow: 128000,
73
+ maxTokens: 8192,
74
+ } satisfies Model<"anthropic-messages">,
75
+ "alibaba/qwen3-235b-a22b-thinking": {
76
+ id: "alibaba/qwen3-235b-a22b-thinking",
77
+ name: "Qwen3 235B A22B Thinking 2507",
78
+ api: "anthropic-messages",
79
+ provider: "vercel-ai-gateway",
80
+ baseUrl: "https://ai-gateway.vercel.sh",
81
+ reasoning: true,
82
+ input: ["text", "image"],
83
+ cost: {
84
+ input: 0.22999999999999998,
85
+ output: 2.3,
86
+ cacheRead: 0.19999999999999998,
87
+ cacheWrite: 0,
88
+ },
89
+ contextWindow: 262114,
90
+ maxTokens: 262114,
91
+ } satisfies Model<"anthropic-messages">,
92
+ "alibaba/qwen3-coder": {
93
+ id: "alibaba/qwen3-coder",
94
+ name: "Qwen3 Coder 480B A35B Instruct",
95
+ api: "anthropic-messages",
96
+ provider: "vercel-ai-gateway",
97
+ baseUrl: "https://ai-gateway.vercel.sh",
98
+ reasoning: false,
99
+ input: ["text"],
100
+ cost: {
101
+ input: 1.5,
102
+ output: 7.5,
103
+ cacheRead: 0.3,
104
+ cacheWrite: 0,
105
+ },
106
+ contextWindow: 262144,
107
+ maxTokens: 65536,
108
+ } satisfies Model<"anthropic-messages">,
109
+ "alibaba/qwen3-coder-30b-a3b": {
110
+ id: "alibaba/qwen3-coder-30b-a3b",
111
+ name: "Qwen 3 Coder 30B A3B Instruct",
112
+ api: "anthropic-messages",
113
+ provider: "vercel-ai-gateway",
114
+ baseUrl: "https://ai-gateway.vercel.sh",
115
+ reasoning: true,
116
+ input: ["text"],
117
+ cost: {
118
+ input: 0.15,
119
+ output: 0.6,
120
+ cacheRead: 0,
121
+ cacheWrite: 0,
122
+ },
123
+ contextWindow: 262144,
124
+ maxTokens: 8192,
125
+ } satisfies Model<"anthropic-messages">,
126
+ "alibaba/qwen3-coder-next": {
127
+ id: "alibaba/qwen3-coder-next",
128
+ name: "Qwen3 Coder Next",
129
+ api: "anthropic-messages",
130
+ provider: "vercel-ai-gateway",
131
+ baseUrl: "https://ai-gateway.vercel.sh",
132
+ reasoning: false,
133
+ input: ["text"],
134
+ cost: {
135
+ input: 0.5,
136
+ output: 1.2,
137
+ cacheRead: 0,
138
+ cacheWrite: 0,
139
+ },
140
+ contextWindow: 256000,
141
+ maxTokens: 256000,
142
+ } satisfies Model<"anthropic-messages">,
143
+ "alibaba/qwen3-coder-plus": {
144
+ id: "alibaba/qwen3-coder-plus",
145
+ name: "Qwen3 Coder Plus",
146
+ api: "anthropic-messages",
147
+ provider: "vercel-ai-gateway",
148
+ baseUrl: "https://ai-gateway.vercel.sh",
149
+ reasoning: false,
150
+ input: ["text"],
151
+ cost: {
152
+ input: 1,
153
+ output: 5,
154
+ cacheRead: 0.19999999999999998,
155
+ cacheWrite: 0,
156
+ },
157
+ contextWindow: 1000000,
158
+ maxTokens: 65536,
159
+ } satisfies Model<"anthropic-messages">,
160
+ "alibaba/qwen3-max": {
161
+ id: "alibaba/qwen3-max",
162
+ name: "Qwen3 Max",
163
+ api: "anthropic-messages",
164
+ provider: "vercel-ai-gateway",
165
+ baseUrl: "https://ai-gateway.vercel.sh",
166
+ reasoning: false,
167
+ input: ["text"],
168
+ cost: {
169
+ input: 1.2,
170
+ output: 6,
171
+ cacheRead: 0.24,
172
+ cacheWrite: 0,
173
+ },
174
+ contextWindow: 262144,
175
+ maxTokens: 32768,
176
+ } satisfies Model<"anthropic-messages">,
177
+ "alibaba/qwen3-max-preview": {
178
+ id: "alibaba/qwen3-max-preview",
179
+ name: "Qwen3 Max Preview",
180
+ api: "anthropic-messages",
181
+ provider: "vercel-ai-gateway",
182
+ baseUrl: "https://ai-gateway.vercel.sh",
183
+ reasoning: false,
184
+ input: ["text"],
185
+ cost: {
186
+ input: 1.2,
187
+ output: 6,
188
+ cacheRead: 0.24,
189
+ cacheWrite: 0,
190
+ },
191
+ contextWindow: 262144,
192
+ maxTokens: 32768,
193
+ } satisfies Model<"anthropic-messages">,
194
+ "alibaba/qwen3-max-thinking": {
195
+ id: "alibaba/qwen3-max-thinking",
196
+ name: "Qwen 3 Max Thinking",
197
+ api: "anthropic-messages",
198
+ provider: "vercel-ai-gateway",
199
+ baseUrl: "https://ai-gateway.vercel.sh",
200
+ reasoning: true,
201
+ input: ["text"],
202
+ cost: {
203
+ input: 1.2,
204
+ output: 6,
205
+ cacheRead: 0.24,
206
+ cacheWrite: 0,
207
+ },
208
+ contextWindow: 256000,
209
+ maxTokens: 65536,
210
+ } satisfies Model<"anthropic-messages">,
211
+ "alibaba/qwen3-vl-thinking": {
212
+ id: "alibaba/qwen3-vl-thinking",
213
+ name: "Qwen3 VL 235B A22B Thinking",
214
+ api: "anthropic-messages",
215
+ provider: "vercel-ai-gateway",
216
+ baseUrl: "https://ai-gateway.vercel.sh",
217
+ reasoning: true,
218
+ input: ["text", "image"],
219
+ cost: {
220
+ input: 0.39999999999999997,
221
+ output: 4,
222
+ cacheRead: 0,
223
+ cacheWrite: 0,
224
+ },
225
+ contextWindow: 131072,
226
+ maxTokens: 32768,
227
+ } satisfies Model<"anthropic-messages">,
228
+ "alibaba/qwen3.5-flash": {
229
+ id: "alibaba/qwen3.5-flash",
230
+ name: "Qwen 3.5 Flash",
231
+ api: "anthropic-messages",
232
+ provider: "vercel-ai-gateway",
233
+ baseUrl: "https://ai-gateway.vercel.sh",
234
+ reasoning: true,
235
+ input: ["text", "image"],
236
+ cost: {
237
+ input: 0.09999999999999999,
238
+ output: 0.39999999999999997,
239
+ cacheRead: 0.001,
240
+ cacheWrite: 0.125,
241
+ },
242
+ contextWindow: 1000000,
243
+ maxTokens: 64000,
244
+ } satisfies Model<"anthropic-messages">,
245
+ "alibaba/qwen3.5-plus": {
246
+ id: "alibaba/qwen3.5-plus",
247
+ name: "Qwen 3.5 Plus",
248
+ api: "anthropic-messages",
249
+ provider: "vercel-ai-gateway",
250
+ baseUrl: "https://ai-gateway.vercel.sh",
251
+ reasoning: true,
252
+ input: ["text", "image"],
253
+ cost: {
254
+ input: 0.39999999999999997,
255
+ output: 2.4,
256
+ cacheRead: 0.04,
257
+ cacheWrite: 0.5,
258
+ },
259
+ contextWindow: 1000000,
260
+ maxTokens: 64000,
261
+ } satisfies Model<"anthropic-messages">,
262
+ "alibaba/qwen3.6-plus": {
263
+ id: "alibaba/qwen3.6-plus",
264
+ name: "Qwen 3.6 Plus",
265
+ api: "anthropic-messages",
266
+ provider: "vercel-ai-gateway",
267
+ baseUrl: "https://ai-gateway.vercel.sh",
268
+ reasoning: true,
269
+ input: ["text", "image"],
270
+ cost: {
271
+ input: 0.5,
272
+ output: 3,
273
+ cacheRead: 0.09999999999999999,
274
+ cacheWrite: 0,
275
+ },
276
+ contextWindow: 1000000,
277
+ maxTokens: 64000,
278
+ } satisfies Model<"anthropic-messages">,
279
+ "anthropic/claude-3-haiku": {
280
+ id: "anthropic/claude-3-haiku",
281
+ name: "Claude 3 Haiku",
282
+ api: "anthropic-messages",
283
+ provider: "vercel-ai-gateway",
284
+ baseUrl: "https://ai-gateway.vercel.sh",
285
+ reasoning: false,
286
+ input: ["text", "image"],
287
+ cost: {
288
+ input: 0.25,
289
+ output: 1.25,
290
+ cacheRead: 0.03,
291
+ cacheWrite: 0.3,
292
+ },
293
+ contextWindow: 200000,
294
+ maxTokens: 4096,
295
+ } satisfies Model<"anthropic-messages">,
296
+ "anthropic/claude-3.5-haiku": {
297
+ id: "anthropic/claude-3.5-haiku",
298
+ name: "Claude 3.5 Haiku",
299
+ api: "anthropic-messages",
300
+ provider: "vercel-ai-gateway",
301
+ baseUrl: "https://ai-gateway.vercel.sh",
302
+ reasoning: false,
303
+ input: ["text", "image"],
304
+ cost: {
305
+ input: 0.7999999999999999,
306
+ output: 4,
307
+ cacheRead: 0.08,
308
+ cacheWrite: 1,
309
+ },
310
+ contextWindow: 200000,
311
+ maxTokens: 8192,
312
+ } satisfies Model<"anthropic-messages">,
313
+ "anthropic/claude-3.7-sonnet": {
314
+ id: "anthropic/claude-3.7-sonnet",
315
+ name: "Claude 3.7 Sonnet",
316
+ api: "anthropic-messages",
317
+ provider: "vercel-ai-gateway",
318
+ baseUrl: "https://ai-gateway.vercel.sh",
319
+ reasoning: true,
320
+ input: ["text", "image"],
321
+ cost: {
322
+ input: 3,
323
+ output: 15,
324
+ cacheRead: 0.3,
325
+ cacheWrite: 3.75,
326
+ },
327
+ contextWindow: 200000,
328
+ maxTokens: 8192,
329
+ } satisfies Model<"anthropic-messages">,
330
+ "anthropic/claude-haiku-4.5": {
331
+ id: "anthropic/claude-haiku-4.5",
332
+ name: "Claude Haiku 4.5",
333
+ api: "anthropic-messages",
334
+ provider: "vercel-ai-gateway",
335
+ baseUrl: "https://ai-gateway.vercel.sh",
336
+ reasoning: true,
337
+ input: ["text", "image"],
338
+ cost: {
339
+ input: 1,
340
+ output: 5,
341
+ cacheRead: 0.09999999999999999,
342
+ cacheWrite: 1.25,
343
+ },
344
+ contextWindow: 200000,
345
+ maxTokens: 64000,
346
+ } satisfies Model<"anthropic-messages">,
347
+ "anthropic/claude-opus-4": {
348
+ id: "anthropic/claude-opus-4",
349
+ name: "Claude Opus 4",
350
+ api: "anthropic-messages",
351
+ provider: "vercel-ai-gateway",
352
+ baseUrl: "https://ai-gateway.vercel.sh",
353
+ reasoning: true,
354
+ input: ["text", "image"],
355
+ cost: {
356
+ input: 15,
357
+ output: 75,
358
+ cacheRead: 1.5,
359
+ cacheWrite: 18.75,
360
+ },
361
+ contextWindow: 200000,
362
+ maxTokens: 32000,
363
+ } satisfies Model<"anthropic-messages">,
364
+ "anthropic/claude-opus-4.1": {
365
+ id: "anthropic/claude-opus-4.1",
366
+ name: "Claude Opus 4.1",
367
+ api: "anthropic-messages",
368
+ provider: "vercel-ai-gateway",
369
+ baseUrl: "https://ai-gateway.vercel.sh",
370
+ reasoning: true,
371
+ input: ["text", "image"],
372
+ cost: {
373
+ input: 15,
374
+ output: 75,
375
+ cacheRead: 1.5,
376
+ cacheWrite: 18.75,
377
+ },
378
+ contextWindow: 200000,
379
+ maxTokens: 32000,
380
+ } satisfies Model<"anthropic-messages">,
381
+ "anthropic/claude-opus-4.5": {
382
+ id: "anthropic/claude-opus-4.5",
383
+ name: "Claude Opus 4.5",
384
+ api: "anthropic-messages",
385
+ provider: "vercel-ai-gateway",
386
+ baseUrl: "https://ai-gateway.vercel.sh",
387
+ reasoning: true,
388
+ input: ["text", "image"],
389
+ cost: {
390
+ input: 5,
391
+ output: 25,
392
+ cacheRead: 0.5,
393
+ cacheWrite: 6.25,
394
+ },
395
+ contextWindow: 200000,
396
+ maxTokens: 64000,
397
+ } satisfies Model<"anthropic-messages">,
398
+ "anthropic/claude-opus-4.6": {
399
+ id: "anthropic/claude-opus-4.6",
400
+ name: "Claude Opus 4.6",
401
+ api: "anthropic-messages",
402
+ provider: "vercel-ai-gateway",
403
+ baseUrl: "https://ai-gateway.vercel.sh",
404
+ reasoning: true,
405
+ input: ["text", "image"],
406
+ cost: {
407
+ input: 5,
408
+ output: 25,
409
+ cacheRead: 0.5,
410
+ cacheWrite: 6.25,
411
+ },
412
+ contextWindow: 1000000,
413
+ maxTokens: 128000,
414
+ } satisfies Model<"anthropic-messages">,
415
+ "anthropic/claude-sonnet-4": {
416
+ id: "anthropic/claude-sonnet-4",
417
+ name: "Claude Sonnet 4",
418
+ api: "anthropic-messages",
419
+ provider: "vercel-ai-gateway",
420
+ baseUrl: "https://ai-gateway.vercel.sh",
421
+ reasoning: true,
422
+ input: ["text", "image"],
423
+ cost: {
424
+ input: 3,
425
+ output: 15,
426
+ cacheRead: 0.3,
427
+ cacheWrite: 3.75,
428
+ },
429
+ contextWindow: 1000000,
430
+ maxTokens: 64000,
431
+ } satisfies Model<"anthropic-messages">,
432
+ "anthropic/claude-sonnet-4.5": {
433
+ id: "anthropic/claude-sonnet-4.5",
434
+ name: "Claude Sonnet 4.5",
435
+ api: "anthropic-messages",
436
+ provider: "vercel-ai-gateway",
437
+ baseUrl: "https://ai-gateway.vercel.sh",
438
+ reasoning: true,
439
+ input: ["text", "image"],
440
+ cost: {
441
+ input: 3,
442
+ output: 15,
443
+ cacheRead: 0.3,
444
+ cacheWrite: 3.75,
445
+ },
446
+ contextWindow: 1000000,
447
+ maxTokens: 64000,
448
+ } satisfies Model<"anthropic-messages">,
449
+ "anthropic/claude-sonnet-4.6": {
450
+ id: "anthropic/claude-sonnet-4.6",
451
+ name: "Claude Sonnet 4.6",
452
+ api: "anthropic-messages",
453
+ provider: "vercel-ai-gateway",
454
+ baseUrl: "https://ai-gateway.vercel.sh",
455
+ reasoning: true,
456
+ input: ["text", "image"],
457
+ cost: {
458
+ input: 3,
459
+ output: 15,
460
+ cacheRead: 0.3,
461
+ cacheWrite: 3.75,
462
+ },
463
+ contextWindow: 1000000,
464
+ maxTokens: 128000,
465
+ } satisfies Model<"anthropic-messages">,
466
+ "arcee-ai/trinity-large-preview": {
467
+ id: "arcee-ai/trinity-large-preview",
468
+ name: "Trinity Large Preview",
469
+ api: "anthropic-messages",
470
+ provider: "vercel-ai-gateway",
471
+ baseUrl: "https://ai-gateway.vercel.sh",
472
+ reasoning: false,
473
+ input: ["text"],
474
+ cost: {
475
+ input: 0.25,
476
+ output: 1,
477
+ cacheRead: 0,
478
+ cacheWrite: 0,
479
+ },
480
+ contextWindow: 131000,
481
+ maxTokens: 131000,
482
+ } satisfies Model<"anthropic-messages">,
483
+ "arcee-ai/trinity-large-thinking": {
484
+ id: "arcee-ai/trinity-large-thinking",
485
+ name: "Trinity Large Thinking",
486
+ api: "anthropic-messages",
487
+ provider: "vercel-ai-gateway",
488
+ baseUrl: "https://ai-gateway.vercel.sh",
489
+ reasoning: true,
490
+ input: ["text"],
491
+ cost: {
492
+ input: 0.25,
493
+ output: 0.8999999999999999,
494
+ cacheRead: 0,
495
+ cacheWrite: 0,
496
+ },
497
+ contextWindow: 262100,
498
+ maxTokens: 80000,
499
+ } satisfies Model<"anthropic-messages">,
500
+ "bytedance/seed-1.6": {
501
+ id: "bytedance/seed-1.6",
502
+ name: "Seed 1.6",
503
+ api: "anthropic-messages",
504
+ provider: "vercel-ai-gateway",
505
+ baseUrl: "https://ai-gateway.vercel.sh",
506
+ reasoning: true,
507
+ input: ["text"],
508
+ cost: {
509
+ input: 0.25,
510
+ output: 2,
511
+ cacheRead: 0.049999999999999996,
512
+ cacheWrite: 0,
513
+ },
514
+ contextWindow: 256000,
515
+ maxTokens: 32000,
516
+ } satisfies Model<"anthropic-messages">,
517
+ "cohere/command-a": {
518
+ id: "cohere/command-a",
519
+ name: "Command A",
520
+ api: "anthropic-messages",
521
+ provider: "vercel-ai-gateway",
522
+ baseUrl: "https://ai-gateway.vercel.sh",
523
+ reasoning: false,
524
+ input: ["text"],
525
+ cost: {
526
+ input: 2.5,
527
+ output: 10,
528
+ cacheRead: 0,
529
+ cacheWrite: 0,
530
+ },
531
+ contextWindow: 256000,
532
+ maxTokens: 8000,
533
+ } satisfies Model<"anthropic-messages">,
534
+ "deepseek/deepseek-r1": {
535
+ id: "deepseek/deepseek-r1",
536
+ name: "DeepSeek-R1",
537
+ api: "anthropic-messages",
538
+ provider: "vercel-ai-gateway",
539
+ baseUrl: "https://ai-gateway.vercel.sh",
540
+ reasoning: true,
541
+ input: ["text"],
542
+ cost: {
543
+ input: 1.35,
544
+ output: 5.4,
545
+ cacheRead: 0,
546
+ cacheWrite: 0,
547
+ },
548
+ contextWindow: 128000,
549
+ maxTokens: 8192,
550
+ } satisfies Model<"anthropic-messages">,
551
+ "deepseek/deepseek-v3": {
552
+ id: "deepseek/deepseek-v3",
553
+ name: "DeepSeek V3 0324",
554
+ api: "anthropic-messages",
555
+ provider: "vercel-ai-gateway",
556
+ baseUrl: "https://ai-gateway.vercel.sh",
557
+ reasoning: false,
558
+ input: ["text"],
559
+ cost: {
560
+ input: 0.77,
561
+ output: 0.77,
562
+ cacheRead: 0,
563
+ cacheWrite: 0,
564
+ },
565
+ contextWindow: 163840,
566
+ maxTokens: 16384,
567
+ } satisfies Model<"anthropic-messages">,
568
+ "deepseek/deepseek-v3.1": {
569
+ id: "deepseek/deepseek-v3.1",
570
+ name: "DeepSeek-V3.1",
571
+ api: "anthropic-messages",
572
+ provider: "vercel-ai-gateway",
573
+ baseUrl: "https://ai-gateway.vercel.sh",
574
+ reasoning: true,
575
+ input: ["text"],
576
+ cost: {
577
+ input: 0.56,
578
+ output: 1.68,
579
+ cacheRead: 0.28,
580
+ cacheWrite: 0,
581
+ },
582
+ contextWindow: 163840,
583
+ maxTokens: 8192,
584
+ } satisfies Model<"anthropic-messages">,
585
+ "deepseek/deepseek-v3.1-terminus": {
586
+ id: "deepseek/deepseek-v3.1-terminus",
587
+ name: "DeepSeek V3.1 Terminus",
588
+ api: "anthropic-messages",
589
+ provider: "vercel-ai-gateway",
590
+ baseUrl: "https://ai-gateway.vercel.sh",
591
+ reasoning: true,
592
+ input: ["text"],
593
+ cost: {
594
+ input: 0.27,
595
+ output: 1,
596
+ cacheRead: 0.135,
597
+ cacheWrite: 0,
598
+ },
599
+ contextWindow: 131072,
600
+ maxTokens: 65536,
601
+ } satisfies Model<"anthropic-messages">,
602
+ "deepseek/deepseek-v3.2": {
603
+ id: "deepseek/deepseek-v3.2",
604
+ name: "DeepSeek V3.2",
605
+ api: "anthropic-messages",
606
+ provider: "vercel-ai-gateway",
607
+ baseUrl: "https://ai-gateway.vercel.sh",
608
+ reasoning: false,
609
+ input: ["text"],
610
+ cost: {
611
+ input: 0.28,
612
+ output: 0.42,
613
+ cacheRead: 0.028,
614
+ cacheWrite: 0,
615
+ },
616
+ contextWindow: 128000,
617
+ maxTokens: 8000,
618
+ } satisfies Model<"anthropic-messages">,
619
+ "deepseek/deepseek-v3.2-thinking": {
620
+ id: "deepseek/deepseek-v3.2-thinking",
621
+ name: "DeepSeek V3.2 Thinking",
622
+ api: "anthropic-messages",
623
+ provider: "vercel-ai-gateway",
624
+ baseUrl: "https://ai-gateway.vercel.sh",
625
+ reasoning: true,
626
+ input: ["text"],
627
+ cost: {
628
+ input: 0.28,
629
+ output: 0.42,
630
+ cacheRead: 0.028,
631
+ cacheWrite: 0,
632
+ },
633
+ contextWindow: 128000,
634
+ maxTokens: 64000,
635
+ } satisfies Model<"anthropic-messages">,
636
+ "google/gemini-2.0-flash": {
637
+ id: "google/gemini-2.0-flash",
638
+ name: "Gemini 2.0 Flash",
639
+ api: "anthropic-messages",
640
+ provider: "vercel-ai-gateway",
641
+ baseUrl: "https://ai-gateway.vercel.sh",
642
+ reasoning: false,
643
+ input: ["text", "image"],
644
+ cost: {
645
+ input: 0.15,
646
+ output: 0.6,
647
+ cacheRead: 0.024999999999999998,
648
+ cacheWrite: 0,
649
+ },
650
+ contextWindow: 1048576,
651
+ maxTokens: 8192,
652
+ } satisfies Model<"anthropic-messages">,
653
+ "google/gemini-2.0-flash-lite": {
654
+ id: "google/gemini-2.0-flash-lite",
655
+ name: "Gemini 2.0 Flash Lite",
656
+ api: "anthropic-messages",
657
+ provider: "vercel-ai-gateway",
658
+ baseUrl: "https://ai-gateway.vercel.sh",
659
+ reasoning: false,
660
+ input: ["text", "image"],
661
+ cost: {
662
+ input: 0.075,
663
+ output: 0.3,
664
+ cacheRead: 0.02,
665
+ cacheWrite: 0,
666
+ },
667
+ contextWindow: 1048576,
668
+ maxTokens: 8192,
669
+ } satisfies Model<"anthropic-messages">,
670
+ "google/gemini-2.5-flash": {
671
+ id: "google/gemini-2.5-flash",
672
+ name: "Gemini 2.5 Flash",
673
+ api: "anthropic-messages",
674
+ provider: "vercel-ai-gateway",
675
+ baseUrl: "https://ai-gateway.vercel.sh",
676
+ reasoning: true,
677
+ input: ["text", "image"],
678
+ cost: {
679
+ input: 0.3,
680
+ output: 2.5,
681
+ cacheRead: 0.03,
682
+ cacheWrite: 0,
683
+ },
684
+ contextWindow: 1000000,
685
+ maxTokens: 65536,
686
+ } satisfies Model<"anthropic-messages">,
687
+ "google/gemini-2.5-flash-lite": {
688
+ id: "google/gemini-2.5-flash-lite",
689
+ name: "Gemini 2.5 Flash Lite",
690
+ api: "anthropic-messages",
691
+ provider: "vercel-ai-gateway",
692
+ baseUrl: "https://ai-gateway.vercel.sh",
693
+ reasoning: true,
694
+ input: ["text", "image"],
695
+ cost: {
696
+ input: 0.09999999999999999,
697
+ output: 0.39999999999999997,
698
+ cacheRead: 0.01,
699
+ cacheWrite: 0,
700
+ },
701
+ contextWindow: 1048576,
702
+ maxTokens: 65536,
703
+ } satisfies Model<"anthropic-messages">,
704
+ "google/gemini-2.5-pro": {
705
+ id: "google/gemini-2.5-pro",
706
+ name: "Gemini 2.5 Pro",
707
+ api: "anthropic-messages",
708
+ provider: "vercel-ai-gateway",
709
+ baseUrl: "https://ai-gateway.vercel.sh",
710
+ reasoning: true,
711
+ input: ["text", "image"],
712
+ cost: {
713
+ input: 1.25,
714
+ output: 10,
715
+ cacheRead: 0.125,
716
+ cacheWrite: 0,
717
+ },
718
+ contextWindow: 1048576,
719
+ maxTokens: 65536,
720
+ } satisfies Model<"anthropic-messages">,
721
+ "google/gemini-3-flash": {
722
+ id: "google/gemini-3-flash",
723
+ name: "Gemini 3 Flash",
724
+ api: "anthropic-messages",
725
+ provider: "vercel-ai-gateway",
726
+ baseUrl: "https://ai-gateway.vercel.sh",
727
+ reasoning: true,
728
+ input: ["text", "image"],
729
+ cost: {
730
+ input: 0.5,
731
+ output: 3,
732
+ cacheRead: 0.049999999999999996,
733
+ cacheWrite: 0,
734
+ },
735
+ contextWindow: 1000000,
736
+ maxTokens: 65000,
737
+ } satisfies Model<"anthropic-messages">,
738
+ "google/gemini-3-pro-preview": {
739
+ id: "google/gemini-3-pro-preview",
740
+ name: "Gemini 3 Pro Preview",
741
+ api: "anthropic-messages",
742
+ provider: "vercel-ai-gateway",
743
+ baseUrl: "https://ai-gateway.vercel.sh",
744
+ reasoning: true,
745
+ input: ["text", "image"],
746
+ cost: {
747
+ input: 2,
748
+ output: 12,
749
+ cacheRead: 0.19999999999999998,
750
+ cacheWrite: 0,
751
+ },
752
+ contextWindow: 1000000,
753
+ maxTokens: 64000,
754
+ } satisfies Model<"anthropic-messages">,
755
+ "google/gemini-3.1-flash-lite-preview": {
756
+ id: "google/gemini-3.1-flash-lite-preview",
757
+ name: "Gemini 3.1 Flash Lite Preview",
758
+ api: "anthropic-messages",
759
+ provider: "vercel-ai-gateway",
760
+ baseUrl: "https://ai-gateway.vercel.sh",
761
+ reasoning: true,
762
+ input: ["text", "image"],
763
+ cost: {
764
+ input: 0.25,
765
+ output: 1.5,
766
+ cacheRead: 0.03,
767
+ cacheWrite: 0,
768
+ },
769
+ contextWindow: 1000000,
770
+ maxTokens: 65000,
771
+ } satisfies Model<"anthropic-messages">,
772
+ "google/gemini-3.1-pro-preview": {
773
+ id: "google/gemini-3.1-pro-preview",
774
+ name: "Gemini 3.1 Pro Preview",
775
+ api: "anthropic-messages",
776
+ provider: "vercel-ai-gateway",
777
+ baseUrl: "https://ai-gateway.vercel.sh",
778
+ reasoning: true,
779
+ input: ["text", "image"],
780
+ cost: {
781
+ input: 2,
782
+ output: 12,
783
+ cacheRead: 0.19999999999999998,
784
+ cacheWrite: 0,
785
+ },
786
+ contextWindow: 1000000,
787
+ maxTokens: 64000,
788
+ } satisfies Model<"anthropic-messages">,
789
+ "google/gemma-4-26b-a4b-it": {
790
+ id: "google/gemma-4-26b-a4b-it",
791
+ name: "Gemma 4 26B A4B IT",
792
+ api: "anthropic-messages",
793
+ provider: "vercel-ai-gateway",
794
+ baseUrl: "https://ai-gateway.vercel.sh",
795
+ reasoning: false,
796
+ input: ["text", "image"],
797
+ cost: {
798
+ input: 0.13,
799
+ output: 0.39999999999999997,
800
+ cacheRead: 0,
801
+ cacheWrite: 0,
802
+ },
803
+ contextWindow: 262144,
804
+ maxTokens: 131072,
805
+ } satisfies Model<"anthropic-messages">,
806
+ "google/gemma-4-31b-it": {
807
+ id: "google/gemma-4-31b-it",
808
+ name: "Gemma 4 31B IT",
809
+ api: "anthropic-messages",
810
+ provider: "vercel-ai-gateway",
811
+ baseUrl: "https://ai-gateway.vercel.sh",
812
+ reasoning: false,
813
+ input: ["text", "image"],
814
+ cost: {
815
+ input: 0.14,
816
+ output: 0.39999999999999997,
817
+ cacheRead: 0,
818
+ cacheWrite: 0,
819
+ },
820
+ contextWindow: 262144,
821
+ maxTokens: 131072,
822
+ } satisfies Model<"anthropic-messages">,
823
+ "inception/mercury-2": {
824
+ id: "inception/mercury-2",
825
+ name: "Mercury 2",
826
+ api: "anthropic-messages",
827
+ provider: "vercel-ai-gateway",
828
+ baseUrl: "https://ai-gateway.vercel.sh",
829
+ reasoning: true,
830
+ input: ["text"],
831
+ cost: {
832
+ input: 0.25,
833
+ output: 0.75,
834
+ cacheRead: 0.024999999999999998,
835
+ cacheWrite: 0,
836
+ },
837
+ contextWindow: 128000,
838
+ maxTokens: 128000,
839
+ } satisfies Model<"anthropic-messages">,
840
+ "inception/mercury-coder-small": {
841
+ id: "inception/mercury-coder-small",
842
+ name: "Mercury Coder Small Beta",
843
+ api: "anthropic-messages",
844
+ provider: "vercel-ai-gateway",
845
+ baseUrl: "https://ai-gateway.vercel.sh",
846
+ reasoning: false,
847
+ input: ["text"],
848
+ cost: {
849
+ input: 0.25,
850
+ output: 1,
851
+ cacheRead: 0,
852
+ cacheWrite: 0,
853
+ },
854
+ contextWindow: 32000,
855
+ maxTokens: 16384,
856
+ } satisfies Model<"anthropic-messages">,
857
+ "kwaipilot/kat-coder-pro-v2": {
858
+ id: "kwaipilot/kat-coder-pro-v2",
859
+ name: "Kat Coder Pro V2",
860
+ api: "anthropic-messages",
861
+ provider: "vercel-ai-gateway",
862
+ baseUrl: "https://ai-gateway.vercel.sh",
863
+ reasoning: true,
864
+ input: ["text"],
865
+ cost: {
866
+ input: 0.3,
867
+ output: 1.2,
868
+ cacheRead: 0.06,
869
+ cacheWrite: 0,
870
+ },
871
+ contextWindow: 256000,
872
+ maxTokens: 256000,
873
+ } satisfies Model<"anthropic-messages">,
874
+ "meituan/longcat-flash-chat": {
875
+ id: "meituan/longcat-flash-chat",
876
+ name: "LongCat Flash Chat",
877
+ api: "anthropic-messages",
878
+ provider: "vercel-ai-gateway",
879
+ baseUrl: "https://ai-gateway.vercel.sh",
880
+ reasoning: false,
881
+ input: ["text"],
882
+ cost: {
883
+ input: 0,
884
+ output: 0,
885
+ cacheRead: 0,
886
+ cacheWrite: 0,
887
+ },
888
+ contextWindow: 128000,
889
+ maxTokens: 100000,
890
+ } satisfies Model<"anthropic-messages">,
891
+ "meta/llama-3.1-70b": {
892
+ id: "meta/llama-3.1-70b",
893
+ name: "Llama 3.1 70B Instruct",
894
+ api: "anthropic-messages",
895
+ provider: "vercel-ai-gateway",
896
+ baseUrl: "https://ai-gateway.vercel.sh",
897
+ reasoning: false,
898
+ input: ["text"],
899
+ cost: {
900
+ input: 0.72,
901
+ output: 0.72,
902
+ cacheRead: 0,
903
+ cacheWrite: 0,
904
+ },
905
+ contextWindow: 128000,
906
+ maxTokens: 8192,
907
+ } satisfies Model<"anthropic-messages">,
908
+ "meta/llama-3.1-8b": {
909
+ id: "meta/llama-3.1-8b",
910
+ name: "Llama 3.1 8B Instruct",
911
+ api: "anthropic-messages",
912
+ provider: "vercel-ai-gateway",
913
+ baseUrl: "https://ai-gateway.vercel.sh",
914
+ reasoning: false,
915
+ input: ["text"],
916
+ cost: {
917
+ input: 0.22,
918
+ output: 0.22,
919
+ cacheRead: 0,
920
+ cacheWrite: 0,
921
+ },
922
+ contextWindow: 128000,
923
+ maxTokens: 8192,
924
+ } satisfies Model<"anthropic-messages">,
925
+ "meta/llama-3.2-11b": {
926
+ id: "meta/llama-3.2-11b",
927
+ name: "Llama 3.2 11B Vision Instruct",
928
+ api: "anthropic-messages",
929
+ provider: "vercel-ai-gateway",
930
+ baseUrl: "https://ai-gateway.vercel.sh",
931
+ reasoning: false,
932
+ input: ["text", "image"],
933
+ cost: {
934
+ input: 0.16,
935
+ output: 0.16,
936
+ cacheRead: 0,
937
+ cacheWrite: 0,
938
+ },
939
+ contextWindow: 128000,
940
+ maxTokens: 8192,
941
+ } satisfies Model<"anthropic-messages">,
942
+ "meta/llama-3.2-90b": {
943
+ id: "meta/llama-3.2-90b",
944
+ name: "Llama 3.2 90B Vision Instruct",
945
+ api: "anthropic-messages",
946
+ provider: "vercel-ai-gateway",
947
+ baseUrl: "https://ai-gateway.vercel.sh",
948
+ reasoning: false,
949
+ input: ["text", "image"],
950
+ cost: {
951
+ input: 0.72,
952
+ output: 0.72,
953
+ cacheRead: 0,
954
+ cacheWrite: 0,
955
+ },
956
+ contextWindow: 128000,
957
+ maxTokens: 8192,
958
+ } satisfies Model<"anthropic-messages">,
959
+ "meta/llama-3.3-70b": {
960
+ id: "meta/llama-3.3-70b",
961
+ name: "Llama 3.3 70B Instruct",
962
+ api: "anthropic-messages",
963
+ provider: "vercel-ai-gateway",
964
+ baseUrl: "https://ai-gateway.vercel.sh",
965
+ reasoning: false,
966
+ input: ["text"],
967
+ cost: {
968
+ input: 0.72,
969
+ output: 0.72,
970
+ cacheRead: 0,
971
+ cacheWrite: 0,
972
+ },
973
+ contextWindow: 128000,
974
+ maxTokens: 8192,
975
+ } satisfies Model<"anthropic-messages">,
976
+ "meta/llama-4-maverick": {
977
+ id: "meta/llama-4-maverick",
978
+ name: "Llama 4 Maverick 17B Instruct",
979
+ api: "anthropic-messages",
980
+ provider: "vercel-ai-gateway",
981
+ baseUrl: "https://ai-gateway.vercel.sh",
982
+ reasoning: false,
983
+ input: ["text", "image"],
984
+ cost: {
985
+ input: 0.24,
986
+ output: 0.9700000000000001,
987
+ cacheRead: 0,
988
+ cacheWrite: 0,
989
+ },
990
+ contextWindow: 128000,
991
+ maxTokens: 8192,
992
+ } satisfies Model<"anthropic-messages">,
993
+ "meta/llama-4-scout": {
994
+ id: "meta/llama-4-scout",
995
+ name: "Llama 4 Scout 17B Instruct",
996
+ api: "anthropic-messages",
997
+ provider: "vercel-ai-gateway",
998
+ baseUrl: "https://ai-gateway.vercel.sh",
999
+ reasoning: false,
1000
+ input: ["text", "image"],
1001
+ cost: {
1002
+ input: 0.16999999999999998,
1003
+ output: 0.66,
1004
+ cacheRead: 0,
1005
+ cacheWrite: 0,
1006
+ },
1007
+ contextWindow: 128000,
1008
+ maxTokens: 8192,
1009
+ } satisfies Model<"anthropic-messages">,
1010
+ "minimax/minimax-m2": {
1011
+ id: "minimax/minimax-m2",
1012
+ name: "MiniMax M2",
1013
+ api: "anthropic-messages",
1014
+ provider: "vercel-ai-gateway",
1015
+ baseUrl: "https://ai-gateway.vercel.sh",
1016
+ reasoning: true,
1017
+ input: ["text"],
1018
+ cost: {
1019
+ input: 0.3,
1020
+ output: 1.2,
1021
+ cacheRead: 0.03,
1022
+ cacheWrite: 0.375,
1023
+ },
1024
+ contextWindow: 205000,
1025
+ maxTokens: 205000,
1026
+ } satisfies Model<"anthropic-messages">,
1027
+ "minimax/minimax-m2.1": {
1028
+ id: "minimax/minimax-m2.1",
1029
+ name: "MiniMax M2.1",
1030
+ api: "anthropic-messages",
1031
+ provider: "vercel-ai-gateway",
1032
+ baseUrl: "https://ai-gateway.vercel.sh",
1033
+ reasoning: true,
1034
+ input: ["text"],
1035
+ cost: {
1036
+ input: 0.3,
1037
+ output: 1.2,
1038
+ cacheRead: 0.03,
1039
+ cacheWrite: 0.375,
1040
+ },
1041
+ contextWindow: 204800,
1042
+ maxTokens: 131072,
1043
+ } satisfies Model<"anthropic-messages">,
1044
+ "minimax/minimax-m2.1-lightning": {
1045
+ id: "minimax/minimax-m2.1-lightning",
1046
+ name: "MiniMax M2.1 Lightning",
1047
+ api: "anthropic-messages",
1048
+ provider: "vercel-ai-gateway",
1049
+ baseUrl: "https://ai-gateway.vercel.sh",
1050
+ reasoning: true,
1051
+ input: ["text"],
1052
+ cost: {
1053
+ input: 0.3,
1054
+ output: 2.4,
1055
+ cacheRead: 0.03,
1056
+ cacheWrite: 0.375,
1057
+ },
1058
+ contextWindow: 204800,
1059
+ maxTokens: 131072,
1060
+ } satisfies Model<"anthropic-messages">,
1061
+ "minimax/minimax-m2.5": {
1062
+ id: "minimax/minimax-m2.5",
1063
+ name: "MiniMax M2.5",
1064
+ api: "anthropic-messages",
1065
+ provider: "vercel-ai-gateway",
1066
+ baseUrl: "https://ai-gateway.vercel.sh",
1067
+ reasoning: true,
1068
+ input: ["text"],
1069
+ cost: {
1070
+ input: 0.3,
1071
+ output: 1.2,
1072
+ cacheRead: 0.03,
1073
+ cacheWrite: 0.375,
1074
+ },
1075
+ contextWindow: 204800,
1076
+ maxTokens: 131000,
1077
+ } satisfies Model<"anthropic-messages">,
1078
+ "minimax/minimax-m2.5-highspeed": {
1079
+ id: "minimax/minimax-m2.5-highspeed",
1080
+ name: "MiniMax M2.5 High Speed",
1081
+ api: "anthropic-messages",
1082
+ provider: "vercel-ai-gateway",
1083
+ baseUrl: "https://ai-gateway.vercel.sh",
1084
+ reasoning: true,
1085
+ input: ["text"],
1086
+ cost: {
1087
+ input: 0.6,
1088
+ output: 2.4,
1089
+ cacheRead: 0.03,
1090
+ cacheWrite: 0.375,
1091
+ },
1092
+ contextWindow: 204800,
1093
+ maxTokens: 131000,
1094
+ } satisfies Model<"anthropic-messages">,
1095
+ "minimax/minimax-m2.7": {
1096
+ id: "minimax/minimax-m2.7",
1097
+ name: "Minimax M2.7",
1098
+ api: "anthropic-messages",
1099
+ provider: "vercel-ai-gateway",
1100
+ baseUrl: "https://ai-gateway.vercel.sh",
1101
+ reasoning: true,
1102
+ input: ["text", "image"],
1103
+ cost: {
1104
+ input: 0.3,
1105
+ output: 1.2,
1106
+ cacheRead: 0.06,
1107
+ cacheWrite: 0.375,
1108
+ },
1109
+ contextWindow: 204800,
1110
+ maxTokens: 131000,
1111
+ } satisfies Model<"anthropic-messages">,
1112
+ "minimax/minimax-m2.7-highspeed": {
1113
+ id: "minimax/minimax-m2.7-highspeed",
1114
+ name: "MiniMax M2.7 High Speed",
1115
+ api: "anthropic-messages",
1116
+ provider: "vercel-ai-gateway",
1117
+ baseUrl: "https://ai-gateway.vercel.sh",
1118
+ reasoning: true,
1119
+ input: ["text", "image"],
1120
+ cost: {
1121
+ input: 0.6,
1122
+ output: 2.4,
1123
+ cacheRead: 0.06,
1124
+ cacheWrite: 0.375,
1125
+ },
1126
+ contextWindow: 204800,
1127
+ maxTokens: 131100,
1128
+ } satisfies Model<"anthropic-messages">,
1129
+ "mistral/codestral": {
1130
+ id: "mistral/codestral",
1131
+ name: "Mistral Codestral",
1132
+ api: "anthropic-messages",
1133
+ provider: "vercel-ai-gateway",
1134
+ baseUrl: "https://ai-gateway.vercel.sh",
1135
+ reasoning: false,
1136
+ input: ["text"],
1137
+ cost: {
1138
+ input: 0.3,
1139
+ output: 0.8999999999999999,
1140
+ cacheRead: 0,
1141
+ cacheWrite: 0,
1142
+ },
1143
+ contextWindow: 128000,
1144
+ maxTokens: 4000,
1145
+ } satisfies Model<"anthropic-messages">,
1146
+ "mistral/devstral-2": {
1147
+ id: "mistral/devstral-2",
1148
+ name: "Devstral 2",
1149
+ api: "anthropic-messages",
1150
+ provider: "vercel-ai-gateway",
1151
+ baseUrl: "https://ai-gateway.vercel.sh",
1152
+ reasoning: false,
1153
+ input: ["text"],
1154
+ cost: {
1155
+ input: 0.39999999999999997,
1156
+ output: 2,
1157
+ cacheRead: 0,
1158
+ cacheWrite: 0,
1159
+ },
1160
+ contextWindow: 256000,
1161
+ maxTokens: 256000,
1162
+ } satisfies Model<"anthropic-messages">,
1163
+ "mistral/devstral-small": {
1164
+ id: "mistral/devstral-small",
1165
+ name: "Devstral Small 1.1",
1166
+ api: "anthropic-messages",
1167
+ provider: "vercel-ai-gateway",
1168
+ baseUrl: "https://ai-gateway.vercel.sh",
1169
+ reasoning: false,
1170
+ input: ["text"],
1171
+ cost: {
1172
+ input: 0.09999999999999999,
1173
+ output: 0.3,
1174
+ cacheRead: 0,
1175
+ cacheWrite: 0,
1176
+ },
1177
+ contextWindow: 128000,
1178
+ maxTokens: 64000,
1179
+ } satisfies Model<"anthropic-messages">,
1180
+ "mistral/devstral-small-2": {
1181
+ id: "mistral/devstral-small-2",
1182
+ name: "Devstral Small 2",
1183
+ api: "anthropic-messages",
1184
+ provider: "vercel-ai-gateway",
1185
+ baseUrl: "https://ai-gateway.vercel.sh",
1186
+ reasoning: false,
1187
+ input: ["text"],
1188
+ cost: {
1189
+ input: 0.09999999999999999,
1190
+ output: 0.3,
1191
+ cacheRead: 0,
1192
+ cacheWrite: 0,
1193
+ },
1194
+ contextWindow: 256000,
1195
+ maxTokens: 256000,
1196
+ } satisfies Model<"anthropic-messages">,
1197
+ "mistral/ministral-3b": {
1198
+ id: "mistral/ministral-3b",
1199
+ name: "Ministral 3B",
1200
+ api: "anthropic-messages",
1201
+ provider: "vercel-ai-gateway",
1202
+ baseUrl: "https://ai-gateway.vercel.sh",
1203
+ reasoning: false,
1204
+ input: ["text"],
1205
+ cost: {
1206
+ input: 0.09999999999999999,
1207
+ output: 0.09999999999999999,
1208
+ cacheRead: 0,
1209
+ cacheWrite: 0,
1210
+ },
1211
+ contextWindow: 128000,
1212
+ maxTokens: 4000,
1213
+ } satisfies Model<"anthropic-messages">,
1214
+ "mistral/ministral-8b": {
1215
+ id: "mistral/ministral-8b",
1216
+ name: "Ministral 8B",
1217
+ api: "anthropic-messages",
1218
+ provider: "vercel-ai-gateway",
1219
+ baseUrl: "https://ai-gateway.vercel.sh",
1220
+ reasoning: false,
1221
+ input: ["text"],
1222
+ cost: {
1223
+ input: 0.15,
1224
+ output: 0.15,
1225
+ cacheRead: 0,
1226
+ cacheWrite: 0,
1227
+ },
1228
+ contextWindow: 128000,
1229
+ maxTokens: 4000,
1230
+ } satisfies Model<"anthropic-messages">,
1231
+ "mistral/mistral-medium": {
1232
+ id: "mistral/mistral-medium",
1233
+ name: "Mistral Medium 3.1",
1234
+ api: "anthropic-messages",
1235
+ provider: "vercel-ai-gateway",
1236
+ baseUrl: "https://ai-gateway.vercel.sh",
1237
+ reasoning: false,
1238
+ input: ["text", "image"],
1239
+ cost: {
1240
+ input: 0.39999999999999997,
1241
+ output: 2,
1242
+ cacheRead: 0,
1243
+ cacheWrite: 0,
1244
+ },
1245
+ contextWindow: 128000,
1246
+ maxTokens: 64000,
1247
+ } satisfies Model<"anthropic-messages">,
1248
+ "mistral/mistral-small": {
1249
+ id: "mistral/mistral-small",
1250
+ name: "Mistral Small",
1251
+ api: "anthropic-messages",
1252
+ provider: "vercel-ai-gateway",
1253
+ baseUrl: "https://ai-gateway.vercel.sh",
1254
+ reasoning: false,
1255
+ input: ["text", "image"],
1256
+ cost: {
1257
+ input: 0.09999999999999999,
1258
+ output: 0.3,
1259
+ cacheRead: 0,
1260
+ cacheWrite: 0,
1261
+ },
1262
+ contextWindow: 32000,
1263
+ maxTokens: 4000,
1264
+ } satisfies Model<"anthropic-messages">,
1265
+ "mistral/pixtral-12b": {
1266
+ id: "mistral/pixtral-12b",
1267
+ name: "Pixtral 12B 2409",
1268
+ api: "anthropic-messages",
1269
+ provider: "vercel-ai-gateway",
1270
+ baseUrl: "https://ai-gateway.vercel.sh",
1271
+ reasoning: false,
1272
+ input: ["text", "image"],
1273
+ cost: {
1274
+ input: 0.15,
1275
+ output: 0.15,
1276
+ cacheRead: 0,
1277
+ cacheWrite: 0,
1278
+ },
1279
+ contextWindow: 128000,
1280
+ maxTokens: 4000,
1281
+ } satisfies Model<"anthropic-messages">,
1282
+ "mistral/pixtral-large": {
1283
+ id: "mistral/pixtral-large",
1284
+ name: "Pixtral Large",
1285
+ api: "anthropic-messages",
1286
+ provider: "vercel-ai-gateway",
1287
+ baseUrl: "https://ai-gateway.vercel.sh",
1288
+ reasoning: false,
1289
+ input: ["text", "image"],
1290
+ cost: {
1291
+ input: 2,
1292
+ output: 6,
1293
+ cacheRead: 0,
1294
+ cacheWrite: 0,
1295
+ },
1296
+ contextWindow: 128000,
1297
+ maxTokens: 4000,
1298
+ } satisfies Model<"anthropic-messages">,
1299
+ "moonshotai/kimi-k2": {
1300
+ id: "moonshotai/kimi-k2",
1301
+ name: "Kimi K2 Instruct",
1302
+ api: "anthropic-messages",
1303
+ provider: "vercel-ai-gateway",
1304
+ baseUrl: "https://ai-gateway.vercel.sh",
1305
+ reasoning: false,
1306
+ input: ["text"],
1307
+ cost: {
1308
+ input: 0.5700000000000001,
1309
+ output: 2.3,
1310
+ cacheRead: 0,
1311
+ cacheWrite: 0,
1312
+ },
1313
+ contextWindow: 131072,
1314
+ maxTokens: 131072,
1315
+ } satisfies Model<"anthropic-messages">,
1316
+ "moonshotai/kimi-k2-0905": {
1317
+ id: "moonshotai/kimi-k2-0905",
1318
+ name: "Kimi K2 0905",
1319
+ api: "anthropic-messages",
1320
+ provider: "vercel-ai-gateway",
1321
+ baseUrl: "https://ai-gateway.vercel.sh",
1322
+ reasoning: false,
1323
+ input: ["text"],
1324
+ cost: {
1325
+ input: 0.6,
1326
+ output: 2.5,
1327
+ cacheRead: 0.3,
1328
+ cacheWrite: 0,
1329
+ },
1330
+ contextWindow: 256000,
1331
+ maxTokens: 128000,
1332
+ } satisfies Model<"anthropic-messages">,
1333
+ "moonshotai/kimi-k2-thinking": {
1334
+ id: "moonshotai/kimi-k2-thinking",
1335
+ name: "Kimi K2 Thinking",
1336
+ api: "anthropic-messages",
1337
+ provider: "vercel-ai-gateway",
1338
+ baseUrl: "https://ai-gateway.vercel.sh",
1339
+ reasoning: true,
1340
+ input: ["text"],
1341
+ cost: {
1342
+ input: 0.6,
1343
+ output: 2.5,
1344
+ cacheRead: 0.15,
1345
+ cacheWrite: 0,
1346
+ },
1347
+ contextWindow: 262114,
1348
+ maxTokens: 262114,
1349
+ } satisfies Model<"anthropic-messages">,
1350
+ "moonshotai/kimi-k2-thinking-turbo": {
1351
+ id: "moonshotai/kimi-k2-thinking-turbo",
1352
+ name: "Kimi K2 Thinking Turbo",
1353
+ api: "anthropic-messages",
1354
+ provider: "vercel-ai-gateway",
1355
+ baseUrl: "https://ai-gateway.vercel.sh",
1356
+ reasoning: true,
1357
+ input: ["text"],
1358
+ cost: {
1359
+ input: 1.15,
1360
+ output: 8,
1361
+ cacheRead: 0.15,
1362
+ cacheWrite: 0,
1363
+ },
1364
+ contextWindow: 262114,
1365
+ maxTokens: 262114,
1366
+ } satisfies Model<"anthropic-messages">,
1367
+ "moonshotai/kimi-k2-turbo": {
1368
+ id: "moonshotai/kimi-k2-turbo",
1369
+ name: "Kimi K2 Turbo",
1370
+ api: "anthropic-messages",
1371
+ provider: "vercel-ai-gateway",
1372
+ baseUrl: "https://ai-gateway.vercel.sh",
1373
+ reasoning: false,
1374
+ input: ["text"],
1375
+ cost: {
1376
+ input: 1.15,
1377
+ output: 8,
1378
+ cacheRead: 0.15,
1379
+ cacheWrite: 0,
1380
+ },
1381
+ contextWindow: 256000,
1382
+ maxTokens: 16384,
1383
+ } satisfies Model<"anthropic-messages">,
1384
+ "moonshotai/kimi-k2.5": {
1385
+ id: "moonshotai/kimi-k2.5",
1386
+ name: "Kimi K2.5",
1387
+ api: "anthropic-messages",
1388
+ provider: "vercel-ai-gateway",
1389
+ baseUrl: "https://ai-gateway.vercel.sh",
1390
+ reasoning: true,
1391
+ input: ["text", "image"],
1392
+ cost: {
1393
+ input: 0.6,
1394
+ output: 3,
1395
+ cacheRead: 0.09999999999999999,
1396
+ cacheWrite: 0,
1397
+ },
1398
+ contextWindow: 262114,
1399
+ maxTokens: 262114,
1400
+ } satisfies Model<"anthropic-messages">,
1401
+ "nvidia/nemotron-nano-12b-v2-vl": {
1402
+ id: "nvidia/nemotron-nano-12b-v2-vl",
1403
+ name: "Nvidia Nemotron Nano 12B V2 VL",
1404
+ api: "anthropic-messages",
1405
+ provider: "vercel-ai-gateway",
1406
+ baseUrl: "https://ai-gateway.vercel.sh",
1407
+ reasoning: true,
1408
+ input: ["text", "image"],
1409
+ cost: {
1410
+ input: 0.19999999999999998,
1411
+ output: 0.6,
1412
+ cacheRead: 0,
1413
+ cacheWrite: 0,
1414
+ },
1415
+ contextWindow: 131072,
1416
+ maxTokens: 131072,
1417
+ } satisfies Model<"anthropic-messages">,
1418
+ "nvidia/nemotron-nano-9b-v2": {
1419
+ id: "nvidia/nemotron-nano-9b-v2",
1420
+ name: "Nvidia Nemotron Nano 9B V2",
1421
+ api: "anthropic-messages",
1422
+ provider: "vercel-ai-gateway",
1423
+ baseUrl: "https://ai-gateway.vercel.sh",
1424
+ reasoning: true,
1425
+ input: ["text"],
1426
+ cost: {
1427
+ input: 0.06,
1428
+ output: 0.22999999999999998,
1429
+ cacheRead: 0,
1430
+ cacheWrite: 0,
1431
+ },
1432
+ contextWindow: 131072,
1433
+ maxTokens: 131072,
1434
+ } satisfies Model<"anthropic-messages">,
1435
+ "openai/gpt-4-turbo": {
1436
+ id: "openai/gpt-4-turbo",
1437
+ name: "GPT-4 Turbo",
1438
+ api: "anthropic-messages",
1439
+ provider: "vercel-ai-gateway",
1440
+ baseUrl: "https://ai-gateway.vercel.sh",
1441
+ reasoning: false,
1442
+ input: ["text", "image"],
1443
+ cost: {
1444
+ input: 10,
1445
+ output: 30,
1446
+ cacheRead: 0,
1447
+ cacheWrite: 0,
1448
+ },
1449
+ contextWindow: 128000,
1450
+ maxTokens: 4096,
1451
+ } satisfies Model<"anthropic-messages">,
1452
+ "openai/gpt-4.1": {
1453
+ id: "openai/gpt-4.1",
1454
+ name: "GPT-4.1",
1455
+ api: "anthropic-messages",
1456
+ provider: "vercel-ai-gateway",
1457
+ baseUrl: "https://ai-gateway.vercel.sh",
1458
+ reasoning: false,
1459
+ input: ["text", "image"],
1460
+ cost: {
1461
+ input: 2,
1462
+ output: 8,
1463
+ cacheRead: 0.5,
1464
+ cacheWrite: 0,
1465
+ },
1466
+ contextWindow: 1047576,
1467
+ maxTokens: 32768,
1468
+ } satisfies Model<"anthropic-messages">,
1469
+ "openai/gpt-4.1-mini": {
1470
+ id: "openai/gpt-4.1-mini",
1471
+ name: "GPT-4.1 mini",
1472
+ api: "anthropic-messages",
1473
+ provider: "vercel-ai-gateway",
1474
+ baseUrl: "https://ai-gateway.vercel.sh",
1475
+ reasoning: false,
1476
+ input: ["text", "image"],
1477
+ cost: {
1478
+ input: 0.39999999999999997,
1479
+ output: 1.5999999999999999,
1480
+ cacheRead: 0.09999999999999999,
1481
+ cacheWrite: 0,
1482
+ },
1483
+ contextWindow: 1047576,
1484
+ maxTokens: 32768,
1485
+ } satisfies Model<"anthropic-messages">,
1486
+ "openai/gpt-4.1-nano": {
1487
+ id: "openai/gpt-4.1-nano",
1488
+ name: "GPT-4.1 nano",
1489
+ api: "anthropic-messages",
1490
+ provider: "vercel-ai-gateway",
1491
+ baseUrl: "https://ai-gateway.vercel.sh",
1492
+ reasoning: false,
1493
+ input: ["text", "image"],
1494
+ cost: {
1495
+ input: 0.09999999999999999,
1496
+ output: 0.39999999999999997,
1497
+ cacheRead: 0.024999999999999998,
1498
+ cacheWrite: 0,
1499
+ },
1500
+ contextWindow: 1047576,
1501
+ maxTokens: 32768,
1502
+ } satisfies Model<"anthropic-messages">,
1503
+ "openai/gpt-4o": {
1504
+ id: "openai/gpt-4o",
1505
+ name: "GPT-4o",
1506
+ api: "anthropic-messages",
1507
+ provider: "vercel-ai-gateway",
1508
+ baseUrl: "https://ai-gateway.vercel.sh",
1509
+ reasoning: false,
1510
+ input: ["text", "image"],
1511
+ cost: {
1512
+ input: 2.5,
1513
+ output: 10,
1514
+ cacheRead: 1.25,
1515
+ cacheWrite: 0,
1516
+ },
1517
+ contextWindow: 128000,
1518
+ maxTokens: 16384,
1519
+ } satisfies Model<"anthropic-messages">,
1520
+ "openai/gpt-4o-mini": {
1521
+ id: "openai/gpt-4o-mini",
1522
+ name: "GPT-4o mini",
1523
+ api: "anthropic-messages",
1524
+ provider: "vercel-ai-gateway",
1525
+ baseUrl: "https://ai-gateway.vercel.sh",
1526
+ reasoning: false,
1527
+ input: ["text", "image"],
1528
+ cost: {
1529
+ input: 0.15,
1530
+ output: 0.6,
1531
+ cacheRead: 0.075,
1532
+ cacheWrite: 0,
1533
+ },
1534
+ contextWindow: 128000,
1535
+ maxTokens: 16384,
1536
+ } satisfies Model<"anthropic-messages">,
1537
+ "openai/gpt-5": {
1538
+ id: "openai/gpt-5",
1539
+ name: "GPT-5",
1540
+ api: "anthropic-messages",
1541
+ provider: "vercel-ai-gateway",
1542
+ baseUrl: "https://ai-gateway.vercel.sh",
1543
+ reasoning: true,
1544
+ input: ["text", "image"],
1545
+ cost: {
1546
+ input: 1.25,
1547
+ output: 10,
1548
+ cacheRead: 0.125,
1549
+ cacheWrite: 0,
1550
+ },
1551
+ contextWindow: 400000,
1552
+ maxTokens: 128000,
1553
+ } satisfies Model<"anthropic-messages">,
1554
+ "openai/gpt-5-chat": {
1555
+ id: "openai/gpt-5-chat",
1556
+ name: "GPT 5 Chat",
1557
+ api: "anthropic-messages",
1558
+ provider: "vercel-ai-gateway",
1559
+ baseUrl: "https://ai-gateway.vercel.sh",
1560
+ reasoning: true,
1561
+ input: ["text", "image"],
1562
+ cost: {
1563
+ input: 1.25,
1564
+ output: 10,
1565
+ cacheRead: 0.125,
1566
+ cacheWrite: 0,
1567
+ },
1568
+ contextWindow: 128000,
1569
+ maxTokens: 16384,
1570
+ } satisfies Model<"anthropic-messages">,
1571
+ "openai/gpt-5-codex": {
1572
+ id: "openai/gpt-5-codex",
1573
+ name: "GPT-5-Codex",
1574
+ api: "anthropic-messages",
1575
+ provider: "vercel-ai-gateway",
1576
+ baseUrl: "https://ai-gateway.vercel.sh",
1577
+ reasoning: true,
1578
+ input: ["text"],
1579
+ cost: {
1580
+ input: 1.25,
1581
+ output: 10,
1582
+ cacheRead: 0.125,
1583
+ cacheWrite: 0,
1584
+ },
1585
+ contextWindow: 400000,
1586
+ maxTokens: 128000,
1587
+ } satisfies Model<"anthropic-messages">,
1588
+ "openai/gpt-5-mini": {
1589
+ id: "openai/gpt-5-mini",
1590
+ name: "GPT-5 mini",
1591
+ api: "anthropic-messages",
1592
+ provider: "vercel-ai-gateway",
1593
+ baseUrl: "https://ai-gateway.vercel.sh",
1594
+ reasoning: true,
1595
+ input: ["text", "image"],
1596
+ cost: {
1597
+ input: 0.25,
1598
+ output: 2,
1599
+ cacheRead: 0.024999999999999998,
1600
+ cacheWrite: 0,
1601
+ },
1602
+ contextWindow: 400000,
1603
+ maxTokens: 128000,
1604
+ } satisfies Model<"anthropic-messages">,
1605
+ "openai/gpt-5-nano": {
1606
+ id: "openai/gpt-5-nano",
1607
+ name: "GPT-5 nano",
1608
+ api: "anthropic-messages",
1609
+ provider: "vercel-ai-gateway",
1610
+ baseUrl: "https://ai-gateway.vercel.sh",
1611
+ reasoning: true,
1612
+ input: ["text", "image"],
1613
+ cost: {
1614
+ input: 0.049999999999999996,
1615
+ output: 0.39999999999999997,
1616
+ cacheRead: 0.005,
1617
+ cacheWrite: 0,
1618
+ },
1619
+ contextWindow: 400000,
1620
+ maxTokens: 128000,
1621
+ } satisfies Model<"anthropic-messages">,
1622
+ "openai/gpt-5-pro": {
1623
+ id: "openai/gpt-5-pro",
1624
+ name: "GPT-5 pro",
1625
+ api: "anthropic-messages",
1626
+ provider: "vercel-ai-gateway",
1627
+ baseUrl: "https://ai-gateway.vercel.sh",
1628
+ reasoning: true,
1629
+ input: ["text", "image"],
1630
+ cost: {
1631
+ input: 15,
1632
+ output: 120,
1633
+ cacheRead: 0,
1634
+ cacheWrite: 0,
1635
+ },
1636
+ contextWindow: 400000,
1637
+ maxTokens: 272000,
1638
+ } satisfies Model<"anthropic-messages">,
1639
+ "openai/gpt-5.1-codex": {
1640
+ id: "openai/gpt-5.1-codex",
1641
+ name: "GPT-5.1-Codex",
1642
+ api: "anthropic-messages",
1643
+ provider: "vercel-ai-gateway",
1644
+ baseUrl: "https://ai-gateway.vercel.sh",
1645
+ reasoning: true,
1646
+ input: ["text", "image"],
1647
+ cost: {
1648
+ input: 1.25,
1649
+ output: 10,
1650
+ cacheRead: 0.125,
1651
+ cacheWrite: 0,
1652
+ },
1653
+ contextWindow: 400000,
1654
+ maxTokens: 128000,
1655
+ } satisfies Model<"anthropic-messages">,
1656
+ "openai/gpt-5.1-codex-max": {
1657
+ id: "openai/gpt-5.1-codex-max",
1658
+ name: "GPT 5.1 Codex Max",
1659
+ api: "anthropic-messages",
1660
+ provider: "vercel-ai-gateway",
1661
+ baseUrl: "https://ai-gateway.vercel.sh",
1662
+ reasoning: true,
1663
+ input: ["text", "image"],
1664
+ cost: {
1665
+ input: 1.25,
1666
+ output: 10,
1667
+ cacheRead: 0.125,
1668
+ cacheWrite: 0,
1669
+ },
1670
+ contextWindow: 400000,
1671
+ maxTokens: 128000,
1672
+ } satisfies Model<"anthropic-messages">,
1673
+ "openai/gpt-5.1-codex-mini": {
1674
+ id: "openai/gpt-5.1-codex-mini",
1675
+ name: "GPT 5.1 Codex Mini",
1676
+ api: "anthropic-messages",
1677
+ provider: "vercel-ai-gateway",
1678
+ baseUrl: "https://ai-gateway.vercel.sh",
1679
+ reasoning: true,
1680
+ input: ["text", "image"],
1681
+ cost: {
1682
+ input: 0.25,
1683
+ output: 2,
1684
+ cacheRead: 0.024999999999999998,
1685
+ cacheWrite: 0,
1686
+ },
1687
+ contextWindow: 400000,
1688
+ maxTokens: 128000,
1689
+ } satisfies Model<"anthropic-messages">,
1690
+ "openai/gpt-5.1-instant": {
1691
+ id: "openai/gpt-5.1-instant",
1692
+ name: "GPT-5.1 Instant",
1693
+ api: "anthropic-messages",
1694
+ provider: "vercel-ai-gateway",
1695
+ baseUrl: "https://ai-gateway.vercel.sh",
1696
+ reasoning: true,
1697
+ input: ["text", "image"],
1698
+ cost: {
1699
+ input: 1.25,
1700
+ output: 10,
1701
+ cacheRead: 0.125,
1702
+ cacheWrite: 0,
1703
+ },
1704
+ contextWindow: 128000,
1705
+ maxTokens: 16384,
1706
+ } satisfies Model<"anthropic-messages">,
1707
+ "openai/gpt-5.1-thinking": {
1708
+ id: "openai/gpt-5.1-thinking",
1709
+ name: "GPT 5.1 Thinking",
1710
+ api: "anthropic-messages",
1711
+ provider: "vercel-ai-gateway",
1712
+ baseUrl: "https://ai-gateway.vercel.sh",
1713
+ reasoning: true,
1714
+ input: ["text", "image"],
1715
+ cost: {
1716
+ input: 1.25,
1717
+ output: 10,
1718
+ cacheRead: 0.125,
1719
+ cacheWrite: 0,
1720
+ },
1721
+ contextWindow: 400000,
1722
+ maxTokens: 128000,
1723
+ } satisfies Model<"anthropic-messages">,
1724
+ "openai/gpt-5.2": {
1725
+ id: "openai/gpt-5.2",
1726
+ name: "GPT 5.2",
1727
+ api: "anthropic-messages",
1728
+ provider: "vercel-ai-gateway",
1729
+ baseUrl: "https://ai-gateway.vercel.sh",
1730
+ reasoning: true,
1731
+ input: ["text", "image"],
1732
+ cost: {
1733
+ input: 1.75,
1734
+ output: 14,
1735
+ cacheRead: 0.175,
1736
+ cacheWrite: 0,
1737
+ },
1738
+ contextWindow: 400000,
1739
+ maxTokens: 128000,
1740
+ } satisfies Model<"anthropic-messages">,
1741
+ "openai/gpt-5.2-chat": {
1742
+ id: "openai/gpt-5.2-chat",
1743
+ name: "GPT 5.2 Chat",
1744
+ api: "anthropic-messages",
1745
+ provider: "vercel-ai-gateway",
1746
+ baseUrl: "https://ai-gateway.vercel.sh",
1747
+ reasoning: true,
1748
+ input: ["text", "image"],
1749
+ cost: {
1750
+ input: 1.75,
1751
+ output: 14,
1752
+ cacheRead: 0.175,
1753
+ cacheWrite: 0,
1754
+ },
1755
+ contextWindow: 128000,
1756
+ maxTokens: 16384,
1757
+ } satisfies Model<"anthropic-messages">,
1758
+ "openai/gpt-5.2-codex": {
1759
+ id: "openai/gpt-5.2-codex",
1760
+ name: "GPT 5.2 Codex",
1761
+ api: "anthropic-messages",
1762
+ provider: "vercel-ai-gateway",
1763
+ baseUrl: "https://ai-gateway.vercel.sh",
1764
+ reasoning: true,
1765
+ input: ["text", "image"],
1766
+ cost: {
1767
+ input: 1.75,
1768
+ output: 14,
1769
+ cacheRead: 0.175,
1770
+ cacheWrite: 0,
1771
+ },
1772
+ contextWindow: 400000,
1773
+ maxTokens: 128000,
1774
+ } satisfies Model<"anthropic-messages">,
1775
+ "openai/gpt-5.2-pro": {
1776
+ id: "openai/gpt-5.2-pro",
1777
+ name: "GPT 5.2 ",
1778
+ api: "anthropic-messages",
1779
+ provider: "vercel-ai-gateway",
1780
+ baseUrl: "https://ai-gateway.vercel.sh",
1781
+ reasoning: true,
1782
+ input: ["text", "image"],
1783
+ cost: {
1784
+ input: 21,
1785
+ output: 168,
1786
+ cacheRead: 0,
1787
+ cacheWrite: 0,
1788
+ },
1789
+ contextWindow: 400000,
1790
+ maxTokens: 128000,
1791
+ } satisfies Model<"anthropic-messages">,
1792
+ "openai/gpt-5.3-chat": {
1793
+ id: "openai/gpt-5.3-chat",
1794
+ name: "GPT-5.3 Chat",
1795
+ api: "anthropic-messages",
1796
+ provider: "vercel-ai-gateway",
1797
+ baseUrl: "https://ai-gateway.vercel.sh",
1798
+ reasoning: true,
1799
+ input: ["text", "image"],
1800
+ cost: {
1801
+ input: 1.75,
1802
+ output: 14,
1803
+ cacheRead: 0.175,
1804
+ cacheWrite: 0,
1805
+ },
1806
+ contextWindow: 128000,
1807
+ maxTokens: 16384,
1808
+ } satisfies Model<"anthropic-messages">,
1809
+ "openai/gpt-5.3-codex": {
1810
+ id: "openai/gpt-5.3-codex",
1811
+ name: "GPT 5.3 Codex",
1812
+ api: "anthropic-messages",
1813
+ provider: "vercel-ai-gateway",
1814
+ baseUrl: "https://ai-gateway.vercel.sh",
1815
+ reasoning: true,
1816
+ input: ["text", "image"],
1817
+ cost: {
1818
+ input: 1.75,
1819
+ output: 14,
1820
+ cacheRead: 0.175,
1821
+ cacheWrite: 0,
1822
+ },
1823
+ contextWindow: 400000,
1824
+ maxTokens: 128000,
1825
+ } satisfies Model<"anthropic-messages">,
1826
+ "openai/gpt-5.4": {
1827
+ id: "openai/gpt-5.4",
1828
+ name: "GPT 5.4",
1829
+ api: "anthropic-messages",
1830
+ provider: "vercel-ai-gateway",
1831
+ baseUrl: "https://ai-gateway.vercel.sh",
1832
+ reasoning: true,
1833
+ input: ["text", "image"],
1834
+ cost: {
1835
+ input: 2.5,
1836
+ output: 15,
1837
+ cacheRead: 0.25,
1838
+ cacheWrite: 0,
1839
+ },
1840
+ contextWindow: 1050000,
1841
+ maxTokens: 128000,
1842
+ } satisfies Model<"anthropic-messages">,
1843
+ "openai/gpt-5.4-mini": {
1844
+ id: "openai/gpt-5.4-mini",
1845
+ name: "GPT 5.4 Mini",
1846
+ api: "anthropic-messages",
1847
+ provider: "vercel-ai-gateway",
1848
+ baseUrl: "https://ai-gateway.vercel.sh",
1849
+ reasoning: true,
1850
+ input: ["text", "image"],
1851
+ cost: {
1852
+ input: 0.75,
1853
+ output: 4.5,
1854
+ cacheRead: 0.075,
1855
+ cacheWrite: 0,
1856
+ },
1857
+ contextWindow: 400000,
1858
+ maxTokens: 128000,
1859
+ } satisfies Model<"anthropic-messages">,
1860
+ "openai/gpt-5.4-nano": {
1861
+ id: "openai/gpt-5.4-nano",
1862
+ name: "GPT 5.4 Nano",
1863
+ api: "anthropic-messages",
1864
+ provider: "vercel-ai-gateway",
1865
+ baseUrl: "https://ai-gateway.vercel.sh",
1866
+ reasoning: true,
1867
+ input: ["text", "image"],
1868
+ cost: {
1869
+ input: 0.19999999999999998,
1870
+ output: 1.25,
1871
+ cacheRead: 0.02,
1872
+ cacheWrite: 0,
1873
+ },
1874
+ contextWindow: 400000,
1875
+ maxTokens: 128000,
1876
+ } satisfies Model<"anthropic-messages">,
1877
+ "openai/gpt-5.4-pro": {
1878
+ id: "openai/gpt-5.4-pro",
1879
+ name: "GPT 5.4 Pro",
1880
+ api: "anthropic-messages",
1881
+ provider: "vercel-ai-gateway",
1882
+ baseUrl: "https://ai-gateway.vercel.sh",
1883
+ reasoning: true,
1884
+ input: ["text", "image"],
1885
+ cost: {
1886
+ input: 30,
1887
+ output: 180,
1888
+ cacheRead: 0,
1889
+ cacheWrite: 0,
1890
+ },
1891
+ contextWindow: 1050000,
1892
+ maxTokens: 128000,
1893
+ } satisfies Model<"anthropic-messages">,
1894
+ "openai/gpt-oss-20b": {
1895
+ id: "openai/gpt-oss-20b",
1896
+ name: "gpt-oss-20b",
1897
+ api: "anthropic-messages",
1898
+ provider: "vercel-ai-gateway",
1899
+ baseUrl: "https://ai-gateway.vercel.sh",
1900
+ reasoning: true,
1901
+ input: ["text"],
1902
+ cost: {
1903
+ input: 0.049999999999999996,
1904
+ output: 0.19999999999999998,
1905
+ cacheRead: 0,
1906
+ cacheWrite: 0,
1907
+ },
1908
+ contextWindow: 131072,
1909
+ maxTokens: 8192,
1910
+ } satisfies Model<"anthropic-messages">,
1911
+ "openai/gpt-oss-safeguard-20b": {
1912
+ id: "openai/gpt-oss-safeguard-20b",
1913
+ name: "gpt-oss-safeguard-20b",
1914
+ api: "anthropic-messages",
1915
+ provider: "vercel-ai-gateway",
1916
+ baseUrl: "https://ai-gateway.vercel.sh",
1917
+ reasoning: true,
1918
+ input: ["text"],
1919
+ cost: {
1920
+ input: 0.075,
1921
+ output: 0.3,
1922
+ cacheRead: 0.037,
1923
+ cacheWrite: 0,
1924
+ },
1925
+ contextWindow: 131072,
1926
+ maxTokens: 65536,
1927
+ } satisfies Model<"anthropic-messages">,
1928
+ "openai/o1": {
1929
+ id: "openai/o1",
1930
+ name: "o1",
1931
+ api: "anthropic-messages",
1932
+ provider: "vercel-ai-gateway",
1933
+ baseUrl: "https://ai-gateway.vercel.sh",
1934
+ reasoning: true,
1935
+ input: ["text", "image"],
1936
+ cost: {
1937
+ input: 15,
1938
+ output: 60,
1939
+ cacheRead: 7.5,
1940
+ cacheWrite: 0,
1941
+ },
1942
+ contextWindow: 200000,
1943
+ maxTokens: 100000,
1944
+ } satisfies Model<"anthropic-messages">,
1945
+ "openai/o3": {
1946
+ id: "openai/o3",
1947
+ name: "o3",
1948
+ api: "anthropic-messages",
1949
+ provider: "vercel-ai-gateway",
1950
+ baseUrl: "https://ai-gateway.vercel.sh",
1951
+ reasoning: true,
1952
+ input: ["text", "image"],
1953
+ cost: {
1954
+ input: 2,
1955
+ output: 8,
1956
+ cacheRead: 0.5,
1957
+ cacheWrite: 0,
1958
+ },
1959
+ contextWindow: 200000,
1960
+ maxTokens: 100000,
1961
+ } satisfies Model<"anthropic-messages">,
1962
+ "openai/o3-deep-research": {
1963
+ id: "openai/o3-deep-research",
1964
+ name: "o3-deep-research",
1965
+ api: "anthropic-messages",
1966
+ provider: "vercel-ai-gateway",
1967
+ baseUrl: "https://ai-gateway.vercel.sh",
1968
+ reasoning: true,
1969
+ input: ["text", "image"],
1970
+ cost: {
1971
+ input: 10,
1972
+ output: 40,
1973
+ cacheRead: 2.5,
1974
+ cacheWrite: 0,
1975
+ },
1976
+ contextWindow: 200000,
1977
+ maxTokens: 100000,
1978
+ } satisfies Model<"anthropic-messages">,
1979
+ "openai/o3-mini": {
1980
+ id: "openai/o3-mini",
1981
+ name: "o3-mini",
1982
+ api: "anthropic-messages",
1983
+ provider: "vercel-ai-gateway",
1984
+ baseUrl: "https://ai-gateway.vercel.sh",
1985
+ reasoning: true,
1986
+ input: ["text"],
1987
+ cost: {
1988
+ input: 1.1,
1989
+ output: 4.4,
1990
+ cacheRead: 0.55,
1991
+ cacheWrite: 0,
1992
+ },
1993
+ contextWindow: 200000,
1994
+ maxTokens: 100000,
1995
+ } satisfies Model<"anthropic-messages">,
1996
+ "openai/o3-pro": {
1997
+ id: "openai/o3-pro",
1998
+ name: "o3 Pro",
1999
+ api: "anthropic-messages",
2000
+ provider: "vercel-ai-gateway",
2001
+ baseUrl: "https://ai-gateway.vercel.sh",
2002
+ reasoning: true,
2003
+ input: ["text", "image"],
2004
+ cost: {
2005
+ input: 20,
2006
+ output: 80,
2007
+ cacheRead: 0,
2008
+ cacheWrite: 0,
2009
+ },
2010
+ contextWindow: 200000,
2011
+ maxTokens: 100000,
2012
+ } satisfies Model<"anthropic-messages">,
2013
+ "openai/o4-mini": {
2014
+ id: "openai/o4-mini",
2015
+ name: "o4-mini",
2016
+ api: "anthropic-messages",
2017
+ provider: "vercel-ai-gateway",
2018
+ baseUrl: "https://ai-gateway.vercel.sh",
2019
+ reasoning: true,
2020
+ input: ["text", "image"],
2021
+ cost: {
2022
+ input: 1.1,
2023
+ output: 4.4,
2024
+ cacheRead: 0.275,
2025
+ cacheWrite: 0,
2026
+ },
2027
+ contextWindow: 200000,
2028
+ maxTokens: 100000,
2029
+ } satisfies Model<"anthropic-messages">,
2030
+ "perplexity/sonar": {
2031
+ id: "perplexity/sonar",
2032
+ name: "Sonar",
2033
+ api: "anthropic-messages",
2034
+ provider: "vercel-ai-gateway",
2035
+ baseUrl: "https://ai-gateway.vercel.sh",
2036
+ reasoning: false,
2037
+ input: ["text", "image"],
2038
+ cost: {
2039
+ input: 0,
2040
+ output: 0,
2041
+ cacheRead: 0,
2042
+ cacheWrite: 0,
2043
+ },
2044
+ contextWindow: 127000,
2045
+ maxTokens: 8000,
2046
+ } satisfies Model<"anthropic-messages">,
2047
+ "perplexity/sonar-pro": {
2048
+ id: "perplexity/sonar-pro",
2049
+ name: "Sonar Pro",
2050
+ api: "anthropic-messages",
2051
+ provider: "vercel-ai-gateway",
2052
+ baseUrl: "https://ai-gateway.vercel.sh",
2053
+ reasoning: false,
2054
+ input: ["text", "image"],
2055
+ cost: {
2056
+ input: 0,
2057
+ output: 0,
2058
+ cacheRead: 0,
2059
+ cacheWrite: 0,
2060
+ },
2061
+ contextWindow: 200000,
2062
+ maxTokens: 8000,
2063
+ } satisfies Model<"anthropic-messages">,
2064
+ "prime-intellect/intellect-3": {
2065
+ id: "prime-intellect/intellect-3",
2066
+ name: "INTELLECT 3",
2067
+ api: "anthropic-messages",
2068
+ provider: "vercel-ai-gateway",
2069
+ baseUrl: "https://ai-gateway.vercel.sh",
2070
+ reasoning: true,
2071
+ input: ["text"],
2072
+ cost: {
2073
+ input: 0.19999999999999998,
2074
+ output: 1.1,
2075
+ cacheRead: 0,
2076
+ cacheWrite: 0,
2077
+ },
2078
+ contextWindow: 131072,
2079
+ maxTokens: 131072,
2080
+ } satisfies Model<"anthropic-messages">,
2081
+ "xai/grok-3": {
2082
+ id: "xai/grok-3",
2083
+ name: "Grok 3 Beta",
2084
+ api: "anthropic-messages",
2085
+ provider: "vercel-ai-gateway",
2086
+ baseUrl: "https://ai-gateway.vercel.sh",
2087
+ reasoning: false,
2088
+ input: ["text"],
2089
+ cost: {
2090
+ input: 3,
2091
+ output: 15,
2092
+ cacheRead: 0.75,
2093
+ cacheWrite: 0,
2094
+ },
2095
+ contextWindow: 131072,
2096
+ maxTokens: 131072,
2097
+ } satisfies Model<"anthropic-messages">,
2098
+ "xai/grok-3-fast": {
2099
+ id: "xai/grok-3-fast",
2100
+ name: "Grok 3 Fast Beta",
2101
+ api: "anthropic-messages",
2102
+ provider: "vercel-ai-gateway",
2103
+ baseUrl: "https://ai-gateway.vercel.sh",
2104
+ reasoning: false,
2105
+ input: ["text"],
2106
+ cost: {
2107
+ input: 5,
2108
+ output: 25,
2109
+ cacheRead: 1.25,
2110
+ cacheWrite: 0,
2111
+ },
2112
+ contextWindow: 131072,
2113
+ maxTokens: 131072,
2114
+ } satisfies Model<"anthropic-messages">,
2115
+ "xai/grok-3-mini": {
2116
+ id: "xai/grok-3-mini",
2117
+ name: "Grok 3 Mini Beta",
2118
+ api: "anthropic-messages",
2119
+ provider: "vercel-ai-gateway",
2120
+ baseUrl: "https://ai-gateway.vercel.sh",
2121
+ reasoning: false,
2122
+ input: ["text"],
2123
+ cost: {
2124
+ input: 0.3,
2125
+ output: 0.5,
2126
+ cacheRead: 0.075,
2127
+ cacheWrite: 0,
2128
+ },
2129
+ contextWindow: 131072,
2130
+ maxTokens: 131072,
2131
+ } satisfies Model<"anthropic-messages">,
2132
+ "xai/grok-3-mini-fast": {
2133
+ id: "xai/grok-3-mini-fast",
2134
+ name: "Grok 3 Mini Fast Beta",
2135
+ api: "anthropic-messages",
2136
+ provider: "vercel-ai-gateway",
2137
+ baseUrl: "https://ai-gateway.vercel.sh",
2138
+ reasoning: false,
2139
+ input: ["text"],
2140
+ cost: {
2141
+ input: 0.6,
2142
+ output: 4,
2143
+ cacheRead: 0,
2144
+ cacheWrite: 0,
2145
+ },
2146
+ contextWindow: 131072,
2147
+ maxTokens: 131072,
2148
+ } satisfies Model<"anthropic-messages">,
2149
+ "xai/grok-4": {
2150
+ id: "xai/grok-4",
2151
+ name: "Grok 4",
2152
+ api: "anthropic-messages",
2153
+ provider: "vercel-ai-gateway",
2154
+ baseUrl: "https://ai-gateway.vercel.sh",
2155
+ reasoning: true,
2156
+ input: ["text", "image"],
2157
+ cost: {
2158
+ input: 3,
2159
+ output: 15,
2160
+ cacheRead: 0.75,
2161
+ cacheWrite: 0,
2162
+ },
2163
+ contextWindow: 256000,
2164
+ maxTokens: 256000,
2165
+ } satisfies Model<"anthropic-messages">,
2166
+ "xai/grok-4-fast-non-reasoning": {
2167
+ id: "xai/grok-4-fast-non-reasoning",
2168
+ name: "Grok 4 Fast Non-Reasoning",
2169
+ api: "anthropic-messages",
2170
+ provider: "vercel-ai-gateway",
2171
+ baseUrl: "https://ai-gateway.vercel.sh",
2172
+ reasoning: false,
2173
+ input: ["text"],
2174
+ cost: {
2175
+ input: 0.19999999999999998,
2176
+ output: 0.5,
2177
+ cacheRead: 0.049999999999999996,
2178
+ cacheWrite: 0,
2179
+ },
2180
+ contextWindow: 2000000,
2181
+ maxTokens: 256000,
2182
+ } satisfies Model<"anthropic-messages">,
2183
+ "xai/grok-4-fast-reasoning": {
2184
+ id: "xai/grok-4-fast-reasoning",
2185
+ name: "Grok 4 Fast Reasoning",
2186
+ api: "anthropic-messages",
2187
+ provider: "vercel-ai-gateway",
2188
+ baseUrl: "https://ai-gateway.vercel.sh",
2189
+ reasoning: true,
2190
+ input: ["text"],
2191
+ cost: {
2192
+ input: 0.19999999999999998,
2193
+ output: 0.5,
2194
+ cacheRead: 0.049999999999999996,
2195
+ cacheWrite: 0,
2196
+ },
2197
+ contextWindow: 2000000,
2198
+ maxTokens: 256000,
2199
+ } satisfies Model<"anthropic-messages">,
2200
+ "xai/grok-4.1-fast-non-reasoning": {
2201
+ id: "xai/grok-4.1-fast-non-reasoning",
2202
+ name: "Grok 4.1 Fast Non-Reasoning",
2203
+ api: "anthropic-messages",
2204
+ provider: "vercel-ai-gateway",
2205
+ baseUrl: "https://ai-gateway.vercel.sh",
2206
+ reasoning: false,
2207
+ input: ["text"],
2208
+ cost: {
2209
+ input: 0.19999999999999998,
2210
+ output: 0.5,
2211
+ cacheRead: 0.049999999999999996,
2212
+ cacheWrite: 0,
2213
+ },
2214
+ contextWindow: 2000000,
2215
+ maxTokens: 30000,
2216
+ } satisfies Model<"anthropic-messages">,
2217
+ "xai/grok-4.1-fast-reasoning": {
2218
+ id: "xai/grok-4.1-fast-reasoning",
2219
+ name: "Grok 4.1 Fast Reasoning",
2220
+ api: "anthropic-messages",
2221
+ provider: "vercel-ai-gateway",
2222
+ baseUrl: "https://ai-gateway.vercel.sh",
2223
+ reasoning: true,
2224
+ input: ["text"],
2225
+ cost: {
2226
+ input: 0.19999999999999998,
2227
+ output: 0.5,
2228
+ cacheRead: 0.049999999999999996,
2229
+ cacheWrite: 0,
2230
+ },
2231
+ contextWindow: 2000000,
2232
+ maxTokens: 30000,
2233
+ } satisfies Model<"anthropic-messages">,
2234
+ "xai/grok-4.20-multi-agent": {
2235
+ id: "xai/grok-4.20-multi-agent",
2236
+ name: "Grok 4.20 Multi-Agent",
2237
+ api: "anthropic-messages",
2238
+ provider: "vercel-ai-gateway",
2239
+ baseUrl: "https://ai-gateway.vercel.sh",
2240
+ reasoning: true,
2241
+ input: ["text"],
2242
+ cost: {
2243
+ input: 2,
2244
+ output: 6,
2245
+ cacheRead: 0.19999999999999998,
2246
+ cacheWrite: 0,
2247
+ },
2248
+ contextWindow: 2000000,
2249
+ maxTokens: 2000000,
2250
+ } satisfies Model<"anthropic-messages">,
2251
+ "xai/grok-4.20-multi-agent-beta": {
2252
+ id: "xai/grok-4.20-multi-agent-beta",
2253
+ name: "Grok 4.20 Multi Agent Beta",
2254
+ api: "anthropic-messages",
2255
+ provider: "vercel-ai-gateway",
2256
+ baseUrl: "https://ai-gateway.vercel.sh",
2257
+ reasoning: true,
2258
+ input: ["text"],
2259
+ cost: {
2260
+ input: 2,
2261
+ output: 6,
2262
+ cacheRead: 0.19999999999999998,
2263
+ cacheWrite: 0,
2264
+ },
2265
+ contextWindow: 2000000,
2266
+ maxTokens: 2000000,
2267
+ } satisfies Model<"anthropic-messages">,
2268
+ "xai/grok-4.20-non-reasoning": {
2269
+ id: "xai/grok-4.20-non-reasoning",
2270
+ name: "Grok 4.20 Non-Reasoning",
2271
+ api: "anthropic-messages",
2272
+ provider: "vercel-ai-gateway",
2273
+ baseUrl: "https://ai-gateway.vercel.sh",
2274
+ reasoning: false,
2275
+ input: ["text", "image"],
2276
+ cost: {
2277
+ input: 2,
2278
+ output: 6,
2279
+ cacheRead: 0.19999999999999998,
2280
+ cacheWrite: 0,
2281
+ },
2282
+ contextWindow: 2000000,
2283
+ maxTokens: 2000000,
2284
+ } satisfies Model<"anthropic-messages">,
2285
+ "xai/grok-4.20-non-reasoning-beta": {
2286
+ id: "xai/grok-4.20-non-reasoning-beta",
2287
+ name: "Grok 4.20 Beta Non-Reasoning",
2288
+ api: "anthropic-messages",
2289
+ provider: "vercel-ai-gateway",
2290
+ baseUrl: "https://ai-gateway.vercel.sh",
2291
+ reasoning: false,
2292
+ input: ["text", "image"],
2293
+ cost: {
2294
+ input: 2,
2295
+ output: 6,
2296
+ cacheRead: 0.19999999999999998,
2297
+ cacheWrite: 0,
2298
+ },
2299
+ contextWindow: 2000000,
2300
+ maxTokens: 2000000,
2301
+ } satisfies Model<"anthropic-messages">,
2302
+ "xai/grok-4.20-reasoning": {
2303
+ id: "xai/grok-4.20-reasoning",
2304
+ name: "Grok 4.20 Reasoning",
2305
+ api: "anthropic-messages",
2306
+ provider: "vercel-ai-gateway",
2307
+ baseUrl: "https://ai-gateway.vercel.sh",
2308
+ reasoning: true,
2309
+ input: ["text", "image"],
2310
+ cost: {
2311
+ input: 2,
2312
+ output: 6,
2313
+ cacheRead: 0.19999999999999998,
2314
+ cacheWrite: 0,
2315
+ },
2316
+ contextWindow: 2000000,
2317
+ maxTokens: 2000000,
2318
+ } satisfies Model<"anthropic-messages">,
2319
+ "xai/grok-4.20-reasoning-beta": {
2320
+ id: "xai/grok-4.20-reasoning-beta",
2321
+ name: "Grok 4.20 Beta Reasoning",
2322
+ api: "anthropic-messages",
2323
+ provider: "vercel-ai-gateway",
2324
+ baseUrl: "https://ai-gateway.vercel.sh",
2325
+ reasoning: true,
2326
+ input: ["text", "image"],
2327
+ cost: {
2328
+ input: 2,
2329
+ output: 6,
2330
+ cacheRead: 0.19999999999999998,
2331
+ cacheWrite: 0,
2332
+ },
2333
+ contextWindow: 2000000,
2334
+ maxTokens: 2000000,
2335
+ } satisfies Model<"anthropic-messages">,
2336
+ "xai/grok-code-fast-1": {
2337
+ id: "xai/grok-code-fast-1",
2338
+ name: "Grok Code Fast 1",
2339
+ api: "anthropic-messages",
2340
+ provider: "vercel-ai-gateway",
2341
+ baseUrl: "https://ai-gateway.vercel.sh",
2342
+ reasoning: true,
2343
+ input: ["text"],
2344
+ cost: {
2345
+ input: 0.19999999999999998,
2346
+ output: 1.5,
2347
+ cacheRead: 0.02,
2348
+ cacheWrite: 0,
2349
+ },
2350
+ contextWindow: 256000,
2351
+ maxTokens: 256000,
2352
+ } satisfies Model<"anthropic-messages">,
2353
+ "xiaomi/mimo-v2-flash": {
2354
+ id: "xiaomi/mimo-v2-flash",
2355
+ name: "MiMo V2 Flash",
2356
+ api: "anthropic-messages",
2357
+ provider: "vercel-ai-gateway",
2358
+ baseUrl: "https://ai-gateway.vercel.sh",
2359
+ reasoning: true,
2360
+ input: ["text"],
2361
+ cost: {
2362
+ input: 0.09,
2363
+ output: 0.29,
2364
+ cacheRead: 0.045,
2365
+ cacheWrite: 0,
2366
+ },
2367
+ contextWindow: 262144,
2368
+ maxTokens: 32000,
2369
+ } satisfies Model<"anthropic-messages">,
2370
+ "xiaomi/mimo-v2-pro": {
2371
+ id: "xiaomi/mimo-v2-pro",
2372
+ name: "MiMo V2 Pro",
2373
+ api: "anthropic-messages",
2374
+ provider: "vercel-ai-gateway",
2375
+ baseUrl: "https://ai-gateway.vercel.sh",
2376
+ reasoning: true,
2377
+ input: ["text"],
2378
+ cost: {
2379
+ input: 1,
2380
+ output: 3,
2381
+ cacheRead: 0.19999999999999998,
2382
+ cacheWrite: 0,
2383
+ },
2384
+ contextWindow: 1000000,
2385
+ maxTokens: 128000,
2386
+ } satisfies Model<"anthropic-messages">,
2387
+ "zai/glm-4.5": {
2388
+ id: "zai/glm-4.5",
2389
+ name: "GLM-4.5",
2390
+ api: "anthropic-messages",
2391
+ provider: "vercel-ai-gateway",
2392
+ baseUrl: "https://ai-gateway.vercel.sh",
2393
+ reasoning: true,
2394
+ input: ["text"],
2395
+ cost: {
2396
+ input: 0.6,
2397
+ output: 2.2,
2398
+ cacheRead: 0.11,
2399
+ cacheWrite: 0,
2400
+ },
2401
+ contextWindow: 128000,
2402
+ maxTokens: 96000,
2403
+ } satisfies Model<"anthropic-messages">,
2404
+ "zai/glm-4.5-air": {
2405
+ id: "zai/glm-4.5-air",
2406
+ name: "GLM 4.5 Air",
2407
+ api: "anthropic-messages",
2408
+ provider: "vercel-ai-gateway",
2409
+ baseUrl: "https://ai-gateway.vercel.sh",
2410
+ reasoning: true,
2411
+ input: ["text"],
2412
+ cost: {
2413
+ input: 0.19999999999999998,
2414
+ output: 1.1,
2415
+ cacheRead: 0.03,
2416
+ cacheWrite: 0,
2417
+ },
2418
+ contextWindow: 128000,
2419
+ maxTokens: 96000,
2420
+ } satisfies Model<"anthropic-messages">,
2421
+ "zai/glm-4.5v": {
2422
+ id: "zai/glm-4.5v",
2423
+ name: "GLM 4.5V",
2424
+ api: "anthropic-messages",
2425
+ provider: "vercel-ai-gateway",
2426
+ baseUrl: "https://ai-gateway.vercel.sh",
2427
+ reasoning: false,
2428
+ input: ["text", "image"],
2429
+ cost: {
2430
+ input: 0.6,
2431
+ output: 1.7999999999999998,
2432
+ cacheRead: 0.11,
2433
+ cacheWrite: 0,
2434
+ },
2435
+ contextWindow: 66000,
2436
+ maxTokens: 16000,
2437
+ } satisfies Model<"anthropic-messages">,
2438
+ "zai/glm-4.6": {
2439
+ id: "zai/glm-4.6",
2440
+ name: "GLM 4.6",
2441
+ api: "anthropic-messages",
2442
+ provider: "vercel-ai-gateway",
2443
+ baseUrl: "https://ai-gateway.vercel.sh",
2444
+ reasoning: true,
2445
+ input: ["text"],
2446
+ cost: {
2447
+ input: 0.6,
2448
+ output: 2.2,
2449
+ cacheRead: 0.11,
2450
+ cacheWrite: 0,
2451
+ },
2452
+ contextWindow: 200000,
2453
+ maxTokens: 96000,
2454
+ } satisfies Model<"anthropic-messages">,
2455
+ "zai/glm-4.6v": {
2456
+ id: "zai/glm-4.6v",
2457
+ name: "GLM-4.6V",
2458
+ api: "anthropic-messages",
2459
+ provider: "vercel-ai-gateway",
2460
+ baseUrl: "https://ai-gateway.vercel.sh",
2461
+ reasoning: true,
2462
+ input: ["text", "image"],
2463
+ cost: {
2464
+ input: 0.3,
2465
+ output: 0.8999999999999999,
2466
+ cacheRead: 0.049999999999999996,
2467
+ cacheWrite: 0,
2468
+ },
2469
+ contextWindow: 128000,
2470
+ maxTokens: 24000,
2471
+ } satisfies Model<"anthropic-messages">,
2472
+ "zai/glm-4.6v-flash": {
2473
+ id: "zai/glm-4.6v-flash",
2474
+ name: "GLM-4.6V-Flash",
2475
+ api: "anthropic-messages",
2476
+ provider: "vercel-ai-gateway",
2477
+ baseUrl: "https://ai-gateway.vercel.sh",
2478
+ reasoning: true,
2479
+ input: ["text", "image"],
2480
+ cost: {
2481
+ input: 0,
2482
+ output: 0,
2483
+ cacheRead: 0,
2484
+ cacheWrite: 0,
2485
+ },
2486
+ contextWindow: 128000,
2487
+ maxTokens: 24000,
2488
+ } satisfies Model<"anthropic-messages">,
2489
+ "zai/glm-4.7": {
2490
+ id: "zai/glm-4.7",
2491
+ name: "GLM 4.7",
2492
+ api: "anthropic-messages",
2493
+ provider: "vercel-ai-gateway",
2494
+ baseUrl: "https://ai-gateway.vercel.sh",
2495
+ reasoning: true,
2496
+ input: ["text"],
2497
+ cost: {
2498
+ input: 2.25,
2499
+ output: 2.75,
2500
+ cacheRead: 2.25,
2501
+ cacheWrite: 0,
2502
+ },
2503
+ contextWindow: 131000,
2504
+ maxTokens: 40000,
2505
+ } satisfies Model<"anthropic-messages">,
2506
+ "zai/glm-4.7-flash": {
2507
+ id: "zai/glm-4.7-flash",
2508
+ name: "GLM 4.7 Flash",
2509
+ api: "anthropic-messages",
2510
+ provider: "vercel-ai-gateway",
2511
+ baseUrl: "https://ai-gateway.vercel.sh",
2512
+ reasoning: true,
2513
+ input: ["text"],
2514
+ cost: {
2515
+ input: 0.07,
2516
+ output: 0.39999999999999997,
2517
+ cacheRead: 0,
2518
+ cacheWrite: 0,
2519
+ },
2520
+ contextWindow: 200000,
2521
+ maxTokens: 131000,
2522
+ } satisfies Model<"anthropic-messages">,
2523
+ "zai/glm-4.7-flashx": {
2524
+ id: "zai/glm-4.7-flashx",
2525
+ name: "GLM 4.7 FlashX",
2526
+ api: "anthropic-messages",
2527
+ provider: "vercel-ai-gateway",
2528
+ baseUrl: "https://ai-gateway.vercel.sh",
2529
+ reasoning: true,
2530
+ input: ["text"],
2531
+ cost: {
2532
+ input: 0.06,
2533
+ output: 0.39999999999999997,
2534
+ cacheRead: 0.01,
2535
+ cacheWrite: 0,
2536
+ },
2537
+ contextWindow: 200000,
2538
+ maxTokens: 128000,
2539
+ } satisfies Model<"anthropic-messages">,
2540
+ "zai/glm-5": {
2541
+ id: "zai/glm-5",
2542
+ name: "GLM 5",
2543
+ api: "anthropic-messages",
2544
+ provider: "vercel-ai-gateway",
2545
+ baseUrl: "https://ai-gateway.vercel.sh",
2546
+ reasoning: true,
2547
+ input: ["text"],
2548
+ cost: {
2549
+ input: 1,
2550
+ output: 3.1999999999999997,
2551
+ cacheRead: 0.19999999999999998,
2552
+ cacheWrite: 0,
2553
+ },
2554
+ contextWindow: 202800,
2555
+ maxTokens: 131100,
2556
+ } satisfies Model<"anthropic-messages">,
2557
+ "zai/glm-5-turbo": {
2558
+ id: "zai/glm-5-turbo",
2559
+ name: "GLM 5 Turbo",
2560
+ api: "anthropic-messages",
2561
+ provider: "vercel-ai-gateway",
2562
+ baseUrl: "https://ai-gateway.vercel.sh",
2563
+ reasoning: true,
2564
+ input: ["text"],
2565
+ cost: {
2566
+ input: 1.2,
2567
+ output: 4,
2568
+ cacheRead: 0.24,
2569
+ cacheWrite: 0,
2570
+ },
2571
+ contextWindow: 202800,
2572
+ maxTokens: 131100,
2573
+ } satisfies Model<"anthropic-messages">,
2574
+ "zai/glm-5.1": {
2575
+ id: "zai/glm-5.1",
2576
+ name: "GLM 5.1",
2577
+ api: "anthropic-messages",
2578
+ provider: "vercel-ai-gateway",
2579
+ baseUrl: "https://ai-gateway.vercel.sh",
2580
+ reasoning: true,
2581
+ input: ["text"],
2582
+ cost: {
2583
+ input: 1.4,
2584
+ output: 4.4,
2585
+ cacheRead: 0.26,
2586
+ cacheWrite: 0,
2587
+ },
2588
+ contextWindow: 202800,
2589
+ maxTokens: 64000,
2590
+ } satisfies Model<"anthropic-messages">,
2591
+ "zai/glm-5v-turbo": {
2592
+ id: "zai/glm-5v-turbo",
2593
+ name: "GLM 5V Turbo",
2594
+ api: "anthropic-messages",
2595
+ provider: "vercel-ai-gateway",
2596
+ baseUrl: "https://ai-gateway.vercel.sh",
2597
+ reasoning: true,
2598
+ input: ["text", "image"],
2599
+ cost: {
2600
+ input: 1.2,
2601
+ output: 4,
2602
+ cacheRead: 0.24,
2603
+ cacheWrite: 0,
2604
+ },
2605
+ contextWindow: 200000,
2606
+ maxTokens: 128000,
2607
+ } satisfies Model<"anthropic-messages">,
2608
+ } as const satisfies Record<string, Model<any>>;