@mastra/core 1.0.0-beta.0 → 1.0.0-beta.10

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 (562) hide show
  1. package/CHANGELOG.md +1136 -0
  2. package/dist/agent/agent-legacy.d.ts +19 -22
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent-types.test-d.d.ts +2 -0
  5. package/dist/agent/agent-types.test-d.d.ts.map +1 -0
  6. package/dist/agent/agent.d.ts +6 -6
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.types.d.ts +6 -4
  9. package/dist/agent/agent.types.d.ts.map +1 -1
  10. package/dist/agent/index.cjs +9 -9
  11. package/dist/agent/index.js +2 -2
  12. package/dist/agent/message-list/index.cjs +3 -3
  13. package/dist/agent/message-list/index.d.ts +60 -3
  14. package/dist/agent/message-list/index.d.ts.map +1 -1
  15. package/dist/agent/message-list/index.js +1 -1
  16. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
  17. package/dist/agent/message-list/prompt/convert-file.d.ts +1 -1
  18. package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -1
  19. package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
  20. package/dist/agent/save-queue/index.d.ts +3 -1
  21. package/dist/agent/save-queue/index.d.ts.map +1 -1
  22. package/dist/agent/test-utils.d.ts +37 -0
  23. package/dist/agent/test-utils.d.ts.map +1 -1
  24. package/dist/agent/trip-wire.d.ts.map +1 -1
  25. package/dist/agent/types.d.ts +21 -6
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/agent/utils.d.ts +3 -3
  28. package/dist/agent/utils.d.ts.map +1 -1
  29. package/dist/agent/workflows/prepare-stream/index.d.ts +9 -7
  30. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  31. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
  32. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  33. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +6 -5
  34. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  35. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +2 -1
  36. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  37. package/dist/agent/workflows/prepare-stream/schema.d.ts +8 -8
  38. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  39. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +11 -1
  40. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  41. package/dist/base.cjs +2 -2
  42. package/dist/base.js +1 -1
  43. package/dist/bundler/index.cjs +2 -2
  44. package/dist/bundler/index.js +1 -1
  45. package/dist/cache/index.cjs +3 -3
  46. package/dist/cache/index.js +1 -1
  47. package/dist/{chunk-4CDL2QJT.js → chunk-267YOF47.js} +121 -36
  48. package/dist/chunk-267YOF47.js.map +1 -0
  49. package/dist/{chunk-OJNJA5ZI.js → chunk-3CKZSDTQ.js} +3 -3
  50. package/dist/{chunk-OJNJA5ZI.js.map → chunk-3CKZSDTQ.js.map} +1 -1
  51. package/dist/{chunk-JV2KH24V.js → chunk-3GKKHF36.js} +693 -375
  52. package/dist/chunk-3GKKHF36.js.map +1 -0
  53. package/dist/{chunk-TQTAMPSC.js → chunk-3N3QE4ZK.js} +3 -3
  54. package/dist/chunk-3N3QE4ZK.js.map +1 -0
  55. package/dist/{chunk-QUKUN6NR.cjs → chunk-4JKEUSCC.cjs} +107 -7
  56. package/dist/chunk-4JKEUSCC.cjs.map +1 -0
  57. package/dist/{chunk-XEVG546F.js → chunk-4Q3Z6QRE.js} +178 -12
  58. package/dist/chunk-4Q3Z6QRE.js.map +1 -0
  59. package/dist/{chunk-CBAB7GOD.cjs → chunk-6BJ7XHRH.cjs} +2 -2
  60. package/dist/{chunk-CBAB7GOD.cjs.map → chunk-6BJ7XHRH.cjs.map} +1 -1
  61. package/dist/{chunk-26SQQNMU.js → chunk-6CYYFT4O.js} +11389 -8193
  62. package/dist/chunk-6CYYFT4O.js.map +1 -0
  63. package/dist/{chunk-32CTMD2C.js → chunk-6ONQWD6S.js} +1221 -347
  64. package/dist/chunk-6ONQWD6S.js.map +1 -0
  65. package/dist/{chunk-J7O6WENZ.cjs → chunk-6TBWJV35.js} +5 -5
  66. package/dist/chunk-6TBWJV35.js.map +1 -0
  67. package/dist/chunk-6XCINXZ7.cjs +194 -0
  68. package/dist/chunk-6XCINXZ7.cjs.map +1 -0
  69. package/dist/{chunk-E7K4FTLN.cjs → chunk-72YCRTEX.cjs} +18 -2
  70. package/dist/chunk-72YCRTEX.cjs.map +1 -0
  71. package/dist/{chunk-BXOL277H.cjs → chunk-7THRV5KZ.cjs} +762 -27
  72. package/dist/chunk-7THRV5KZ.cjs.map +1 -0
  73. package/dist/{chunk-76K3IYWM.js → chunk-ADADLFDR.js} +3 -3
  74. package/dist/{chunk-76K3IYWM.js.map → chunk-ADADLFDR.js.map} +1 -1
  75. package/dist/{chunk-DSNPWVIG.cjs → chunk-AF74UXR5.cjs} +4 -3
  76. package/dist/chunk-AF74UXR5.cjs.map +1 -0
  77. package/dist/{chunk-QCQLOMJM.cjs → chunk-BCRRHJGV.cjs} +206 -65
  78. package/dist/chunk-BCRRHJGV.cjs.map +1 -0
  79. package/dist/chunk-BWYU7D33.js +192 -0
  80. package/dist/chunk-BWYU7D33.js.map +1 -0
  81. package/dist/{chunk-MV7KHWUT.js → chunk-BXONP7HX.js} +391 -15
  82. package/dist/chunk-BXONP7HX.js.map +1 -0
  83. package/dist/chunk-CDRYT2A5.js +513 -0
  84. package/dist/chunk-CDRYT2A5.js.map +1 -0
  85. package/dist/{chunk-S5MJLXMG.cjs → chunk-CZEJQSWB.cjs} +481 -124
  86. package/dist/chunk-CZEJQSWB.cjs.map +1 -0
  87. package/dist/chunk-DD2VNRQM.js +62 -0
  88. package/dist/chunk-DD2VNRQM.js.map +1 -0
  89. package/dist/{chunk-KEXGB7FK.cjs → chunk-DGV2FWB4.cjs} +7 -7
  90. package/dist/{chunk-KEXGB7FK.cjs.map → chunk-DGV2FWB4.cjs.map} +1 -1
  91. package/dist/{chunk-Y63IFHEZ.cjs → chunk-EOPEDKLG.cjs} +4 -4
  92. package/dist/chunk-EOPEDKLG.cjs.map +1 -0
  93. package/dist/{chunk-UIZSWUKP.js → chunk-F2GAJSBI.js} +105 -7
  94. package/dist/chunk-F2GAJSBI.js.map +1 -0
  95. package/dist/{chunk-VOY2RXOC.cjs → chunk-G4IFCTL5.cjs} +182 -15
  96. package/dist/chunk-G4IFCTL5.cjs.map +1 -0
  97. package/dist/chunk-KJBMTK5B.cjs +64 -0
  98. package/dist/chunk-KJBMTK5B.cjs.map +1 -0
  99. package/dist/{chunk-S6URFGCZ.js → chunk-LSHPJWM5.js} +3 -3
  100. package/dist/{chunk-S6URFGCZ.js.map → chunk-LSHPJWM5.js.map} +1 -1
  101. package/dist/chunk-MGCGWPQJ.cjs +275 -0
  102. package/dist/chunk-MGCGWPQJ.cjs.map +1 -0
  103. package/dist/chunk-MRFUISXC.cjs +4981 -0
  104. package/dist/chunk-MRFUISXC.cjs.map +1 -0
  105. package/dist/chunk-MSZP3FNH.cjs +518 -0
  106. package/dist/chunk-MSZP3FNH.cjs.map +1 -0
  107. package/dist/{chunk-KJ2SW6VA.js → chunk-NRUZYMHE.js} +4 -3
  108. package/dist/chunk-NRUZYMHE.js.map +1 -0
  109. package/dist/{chunk-7SKXKUYT.js → chunk-NUA6TSRD.js} +752 -17
  110. package/dist/chunk-NUA6TSRD.js.map +1 -0
  111. package/dist/chunk-OEIVMCWX.js +4959 -0
  112. package/dist/chunk-OEIVMCWX.js.map +1 -0
  113. package/dist/{chunk-VJUZZB2I.js → chunk-OIDPIW42.js} +26 -11
  114. package/dist/chunk-OIDPIW42.js.map +1 -0
  115. package/dist/{chunk-QUZGDSWE.cjs → chunk-OYIDRI3A.cjs} +32 -17
  116. package/dist/chunk-OYIDRI3A.cjs.map +1 -0
  117. package/dist/{chunk-YIK3ASEG.cjs → chunk-P2D2VO2O.cjs} +1226 -350
  118. package/dist/chunk-P2D2VO2O.cjs.map +1 -0
  119. package/dist/{chunk-L7XKOKOW.js → chunk-PK2A5WBG.js} +472 -125
  120. package/dist/chunk-PK2A5WBG.js.map +1 -0
  121. package/dist/{chunk-X7JMA3IY.js → chunk-PSCMWPLC.js} +2 -2
  122. package/dist/{chunk-X7JMA3IY.js.map → chunk-PSCMWPLC.js.map} +1 -1
  123. package/dist/{chunk-WM6CK2F3.cjs → chunk-QD3UWFAV.cjs} +130 -48
  124. package/dist/chunk-QD3UWFAV.cjs.map +1 -0
  125. package/dist/{chunk-FD734TPS.cjs → chunk-SL7Q6IZF.cjs} +11425 -8211
  126. package/dist/chunk-SL7Q6IZF.cjs.map +1 -0
  127. package/dist/{chunk-ECFXGXWO.cjs → chunk-SSPUH2N7.cjs} +693 -375
  128. package/dist/chunk-SSPUH2N7.cjs.map +1 -0
  129. package/dist/{chunk-BMAFVZ2D.cjs → chunk-T2VLUFGG.cjs} +4 -4
  130. package/dist/{chunk-BMAFVZ2D.cjs.map → chunk-T2VLUFGG.cjs.map} +1 -1
  131. package/dist/chunk-THZTRBFS.js +268 -0
  132. package/dist/chunk-THZTRBFS.js.map +1 -0
  133. package/dist/{chunk-Y6ROD72V.cjs → chunk-UIGRFDO6.cjs} +4 -4
  134. package/dist/{chunk-Y6ROD72V.cjs.map → chunk-UIGRFDO6.cjs.map} +1 -1
  135. package/dist/{chunk-GRBGQ2GE.js → chunk-UVHSM2GU.cjs} +9 -3
  136. package/dist/chunk-UVHSM2GU.cjs.map +1 -0
  137. package/dist/{chunk-GGYKYORQ.cjs → chunk-WX2DLWXF.cjs} +407 -22
  138. package/dist/chunk-WX2DLWXF.cjs.map +1 -0
  139. package/dist/{chunk-P6APHXPZ.js → chunk-XRJQ5ZA7.js} +179 -38
  140. package/dist/chunk-XRJQ5ZA7.js.map +1 -0
  141. package/dist/{chunk-KIZIOFZC.js → chunk-Y36Y5MTD.js} +17 -3
  142. package/dist/chunk-Y36Y5MTD.js.map +1 -0
  143. package/dist/{chunk-VV753WCB.cjs → chunk-YWMMBIOM.cjs} +21 -20
  144. package/dist/chunk-YWMMBIOM.cjs.map +1 -0
  145. package/dist/{chunk-BU4IAJWF.js → chunk-Z57R5WS4.js} +16 -15
  146. package/dist/chunk-Z57R5WS4.js.map +1 -0
  147. package/dist/deployer/index.cjs +2 -2
  148. package/dist/deployer/index.js +1 -1
  149. package/dist/di/index.cjs +10 -2
  150. package/dist/di/index.d.ts +1 -1
  151. package/dist/di/index.d.ts.map +1 -1
  152. package/dist/di/index.js +1 -1
  153. package/dist/evals/base.d.ts +10 -2
  154. package/dist/evals/base.d.ts.map +1 -1
  155. package/dist/evals/base.test-utils.d.ts +25 -25
  156. package/dist/evals/index.cjs +9 -9
  157. package/dist/evals/index.js +2 -2
  158. package/dist/evals/scoreTraces/index.cjs +7 -6
  159. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  160. package/dist/evals/scoreTraces/index.js +4 -3
  161. package/dist/evals/scoreTraces/index.js.map +1 -1
  162. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  163. package/dist/evals/types.d.ts +25 -24
  164. package/dist/evals/types.d.ts.map +1 -1
  165. package/dist/index.cjs +2 -2
  166. package/dist/index.js +1 -1
  167. package/dist/integration/index.cjs +2 -2
  168. package/dist/integration/index.js +1 -1
  169. package/dist/llm/index.cjs +30 -10
  170. package/dist/llm/index.d.ts +2 -0
  171. package/dist/llm/index.d.ts.map +1 -1
  172. package/dist/llm/index.js +5 -1
  173. package/dist/llm/model/aisdk/v5/model.d.ts +47 -0
  174. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -0
  175. package/dist/llm/model/gateway-resolver.d.ts.map +1 -1
  176. package/dist/llm/model/gateways/azure.d.ts +36 -0
  177. package/dist/llm/model/gateways/azure.d.ts.map +1 -0
  178. package/dist/llm/model/gateways/base.d.ts +9 -4
  179. package/dist/llm/model/gateways/base.d.ts.map +1 -1
  180. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  181. package/dist/llm/model/gateways/index.d.ts +4 -1
  182. package/dist/llm/model/gateways/index.d.ts.map +1 -1
  183. package/dist/llm/model/gateways/models-dev.d.ts +3 -2
  184. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  185. package/dist/llm/model/gateways/netlify.d.ts +4 -3
  186. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  187. package/dist/llm/model/is-v2-model.d.ts +3 -0
  188. package/dist/llm/model/is-v2-model.d.ts.map +1 -0
  189. package/dist/llm/model/model-method-from-agent.d.ts +4 -0
  190. package/dist/llm/model/model-method-from-agent.d.ts.map +1 -0
  191. package/dist/llm/model/model.d.ts.map +1 -1
  192. package/dist/llm/model/model.loop.d.ts +2 -2
  193. package/dist/llm/model/model.loop.d.ts.map +1 -1
  194. package/dist/llm/model/model.loop.types.d.ts +2 -0
  195. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  196. package/dist/llm/model/provider-options.d.ts +4 -1
  197. package/dist/llm/model/provider-options.d.ts.map +1 -1
  198. package/dist/llm/model/provider-registry.d.ts +11 -1
  199. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  200. package/dist/llm/model/provider-types.generated.d.ts +520 -33
  201. package/dist/llm/model/registry-generator.d.ts +12 -0
  202. package/dist/llm/model/registry-generator.d.ts.map +1 -1
  203. package/dist/llm/model/resolve-model.d.ts +1 -1
  204. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  205. package/dist/llm/model/router.d.ts +12 -5
  206. package/dist/llm/model/router.d.ts.map +1 -1
  207. package/dist/llm/model/shared.types.d.ts +10 -4
  208. package/dist/llm/model/shared.types.d.ts.map +1 -1
  209. package/dist/logger/constants.d.ts +1 -0
  210. package/dist/logger/constants.d.ts.map +1 -1
  211. package/dist/logger/index.cjs +11 -11
  212. package/dist/logger/index.js +2 -2
  213. package/dist/logger/transport.d.ts +1 -1
  214. package/dist/logger/transport.d.ts.map +1 -1
  215. package/dist/loop/index.cjs +2 -2
  216. package/dist/loop/index.js +1 -1
  217. package/dist/loop/loop.d.ts.map +1 -1
  218. package/dist/loop/network/index.d.ts.map +1 -1
  219. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +37 -0
  220. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -0
  221. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  222. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  223. package/dist/loop/test-utils/options.d.ts.map +1 -1
  224. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  225. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  226. package/dist/loop/test-utils/textStream.d.ts.map +1 -1
  227. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  228. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  229. package/dist/loop/test-utils/utils.d.ts +1 -1
  230. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  231. package/dist/loop/types.d.ts +22 -5
  232. package/dist/loop/types.d.ts.map +1 -1
  233. package/dist/loop/workflows/agentic-execution/index.d.ts +42 -42
  234. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  235. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +29 -29
  236. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  237. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +14 -14
  238. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  239. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +1 -1
  240. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  241. package/dist/loop/workflows/agentic-loop/index.d.ts +44 -43
  242. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  243. package/dist/loop/workflows/run-state.d.ts +2 -2
  244. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  245. package/dist/loop/workflows/schema.d.ts +14 -14
  246. package/dist/loop/workflows/stream.d.ts +1 -1
  247. package/dist/loop/workflows/stream.d.ts.map +1 -1
  248. package/dist/mastra/index.cjs +2 -2
  249. package/dist/mastra/index.d.ts +377 -12
  250. package/dist/mastra/index.d.ts.map +1 -1
  251. package/dist/mastra/index.js +1 -1
  252. package/dist/mcp/index.cjs +4 -4
  253. package/dist/mcp/index.cjs.map +1 -1
  254. package/dist/mcp/index.d.ts +4 -4
  255. package/dist/mcp/index.d.ts.map +1 -1
  256. package/dist/mcp/index.js +2 -2
  257. package/dist/mcp/index.js.map +1 -1
  258. package/dist/mcp/types.d.ts +2 -2
  259. package/dist/mcp/types.d.ts.map +1 -1
  260. package/dist/memory/index.cjs +21 -327
  261. package/dist/memory/index.cjs.map +1 -1
  262. package/dist/memory/index.js +1 -327
  263. package/dist/memory/index.js.map +1 -1
  264. package/dist/memory/memory.d.ts +28 -18
  265. package/dist/memory/memory.d.ts.map +1 -1
  266. package/dist/memory/mock.d.ts +15 -14
  267. package/dist/memory/mock.d.ts.map +1 -1
  268. package/dist/memory/types.d.ts +69 -11
  269. package/dist/memory/types.d.ts.map +1 -1
  270. package/dist/models-dev-23RN2WHG.js +3 -0
  271. package/dist/{models-dev-7U4NRMM3.js.map → models-dev-23RN2WHG.js.map} +1 -1
  272. package/dist/models-dev-EO3SUIY2.cjs +12 -0
  273. package/dist/{models-dev-VKSAQPRK.cjs.map → models-dev-EO3SUIY2.cjs.map} +1 -1
  274. package/dist/netlify-GXJ5D5DD.js +3 -0
  275. package/dist/{netlify-42ZNWIDQ.js.map → netlify-GXJ5D5DD.js.map} +1 -1
  276. package/dist/netlify-KJLY3GFS.cjs +12 -0
  277. package/dist/{netlify-2IDXTNFW.cjs.map → netlify-KJLY3GFS.cjs.map} +1 -1
  278. package/dist/observability/index.cjs +16 -8
  279. package/dist/observability/index.js +1 -1
  280. package/dist/observability/types/tracing.d.ts +236 -13
  281. package/dist/observability/types/tracing.d.ts.map +1 -1
  282. package/dist/observability/utils.d.ts +47 -1
  283. package/dist/observability/utils.d.ts.map +1 -1
  284. package/dist/processors/index.cjs +35 -11
  285. package/dist/processors/index.d.ts +101 -23
  286. package/dist/processors/index.d.ts.map +1 -1
  287. package/dist/processors/index.js +1 -1
  288. package/dist/processors/memory/index.d.ts +7 -0
  289. package/dist/processors/memory/index.d.ts.map +1 -0
  290. package/dist/processors/memory/message-history.d.ts +43 -0
  291. package/dist/processors/memory/message-history.d.ts.map +1 -0
  292. package/dist/processors/memory/semantic-recall.d.ts +152 -0
  293. package/dist/processors/memory/semantic-recall.d.ts.map +1 -0
  294. package/dist/processors/memory/working-memory.d.ts +65 -0
  295. package/dist/processors/memory/working-memory.d.ts.map +1 -0
  296. package/dist/processors/processors/batch-parts.d.ts +1 -1
  297. package/dist/processors/processors/batch-parts.d.ts.map +1 -1
  298. package/dist/processors/processors/index.d.ts +2 -1
  299. package/dist/processors/processors/index.d.ts.map +1 -1
  300. package/dist/processors/processors/language-detector.d.ts +15 -1
  301. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  302. package/dist/processors/processors/moderation.d.ts +15 -1
  303. package/dist/processors/processors/moderation.d.ts.map +1 -1
  304. package/dist/processors/processors/pii-detector.d.ts +15 -1
  305. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  306. package/dist/processors/processors/prompt-injection-detector.d.ts +15 -1
  307. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  308. package/dist/processors/processors/structured-output.d.ts +3 -2
  309. package/dist/processors/processors/structured-output.d.ts.map +1 -1
  310. package/dist/processors/processors/system-prompt-scrubber.d.ts +1 -1
  311. package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
  312. package/dist/processors/processors/token-limiter.d.ts +22 -12
  313. package/dist/processors/processors/token-limiter.d.ts.map +1 -1
  314. package/dist/processors/processors/tool-call-filter.d.ts +28 -0
  315. package/dist/processors/processors/tool-call-filter.d.ts.map +1 -0
  316. package/dist/processors/processors/unicode-normalizer.d.ts +1 -1
  317. package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
  318. package/dist/processors/runner.d.ts +35 -4
  319. package/dist/processors/runner.d.ts.map +1 -1
  320. package/dist/provider-registry-A7FILT6Q.cjs +40 -0
  321. package/dist/provider-registry-A7FILT6Q.cjs.map +1 -0
  322. package/dist/provider-registry-XM2YDI5X.js +3 -0
  323. package/dist/provider-registry-XM2YDI5X.js.map +1 -0
  324. package/dist/provider-registry.json +1135 -77
  325. package/dist/{registry-generator-MK63POJO.cjs → registry-generator-34SC4TAU.cjs} +23 -6
  326. package/dist/registry-generator-34SC4TAU.cjs.map +1 -0
  327. package/dist/{registry-generator-H4YNODDH.js → registry-generator-UMTNPBJX.js} +23 -7
  328. package/dist/registry-generator-UMTNPBJX.js.map +1 -0
  329. package/dist/relevance/index.cjs +2 -2
  330. package/dist/relevance/index.js +1 -1
  331. package/dist/request-context/index.cjs +10 -2
  332. package/dist/request-context/index.d.ts +26 -0
  333. package/dist/request-context/index.d.ts.map +1 -1
  334. package/dist/request-context/index.js +1 -1
  335. package/dist/server/auth.d.ts +11 -0
  336. package/dist/server/auth.d.ts.map +1 -1
  337. package/dist/server/base.d.ts +51 -0
  338. package/dist/server/base.d.ts.map +1 -0
  339. package/dist/server/composite-auth.d.ts +9 -0
  340. package/dist/server/composite-auth.d.ts.map +1 -0
  341. package/dist/server/index.cjs +124 -3
  342. package/dist/server/index.cjs.map +1 -1
  343. package/dist/server/index.d.ts +8 -0
  344. package/dist/server/index.d.ts.map +1 -1
  345. package/dist/server/index.js +121 -3
  346. package/dist/server/index.js.map +1 -1
  347. package/dist/server/simple-auth.d.ts +27 -0
  348. package/dist/server/simple-auth.d.ts.map +1 -0
  349. package/dist/storage/base.d.ts +76 -3
  350. package/dist/storage/base.d.ts.map +1 -1
  351. package/dist/storage/constants.d.ts +3 -1
  352. package/dist/storage/constants.d.ts.map +1 -1
  353. package/dist/storage/domains/agents/base.d.ts +49 -0
  354. package/dist/storage/domains/agents/base.d.ts.map +1 -0
  355. package/dist/storage/domains/agents/index.d.ts +3 -0
  356. package/dist/storage/domains/agents/index.d.ts.map +1 -0
  357. package/dist/storage/domains/agents/inmemory.d.ts +22 -0
  358. package/dist/storage/domains/agents/inmemory.d.ts.map +1 -0
  359. package/dist/storage/domains/index.d.ts +1 -0
  360. package/dist/storage/domains/index.d.ts.map +1 -1
  361. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  362. package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
  363. package/dist/storage/domains/scores/base.d.ts +2 -2
  364. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  365. package/dist/storage/domains/scores/inmemory.d.ts +2 -2
  366. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  367. package/dist/storage/domains/workflows/base.d.ts +4 -0
  368. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  369. package/dist/storage/domains/workflows/inmemory.d.ts +5 -1
  370. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  371. package/dist/storage/index.cjs +65 -29
  372. package/dist/storage/index.js +1 -1
  373. package/dist/storage/mock.d.ts +7 -2
  374. package/dist/storage/mock.d.ts.map +1 -1
  375. package/dist/storage/storageWithInit.d.ts.map +1 -1
  376. package/dist/storage/types.d.ts +85 -2
  377. package/dist/storage/types.d.ts.map +1 -1
  378. package/dist/storage/utils.d.ts +82 -0
  379. package/dist/storage/utils.d.ts.map +1 -1
  380. package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
  381. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  382. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  383. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  384. package/dist/stream/RunOutput.d.ts +2 -2
  385. package/dist/stream/RunOutput.d.ts.map +1 -1
  386. package/dist/stream/aisdk/v4/usage.d.ts +19 -0
  387. package/dist/stream/aisdk/v4/usage.d.ts.map +1 -0
  388. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  389. package/dist/stream/aisdk/v5/execute.d.ts +8 -4
  390. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  391. package/dist/stream/aisdk/v5/input.d.ts +4 -1
  392. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  393. package/dist/stream/aisdk/v5/output.d.ts +9 -9
  394. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  395. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  396. package/dist/stream/base/base.d.ts +1 -1
  397. package/dist/stream/base/base.d.ts.map +1 -1
  398. package/dist/stream/base/input.d.ts +1 -1
  399. package/dist/stream/base/output-format-handlers.d.ts +14 -1
  400. package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
  401. package/dist/stream/base/output.d.ts +3 -3
  402. package/dist/stream/base/output.d.ts.map +1 -1
  403. package/dist/stream/index.cjs +15 -11
  404. package/dist/stream/index.d.ts +2 -2
  405. package/dist/stream/index.d.ts.map +1 -1
  406. package/dist/stream/index.js +2 -2
  407. package/dist/stream/types.d.ts +48 -25
  408. package/dist/stream/types.d.ts.map +1 -1
  409. package/dist/test-utils/llm-mock.cjs +101 -30
  410. package/dist/test-utils/llm-mock.cjs.map +1 -1
  411. package/dist/test-utils/llm-mock.d.ts +7 -2
  412. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  413. package/dist/test-utils/llm-mock.js +97 -30
  414. package/dist/test-utils/llm-mock.js.map +1 -1
  415. package/dist/tools/index.cjs +6 -6
  416. package/dist/tools/index.js +2 -2
  417. package/dist/tools/is-vercel-tool.cjs +2 -2
  418. package/dist/tools/is-vercel-tool.js +1 -1
  419. package/dist/tools/stream.d.ts +10 -4
  420. package/dist/tools/stream.d.ts.map +1 -1
  421. package/dist/tools/tool-builder/builder.d.ts +2 -0
  422. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  423. package/dist/tools/tool-stream-types.test-d.d.ts +2 -0
  424. package/dist/tools/tool-stream-types.test-d.d.ts.map +1 -0
  425. package/dist/tools/tool.d.ts +21 -8
  426. package/dist/tools/tool.d.ts.map +1 -1
  427. package/dist/tools/types.d.ts +33 -6
  428. package/dist/tools/types.d.ts.map +1 -1
  429. package/dist/tools/validation.d.ts +25 -1
  430. package/dist/tools/validation.d.ts.map +1 -1
  431. package/dist/tts/index.cjs +2 -2
  432. package/dist/tts/index.js +1 -1
  433. package/dist/types/zod-compat.d.ts +14 -1
  434. package/dist/types/zod-compat.d.ts.map +1 -1
  435. package/dist/utils.cjs +25 -21
  436. package/dist/utils.d.ts +9 -4
  437. package/dist/utils.d.ts.map +1 -1
  438. package/dist/utils.js +1 -1
  439. package/dist/vector/filter/index.cjs +7 -189
  440. package/dist/vector/filter/index.cjs.map +1 -1
  441. package/dist/vector/filter/index.js +1 -190
  442. package/dist/vector/filter/index.js.map +1 -1
  443. package/dist/vector/index.cjs +7 -2
  444. package/dist/vector/index.cjs.map +1 -1
  445. package/dist/vector/index.d.ts +1 -0
  446. package/dist/vector/index.d.ts.map +1 -1
  447. package/dist/vector/index.js +2 -1
  448. package/dist/vector/index.js.map +1 -1
  449. package/dist/vector/types.d.ts +86 -3
  450. package/dist/vector/types.d.ts.map +1 -1
  451. package/dist/vector/vector.d.ts +39 -2
  452. package/dist/vector/vector.d.ts.map +1 -1
  453. package/dist/voice/aisdk/index.d.ts +3 -0
  454. package/dist/voice/aisdk/index.d.ts.map +1 -0
  455. package/dist/voice/aisdk/speech.d.ts +23 -0
  456. package/dist/voice/aisdk/speech.d.ts.map +1 -0
  457. package/dist/voice/aisdk/transcription.d.ts +22 -0
  458. package/dist/voice/aisdk/transcription.d.ts.map +1 -0
  459. package/dist/voice/composite-voice.d.ts +4 -3
  460. package/dist/voice/composite-voice.d.ts.map +1 -1
  461. package/dist/voice/index.cjs +12 -4
  462. package/dist/voice/index.d.ts +1 -0
  463. package/dist/voice/index.d.ts.map +1 -1
  464. package/dist/voice/index.js +1 -1
  465. package/dist/workflows/default.d.ts +179 -270
  466. package/dist/workflows/default.d.ts.map +1 -1
  467. package/dist/workflows/evented/execution-engine.d.ts +3 -1
  468. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  469. package/dist/workflows/evented/index.cjs +10 -10
  470. package/dist/workflows/evented/index.js +1 -1
  471. package/dist/workflows/evented/step-executor.d.ts +1 -1
  472. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  473. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
  474. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  475. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
  476. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  477. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  478. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
  479. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  480. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
  481. package/dist/workflows/evented/workflow.d.ts +2 -1
  482. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  483. package/dist/workflows/execution-engine.d.ts +8 -6
  484. package/dist/workflows/execution-engine.d.ts.map +1 -1
  485. package/dist/workflows/handlers/control-flow.d.ts +133 -0
  486. package/dist/workflows/handlers/control-flow.d.ts.map +1 -0
  487. package/dist/workflows/handlers/entry.d.ts +43 -0
  488. package/dist/workflows/handlers/entry.d.ts.map +1 -0
  489. package/dist/workflows/handlers/sleep.d.ts +60 -0
  490. package/dist/workflows/handlers/sleep.d.ts.map +1 -0
  491. package/dist/workflows/handlers/step.d.ts +58 -0
  492. package/dist/workflows/handlers/step.d.ts.map +1 -0
  493. package/dist/workflows/index.cjs +36 -16
  494. package/dist/workflows/index.js +1 -1
  495. package/dist/workflows/step.d.ts +8 -6
  496. package/dist/workflows/step.d.ts.map +1 -1
  497. package/dist/workflows/types.d.ts +224 -10
  498. package/dist/workflows/types.d.ts.map +1 -1
  499. package/dist/workflows/utils.d.ts +36 -0
  500. package/dist/workflows/utils.d.ts.map +1 -1
  501. package/dist/workflows/workflow.d.ts +135 -54
  502. package/dist/workflows/workflow.d.ts.map +1 -1
  503. package/package.json +26 -29
  504. package/src/llm/model/provider-types.generated.d.ts +520 -33
  505. package/dist/chunk-26SQQNMU.js.map +0 -1
  506. package/dist/chunk-32CTMD2C.js.map +0 -1
  507. package/dist/chunk-436FFEF6.js +0 -34
  508. package/dist/chunk-436FFEF6.js.map +0 -1
  509. package/dist/chunk-4CDL2QJT.js.map +0 -1
  510. package/dist/chunk-7AHYOMHJ.js +0 -149
  511. package/dist/chunk-7AHYOMHJ.js.map +0 -1
  512. package/dist/chunk-7SKXKUYT.js.map +0 -1
  513. package/dist/chunk-BNBRQS7N.js +0 -910
  514. package/dist/chunk-BNBRQS7N.js.map +0 -1
  515. package/dist/chunk-BU4IAJWF.js.map +0 -1
  516. package/dist/chunk-BXOL277H.cjs.map +0 -1
  517. package/dist/chunk-DSNPWVIG.cjs.map +0 -1
  518. package/dist/chunk-E7K4FTLN.cjs.map +0 -1
  519. package/dist/chunk-ECFXGXWO.cjs.map +0 -1
  520. package/dist/chunk-ET6UOTTU.cjs +0 -154
  521. package/dist/chunk-ET6UOTTU.cjs.map +0 -1
  522. package/dist/chunk-FD734TPS.cjs.map +0 -1
  523. package/dist/chunk-GGYKYORQ.cjs.map +0 -1
  524. package/dist/chunk-GRBGQ2GE.js.map +0 -1
  525. package/dist/chunk-HGNRQ3OG.js +0 -58
  526. package/dist/chunk-HGNRQ3OG.js.map +0 -1
  527. package/dist/chunk-IU2SZXJQ.cjs +0 -913
  528. package/dist/chunk-IU2SZXJQ.cjs.map +0 -1
  529. package/dist/chunk-J7O6WENZ.cjs.map +0 -1
  530. package/dist/chunk-JV2KH24V.js.map +0 -1
  531. package/dist/chunk-KIZIOFZC.js.map +0 -1
  532. package/dist/chunk-KJ2SW6VA.js.map +0 -1
  533. package/dist/chunk-L7XKOKOW.js.map +0 -1
  534. package/dist/chunk-LJFJTTZQ.cjs +0 -4
  535. package/dist/chunk-LJFJTTZQ.cjs.map +0 -1
  536. package/dist/chunk-LRSB62Z6.cjs +0 -60
  537. package/dist/chunk-LRSB62Z6.cjs.map +0 -1
  538. package/dist/chunk-MV7KHWUT.js.map +0 -1
  539. package/dist/chunk-P6APHXPZ.js.map +0 -1
  540. package/dist/chunk-QCQLOMJM.cjs.map +0 -1
  541. package/dist/chunk-QUKUN6NR.cjs.map +0 -1
  542. package/dist/chunk-QUZGDSWE.cjs.map +0 -1
  543. package/dist/chunk-S5MJLXMG.cjs.map +0 -1
  544. package/dist/chunk-TQTAMPSC.js.map +0 -1
  545. package/dist/chunk-UIZSWUKP.js.map +0 -1
  546. package/dist/chunk-V3VLOOSW.cjs +0 -36
  547. package/dist/chunk-V3VLOOSW.cjs.map +0 -1
  548. package/dist/chunk-VJUZZB2I.js.map +0 -1
  549. package/dist/chunk-VOY2RXOC.cjs.map +0 -1
  550. package/dist/chunk-VV753WCB.cjs.map +0 -1
  551. package/dist/chunk-WM6CK2F3.cjs.map +0 -1
  552. package/dist/chunk-XEVG546F.js.map +0 -1
  553. package/dist/chunk-Y63IFHEZ.cjs.map +0 -1
  554. package/dist/chunk-YIK3ASEG.cjs.map +0 -1
  555. package/dist/chunk-ZV5CC35D.js +0 -3
  556. package/dist/chunk-ZV5CC35D.js.map +0 -1
  557. package/dist/models-dev-7U4NRMM3.js +0 -3
  558. package/dist/models-dev-VKSAQPRK.cjs +0 -12
  559. package/dist/netlify-2IDXTNFW.cjs +0 -12
  560. package/dist/netlify-42ZNWIDQ.js +0 -3
  561. package/dist/registry-generator-H4YNODDH.js.map +0 -1
  562. package/dist/registry-generator-MK63POJO.cjs.map +0 -1
@@ -1,13 +1,9 @@
1
- import { ModelsDevGateway, parseModelRouterId } from './chunk-BNBRQS7N.js';
2
- import { NetlifyGateway } from './chunk-BU4IAJWF.js';
3
- import { createOpenAICompatible, createOpenAI, createGoogleGenerativeAI } from './chunk-L7XKOKOW.js';
4
- import { MastraError } from './chunk-JJ5O45LH.js';
5
- import { RequestContext } from './chunk-GRBGQ2GE.js';
6
1
  import fs from 'fs';
7
2
  import { createRequire } from 'module';
8
3
  import os from 'os';
9
4
  import path from 'path';
10
- import { createHash } from 'crypto';
5
+
6
+ // src/llm/model/provider-registry.ts
11
7
 
12
8
  // src/llm/model/provider-registry.json
13
9
  var provider_registry_default = {
@@ -17,7 +13,13 @@ var provider_registry_default = {
17
13
  apiKeyEnvVar: "MOONSHOT_API_KEY",
18
14
  apiKeyHeader: "Authorization",
19
15
  name: "Moonshot AI (China)",
20
- models: ["kimi-k2-0711-preview", "kimi-k2-0905-preview", "kimi-k2-turbo-preview"],
16
+ models: [
17
+ "kimi-k2-0711-preview",
18
+ "kimi-k2-0905-preview",
19
+ "kimi-k2-thinking",
20
+ "kimi-k2-thinking-turbo",
21
+ "kimi-k2-turbo-preview"
22
+ ],
21
23
  docUrl: "https://platform.moonshot.cn/docs/api/chat",
22
24
  gateway: "models.dev"
23
25
  },
@@ -35,7 +37,13 @@ var provider_registry_default = {
35
37
  apiKeyEnvVar: "MOONSHOT_API_KEY",
36
38
  apiKeyHeader: "Authorization",
37
39
  name: "Moonshot AI",
38
- models: ["kimi-k2-0711-preview", "kimi-k2-0905-preview", "kimi-k2-turbo-preview"],
40
+ models: [
41
+ "kimi-k2-0711-preview",
42
+ "kimi-k2-0905-preview",
43
+ "kimi-k2-thinking",
44
+ "kimi-k2-thinking-turbo",
45
+ "kimi-k2-turbo-preview"
46
+ ],
39
47
  docUrl: "https://platform.moonshot.ai/docs/api/chat",
40
48
  gateway: "models.dev"
41
49
  },
@@ -116,6 +124,8 @@ var provider_registry_default = {
116
124
  "grok-3-mini-fast-latest",
117
125
  "grok-3-mini-latest",
118
126
  "grok-4",
127
+ "grok-4-1-fast",
128
+ "grok-4-1-fast-non-reasoning",
119
129
  "grok-4-fast",
120
130
  "grok-4-fast-non-reasoning",
121
131
  "grok-beta",
@@ -152,6 +162,7 @@ var provider_registry_default = {
152
162
  "google/gemma-3-27b-it",
153
163
  "microsoft/phi-4-mini-instruct",
154
164
  "minimaxai/minimax-m2",
165
+ "mistralai/mistral-large-3-675b-instruct-2512",
155
166
  "moonshotai/kimi-k2-instruct",
156
167
  "moonshotai/kimi-k2-instruct-0905",
157
168
  "nvidia/cosmos-nemotron-34b",
@@ -206,20 +217,31 @@ var provider_registry_default = {
206
217
  docUrl: "https://console.groq.com/docs/models",
207
218
  gateway: "models.dev"
208
219
  },
220
+ bailing: {
221
+ url: "https://api.tbox.cn/api/llm/v1/chat/completions",
222
+ apiKeyEnvVar: "BAILING_API_TOKEN",
223
+ apiKeyHeader: "Authorization",
224
+ name: "Bailing",
225
+ models: ["Ling-1T", "Ring-1T"],
226
+ docUrl: "https://alipaytbox.yuque.com/sxs0ba/ling/intro",
227
+ gateway: "models.dev"
228
+ },
209
229
  mistral: {
210
230
  url: "https://api.mistral.ai/v1",
211
231
  apiKeyEnvVar: "MISTRAL_API_KEY",
212
- apiKeyHeader: "Authorization",
213
232
  name: "Mistral",
214
233
  models: [
215
234
  "codestral-latest",
216
235
  "devstral-medium-2507",
236
+ "devstral-medium-latest",
217
237
  "devstral-small-2505",
218
238
  "devstral-small-2507",
219
239
  "magistral-medium-latest",
220
240
  "magistral-small",
221
241
  "ministral-3b-latest",
222
242
  "ministral-8b-latest",
243
+ "mistral-large-2411",
244
+ "mistral-large-2512",
223
245
  "mistral-large-latest",
224
246
  "mistral-medium-2505",
225
247
  "mistral-medium-2508",
@@ -260,7 +282,7 @@ var provider_registry_default = {
260
282
  "anthropic/claude-4-sonnet",
261
283
  "anthropic/claude-4.5-sonnet",
262
284
  "anthropic/claude-haiku-4.5",
263
- "cerebras/qwen3-coder",
285
+ "anthropic/claude-opus-4.5",
264
286
  "deepseek/deepseek-r1",
265
287
  "deepseek/deepseek-r1-distill-llama-70b",
266
288
  "deepseek/deepseek-v3.1-terminus",
@@ -273,6 +295,7 @@ var provider_registry_default = {
273
295
  "google/gemini-2.5-flash-lite-preview-09-2025",
274
296
  "google/gemini-2.5-flash-preview-09-2025",
275
297
  "google/gemini-2.5-pro",
298
+ "google/gemini-3-pro-preview",
276
299
  "meta/llama-3.3-70b",
277
300
  "meta/llama-4-maverick",
278
301
  "meta/llama-4-scout",
@@ -331,10 +354,10 @@ var provider_registry_default = {
331
354
  gateway: "models.dev"
332
355
  },
333
356
  nebius: {
334
- url: "https://api.studio.nebius.com/v1/",
357
+ url: "https://api.tokenfactory.nebius.com/v1",
335
358
  apiKeyEnvVar: "NEBIUS_API_KEY",
336
359
  apiKeyHeader: "Authorization",
337
- name: "Nebius AI Studio",
360
+ name: "Nebius Token Factory",
338
361
  models: [
339
362
  "NousResearch/hermes-4-405b",
340
363
  "NousResearch/hermes-4-70b",
@@ -352,15 +375,14 @@ var provider_registry_default = {
352
375
  "zai-org/glm-4.5",
353
376
  "zai-org/glm-4.5-air"
354
377
  ],
355
- docUrl: "https://docs.studio.nebius.com/quickstart",
378
+ docUrl: "https://docs.tokenfactory.nebius.com/",
356
379
  gateway: "models.dev"
357
380
  },
358
381
  deepseek: {
359
382
  url: "https://api.deepseek.com",
360
383
  apiKeyEnvVar: "DEEPSEEK_API_KEY",
361
- apiKeyHeader: "Authorization",
362
384
  name: "DeepSeek",
363
- models: ["deepseek-chat", "deepseek-reasoner"],
385
+ models: ["deepseek-chat", "deepseek-reasoner", "deepseek-v3.2"],
364
386
  docUrl: "https://platform.deepseek.com/api-docs/pricing",
365
387
  gateway: "models.dev"
366
388
  },
@@ -441,18 +463,23 @@ var provider_registry_default = {
441
463
  apiKeyHeader: "Authorization",
442
464
  name: "Venice AI",
443
465
  models: [
444
- "deepseek-coder-v2-lite",
445
- "deepseek-r1-671b",
446
- "dolphin-2.9.2-qwen2-72b",
447
- "llama-3.1-405b",
466
+ "claude-opus-45",
467
+ "deepseek-v3.2",
468
+ "gemini-3-pro-preview",
469
+ "google-gemma-3-27b-it",
470
+ "grok-41-fast",
471
+ "hermes-3-llama-3.1-405b",
472
+ "kimi-k2-thinking",
448
473
  "llama-3.2-3b",
449
474
  "llama-3.3-70b",
450
475
  "mistral-31-24b",
451
- "qwen-2.5-coder-32b",
452
- "qwen-2.5-qwq-32b",
453
- "qwen-2.5-vl",
476
+ "openai-gpt-oss-120b",
454
477
  "qwen3-235b",
478
+ "qwen3-235b-a22b-instruct-2507",
479
+ "qwen3-235b-a22b-thinking-2507",
455
480
  "qwen3-4b",
481
+ "qwen3-coder-480b-a35b-instruct",
482
+ "qwen3-next-80b",
456
483
  "venice-uncensored",
457
484
  "zai-org-glm-4.6"
458
485
  ],
@@ -465,41 +492,73 @@ var provider_registry_default = {
465
492
  apiKeyHeader: "Authorization",
466
493
  name: "Chutes",
467
494
  models: [
495
+ "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B",
496
+ "ArliAI/QwQ-32B-ArliAI-RpR-v1",
468
497
  "MiniMaxAI/MiniMax-M2",
498
+ "NousResearch/DeepHermes-3-Mistral-24B-Preview",
499
+ "NousResearch/Hermes-4-14B",
500
+ "NousResearch/Hermes-4-405B-FP8",
501
+ "NousResearch/Hermes-4-70B",
502
+ "OpenGVLab/InternVL3-78B",
503
+ "Qwen/Qwen2.5-72B-Instruct",
504
+ "Qwen/Qwen2.5-Coder-32B-Instruct",
505
+ "Qwen/Qwen2.5-VL-32B-Instruct",
506
+ "Qwen/Qwen2.5-VL-72B-Instruct",
507
+ "Qwen/Qwen3-14B",
508
+ "Qwen/Qwen3-235B-A22B",
469
509
  "Qwen/Qwen3-235B-A22B-Instruct-2507",
470
510
  "Qwen/Qwen3-235B-A22B-Thinking-2507",
471
511
  "Qwen/Qwen3-30B-A3B",
472
512
  "Qwen/Qwen3-30B-A3B-Instruct-2507",
513
+ "Qwen/Qwen3-32B",
473
514
  "Qwen/Qwen3-Coder-30B-A3B-Instruct",
474
515
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
475
516
  "Qwen/Qwen3-Next-80B-A3B-Instruct",
476
- "Qwen/Qwen3-Next-80B-A3B-Thinking",
517
+ "Qwen/Qwen3-VL-235B-A22B-Instruct",
518
+ "Qwen/Qwen3-VL-235B-A22B-Thinking",
519
+ "chutesai/Mistral-Small-3.1-24B-Instruct-2503",
477
520
  "chutesai/Mistral-Small-3.2-24B-Instruct-2506",
521
+ "deepseek-ai/DeepSeek-R1",
478
522
  "deepseek-ai/DeepSeek-R1-0528",
479
523
  "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",
480
524
  "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
525
+ "deepseek-ai/DeepSeek-V3",
481
526
  "deepseek-ai/DeepSeek-V3-0324",
482
527
  "deepseek-ai/DeepSeek-V3.1",
483
528
  "deepseek-ai/DeepSeek-V3.1-Terminus",
484
- "deepseek-ai/DeepSeek-V3.1:THINKING",
485
- "deepseek-ai/DeepSeek-V3.2-Exp",
529
+ "deepseek-ai/DeepSeek-V3.2",
530
+ "deepseek-ai/DeepSeek-V3.2-Speciale",
486
531
  "meituan-longcat/LongCat-Flash-Chat-FP8",
532
+ "microsoft/MAI-DS-R1-FP8",
487
533
  "moonshotai/Kimi-K2-Instruct-0905",
488
- "moonshotai/Kimi-K2-Instruct-75k",
489
- "moonshotai/Kimi-VL-A3B-Thinking",
534
+ "moonshotai/Kimi-K2-Thinking",
490
535
  "openai/gpt-oss-120b",
536
+ "openai/gpt-oss-20b",
537
+ "rednote-hilab/dots.ocr",
491
538
  "tngtech/DeepSeek-R1T-Chimera",
492
539
  "tngtech/DeepSeek-TNG-R1T2-Chimera",
540
+ "tngtech/TNG-R1T-Chimera",
541
+ "unsloth/Mistral-Nemo-Instruct-2407",
542
+ "unsloth/Mistral-Small-24B-Instruct-2501",
543
+ "unsloth/gemma-3-12b-it",
544
+ "unsloth/gemma-3-27b-it",
545
+ "unsloth/gemma-3-4b-it",
493
546
  "zai-org/GLM-4.5",
494
547
  "zai-org/GLM-4.5-Air",
495
- "zai-org/GLM-4.5-FP8",
496
- "zai-org/GLM-4.6",
497
- "zai-org/GLM-4.6-FP8",
498
- "zai-org/GLM-4.6-turbo"
548
+ "zai-org/GLM-4.6"
499
549
  ],
500
550
  docUrl: "https://llm.chutes.ai/v1/models",
501
551
  gateway: "models.dev"
502
552
  },
553
+ "kimi-for-coding": {
554
+ url: "https://api.kimi.com/coding/v1",
555
+ apiKeyEnvVar: "KIMI_API_KEY",
556
+ apiKeyHeader: "Authorization",
557
+ name: "Kimi For Coding",
558
+ models: ["kimi-k2-thinking"],
559
+ docUrl: "https://www.kimi.com/coding/docs/en/third-party-agents.html",
560
+ gateway: "models.dev"
561
+ },
503
562
  cortecs: {
504
563
  url: "https://api.cortecs.ai/v1",
505
564
  apiKeyEnvVar: "CORTECS_API_KEY",
@@ -607,10 +666,199 @@ var provider_registry_default = {
607
666
  apiKeyEnvVar: "BASETEN_API_KEY",
608
667
  apiKeyHeader: "Authorization",
609
668
  name: "Baseten",
610
- models: ["Qwen3/Qwen3-Coder-480B-A35B-Instruct", "moonshotai/Kimi-K2-Instruct-0905", "zai-org/GLM-4.6"],
669
+ models: [
670
+ "Qwen/Qwen3-Coder-480B-A35B-Instruct",
671
+ "deepseek-ai/DeepSeek-V3.2",
672
+ "moonshotai/Kimi-K2-Instruct-0905",
673
+ "moonshotai/Kimi-K2-Thinking",
674
+ "zai-org/GLM-4.6"
675
+ ],
611
676
  docUrl: "https://docs.baseten.co/development/model-apis/overview",
612
677
  gateway: "models.dev"
613
678
  },
679
+ siliconflow: {
680
+ url: "https://api.siliconflow.com/v1",
681
+ apiKeyEnvVar: "SILICONFLOW_API_KEY",
682
+ apiKeyHeader: "Authorization",
683
+ name: "SiliconFlow",
684
+ models: [
685
+ "baidu-ernie-4.5-300b-a47b",
686
+ "bytedance-seed-seed-oss-36b-instruct",
687
+ "deepseek-ai-deepseek-r1",
688
+ "deepseek-ai-deepseek-r1-distill-qwen-14b",
689
+ "deepseek-ai-deepseek-r1-distill-qwen-32b",
690
+ "deepseek-ai-deepseek-r1-distill-qwen-7b",
691
+ "deepseek-ai-deepseek-v3",
692
+ "deepseek-ai-deepseek-v3.1",
693
+ "deepseek-ai-deepseek-v3.1-terminus",
694
+ "deepseek-ai-deepseek-v3.2-exp",
695
+ "deepseek-ai-deepseek-vl2",
696
+ "inclusionai-ling-flash-2.0",
697
+ "inclusionai-ling-mini-2.0",
698
+ "inclusionai-ring-flash-2.0",
699
+ "meta-llama-meta-llama-3.1-8b-instruct",
700
+ "minimaxai-minimax-m1-80k",
701
+ "minimaxai-minimax-m2",
702
+ "moonshotai-kimi-dev-72b",
703
+ "moonshotai-kimi-k2-instruct",
704
+ "moonshotai-kimi-k2-instruct-0905",
705
+ "moonshotai-kimi-k2-thinking",
706
+ "nex-agi-deepseek-v3.1-nex-n1",
707
+ "openai-gpt-oss-120b",
708
+ "openai-gpt-oss-20b",
709
+ "qwen-qwen2.5-14b-instruct",
710
+ "qwen-qwen2.5-32b-instruct",
711
+ "qwen-qwen2.5-72b-instruct",
712
+ "qwen-qwen2.5-72b-instruct-128k",
713
+ "qwen-qwen2.5-7b-instruct",
714
+ "qwen-qwen2.5-coder-32b-instruct",
715
+ "qwen-qwen2.5-vl-32b-instruct",
716
+ "qwen-qwen2.5-vl-72b-instruct",
717
+ "qwen-qwen2.5-vl-7b-instruct",
718
+ "qwen-qwen3-14b",
719
+ "qwen-qwen3-235b-a22b",
720
+ "qwen-qwen3-235b-a22b-instruct-2507",
721
+ "qwen-qwen3-235b-a22b-thinking-2507",
722
+ "qwen-qwen3-30b-a3b",
723
+ "qwen-qwen3-30b-a3b-instruct-2507",
724
+ "qwen-qwen3-30b-a3b-thinking-2507",
725
+ "qwen-qwen3-32b",
726
+ "qwen-qwen3-8b",
727
+ "qwen-qwen3-coder-30b-a3b-instruct",
728
+ "qwen-qwen3-coder-480b-a35b-instruct",
729
+ "qwen-qwen3-next-80b-a3b-instruct",
730
+ "qwen-qwen3-next-80b-a3b-thinking",
731
+ "qwen-qwen3-omni-30b-a3b-captioner",
732
+ "qwen-qwen3-omni-30b-a3b-instruct",
733
+ "qwen-qwen3-omni-30b-a3b-thinking",
734
+ "qwen-qwen3-vl-235b-a22b-instruct",
735
+ "qwen-qwen3-vl-235b-a22b-thinking",
736
+ "qwen-qwen3-vl-30b-a3b-instruct",
737
+ "qwen-qwen3-vl-30b-a3b-thinking",
738
+ "qwen-qwen3-vl-32b-instruct",
739
+ "qwen-qwen3-vl-32b-thinking",
740
+ "qwen-qwen3-vl-8b-instruct",
741
+ "qwen-qwen3-vl-8b-thinking",
742
+ "qwen-qwq-32b",
743
+ "stepfun-ai-step3",
744
+ "tencent-hunyuan-a13b-instruct",
745
+ "tencent-hunyuan-mt-7b",
746
+ "thudm-glm-4-32b-0414",
747
+ "thudm-glm-4-9b-0414",
748
+ "thudm-glm-4.1v-9b-thinking",
749
+ "thudm-glm-z1-32b-0414",
750
+ "thudm-glm-z1-9b-0414",
751
+ "z-ai-glm-4.5",
752
+ "z-ai-glm-4.5-air",
753
+ "zai-org-glm-4.5",
754
+ "zai-org-glm-4.5-air",
755
+ "zai-org-glm-4.5v",
756
+ "zai-org-glm-4.6"
757
+ ],
758
+ docUrl: "https://cloud.siliconflow.com/models",
759
+ gateway: "models.dev"
760
+ },
761
+ helicone: {
762
+ url: "https://ai-gateway.helicone.ai/v1",
763
+ apiKeyEnvVar: "HELICONE_API_KEY",
764
+ apiKeyHeader: "Authorization",
765
+ name: "Helicone",
766
+ models: [
767
+ "chatgpt-4o-latest",
768
+ "claude-3-haiku-20240307",
769
+ "claude-3.5-haiku",
770
+ "claude-3.5-sonnet-v2",
771
+ "claude-3.7-sonnet",
772
+ "claude-4.5-haiku",
773
+ "claude-4.5-opus",
774
+ "claude-4.5-sonnet",
775
+ "claude-haiku-4-5-20251001",
776
+ "claude-opus-4",
777
+ "claude-opus-4-1",
778
+ "claude-opus-4-1-20250805",
779
+ "claude-sonnet-4",
780
+ "claude-sonnet-4-5-20250929",
781
+ "codex-mini-latest",
782
+ "deepseek-r1-distill-llama-70b",
783
+ "deepseek-reasoner",
784
+ "deepseek-tng-r1t2-chimera",
785
+ "deepseek-v3",
786
+ "deepseek-v3.1-terminus",
787
+ "deepseek-v3.2",
788
+ "ernie-4.5-21b-a3b-thinking",
789
+ "gemini-2.5-flash",
790
+ "gemini-2.5-flash-lite",
791
+ "gemini-2.5-pro",
792
+ "gemini-3-pro-preview",
793
+ "gemma-3-12b-it",
794
+ "gemma2-9b-it",
795
+ "glm-4.6",
796
+ "gpt-4.1",
797
+ "gpt-4.1-mini",
798
+ "gpt-4.1-mini-2025-04-14",
799
+ "gpt-4.1-nano",
800
+ "gpt-4o",
801
+ "gpt-4o-mini",
802
+ "gpt-5",
803
+ "gpt-5-chat-latest",
804
+ "gpt-5-codex",
805
+ "gpt-5-mini",
806
+ "gpt-5-nano",
807
+ "gpt-5-pro",
808
+ "gpt-5.1",
809
+ "gpt-5.1-chat-latest",
810
+ "gpt-5.1-codex",
811
+ "gpt-5.1-codex-mini",
812
+ "gpt-oss-120b",
813
+ "gpt-oss-20b",
814
+ "grok-3",
815
+ "grok-3-mini",
816
+ "grok-4",
817
+ "grok-4-1-fast-non-reasoning",
818
+ "grok-4-1-fast-reasoning",
819
+ "grok-4-fast-non-reasoning",
820
+ "grok-4-fast-reasoning",
821
+ "grok-code-fast-1",
822
+ "hermes-2-pro-llama-3-8b",
823
+ "kimi-k2-0711",
824
+ "kimi-k2-0905",
825
+ "kimi-k2-thinking",
826
+ "llama-3.1-8b-instant",
827
+ "llama-3.1-8b-instruct",
828
+ "llama-3.1-8b-instruct-turbo",
829
+ "llama-3.3-70b-instruct",
830
+ "llama-3.3-70b-versatile",
831
+ "llama-4-maverick",
832
+ "llama-4-scout",
833
+ "llama-guard-4",
834
+ "llama-prompt-guard-2-22m",
835
+ "llama-prompt-guard-2-86m",
836
+ "mistral-large-2411",
837
+ "mistral-nemo",
838
+ "mistral-small",
839
+ "o1",
840
+ "o1-mini",
841
+ "o3",
842
+ "o3-mini",
843
+ "o3-pro",
844
+ "o4-mini",
845
+ "qwen2.5-coder-7b-fast",
846
+ "qwen3-235b-a22b-thinking",
847
+ "qwen3-30b-a3b",
848
+ "qwen3-32b",
849
+ "qwen3-coder",
850
+ "qwen3-coder-30b-a3b-instruct",
851
+ "qwen3-next-80b-a3b-instruct",
852
+ "qwen3-vl-235b-a22b-instruct",
853
+ "sonar",
854
+ "sonar-deep-research",
855
+ "sonar-pro",
856
+ "sonar-reasoning",
857
+ "sonar-reasoning-pro"
858
+ ],
859
+ docUrl: "https://helicone.ai/models",
860
+ gateway: "models.dev"
861
+ },
614
862
  huggingface: {
615
863
  url: "https://router.huggingface.co/v1",
616
864
  apiKeyEnvVar: "HF_TOKEN",
@@ -641,19 +889,27 @@ var provider_registry_default = {
641
889
  apiKeyHeader: "Authorization",
642
890
  name: "OpenCode Zen",
643
891
  models: [
644
- "an-gd4",
892
+ "alpha-doubao-seed-code",
893
+ "alpha-gd4",
894
+ "alpha-minimax-m2",
645
895
  "big-pickle",
646
896
  "claude-3-5-haiku",
647
897
  "claude-haiku-4-5",
648
898
  "claude-opus-4-1",
899
+ "claude-opus-4-5",
649
900
  "claude-sonnet-4",
650
901
  "claude-sonnet-4-5",
902
+ "gemini-3-pro",
651
903
  "glm-4.6",
652
904
  "gpt-5",
653
905
  "gpt-5-codex",
906
+ "gpt-5-nano",
907
+ "gpt-5.1",
908
+ "gpt-5.1-codex",
909
+ "gpt-5.1-codex-max",
654
910
  "grok-code",
655
911
  "kimi-k2",
656
- "minimax-m2",
912
+ "kimi-k2-thinking",
657
913
  "qwen3-coder"
658
914
  ],
659
915
  docUrl: "https://opencode.ai/docs/zen",
@@ -683,6 +939,15 @@ var provider_registry_default = {
683
939
  docUrl: "https://fastrouter.ai/models",
684
940
  gateway: "models.dev"
685
941
  },
942
+ minimax: {
943
+ url: "https://api.minimax.io/anthropic/v1",
944
+ apiKeyEnvVar: "MINIMAX_API_KEY",
945
+ apiKeyHeader: "Authorization",
946
+ name: "MiniMax",
947
+ models: ["MiniMax-M2"],
948
+ docUrl: "https://platform.minimax.io/docs/guides/quickstart",
949
+ gateway: "models.dev"
950
+ },
686
951
  google: {
687
952
  apiKeyEnvVar: "GOOGLE_GENERATIVE_AI_API_KEY",
688
953
  name: "Google",
@@ -706,6 +971,7 @@ var provider_registry_default = {
706
971
  "gemini-2.5-pro-preview-05-06",
707
972
  "gemini-2.5-pro-preview-06-05",
708
973
  "gemini-2.5-pro-preview-tts",
974
+ "gemini-3-pro-preview",
709
975
  "gemini-embedding-001",
710
976
  "gemini-flash-latest",
711
977
  "gemini-flash-lite-latest",
@@ -744,6 +1010,93 @@ var provider_registry_default = {
744
1010
  docUrl: "https://weave-docs.wandb.ai/guides/integrations/inference/",
745
1011
  gateway: "models.dev"
746
1012
  },
1013
+ "cloudflare-ai-gateway": {
1014
+ url: "https://gateway.ai.cloudflare.com/v1/${CLOUDFLARE_ACCOUNT_ID}/${CLOUDFLARE_GATEWAY_ID}/compat/",
1015
+ apiKeyEnvVar: "CLOUDFLARE_API_TOKEN",
1016
+ apiKeyHeader: "Authorization",
1017
+ name: "Cloudflare AI Gateway",
1018
+ models: [
1019
+ "anthropic/claude-3-5-haiku",
1020
+ "anthropic/claude-3-haiku",
1021
+ "anthropic/claude-3-opus",
1022
+ "anthropic/claude-3-sonnet",
1023
+ "anthropic/claude-3.5-haiku",
1024
+ "anthropic/claude-3.5-sonnet",
1025
+ "anthropic/claude-haiku-4-5",
1026
+ "anthropic/claude-haiku-4.5",
1027
+ "anthropic/claude-opus-4",
1028
+ "anthropic/claude-opus-4-1",
1029
+ "anthropic/claude-opus-4-5",
1030
+ "anthropic/claude-opus-4.1",
1031
+ "anthropic/claude-opus-4.5",
1032
+ "anthropic/claude-sonnet-4",
1033
+ "anthropic/claude-sonnet-4-5",
1034
+ "anthropic/claude-sonnet-4.5",
1035
+ "openai/gpt-3.5-turbo",
1036
+ "openai/gpt-4",
1037
+ "openai/gpt-4-turbo",
1038
+ "openai/gpt-4o",
1039
+ "openai/gpt-4o-mini",
1040
+ "openai/gpt-5.1",
1041
+ "openai/gpt-5.1-codex",
1042
+ "openai/o1",
1043
+ "openai/o1-mini",
1044
+ "openai/o1-preview",
1045
+ "openai/o3",
1046
+ "openai/o3-mini",
1047
+ "openai/o3-pro",
1048
+ "openai/o4-mini",
1049
+ "replicate/deepseek-ai/deepseek-r1",
1050
+ "replicate/meta/meta-llama-3-70b-instruct",
1051
+ "replicate/meta/meta-llama-3-8b-instruct",
1052
+ "replicate/meta/meta-llama-3.1-405b-instruct",
1053
+ "replicate/replicate-internal/llama-405b-instruct-vllm",
1054
+ "workers-ai/aura-1",
1055
+ "workers-ai/aura-2-en",
1056
+ "workers-ai/aura-2-es",
1057
+ "workers-ai/bart-large-cnn",
1058
+ "workers-ai/bge-base-en-v1.5",
1059
+ "workers-ai/bge-large-en-v1.5",
1060
+ "workers-ai/bge-m3",
1061
+ "workers-ai/bge-reranker-base",
1062
+ "workers-ai/bge-small-en-v1.5",
1063
+ "workers-ai/deepseek-r1-distill-qwen-32b",
1064
+ "workers-ai/distilbert-sst-2-int8",
1065
+ "workers-ai/gemma-3-12b-it",
1066
+ "workers-ai/gemma-sea-lion-v4-27b-it",
1067
+ "workers-ai/gpt-oss-120b",
1068
+ "workers-ai/gpt-oss-20b",
1069
+ "workers-ai/granite-4.0-h-micro",
1070
+ "workers-ai/indictrans2-en-indic-1B",
1071
+ "workers-ai/llama-2-7b-chat-fp16",
1072
+ "workers-ai/llama-3-8b-instruct",
1073
+ "workers-ai/llama-3-8b-instruct-awq",
1074
+ "workers-ai/llama-3.1-8b-instruct",
1075
+ "workers-ai/llama-3.1-8b-instruct-awq",
1076
+ "workers-ai/llama-3.1-8b-instruct-fp8",
1077
+ "workers-ai/llama-3.2-11b-vision-instruct",
1078
+ "workers-ai/llama-3.2-1b-instruct",
1079
+ "workers-ai/llama-3.2-3b-instruct",
1080
+ "workers-ai/llama-3.3-70b-instruct-fp8-fast",
1081
+ "workers-ai/llama-4-scout-17b-16e-instruct",
1082
+ "workers-ai/llama-guard-3-8b",
1083
+ "workers-ai/m2m100-1.2b",
1084
+ "workers-ai/melotts",
1085
+ "workers-ai/mistral-7b-instruct-v0.1",
1086
+ "workers-ai/mistral-small-3.1-24b-instruct",
1087
+ "workers-ai/nova-3",
1088
+ "workers-ai/plamo-embedding-1b",
1089
+ "workers-ai/qwen2.5-coder-32b-instruct",
1090
+ "workers-ai/qwen3-30b-a3b-fp8",
1091
+ "workers-ai/qwen3-embedding-0.6b",
1092
+ "workers-ai/qwq-32b",
1093
+ "workers-ai/smart-turn-v2",
1094
+ "workers-ai/whisper",
1095
+ "workers-ai/whisper-large-v3-turbo"
1096
+ ],
1097
+ docUrl: "https://developers.cloudflare.com/ai-gateway/",
1098
+ gateway: "models.dev"
1099
+ },
747
1100
  openai: {
748
1101
  apiKeyEnvVar: "OPENAI_API_KEY",
749
1102
  name: "OpenAI",
@@ -766,6 +1119,11 @@ var provider_registry_default = {
766
1119
  "gpt-5-mini",
767
1120
  "gpt-5-nano",
768
1121
  "gpt-5-pro",
1122
+ "gpt-5.1",
1123
+ "gpt-5.1-chat-latest",
1124
+ "gpt-5.1-codex",
1125
+ "gpt-5.1-codex-max",
1126
+ "gpt-5.1-codex-mini",
769
1127
  "o1",
770
1128
  "o1-mini",
771
1129
  "o1-preview",
@@ -792,10 +1150,17 @@ var provider_registry_default = {
792
1150
  docUrl: "https://docs.bigmodel.cn/cn/coding-plan/overview",
793
1151
  gateway: "models.dev"
794
1152
  },
1153
+ "minimax-cn": {
1154
+ url: "https://api.minimaxi.com/anthropic/v1",
1155
+ apiKeyEnvVar: "MINIMAX_API_KEY",
1156
+ apiKeyHeader: "Authorization",
1157
+ name: "MiniMax (China)",
1158
+ models: ["MiniMax-M2"],
1159
+ docUrl: "https://platform.minimaxi.com/docs/guides/quickstart",
1160
+ gateway: "models.dev"
1161
+ },
795
1162
  perplexity: {
796
- url: "https://api.perplexity.ai",
797
1163
  apiKeyEnvVar: "PERPLEXITY_API_KEY",
798
- apiKeyHeader: "Authorization",
799
1164
  name: "Perplexity",
800
1165
  models: ["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro"],
801
1166
  docUrl: "https://docs.perplexity.ai",
@@ -811,6 +1176,7 @@ var provider_registry_default = {
811
1176
  "anthropic/claude-haiku-4.5",
812
1177
  "anthropic/claude-opus-4",
813
1178
  "anthropic/claude-opus-4.1",
1179
+ "anthropic/claude-opus-4.5",
814
1180
  "anthropic/claude-sonnet-4",
815
1181
  "anthropic/claude-sonnet-4.5",
816
1182
  "cognitivecomputations/dolphin3.0-mistral-24b",
@@ -825,6 +1191,8 @@ var provider_registry_default = {
825
1191
  "deepseek/deepseek-v3-base:free",
826
1192
  "deepseek/deepseek-v3.1-terminus",
827
1193
  "deepseek/deepseek-v3.1-terminus:exacto",
1194
+ "deepseek/deepseek-v3.2",
1195
+ "deepseek/deepseek-v3.2-speciale",
828
1196
  "featherless/qwerky-72b",
829
1197
  "google/gemini-2.0-flash-001",
830
1198
  "google/gemini-2.0-flash-exp:free",
@@ -835,18 +1203,20 @@ var provider_registry_default = {
835
1203
  "google/gemini-2.5-pro",
836
1204
  "google/gemini-2.5-pro-preview-05-06",
837
1205
  "google/gemini-2.5-pro-preview-06-05",
1206
+ "google/gemini-3-pro-preview",
838
1207
  "google/gemma-2-9b-it:free",
839
1208
  "google/gemma-3-12b-it",
840
1209
  "google/gemma-3-27b-it",
841
1210
  "google/gemma-3n-e4b-it",
842
1211
  "google/gemma-3n-e4b-it:free",
1212
+ "kwaipilot/kat-coder-pro:free",
843
1213
  "meta-llama/llama-3.2-11b-vision-instruct",
844
1214
  "meta-llama/llama-3.3-70b-instruct:free",
845
1215
  "meta-llama/llama-4-scout:free",
846
1216
  "microsoft/mai-ds-r1:free",
847
1217
  "minimax/minimax-01",
848
1218
  "minimax/minimax-m1",
849
- "minimax/minimax-m2:free",
1219
+ "minimax/minimax-m2",
850
1220
  "mistralai/codestral-2508",
851
1221
  "mistralai/devstral-medium-2507",
852
1222
  "mistralai/devstral-small-2505",
@@ -863,6 +1233,7 @@ var provider_registry_default = {
863
1233
  "moonshotai/kimi-k2",
864
1234
  "moonshotai/kimi-k2-0905",
865
1235
  "moonshotai/kimi-k2-0905:exacto",
1236
+ "moonshotai/kimi-k2-thinking",
866
1237
  "moonshotai/kimi-k2:free",
867
1238
  "nousresearch/deephermes-3-llama-3-8b-preview",
868
1239
  "nousresearch/hermes-4-405b",
@@ -878,15 +1249,15 @@ var provider_registry_default = {
878
1249
  "openai/gpt-5-mini",
879
1250
  "openai/gpt-5-nano",
880
1251
  "openai/gpt-5-pro",
1252
+ "openai/gpt-5.1",
1253
+ "openai/gpt-5.1-chat",
1254
+ "openai/gpt-5.1-codex",
1255
+ "openai/gpt-5.1-codex-mini",
881
1256
  "openai/gpt-oss-120b",
882
1257
  "openai/gpt-oss-120b:exacto",
883
1258
  "openai/gpt-oss-20b",
1259
+ "openai/gpt-oss-safeguard-20b",
884
1260
  "openai/o4-mini",
885
- "openrouter/cypher-alpha:free",
886
- "openrouter/horizon-alpha",
887
- "openrouter/horizon-beta",
888
- "openrouter/sonoma-dusk-alpha",
889
- "openrouter/sonoma-sky-alpha",
890
1261
  "qwen/qwen-2.5-coder-32b-instruct",
891
1262
  "qwen/qwen2.5-vl-32b-instruct:free",
892
1263
  "qwen/qwen2.5-vl-72b-instruct",
@@ -902,6 +1273,7 @@ var provider_registry_default = {
902
1273
  "qwen/qwen3-32b:free",
903
1274
  "qwen/qwen3-8b:free",
904
1275
  "qwen/qwen3-coder",
1276
+ "qwen/qwen3-coder-flash",
905
1277
  "qwen/qwen3-coder:exacto",
906
1278
  "qwen/qwen3-coder:free",
907
1279
  "qwen/qwen3-max",
@@ -918,6 +1290,7 @@ var provider_registry_default = {
918
1290
  "x-ai/grok-3-mini-beta",
919
1291
  "x-ai/grok-4",
920
1292
  "x-ai/grok-4-fast",
1293
+ "x-ai/grok-4.1-fast",
921
1294
  "x-ai/grok-code-fast-1",
922
1295
  "z-ai/glm-4.5",
923
1296
  "z-ai/glm-4.5-air",
@@ -943,7 +1316,10 @@ var provider_registry_default = {
943
1316
  "inclusionai/lint-1t",
944
1317
  "inclusionai/ring-1t",
945
1318
  "kuaishou/kat-coder-pro-v1",
1319
+ "minimax/minimax-m2",
946
1320
  "moonshotai/kimi-k2-0905",
1321
+ "moonshotai/kimi-k2-thinking",
1322
+ "moonshotai/kimi-k2-thinking-turbo",
947
1323
  "openai/gpt-5",
948
1324
  "openai/gpt-5-codex",
949
1325
  "qwen/qwen3-coder-plus",
@@ -957,6 +1333,31 @@ var provider_registry_default = {
957
1333
  docUrl: "https://docs.zenmux.ai",
958
1334
  gateway: "models.dev"
959
1335
  },
1336
+ ovhcloud: {
1337
+ url: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
1338
+ apiKeyEnvVar: "OVHCLOUD_API_KEY",
1339
+ apiKeyHeader: "Authorization",
1340
+ name: "OVHcloud AI Endpoints",
1341
+ models: [
1342
+ "deepseek-r1-distill-llama-70b",
1343
+ "gpt-oss-120b",
1344
+ "gpt-oss-20b",
1345
+ "llama-3.1-8b-instruct",
1346
+ "llava-next-mistral-7b",
1347
+ "meta-llama-3_1-70b-instruct",
1348
+ "meta-llama-3_3-70b-instruct",
1349
+ "mistral-7b-instruct-v0.3",
1350
+ "mistral-nemo-instruct-2407",
1351
+ "mistral-small-3.2-24b-instruct-2506",
1352
+ "mixtral-8x7b-instruct-v0.1",
1353
+ "qwen2.5-coder-32b-instruct",
1354
+ "qwen2.5-vl-72b-instruct",
1355
+ "qwen3-32b",
1356
+ "qwen3-coder-30b-a3b-instruct"
1357
+ ],
1358
+ docUrl: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//",
1359
+ gateway: "models.dev"
1360
+ },
960
1361
  iflowcn: {
961
1362
  url: "https://apis.iflow.cn/v1",
962
1363
  apiKeyEnvVar: "IFLOW_API_KEY",
@@ -967,9 +1368,12 @@ var provider_registry_default = {
967
1368
  "deepseek-v3",
968
1369
  "deepseek-v3.1",
969
1370
  "deepseek-v3.2",
1371
+ "deepseek-v3.2-chat",
970
1372
  "glm-4.6",
971
1373
  "kimi-k2",
972
1374
  "kimi-k2-0905",
1375
+ "kimi-k2-thinking",
1376
+ "minimax-m2",
973
1377
  "qwen3-235b",
974
1378
  "qwen3-235b-a22b-instruct",
975
1379
  "qwen3-235b-a22b-thinking-2507",
@@ -1001,6 +1405,7 @@ var provider_registry_default = {
1001
1405
  "hf:deepseek-ai/DeepSeek-V3-0324",
1002
1406
  "hf:deepseek-ai/DeepSeek-V3.1",
1003
1407
  "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
1408
+ "hf:deepseek-ai/DeepSeek-V3.2",
1004
1409
  "hf:meta-llama/Llama-3.1-405B-Instruct",
1005
1410
  "hf:meta-llama/Llama-3.1-70B-Instruct",
1006
1411
  "hf:meta-llama/Llama-3.1-8B-Instruct",
@@ -1009,6 +1414,7 @@ var provider_registry_default = {
1009
1414
  "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct",
1010
1415
  "hf:moonshotai/Kimi-K2-Instruct",
1011
1416
  "hf:moonshotai/Kimi-K2-Instruct-0905",
1417
+ "hf:moonshotai/Kimi-K2-Thinking",
1012
1418
  "hf:openai/gpt-oss-120b",
1013
1419
  "hf:zai-org/GLM-4.5",
1014
1420
  "hf:zai-org/GLM-4.6"
@@ -1025,6 +1431,8 @@ var provider_registry_default = {
1025
1431
  "Qwen/Qwen3-Coder-480B-A35B-Instruct",
1026
1432
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
1027
1433
  "moonshotai/Kimi-K2-Instruct",
1434
+ "openai/gpt-oss-120b",
1435
+ "openai/gpt-oss-20b",
1028
1436
  "zai-org/GLM-4.5"
1029
1437
  ],
1030
1438
  docUrl: "https://deepinfra.com/models",
@@ -1093,18 +1501,24 @@ var provider_registry_default = {
1093
1501
  name: "Requesty",
1094
1502
  models: [
1095
1503
  "anthropic/claude-3-7-sonnet",
1096
- "anthropic/claude-4-sonnet-20250522",
1504
+ "anthropic/claude-haiku-4-5",
1097
1505
  "anthropic/claude-opus-4",
1098
- "anthropic/claude-opus-4-1-20250805",
1506
+ "anthropic/claude-opus-4-1",
1507
+ "anthropic/claude-opus-4-5",
1508
+ "anthropic/claude-sonnet-4",
1509
+ "anthropic/claude-sonnet-4-5",
1099
1510
  "google/gemini-2.5-flash",
1100
1511
  "google/gemini-2.5-pro",
1512
+ "google/gemini-3-pro-preview",
1101
1513
  "openai/gpt-4.1",
1102
1514
  "openai/gpt-4.1-mini",
1103
1515
  "openai/gpt-4o-mini",
1104
1516
  "openai/gpt-5",
1105
1517
  "openai/gpt-5-mini",
1106
1518
  "openai/gpt-5-nano",
1107
- "openai/o4-mini"
1519
+ "openai/o4-mini",
1520
+ "xai/grok-4",
1521
+ "xai/grok-4-fast"
1108
1522
  ],
1109
1523
  docUrl: "https://requesty.ai/solution/llm-routing/models",
1110
1524
  gateway: "models.dev"
@@ -1146,6 +1560,8 @@ var provider_registry_default = {
1146
1560
  "claude-opus-4-1",
1147
1561
  "claude-opus-4-1-20250805",
1148
1562
  "claude-opus-4-20250514",
1563
+ "claude-opus-4-5",
1564
+ "claude-opus-4-5-20251101",
1149
1565
  "claude-sonnet-4-0",
1150
1566
  "claude-sonnet-4-20250514",
1151
1567
  "claude-sonnet-4-5",
@@ -1168,6 +1584,7 @@ var provider_registry_default = {
1168
1584
  "accounts/fireworks/models/gpt-oss-120b",
1169
1585
  "accounts/fireworks/models/gpt-oss-20b",
1170
1586
  "accounts/fireworks/models/kimi-k2-instruct",
1587
+ "accounts/fireworks/models/kimi-k2-thinking",
1171
1588
  "accounts/fireworks/models/minimax-m2",
1172
1589
  "accounts/fireworks/models/qwen3-235b-a22b",
1173
1590
  "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct"
@@ -1175,6 +1592,33 @@ var provider_registry_default = {
1175
1592
  docUrl: "https://fireworks.ai/docs/",
1176
1593
  gateway: "models.dev"
1177
1594
  },
1595
+ "io-net": {
1596
+ url: "https://api.intelligence.io.solutions/api/v1",
1597
+ apiKeyEnvVar: "IOINTELLIGENCE_API_KEY",
1598
+ apiKeyHeader: "Authorization",
1599
+ name: "IO.NET",
1600
+ models: [
1601
+ "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar",
1602
+ "Qwen/Qwen2.5-VL-32B-Instruct",
1603
+ "Qwen/Qwen3-235B-A22B-Thinking-2507",
1604
+ "Qwen/Qwen3-Next-80B-A3B-Instruct",
1605
+ "deepseek-ai/DeepSeek-R1-0528",
1606
+ "meta-llama/Llama-3.2-90B-Vision-Instruct",
1607
+ "meta-llama/Llama-3.3-70B-Instruct",
1608
+ "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
1609
+ "mistralai/Devstral-Small-2505",
1610
+ "mistralai/Magistral-Small-2506",
1611
+ "mistralai/Mistral-Large-Instruct-2411",
1612
+ "mistralai/Mistral-Nemo-Instruct-2407",
1613
+ "moonshotai/Kimi-K2-Instruct-0905",
1614
+ "moonshotai/Kimi-K2-Thinking",
1615
+ "openai/gpt-oss-120b",
1616
+ "openai/gpt-oss-20b",
1617
+ "zai-org/GLM-4.6"
1618
+ ],
1619
+ docUrl: "https://io.net/docs/guides/intelligence/io-intelligence",
1620
+ gateway: "models.dev"
1621
+ },
1178
1622
  modelscope: {
1179
1623
  url: "https://api-inference.modelscope.cn/v1",
1180
1624
  apiKeyEnvVar: "MODELSCOPE_API_KEY",
@@ -1232,12 +1676,122 @@ var provider_registry_default = {
1232
1676
  docUrl: "https://www.scaleway.com/en/docs/generative-apis/",
1233
1677
  gateway: "models.dev"
1234
1678
  },
1679
+ poe: {
1680
+ url: "https://api.poe.com/v1",
1681
+ apiKeyEnvVar: "POE_API_KEY",
1682
+ apiKeyHeader: "Authorization",
1683
+ name: "Poe",
1684
+ models: [
1685
+ "anthropic/claude-haiku-3",
1686
+ "anthropic/claude-haiku-3.5",
1687
+ "anthropic/claude-haiku-3.5-search",
1688
+ "anthropic/claude-haiku-4.5",
1689
+ "anthropic/claude-opus-3",
1690
+ "anthropic/claude-opus-4",
1691
+ "anthropic/claude-opus-4-reasoning",
1692
+ "anthropic/claude-opus-4-search",
1693
+ "anthropic/claude-opus-4.1",
1694
+ "anthropic/claude-sonnet-3.5",
1695
+ "anthropic/claude-sonnet-3.5-june",
1696
+ "anthropic/claude-sonnet-3.7",
1697
+ "anthropic/claude-sonnet-3.7-reasoning",
1698
+ "anthropic/claude-sonnet-3.7-search",
1699
+ "anthropic/claude-sonnet-4",
1700
+ "anthropic/claude-sonnet-4-reasoning",
1701
+ "anthropic/claude-sonnet-4-search",
1702
+ "anthropic/claude-sonnet-4.5",
1703
+ "elevenlabs/elevenlabs-music",
1704
+ "elevenlabs/elevenlabs-v2.5-turbo",
1705
+ "elevenlabs/elevenlabs-v3",
1706
+ "facebook/llama-3.1-405b",
1707
+ "facebook/llama-3.1-70b",
1708
+ "facebook/llama-3.1-8b",
1709
+ "google/gemini-2.0-flash",
1710
+ "google/gemini-2.0-flash-lite",
1711
+ "google/gemini-2.5-flash",
1712
+ "google/gemini-2.5-flash-lite",
1713
+ "google/gemini-2.5-pro",
1714
+ "google/gemini-3.0-pro",
1715
+ "google/imagen-3",
1716
+ "google/imagen-3-fast",
1717
+ "google/imagen-4",
1718
+ "google/imagen-4-fast",
1719
+ "google/imagen-4-ultra",
1720
+ "google/lyria",
1721
+ "google/nano-banana",
1722
+ "google/veo-2",
1723
+ "google/veo-3",
1724
+ "google/veo-3-fast",
1725
+ "google/veo-3.1",
1726
+ "google/veo-3.1-fast",
1727
+ "ideogramai/ideogram",
1728
+ "ideogramai/ideogram-v2",
1729
+ "ideogramai/ideogram-v2a",
1730
+ "ideogramai/ideogram-v2a-turbo",
1731
+ "lumalabs/dream-machine",
1732
+ "lumalabs/ray2",
1733
+ "novita/glm-4.6",
1734
+ "openAi/chatgpt-4o-latest",
1735
+ "openAi/dall-e-3",
1736
+ "openAi/gpt-3.5-turbo",
1737
+ "openAi/gpt-3.5-turbo-instruct",
1738
+ "openAi/gpt-3.5-turbo-raw",
1739
+ "openAi/gpt-4-classic",
1740
+ "openAi/gpt-4-classic-0314",
1741
+ "openAi/gpt-4-turbo",
1742
+ "openAi/gpt-4.1",
1743
+ "openAi/gpt-4.1-mini",
1744
+ "openAi/gpt-4.1-nano",
1745
+ "openAi/gpt-4o",
1746
+ "openAi/gpt-4o-aug",
1747
+ "openAi/gpt-4o-mini",
1748
+ "openAi/gpt-4o-mini-search",
1749
+ "openAi/gpt-4o-search",
1750
+ "openAi/gpt-5",
1751
+ "openAi/gpt-5-chat",
1752
+ "openAi/gpt-5-codex",
1753
+ "openAi/gpt-5-mini",
1754
+ "openAi/gpt-5-nano",
1755
+ "openAi/gpt-5-pro",
1756
+ "openAi/gpt-image-1",
1757
+ "openAi/gpt-image-1-mini",
1758
+ "openAi/o1",
1759
+ "openAi/o1-pro",
1760
+ "openAi/o3",
1761
+ "openAi/o3-deep-research",
1762
+ "openAi/o3-mini",
1763
+ "openAi/o3-mini-high",
1764
+ "openAi/o3-pro",
1765
+ "openAi/o4-mini",
1766
+ "openAi/o4-mini-deep-research",
1767
+ "openAi/sora-2",
1768
+ "openAi/sora-2-pro",
1769
+ "openai/gpt-5.1",
1770
+ "openai/gpt-5.1-codex",
1771
+ "openai/gpt-5.1-codex-mini",
1772
+ "openai/gpt-5.1-instant",
1773
+ "runwayml/runway",
1774
+ "runwayml/runway-gen-4-turbo",
1775
+ "stabilityai/stablediffusionxl",
1776
+ "topazlabs-co/topazlabs",
1777
+ "trytako/tako",
1778
+ "xai/grok-2",
1779
+ "xai/grok-3",
1780
+ "xai/grok-3-mini",
1781
+ "xai/grok-4",
1782
+ "xai/grok-4-fast-non-reasoning",
1783
+ "xai/grok-4-fast-reasoning",
1784
+ "xai/grok-code-fast-1"
1785
+ ],
1786
+ docUrl: "https://creator.poe.com/docs/external-applications/openai-compatible-api",
1787
+ gateway: "models.dev"
1788
+ },
1235
1789
  cerebras: {
1236
1790
  url: "https://api.cerebras.ai/v1",
1237
1791
  apiKeyEnvVar: "CEREBRAS_API_KEY",
1238
1792
  apiKeyHeader: "Authorization",
1239
1793
  name: "Cerebras",
1240
- models: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "qwen-3-coder-480b", "zai-glm-4.6"],
1794
+ models: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "zai-glm-4.6"],
1241
1795
  docUrl: "https://inference-docs.cerebras.ai/models/overview",
1242
1796
  gateway: "models.dev"
1243
1797
  },
@@ -1248,23 +1802,25 @@ var provider_registry_default = {
1248
1802
  gateway: "netlify",
1249
1803
  models: [
1250
1804
  "anthropic/claude-3-5-haiku-20241022",
1251
- "anthropic/claude-3-5-haiku-latest",
1252
1805
  "anthropic/claude-3-7-sonnet-20250219",
1253
- "anthropic/claude-3-7-sonnet-latest",
1254
1806
  "anthropic/claude-3-haiku-20240307",
1255
1807
  "anthropic/claude-haiku-4-5-20251001",
1256
1808
  "anthropic/claude-opus-4-1-20250805",
1257
1809
  "anthropic/claude-opus-4-20250514",
1810
+ "anthropic/claude-opus-4-5-20251101",
1258
1811
  "anthropic/claude-sonnet-4-20250514",
1259
1812
  "anthropic/claude-sonnet-4-5-20250929",
1260
1813
  "gemini/gemini-2.0-flash",
1261
1814
  "gemini/gemini-2.0-flash-lite",
1262
1815
  "gemini/gemini-2.5-flash",
1816
+ "gemini/gemini-2.5-flash-image",
1263
1817
  "gemini/gemini-2.5-flash-image-preview",
1264
1818
  "gemini/gemini-2.5-flash-lite",
1265
1819
  "gemini/gemini-2.5-flash-lite-preview-09-2025",
1266
1820
  "gemini/gemini-2.5-flash-preview-09-2025",
1267
1821
  "gemini/gemini-2.5-pro",
1822
+ "gemini/gemini-3-pro-image-preview",
1823
+ "gemini/gemini-3-pro-preview",
1268
1824
  "gemini/gemini-flash-latest",
1269
1825
  "gemini/gemini-flash-lite-latest",
1270
1826
  "openai/codex-mini-latest",
@@ -1274,10 +1830,17 @@ var provider_registry_default = {
1274
1830
  "openai/gpt-4o",
1275
1831
  "openai/gpt-4o-mini",
1276
1832
  "openai/gpt-5",
1833
+ "openai/gpt-5-2025-08-07",
1277
1834
  "openai/gpt-5-codex",
1278
1835
  "openai/gpt-5-mini",
1836
+ "openai/gpt-5-mini-2025-08-07",
1279
1837
  "openai/gpt-5-nano",
1280
1838
  "openai/gpt-5-pro",
1839
+ "openai/gpt-5.1",
1840
+ "openai/gpt-5.1-2025-11-13",
1841
+ "openai/gpt-5.1-codex",
1842
+ "openai/gpt-5.1-codex-max",
1843
+ "openai/gpt-5.1-codex-mini",
1281
1844
  "openai/o3",
1282
1845
  "openai/o3-mini",
1283
1846
  "openai/o4-mini"
@@ -1286,9 +1849,21 @@ var provider_registry_default = {
1286
1849
  }
1287
1850
  },
1288
1851
  models: {
1289
- "moonshotai-cn": ["kimi-k2-0711-preview", "kimi-k2-0905-preview", "kimi-k2-turbo-preview"],
1852
+ "moonshotai-cn": [
1853
+ "kimi-k2-0711-preview",
1854
+ "kimi-k2-0905-preview",
1855
+ "kimi-k2-thinking",
1856
+ "kimi-k2-thinking-turbo",
1857
+ "kimi-k2-turbo-preview"
1858
+ ],
1290
1859
  lucidquery: ["lucidnova-rf1-100b", "lucidquery-nexus-coder"],
1291
- moonshotai: ["kimi-k2-0711-preview", "kimi-k2-0905-preview", "kimi-k2-turbo-preview"],
1860
+ moonshotai: [
1861
+ "kimi-k2-0711-preview",
1862
+ "kimi-k2-0905-preview",
1863
+ "kimi-k2-thinking",
1864
+ "kimi-k2-thinking-turbo",
1865
+ "kimi-k2-turbo-preview"
1866
+ ],
1292
1867
  "zai-coding-plan": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6"],
1293
1868
  alibaba: [
1294
1869
  "qvq-max",
@@ -1347,6 +1922,8 @@ var provider_registry_default = {
1347
1922
  "grok-3-mini-fast-latest",
1348
1923
  "grok-3-mini-latest",
1349
1924
  "grok-4",
1925
+ "grok-4-1-fast",
1926
+ "grok-4-1-fast-non-reasoning",
1350
1927
  "grok-4-fast",
1351
1928
  "grok-4-fast-non-reasoning",
1352
1929
  "grok-beta",
@@ -1367,6 +1944,7 @@ var provider_registry_default = {
1367
1944
  "google/gemma-3-27b-it",
1368
1945
  "microsoft/phi-4-mini-instruct",
1369
1946
  "minimaxai/minimax-m2",
1947
+ "mistralai/mistral-large-3-675b-instruct-2512",
1370
1948
  "moonshotai/kimi-k2-instruct",
1371
1949
  "moonshotai/kimi-k2-instruct-0905",
1372
1950
  "nvidia/cosmos-nemotron-34b",
@@ -1402,15 +1980,19 @@ var provider_registry_default = {
1402
1980
  "qwen-qwq-32b",
1403
1981
  "qwen/qwen3-32b"
1404
1982
  ],
1983
+ bailing: ["Ling-1T", "Ring-1T"],
1405
1984
  mistral: [
1406
1985
  "codestral-latest",
1407
1986
  "devstral-medium-2507",
1987
+ "devstral-medium-latest",
1408
1988
  "devstral-small-2505",
1409
1989
  "devstral-small-2507",
1410
1990
  "magistral-medium-latest",
1411
1991
  "magistral-small",
1412
1992
  "ministral-3b-latest",
1413
1993
  "ministral-8b-latest",
1994
+ "mistral-large-2411",
1995
+ "mistral-large-2512",
1414
1996
  "mistral-large-latest",
1415
1997
  "mistral-medium-2505",
1416
1998
  "mistral-medium-2508",
@@ -1443,7 +2025,7 @@ var provider_registry_default = {
1443
2025
  "anthropic/claude-4-sonnet",
1444
2026
  "anthropic/claude-4.5-sonnet",
1445
2027
  "anthropic/claude-haiku-4.5",
1446
- "cerebras/qwen3-coder",
2028
+ "anthropic/claude-opus-4.5",
1447
2029
  "deepseek/deepseek-r1",
1448
2030
  "deepseek/deepseek-r1-distill-llama-70b",
1449
2031
  "deepseek/deepseek-v3.1-terminus",
@@ -1456,6 +2038,7 @@ var provider_registry_default = {
1456
2038
  "google/gemini-2.5-flash-lite-preview-09-2025",
1457
2039
  "google/gemini-2.5-flash-preview-09-2025",
1458
2040
  "google/gemini-2.5-pro",
2041
+ "google/gemini-3-pro-preview",
1459
2042
  "meta/llama-3.3-70b",
1460
2043
  "meta/llama-4-maverick",
1461
2044
  "meta/llama-4-scout",
@@ -1527,7 +2110,7 @@ var provider_registry_default = {
1527
2110
  "zai-org/glm-4.5",
1528
2111
  "zai-org/glm-4.5-air"
1529
2112
  ],
1530
- deepseek: ["deepseek-chat", "deepseek-reasoner"],
2113
+ deepseek: ["deepseek-chat", "deepseek-reasoner", "deepseek-v3.2"],
1531
2114
  "alibaba-cn": [
1532
2115
  "deepseek-r1",
1533
2116
  "deepseek-r1-0528",
@@ -1592,54 +2175,83 @@ var provider_registry_default = {
1592
2175
  "tongyi-intent-detect-v3"
1593
2176
  ],
1594
2177
  venice: [
1595
- "deepseek-coder-v2-lite",
1596
- "deepseek-r1-671b",
1597
- "dolphin-2.9.2-qwen2-72b",
1598
- "llama-3.1-405b",
2178
+ "claude-opus-45",
2179
+ "deepseek-v3.2",
2180
+ "gemini-3-pro-preview",
2181
+ "google-gemma-3-27b-it",
2182
+ "grok-41-fast",
2183
+ "hermes-3-llama-3.1-405b",
2184
+ "kimi-k2-thinking",
1599
2185
  "llama-3.2-3b",
1600
2186
  "llama-3.3-70b",
1601
2187
  "mistral-31-24b",
1602
- "qwen-2.5-coder-32b",
1603
- "qwen-2.5-qwq-32b",
1604
- "qwen-2.5-vl",
2188
+ "openai-gpt-oss-120b",
1605
2189
  "qwen3-235b",
2190
+ "qwen3-235b-a22b-instruct-2507",
2191
+ "qwen3-235b-a22b-thinking-2507",
1606
2192
  "qwen3-4b",
2193
+ "qwen3-coder-480b-a35b-instruct",
2194
+ "qwen3-next-80b",
1607
2195
  "venice-uncensored",
1608
2196
  "zai-org-glm-4.6"
1609
2197
  ],
1610
2198
  chutes: [
2199
+ "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B",
2200
+ "ArliAI/QwQ-32B-ArliAI-RpR-v1",
1611
2201
  "MiniMaxAI/MiniMax-M2",
2202
+ "NousResearch/DeepHermes-3-Mistral-24B-Preview",
2203
+ "NousResearch/Hermes-4-14B",
2204
+ "NousResearch/Hermes-4-405B-FP8",
2205
+ "NousResearch/Hermes-4-70B",
2206
+ "OpenGVLab/InternVL3-78B",
2207
+ "Qwen/Qwen2.5-72B-Instruct",
2208
+ "Qwen/Qwen2.5-Coder-32B-Instruct",
2209
+ "Qwen/Qwen2.5-VL-32B-Instruct",
2210
+ "Qwen/Qwen2.5-VL-72B-Instruct",
2211
+ "Qwen/Qwen3-14B",
2212
+ "Qwen/Qwen3-235B-A22B",
1612
2213
  "Qwen/Qwen3-235B-A22B-Instruct-2507",
1613
2214
  "Qwen/Qwen3-235B-A22B-Thinking-2507",
1614
2215
  "Qwen/Qwen3-30B-A3B",
1615
2216
  "Qwen/Qwen3-30B-A3B-Instruct-2507",
2217
+ "Qwen/Qwen3-32B",
1616
2218
  "Qwen/Qwen3-Coder-30B-A3B-Instruct",
1617
2219
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
1618
2220
  "Qwen/Qwen3-Next-80B-A3B-Instruct",
1619
- "Qwen/Qwen3-Next-80B-A3B-Thinking",
2221
+ "Qwen/Qwen3-VL-235B-A22B-Instruct",
2222
+ "Qwen/Qwen3-VL-235B-A22B-Thinking",
2223
+ "chutesai/Mistral-Small-3.1-24B-Instruct-2503",
1620
2224
  "chutesai/Mistral-Small-3.2-24B-Instruct-2506",
2225
+ "deepseek-ai/DeepSeek-R1",
1621
2226
  "deepseek-ai/DeepSeek-R1-0528",
1622
2227
  "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",
1623
2228
  "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
2229
+ "deepseek-ai/DeepSeek-V3",
1624
2230
  "deepseek-ai/DeepSeek-V3-0324",
1625
2231
  "deepseek-ai/DeepSeek-V3.1",
1626
2232
  "deepseek-ai/DeepSeek-V3.1-Terminus",
1627
- "deepseek-ai/DeepSeek-V3.1:THINKING",
1628
- "deepseek-ai/DeepSeek-V3.2-Exp",
2233
+ "deepseek-ai/DeepSeek-V3.2",
2234
+ "deepseek-ai/DeepSeek-V3.2-Speciale",
1629
2235
  "meituan-longcat/LongCat-Flash-Chat-FP8",
2236
+ "microsoft/MAI-DS-R1-FP8",
1630
2237
  "moonshotai/Kimi-K2-Instruct-0905",
1631
- "moonshotai/Kimi-K2-Instruct-75k",
1632
- "moonshotai/Kimi-VL-A3B-Thinking",
2238
+ "moonshotai/Kimi-K2-Thinking",
1633
2239
  "openai/gpt-oss-120b",
2240
+ "openai/gpt-oss-20b",
2241
+ "rednote-hilab/dots.ocr",
1634
2242
  "tngtech/DeepSeek-R1T-Chimera",
1635
2243
  "tngtech/DeepSeek-TNG-R1T2-Chimera",
2244
+ "tngtech/TNG-R1T-Chimera",
2245
+ "unsloth/Mistral-Nemo-Instruct-2407",
2246
+ "unsloth/Mistral-Small-24B-Instruct-2501",
2247
+ "unsloth/gemma-3-12b-it",
2248
+ "unsloth/gemma-3-27b-it",
2249
+ "unsloth/gemma-3-4b-it",
1636
2250
  "zai-org/GLM-4.5",
1637
2251
  "zai-org/GLM-4.5-Air",
1638
- "zai-org/GLM-4.5-FP8",
1639
- "zai-org/GLM-4.6",
1640
- "zai-org/GLM-4.6-FP8",
1641
- "zai-org/GLM-4.6-turbo"
2252
+ "zai-org/GLM-4.6"
1642
2253
  ],
2254
+ "kimi-for-coding": ["kimi-k2-thinking"],
1643
2255
  cortecs: [
1644
2256
  "claude-4-5-sonnet",
1645
2257
  "claude-sonnet-4",
@@ -1718,7 +2330,180 @@ var provider_registry_default = {
1718
2330
  "moonshotai/Kimi-K2-Instruct",
1719
2331
  "openai/gpt-oss-120b"
1720
2332
  ],
1721
- baseten: ["Qwen3/Qwen3-Coder-480B-A35B-Instruct", "moonshotai/Kimi-K2-Instruct-0905", "zai-org/GLM-4.6"],
2333
+ baseten: [
2334
+ "Qwen/Qwen3-Coder-480B-A35B-Instruct",
2335
+ "deepseek-ai/DeepSeek-V3.2",
2336
+ "moonshotai/Kimi-K2-Instruct-0905",
2337
+ "moonshotai/Kimi-K2-Thinking",
2338
+ "zai-org/GLM-4.6"
2339
+ ],
2340
+ siliconflow: [
2341
+ "baidu-ernie-4.5-300b-a47b",
2342
+ "bytedance-seed-seed-oss-36b-instruct",
2343
+ "deepseek-ai-deepseek-r1",
2344
+ "deepseek-ai-deepseek-r1-distill-qwen-14b",
2345
+ "deepseek-ai-deepseek-r1-distill-qwen-32b",
2346
+ "deepseek-ai-deepseek-r1-distill-qwen-7b",
2347
+ "deepseek-ai-deepseek-v3",
2348
+ "deepseek-ai-deepseek-v3.1",
2349
+ "deepseek-ai-deepseek-v3.1-terminus",
2350
+ "deepseek-ai-deepseek-v3.2-exp",
2351
+ "deepseek-ai-deepseek-vl2",
2352
+ "inclusionai-ling-flash-2.0",
2353
+ "inclusionai-ling-mini-2.0",
2354
+ "inclusionai-ring-flash-2.0",
2355
+ "meta-llama-meta-llama-3.1-8b-instruct",
2356
+ "minimaxai-minimax-m1-80k",
2357
+ "minimaxai-minimax-m2",
2358
+ "moonshotai-kimi-dev-72b",
2359
+ "moonshotai-kimi-k2-instruct",
2360
+ "moonshotai-kimi-k2-instruct-0905",
2361
+ "moonshotai-kimi-k2-thinking",
2362
+ "nex-agi-deepseek-v3.1-nex-n1",
2363
+ "openai-gpt-oss-120b",
2364
+ "openai-gpt-oss-20b",
2365
+ "qwen-qwen2.5-14b-instruct",
2366
+ "qwen-qwen2.5-32b-instruct",
2367
+ "qwen-qwen2.5-72b-instruct",
2368
+ "qwen-qwen2.5-72b-instruct-128k",
2369
+ "qwen-qwen2.5-7b-instruct",
2370
+ "qwen-qwen2.5-coder-32b-instruct",
2371
+ "qwen-qwen2.5-vl-32b-instruct",
2372
+ "qwen-qwen2.5-vl-72b-instruct",
2373
+ "qwen-qwen2.5-vl-7b-instruct",
2374
+ "qwen-qwen3-14b",
2375
+ "qwen-qwen3-235b-a22b",
2376
+ "qwen-qwen3-235b-a22b-instruct-2507",
2377
+ "qwen-qwen3-235b-a22b-thinking-2507",
2378
+ "qwen-qwen3-30b-a3b",
2379
+ "qwen-qwen3-30b-a3b-instruct-2507",
2380
+ "qwen-qwen3-30b-a3b-thinking-2507",
2381
+ "qwen-qwen3-32b",
2382
+ "qwen-qwen3-8b",
2383
+ "qwen-qwen3-coder-30b-a3b-instruct",
2384
+ "qwen-qwen3-coder-480b-a35b-instruct",
2385
+ "qwen-qwen3-next-80b-a3b-instruct",
2386
+ "qwen-qwen3-next-80b-a3b-thinking",
2387
+ "qwen-qwen3-omni-30b-a3b-captioner",
2388
+ "qwen-qwen3-omni-30b-a3b-instruct",
2389
+ "qwen-qwen3-omni-30b-a3b-thinking",
2390
+ "qwen-qwen3-vl-235b-a22b-instruct",
2391
+ "qwen-qwen3-vl-235b-a22b-thinking",
2392
+ "qwen-qwen3-vl-30b-a3b-instruct",
2393
+ "qwen-qwen3-vl-30b-a3b-thinking",
2394
+ "qwen-qwen3-vl-32b-instruct",
2395
+ "qwen-qwen3-vl-32b-thinking",
2396
+ "qwen-qwen3-vl-8b-instruct",
2397
+ "qwen-qwen3-vl-8b-thinking",
2398
+ "qwen-qwq-32b",
2399
+ "stepfun-ai-step3",
2400
+ "tencent-hunyuan-a13b-instruct",
2401
+ "tencent-hunyuan-mt-7b",
2402
+ "thudm-glm-4-32b-0414",
2403
+ "thudm-glm-4-9b-0414",
2404
+ "thudm-glm-4.1v-9b-thinking",
2405
+ "thudm-glm-z1-32b-0414",
2406
+ "thudm-glm-z1-9b-0414",
2407
+ "z-ai-glm-4.5",
2408
+ "z-ai-glm-4.5-air",
2409
+ "zai-org-glm-4.5",
2410
+ "zai-org-glm-4.5-air",
2411
+ "zai-org-glm-4.5v",
2412
+ "zai-org-glm-4.6"
2413
+ ],
2414
+ helicone: [
2415
+ "chatgpt-4o-latest",
2416
+ "claude-3-haiku-20240307",
2417
+ "claude-3.5-haiku",
2418
+ "claude-3.5-sonnet-v2",
2419
+ "claude-3.7-sonnet",
2420
+ "claude-4.5-haiku",
2421
+ "claude-4.5-opus",
2422
+ "claude-4.5-sonnet",
2423
+ "claude-haiku-4-5-20251001",
2424
+ "claude-opus-4",
2425
+ "claude-opus-4-1",
2426
+ "claude-opus-4-1-20250805",
2427
+ "claude-sonnet-4",
2428
+ "claude-sonnet-4-5-20250929",
2429
+ "codex-mini-latest",
2430
+ "deepseek-r1-distill-llama-70b",
2431
+ "deepseek-reasoner",
2432
+ "deepseek-tng-r1t2-chimera",
2433
+ "deepseek-v3",
2434
+ "deepseek-v3.1-terminus",
2435
+ "deepseek-v3.2",
2436
+ "ernie-4.5-21b-a3b-thinking",
2437
+ "gemini-2.5-flash",
2438
+ "gemini-2.5-flash-lite",
2439
+ "gemini-2.5-pro",
2440
+ "gemini-3-pro-preview",
2441
+ "gemma-3-12b-it",
2442
+ "gemma2-9b-it",
2443
+ "glm-4.6",
2444
+ "gpt-4.1",
2445
+ "gpt-4.1-mini",
2446
+ "gpt-4.1-mini-2025-04-14",
2447
+ "gpt-4.1-nano",
2448
+ "gpt-4o",
2449
+ "gpt-4o-mini",
2450
+ "gpt-5",
2451
+ "gpt-5-chat-latest",
2452
+ "gpt-5-codex",
2453
+ "gpt-5-mini",
2454
+ "gpt-5-nano",
2455
+ "gpt-5-pro",
2456
+ "gpt-5.1",
2457
+ "gpt-5.1-chat-latest",
2458
+ "gpt-5.1-codex",
2459
+ "gpt-5.1-codex-mini",
2460
+ "gpt-oss-120b",
2461
+ "gpt-oss-20b",
2462
+ "grok-3",
2463
+ "grok-3-mini",
2464
+ "grok-4",
2465
+ "grok-4-1-fast-non-reasoning",
2466
+ "grok-4-1-fast-reasoning",
2467
+ "grok-4-fast-non-reasoning",
2468
+ "grok-4-fast-reasoning",
2469
+ "grok-code-fast-1",
2470
+ "hermes-2-pro-llama-3-8b",
2471
+ "kimi-k2-0711",
2472
+ "kimi-k2-0905",
2473
+ "kimi-k2-thinking",
2474
+ "llama-3.1-8b-instant",
2475
+ "llama-3.1-8b-instruct",
2476
+ "llama-3.1-8b-instruct-turbo",
2477
+ "llama-3.3-70b-instruct",
2478
+ "llama-3.3-70b-versatile",
2479
+ "llama-4-maverick",
2480
+ "llama-4-scout",
2481
+ "llama-guard-4",
2482
+ "llama-prompt-guard-2-22m",
2483
+ "llama-prompt-guard-2-86m",
2484
+ "mistral-large-2411",
2485
+ "mistral-nemo",
2486
+ "mistral-small",
2487
+ "o1",
2488
+ "o1-mini",
2489
+ "o3",
2490
+ "o3-mini",
2491
+ "o3-pro",
2492
+ "o4-mini",
2493
+ "qwen2.5-coder-7b-fast",
2494
+ "qwen3-235b-a22b-thinking",
2495
+ "qwen3-30b-a3b",
2496
+ "qwen3-32b",
2497
+ "qwen3-coder",
2498
+ "qwen3-coder-30b-a3b-instruct",
2499
+ "qwen3-next-80b-a3b-instruct",
2500
+ "qwen3-vl-235b-a22b-instruct",
2501
+ "sonar",
2502
+ "sonar-deep-research",
2503
+ "sonar-pro",
2504
+ "sonar-reasoning",
2505
+ "sonar-reasoning-pro"
2506
+ ],
1722
2507
  huggingface: [
1723
2508
  "MiniMaxAI/MiniMax-M2",
1724
2509
  "Qwen/Qwen3-235B-A22B-Thinking-2507",
@@ -1736,19 +2521,27 @@ var provider_registry_default = {
1736
2521
  "zai-org/GLM-4.6"
1737
2522
  ],
1738
2523
  opencode: [
1739
- "an-gd4",
2524
+ "alpha-doubao-seed-code",
2525
+ "alpha-gd4",
2526
+ "alpha-minimax-m2",
1740
2527
  "big-pickle",
1741
2528
  "claude-3-5-haiku",
1742
2529
  "claude-haiku-4-5",
1743
2530
  "claude-opus-4-1",
2531
+ "claude-opus-4-5",
1744
2532
  "claude-sonnet-4",
1745
2533
  "claude-sonnet-4-5",
2534
+ "gemini-3-pro",
1746
2535
  "glm-4.6",
1747
2536
  "gpt-5",
1748
2537
  "gpt-5-codex",
2538
+ "gpt-5-nano",
2539
+ "gpt-5.1",
2540
+ "gpt-5.1-codex",
2541
+ "gpt-5.1-codex-max",
1749
2542
  "grok-code",
1750
2543
  "kimi-k2",
1751
- "minimax-m2",
2544
+ "kimi-k2-thinking",
1752
2545
  "qwen3-coder"
1753
2546
  ],
1754
2547
  fastrouter: [
@@ -1767,6 +2560,7 @@ var provider_registry_default = {
1767
2560
  "qwen/qwen3-coder",
1768
2561
  "x-ai/grok-4"
1769
2562
  ],
2563
+ minimax: ["MiniMax-M2"],
1770
2564
  google: [
1771
2565
  "gemini-1.5-flash",
1772
2566
  "gemini-1.5-flash-8b",
@@ -1787,6 +2581,7 @@ var provider_registry_default = {
1787
2581
  "gemini-2.5-pro-preview-05-06",
1788
2582
  "gemini-2.5-pro-preview-06-05",
1789
2583
  "gemini-2.5-pro-preview-tts",
2584
+ "gemini-3-pro-preview",
1790
2585
  "gemini-embedding-001",
1791
2586
  "gemini-flash-latest",
1792
2587
  "gemini-flash-lite-latest",
@@ -1806,6 +2601,85 @@ var provider_registry_default = {
1806
2601
  "microsoft/Phi-4-mini-instruct",
1807
2602
  "moonshotai/Kimi-K2-Instruct"
1808
2603
  ],
2604
+ "cloudflare-ai-gateway": [
2605
+ "anthropic/claude-3-5-haiku",
2606
+ "anthropic/claude-3-haiku",
2607
+ "anthropic/claude-3-opus",
2608
+ "anthropic/claude-3-sonnet",
2609
+ "anthropic/claude-3.5-haiku",
2610
+ "anthropic/claude-3.5-sonnet",
2611
+ "anthropic/claude-haiku-4-5",
2612
+ "anthropic/claude-haiku-4.5",
2613
+ "anthropic/claude-opus-4",
2614
+ "anthropic/claude-opus-4-1",
2615
+ "anthropic/claude-opus-4-5",
2616
+ "anthropic/claude-opus-4.1",
2617
+ "anthropic/claude-opus-4.5",
2618
+ "anthropic/claude-sonnet-4",
2619
+ "anthropic/claude-sonnet-4-5",
2620
+ "anthropic/claude-sonnet-4.5",
2621
+ "openai/gpt-3.5-turbo",
2622
+ "openai/gpt-4",
2623
+ "openai/gpt-4-turbo",
2624
+ "openai/gpt-4o",
2625
+ "openai/gpt-4o-mini",
2626
+ "openai/gpt-5.1",
2627
+ "openai/gpt-5.1-codex",
2628
+ "openai/o1",
2629
+ "openai/o1-mini",
2630
+ "openai/o1-preview",
2631
+ "openai/o3",
2632
+ "openai/o3-mini",
2633
+ "openai/o3-pro",
2634
+ "openai/o4-mini",
2635
+ "replicate/deepseek-ai/deepseek-r1",
2636
+ "replicate/meta/meta-llama-3-70b-instruct",
2637
+ "replicate/meta/meta-llama-3-8b-instruct",
2638
+ "replicate/meta/meta-llama-3.1-405b-instruct",
2639
+ "replicate/replicate-internal/llama-405b-instruct-vllm",
2640
+ "workers-ai/aura-1",
2641
+ "workers-ai/aura-2-en",
2642
+ "workers-ai/aura-2-es",
2643
+ "workers-ai/bart-large-cnn",
2644
+ "workers-ai/bge-base-en-v1.5",
2645
+ "workers-ai/bge-large-en-v1.5",
2646
+ "workers-ai/bge-m3",
2647
+ "workers-ai/bge-reranker-base",
2648
+ "workers-ai/bge-small-en-v1.5",
2649
+ "workers-ai/deepseek-r1-distill-qwen-32b",
2650
+ "workers-ai/distilbert-sst-2-int8",
2651
+ "workers-ai/gemma-3-12b-it",
2652
+ "workers-ai/gemma-sea-lion-v4-27b-it",
2653
+ "workers-ai/gpt-oss-120b",
2654
+ "workers-ai/gpt-oss-20b",
2655
+ "workers-ai/granite-4.0-h-micro",
2656
+ "workers-ai/indictrans2-en-indic-1B",
2657
+ "workers-ai/llama-2-7b-chat-fp16",
2658
+ "workers-ai/llama-3-8b-instruct",
2659
+ "workers-ai/llama-3-8b-instruct-awq",
2660
+ "workers-ai/llama-3.1-8b-instruct",
2661
+ "workers-ai/llama-3.1-8b-instruct-awq",
2662
+ "workers-ai/llama-3.1-8b-instruct-fp8",
2663
+ "workers-ai/llama-3.2-11b-vision-instruct",
2664
+ "workers-ai/llama-3.2-1b-instruct",
2665
+ "workers-ai/llama-3.2-3b-instruct",
2666
+ "workers-ai/llama-3.3-70b-instruct-fp8-fast",
2667
+ "workers-ai/llama-4-scout-17b-16e-instruct",
2668
+ "workers-ai/llama-guard-3-8b",
2669
+ "workers-ai/m2m100-1.2b",
2670
+ "workers-ai/melotts",
2671
+ "workers-ai/mistral-7b-instruct-v0.1",
2672
+ "workers-ai/mistral-small-3.1-24b-instruct",
2673
+ "workers-ai/nova-3",
2674
+ "workers-ai/plamo-embedding-1b",
2675
+ "workers-ai/qwen2.5-coder-32b-instruct",
2676
+ "workers-ai/qwen3-30b-a3b-fp8",
2677
+ "workers-ai/qwen3-embedding-0.6b",
2678
+ "workers-ai/qwq-32b",
2679
+ "workers-ai/smart-turn-v2",
2680
+ "workers-ai/whisper",
2681
+ "workers-ai/whisper-large-v3-turbo"
2682
+ ],
1809
2683
  openai: [
1810
2684
  "codex-mini-latest",
1811
2685
  "gpt-3.5-turbo",
@@ -1825,6 +2699,11 @@ var provider_registry_default = {
1825
2699
  "gpt-5-mini",
1826
2700
  "gpt-5-nano",
1827
2701
  "gpt-5-pro",
2702
+ "gpt-5.1",
2703
+ "gpt-5.1-chat-latest",
2704
+ "gpt-5.1-codex",
2705
+ "gpt-5.1-codex-max",
2706
+ "gpt-5.1-codex-mini",
1828
2707
  "o1",
1829
2708
  "o1-mini",
1830
2709
  "o1-preview",
@@ -1840,6 +2719,7 @@ var provider_registry_default = {
1840
2719
  "text-embedding-ada-002"
1841
2720
  ],
1842
2721
  "zhipuai-coding-plan": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6"],
2722
+ "minimax-cn": ["MiniMax-M2"],
1843
2723
  perplexity: ["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro"],
1844
2724
  openrouter: [
1845
2725
  "anthropic/claude-3.5-haiku",
@@ -1847,6 +2727,7 @@ var provider_registry_default = {
1847
2727
  "anthropic/claude-haiku-4.5",
1848
2728
  "anthropic/claude-opus-4",
1849
2729
  "anthropic/claude-opus-4.1",
2730
+ "anthropic/claude-opus-4.5",
1850
2731
  "anthropic/claude-sonnet-4",
1851
2732
  "anthropic/claude-sonnet-4.5",
1852
2733
  "cognitivecomputations/dolphin3.0-mistral-24b",
@@ -1861,6 +2742,8 @@ var provider_registry_default = {
1861
2742
  "deepseek/deepseek-v3-base:free",
1862
2743
  "deepseek/deepseek-v3.1-terminus",
1863
2744
  "deepseek/deepseek-v3.1-terminus:exacto",
2745
+ "deepseek/deepseek-v3.2",
2746
+ "deepseek/deepseek-v3.2-speciale",
1864
2747
  "featherless/qwerky-72b",
1865
2748
  "google/gemini-2.0-flash-001",
1866
2749
  "google/gemini-2.0-flash-exp:free",
@@ -1871,18 +2754,20 @@ var provider_registry_default = {
1871
2754
  "google/gemini-2.5-pro",
1872
2755
  "google/gemini-2.5-pro-preview-05-06",
1873
2756
  "google/gemini-2.5-pro-preview-06-05",
2757
+ "google/gemini-3-pro-preview",
1874
2758
  "google/gemma-2-9b-it:free",
1875
2759
  "google/gemma-3-12b-it",
1876
2760
  "google/gemma-3-27b-it",
1877
2761
  "google/gemma-3n-e4b-it",
1878
2762
  "google/gemma-3n-e4b-it:free",
2763
+ "kwaipilot/kat-coder-pro:free",
1879
2764
  "meta-llama/llama-3.2-11b-vision-instruct",
1880
2765
  "meta-llama/llama-3.3-70b-instruct:free",
1881
2766
  "meta-llama/llama-4-scout:free",
1882
2767
  "microsoft/mai-ds-r1:free",
1883
2768
  "minimax/minimax-01",
1884
2769
  "minimax/minimax-m1",
1885
- "minimax/minimax-m2:free",
2770
+ "minimax/minimax-m2",
1886
2771
  "mistralai/codestral-2508",
1887
2772
  "mistralai/devstral-medium-2507",
1888
2773
  "mistralai/devstral-small-2505",
@@ -1899,6 +2784,7 @@ var provider_registry_default = {
1899
2784
  "moonshotai/kimi-k2",
1900
2785
  "moonshotai/kimi-k2-0905",
1901
2786
  "moonshotai/kimi-k2-0905:exacto",
2787
+ "moonshotai/kimi-k2-thinking",
1902
2788
  "moonshotai/kimi-k2:free",
1903
2789
  "nousresearch/deephermes-3-llama-3-8b-preview",
1904
2790
  "nousresearch/hermes-4-405b",
@@ -1914,15 +2800,15 @@ var provider_registry_default = {
1914
2800
  "openai/gpt-5-mini",
1915
2801
  "openai/gpt-5-nano",
1916
2802
  "openai/gpt-5-pro",
2803
+ "openai/gpt-5.1",
2804
+ "openai/gpt-5.1-chat",
2805
+ "openai/gpt-5.1-codex",
2806
+ "openai/gpt-5.1-codex-mini",
1917
2807
  "openai/gpt-oss-120b",
1918
2808
  "openai/gpt-oss-120b:exacto",
1919
2809
  "openai/gpt-oss-20b",
2810
+ "openai/gpt-oss-safeguard-20b",
1920
2811
  "openai/o4-mini",
1921
- "openrouter/cypher-alpha:free",
1922
- "openrouter/horizon-alpha",
1923
- "openrouter/horizon-beta",
1924
- "openrouter/sonoma-dusk-alpha",
1925
- "openrouter/sonoma-sky-alpha",
1926
2812
  "qwen/qwen-2.5-coder-32b-instruct",
1927
2813
  "qwen/qwen2.5-vl-32b-instruct:free",
1928
2814
  "qwen/qwen2.5-vl-72b-instruct",
@@ -1938,6 +2824,7 @@ var provider_registry_default = {
1938
2824
  "qwen/qwen3-32b:free",
1939
2825
  "qwen/qwen3-8b:free",
1940
2826
  "qwen/qwen3-coder",
2827
+ "qwen/qwen3-coder-flash",
1941
2828
  "qwen/qwen3-coder:exacto",
1942
2829
  "qwen/qwen3-coder:free",
1943
2830
  "qwen/qwen3-max",
@@ -1954,6 +2841,7 @@ var provider_registry_default = {
1954
2841
  "x-ai/grok-3-mini-beta",
1955
2842
  "x-ai/grok-4",
1956
2843
  "x-ai/grok-4-fast",
2844
+ "x-ai/grok-4.1-fast",
1957
2845
  "x-ai/grok-code-fast-1",
1958
2846
  "z-ai/glm-4.5",
1959
2847
  "z-ai/glm-4.5-air",
@@ -1971,7 +2859,10 @@ var provider_registry_default = {
1971
2859
  "inclusionai/lint-1t",
1972
2860
  "inclusionai/ring-1t",
1973
2861
  "kuaishou/kat-coder-pro-v1",
2862
+ "minimax/minimax-m2",
1974
2863
  "moonshotai/kimi-k2-0905",
2864
+ "moonshotai/kimi-k2-thinking",
2865
+ "moonshotai/kimi-k2-thinking-turbo",
1975
2866
  "openai/gpt-5",
1976
2867
  "openai/gpt-5-codex",
1977
2868
  "qwen/qwen3-coder-plus",
@@ -1982,14 +2873,34 @@ var provider_registry_default = {
1982
2873
  "z-ai/glm-4.5-air",
1983
2874
  "z-ai/glm-4.6"
1984
2875
  ],
2876
+ ovhcloud: [
2877
+ "deepseek-r1-distill-llama-70b",
2878
+ "gpt-oss-120b",
2879
+ "gpt-oss-20b",
2880
+ "llama-3.1-8b-instruct",
2881
+ "llava-next-mistral-7b",
2882
+ "meta-llama-3_1-70b-instruct",
2883
+ "meta-llama-3_3-70b-instruct",
2884
+ "mistral-7b-instruct-v0.3",
2885
+ "mistral-nemo-instruct-2407",
2886
+ "mistral-small-3.2-24b-instruct-2506",
2887
+ "mixtral-8x7b-instruct-v0.1",
2888
+ "qwen2.5-coder-32b-instruct",
2889
+ "qwen2.5-vl-72b-instruct",
2890
+ "qwen3-32b",
2891
+ "qwen3-coder-30b-a3b-instruct"
2892
+ ],
1985
2893
  iflowcn: [
1986
2894
  "deepseek-r1",
1987
2895
  "deepseek-v3",
1988
2896
  "deepseek-v3.1",
1989
2897
  "deepseek-v3.2",
2898
+ "deepseek-v3.2-chat",
1990
2899
  "glm-4.6",
1991
2900
  "kimi-k2",
1992
2901
  "kimi-k2-0905",
2902
+ "kimi-k2-thinking",
2903
+ "minimax-m2",
1993
2904
  "qwen3-235b",
1994
2905
  "qwen3-235b-a22b-instruct",
1995
2906
  "qwen3-235b-a22b-thinking-2507",
@@ -2013,6 +2924,7 @@ var provider_registry_default = {
2013
2924
  "hf:deepseek-ai/DeepSeek-V3-0324",
2014
2925
  "hf:deepseek-ai/DeepSeek-V3.1",
2015
2926
  "hf:deepseek-ai/DeepSeek-V3.1-Terminus",
2927
+ "hf:deepseek-ai/DeepSeek-V3.2",
2016
2928
  "hf:meta-llama/Llama-3.1-405B-Instruct",
2017
2929
  "hf:meta-llama/Llama-3.1-70B-Instruct",
2018
2930
  "hf:meta-llama/Llama-3.1-8B-Instruct",
@@ -2021,6 +2933,7 @@ var provider_registry_default = {
2021
2933
  "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct",
2022
2934
  "hf:moonshotai/Kimi-K2-Instruct",
2023
2935
  "hf:moonshotai/Kimi-K2-Instruct-0905",
2936
+ "hf:moonshotai/Kimi-K2-Thinking",
2024
2937
  "hf:openai/gpt-oss-120b",
2025
2938
  "hf:zai-org/GLM-4.5",
2026
2939
  "hf:zai-org/GLM-4.6"
@@ -2029,6 +2942,8 @@ var provider_registry_default = {
2029
2942
  "Qwen/Qwen3-Coder-480B-A35B-Instruct",
2030
2943
  "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
2031
2944
  "moonshotai/Kimi-K2-Instruct",
2945
+ "openai/gpt-oss-120b",
2946
+ "openai/gpt-oss-20b",
2032
2947
  "zai-org/GLM-4.5"
2033
2948
  ],
2034
2949
  zhipuai: ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6"],
@@ -2057,18 +2972,24 @@ var provider_registry_default = {
2057
2972
  ],
2058
2973
  requesty: [
2059
2974
  "anthropic/claude-3-7-sonnet",
2060
- "anthropic/claude-4-sonnet-20250522",
2975
+ "anthropic/claude-haiku-4-5",
2061
2976
  "anthropic/claude-opus-4",
2062
- "anthropic/claude-opus-4-1-20250805",
2977
+ "anthropic/claude-opus-4-1",
2978
+ "anthropic/claude-opus-4-5",
2979
+ "anthropic/claude-sonnet-4",
2980
+ "anthropic/claude-sonnet-4-5",
2063
2981
  "google/gemini-2.5-flash",
2064
2982
  "google/gemini-2.5-pro",
2983
+ "google/gemini-3-pro-preview",
2065
2984
  "openai/gpt-4.1",
2066
2985
  "openai/gpt-4.1-mini",
2067
2986
  "openai/gpt-4o-mini",
2068
2987
  "openai/gpt-5",
2069
2988
  "openai/gpt-5-mini",
2070
2989
  "openai/gpt-5-nano",
2071
- "openai/o4-mini"
2990
+ "openai/o4-mini",
2991
+ "xai/grok-4",
2992
+ "xai/grok-4-fast"
2072
2993
  ],
2073
2994
  morph: ["auto", "morph-v3-fast", "morph-v3-large"],
2074
2995
  lmstudio: ["openai/gpt-oss-20b", "qwen/qwen3-30b-a3b-2507", "qwen/qwen3-coder-30b"],
@@ -2088,6 +3009,8 @@ var provider_registry_default = {
2088
3009
  "claude-opus-4-1",
2089
3010
  "claude-opus-4-1-20250805",
2090
3011
  "claude-opus-4-20250514",
3012
+ "claude-opus-4-5",
3013
+ "claude-opus-4-5-20251101",
2091
3014
  "claude-sonnet-4-0",
2092
3015
  "claude-sonnet-4-20250514",
2093
3016
  "claude-sonnet-4-5",
@@ -2102,10 +3025,30 @@ var provider_registry_default = {
2102
3025
  "accounts/fireworks/models/gpt-oss-120b",
2103
3026
  "accounts/fireworks/models/gpt-oss-20b",
2104
3027
  "accounts/fireworks/models/kimi-k2-instruct",
3028
+ "accounts/fireworks/models/kimi-k2-thinking",
2105
3029
  "accounts/fireworks/models/minimax-m2",
2106
3030
  "accounts/fireworks/models/qwen3-235b-a22b",
2107
3031
  "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct"
2108
3032
  ],
3033
+ "io-net": [
3034
+ "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar",
3035
+ "Qwen/Qwen2.5-VL-32B-Instruct",
3036
+ "Qwen/Qwen3-235B-A22B-Thinking-2507",
3037
+ "Qwen/Qwen3-Next-80B-A3B-Instruct",
3038
+ "deepseek-ai/DeepSeek-R1-0528",
3039
+ "meta-llama/Llama-3.2-90B-Vision-Instruct",
3040
+ "meta-llama/Llama-3.3-70B-Instruct",
3041
+ "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
3042
+ "mistralai/Devstral-Small-2505",
3043
+ "mistralai/Magistral-Small-2506",
3044
+ "mistralai/Mistral-Large-Instruct-2411",
3045
+ "mistralai/Mistral-Nemo-Instruct-2407",
3046
+ "moonshotai/Kimi-K2-Instruct-0905",
3047
+ "moonshotai/Kimi-K2-Thinking",
3048
+ "openai/gpt-oss-120b",
3049
+ "openai/gpt-oss-20b",
3050
+ "zai-org/GLM-4.6"
3051
+ ],
2109
3052
  modelscope: [
2110
3053
  "Qwen/Qwen3-235B-A22B-Instruct-2507",
2111
3054
  "Qwen/Qwen3-235B-A22B-Thinking-2507",
@@ -2139,26 +3082,130 @@ var provider_registry_default = {
2139
3082
  "voxtral-small-24b-2507",
2140
3083
  "whisper-large-v3"
2141
3084
  ],
2142
- cerebras: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "qwen-3-coder-480b", "zai-glm-4.6"],
3085
+ poe: [
3086
+ "anthropic/claude-haiku-3",
3087
+ "anthropic/claude-haiku-3.5",
3088
+ "anthropic/claude-haiku-3.5-search",
3089
+ "anthropic/claude-haiku-4.5",
3090
+ "anthropic/claude-opus-3",
3091
+ "anthropic/claude-opus-4",
3092
+ "anthropic/claude-opus-4-reasoning",
3093
+ "anthropic/claude-opus-4-search",
3094
+ "anthropic/claude-opus-4.1",
3095
+ "anthropic/claude-sonnet-3.5",
3096
+ "anthropic/claude-sonnet-3.5-june",
3097
+ "anthropic/claude-sonnet-3.7",
3098
+ "anthropic/claude-sonnet-3.7-reasoning",
3099
+ "anthropic/claude-sonnet-3.7-search",
3100
+ "anthropic/claude-sonnet-4",
3101
+ "anthropic/claude-sonnet-4-reasoning",
3102
+ "anthropic/claude-sonnet-4-search",
3103
+ "anthropic/claude-sonnet-4.5",
3104
+ "elevenlabs/elevenlabs-music",
3105
+ "elevenlabs/elevenlabs-v2.5-turbo",
3106
+ "elevenlabs/elevenlabs-v3",
3107
+ "facebook/llama-3.1-405b",
3108
+ "facebook/llama-3.1-70b",
3109
+ "facebook/llama-3.1-8b",
3110
+ "google/gemini-2.0-flash",
3111
+ "google/gemini-2.0-flash-lite",
3112
+ "google/gemini-2.5-flash",
3113
+ "google/gemini-2.5-flash-lite",
3114
+ "google/gemini-2.5-pro",
3115
+ "google/gemini-3.0-pro",
3116
+ "google/imagen-3",
3117
+ "google/imagen-3-fast",
3118
+ "google/imagen-4",
3119
+ "google/imagen-4-fast",
3120
+ "google/imagen-4-ultra",
3121
+ "google/lyria",
3122
+ "google/nano-banana",
3123
+ "google/veo-2",
3124
+ "google/veo-3",
3125
+ "google/veo-3-fast",
3126
+ "google/veo-3.1",
3127
+ "google/veo-3.1-fast",
3128
+ "ideogramai/ideogram",
3129
+ "ideogramai/ideogram-v2",
3130
+ "ideogramai/ideogram-v2a",
3131
+ "ideogramai/ideogram-v2a-turbo",
3132
+ "lumalabs/dream-machine",
3133
+ "lumalabs/ray2",
3134
+ "novita/glm-4.6",
3135
+ "openAi/chatgpt-4o-latest",
3136
+ "openAi/dall-e-3",
3137
+ "openAi/gpt-3.5-turbo",
3138
+ "openAi/gpt-3.5-turbo-instruct",
3139
+ "openAi/gpt-3.5-turbo-raw",
3140
+ "openAi/gpt-4-classic",
3141
+ "openAi/gpt-4-classic-0314",
3142
+ "openAi/gpt-4-turbo",
3143
+ "openAi/gpt-4.1",
3144
+ "openAi/gpt-4.1-mini",
3145
+ "openAi/gpt-4.1-nano",
3146
+ "openAi/gpt-4o",
3147
+ "openAi/gpt-4o-aug",
3148
+ "openAi/gpt-4o-mini",
3149
+ "openAi/gpt-4o-mini-search",
3150
+ "openAi/gpt-4o-search",
3151
+ "openAi/gpt-5",
3152
+ "openAi/gpt-5-chat",
3153
+ "openAi/gpt-5-codex",
3154
+ "openAi/gpt-5-mini",
3155
+ "openAi/gpt-5-nano",
3156
+ "openAi/gpt-5-pro",
3157
+ "openAi/gpt-image-1",
3158
+ "openAi/gpt-image-1-mini",
3159
+ "openAi/o1",
3160
+ "openAi/o1-pro",
3161
+ "openAi/o3",
3162
+ "openAi/o3-deep-research",
3163
+ "openAi/o3-mini",
3164
+ "openAi/o3-mini-high",
3165
+ "openAi/o3-pro",
3166
+ "openAi/o4-mini",
3167
+ "openAi/o4-mini-deep-research",
3168
+ "openAi/sora-2",
3169
+ "openAi/sora-2-pro",
3170
+ "openai/gpt-5.1",
3171
+ "openai/gpt-5.1-codex",
3172
+ "openai/gpt-5.1-codex-mini",
3173
+ "openai/gpt-5.1-instant",
3174
+ "runwayml/runway",
3175
+ "runwayml/runway-gen-4-turbo",
3176
+ "stabilityai/stablediffusionxl",
3177
+ "topazlabs-co/topazlabs",
3178
+ "trytako/tako",
3179
+ "xai/grok-2",
3180
+ "xai/grok-3",
3181
+ "xai/grok-3-mini",
3182
+ "xai/grok-4",
3183
+ "xai/grok-4-fast-non-reasoning",
3184
+ "xai/grok-4-fast-reasoning",
3185
+ "xai/grok-code-fast-1"
3186
+ ],
3187
+ cerebras: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "zai-glm-4.6"],
2143
3188
  netlify: [
2144
3189
  "anthropic/claude-3-5-haiku-20241022",
2145
- "anthropic/claude-3-5-haiku-latest",
2146
3190
  "anthropic/claude-3-7-sonnet-20250219",
2147
- "anthropic/claude-3-7-sonnet-latest",
2148
3191
  "anthropic/claude-3-haiku-20240307",
2149
3192
  "anthropic/claude-haiku-4-5-20251001",
2150
3193
  "anthropic/claude-opus-4-1-20250805",
2151
3194
  "anthropic/claude-opus-4-20250514",
3195
+ "anthropic/claude-opus-4-5-20251101",
2152
3196
  "anthropic/claude-sonnet-4-20250514",
2153
3197
  "anthropic/claude-sonnet-4-5-20250929",
2154
3198
  "gemini/gemini-2.0-flash",
2155
3199
  "gemini/gemini-2.0-flash-lite",
2156
3200
  "gemini/gemini-2.5-flash",
3201
+ "gemini/gemini-2.5-flash-image",
2157
3202
  "gemini/gemini-2.5-flash-image-preview",
2158
3203
  "gemini/gemini-2.5-flash-lite",
2159
3204
  "gemini/gemini-2.5-flash-lite-preview-09-2025",
2160
3205
  "gemini/gemini-2.5-flash-preview-09-2025",
2161
3206
  "gemini/gemini-2.5-pro",
3207
+ "gemini/gemini-3-pro-image-preview",
3208
+ "gemini/gemini-3-pro-preview",
2162
3209
  "gemini/gemini-flash-latest",
2163
3210
  "gemini/gemini-flash-lite-latest",
2164
3211
  "openai/codex-mini-latest",
@@ -2168,10 +3215,17 @@ var provider_registry_default = {
2168
3215
  "openai/gpt-4o",
2169
3216
  "openai/gpt-4o-mini",
2170
3217
  "openai/gpt-5",
3218
+ "openai/gpt-5-2025-08-07",
2171
3219
  "openai/gpt-5-codex",
2172
3220
  "openai/gpt-5-mini",
3221
+ "openai/gpt-5-mini-2025-08-07",
2173
3222
  "openai/gpt-5-nano",
2174
3223
  "openai/gpt-5-pro",
3224
+ "openai/gpt-5.1",
3225
+ "openai/gpt-5.1-2025-11-13",
3226
+ "openai/gpt-5.1-codex",
3227
+ "openai/gpt-5.1-codex-max",
3228
+ "openai/gpt-5.1-codex-mini",
2175
3229
  "openai/o3",
2176
3230
  "openai/o3-mini",
2177
3231
  "openai/o4-mini"
@@ -2187,6 +3241,20 @@ var CACHE_FILE = () => path.join(CACHE_DIR(), "gateway-refresh-time");
2187
3241
  var GLOBAL_PROVIDER_REGISTRY_JSON = () => path.join(CACHE_DIR(), "provider-registry.json");
2188
3242
  var GLOBAL_PROVIDER_TYPES_DTS = () => path.join(CACHE_DIR(), "provider-types.generated.d.ts");
2189
3243
  var modelRouterCacheFailed = false;
3244
+ function atomicWriteFileSync(filePath, content, encoding = "utf-8") {
3245
+ const randomSuffix = Math.random().toString(36).substring(2, 15);
3246
+ const tempPath = `${filePath}.${process.pid}.${Date.now()}.${randomSuffix}.tmp`;
3247
+ try {
3248
+ fs.writeFileSync(tempPath, content, encoding);
3249
+ fs.renameSync(tempPath, filePath);
3250
+ } catch (error) {
3251
+ try {
3252
+ fs.unlinkSync(tempPath);
3253
+ } catch {
3254
+ }
3255
+ throw error;
3256
+ }
3257
+ }
2190
3258
  function syncGlobalCacheToLocal() {
2191
3259
  try {
2192
3260
  const globalJsonExists = fs.existsSync(GLOBAL_PROVIDER_REGISTRY_JSON());
@@ -2201,13 +3269,25 @@ function syncGlobalCacheToLocal() {
2201
3269
  fs.mkdirSync(path.dirname(localDtsPath), { recursive: true });
2202
3270
  if (globalJsonExists) {
2203
3271
  const globalJsonContent = fs.readFileSync(GLOBAL_PROVIDER_REGISTRY_JSON(), "utf-8");
3272
+ try {
3273
+ JSON.parse(globalJsonContent);
3274
+ } catch {
3275
+ console.warn(
3276
+ `[GatewayRegistry] Detected corrupted global cache at ${GLOBAL_PROVIDER_REGISTRY_JSON()}. Deleting corrupted file.`
3277
+ );
3278
+ try {
3279
+ fs.unlinkSync(GLOBAL_PROVIDER_REGISTRY_JSON());
3280
+ } catch {
3281
+ }
3282
+ return;
3283
+ }
2204
3284
  let shouldCopyJson = true;
2205
3285
  if (fs.existsSync(localJsonPath)) {
2206
3286
  const localJsonContent = fs.readFileSync(localJsonPath, "utf-8");
2207
3287
  shouldCopyJson = globalJsonContent !== localJsonContent;
2208
3288
  }
2209
3289
  if (shouldCopyJson) {
2210
- fs.writeFileSync(localJsonPath, globalJsonContent, "utf-8");
3290
+ atomicWriteFileSync(localJsonPath, globalJsonContent, "utf-8");
2211
3291
  }
2212
3292
  }
2213
3293
  if (globalDtsExists) {
@@ -2218,7 +3298,7 @@ function syncGlobalCacheToLocal() {
2218
3298
  shouldCopyDts = globalDtsContent !== localDtsContent;
2219
3299
  }
2220
3300
  if (shouldCopyDts) {
2221
- fs.writeFileSync(localDtsPath, globalDtsContent, "utf-8");
3301
+ atomicWriteFileSync(localDtsPath, globalDtsContent, "utf-8");
2222
3302
  }
2223
3303
  }
2224
3304
  } catch (error) {
@@ -2283,16 +3363,31 @@ function loadRegistry(useDynamicLoading) {
2283
3363
  registryData = JSON.parse(content);
2284
3364
  return registryData;
2285
3365
  } catch (err) {
2286
- errors.push(`${jsonPath}: ${err instanceof Error ? err.message : String(err)}`);
3366
+ const errorMessage = err instanceof Error ? err.message : String(err);
3367
+ errors.push(`${jsonPath}: ${errorMessage}`);
3368
+ const isFileNotFound = err instanceof Error && "code" in err && err.code === "ENOENT";
3369
+ const isJsonParseError = err instanceof SyntaxError;
3370
+ if (!isFileNotFound && isJsonParseError) {
3371
+ console.warn(
3372
+ `[GatewayRegistry] Detected corrupted provider-registry.json at ${jsonPath}. Deleting corrupted file and falling back to static registry.`
3373
+ );
3374
+ try {
3375
+ fs.unlinkSync(jsonPath);
3376
+ } catch {
3377
+ }
3378
+ registryData = provider_registry_default;
3379
+ return registryData;
3380
+ }
2287
3381
  continue;
2288
3382
  }
2289
3383
  }
2290
- throw new Error(
2291
- `Failed to load provider registry with dynamic loading. Make sure provider-registry.json is generated by running: npm run generate:providers
2292
-
3384
+ console.warn(
3385
+ `[GatewayRegistry] Could not load provider registry from any path. Falling back to static registry.
2293
3386
  Tried paths:
2294
3387
  ${errors.join("\n")}`
2295
3388
  );
3389
+ registryData = provider_registry_default;
3390
+ return registryData;
2296
3391
  }
2297
3392
  var PROVIDER_REGISTRY = new Proxy({}, {
2298
3393
  get(_target, prop) {
@@ -2322,7 +3417,7 @@ var PROVIDER_REGISTRY = new Proxy({}, {
2322
3417
  return void 0;
2323
3418
  }
2324
3419
  });
2325
- new Proxy({}, {
3420
+ var PROVIDER_MODELS = new Proxy({}, {
2326
3421
  get(_target, prop) {
2327
3422
  const registry = GatewayRegistry.getInstance();
2328
3423
  const models = registry.getModels();
@@ -2371,12 +3466,26 @@ function getProviderConfig(providerId) {
2371
3466
  const registry = GatewayRegistry.getInstance();
2372
3467
  return registry.getProviderConfig(providerId);
2373
3468
  }
3469
+ function isProviderRegistered(providerId) {
3470
+ const registry = GatewayRegistry.getInstance();
3471
+ return registry.isProviderRegistered(providerId);
3472
+ }
3473
+ function getRegisteredProviders() {
3474
+ const registry = GatewayRegistry.getInstance();
3475
+ const providers = registry.getProviders();
3476
+ return Object.keys(providers);
3477
+ }
3478
+ function isValidModelId(modelId) {
3479
+ const { provider } = parseModelString(modelId);
3480
+ return provider !== null && isProviderRegistered(provider);
3481
+ }
2374
3482
  var GatewayRegistry = class _GatewayRegistry {
2375
3483
  static instance = null;
2376
3484
  lastRefreshTime = null;
2377
3485
  refreshInterval = null;
2378
3486
  isRefreshing = false;
2379
3487
  useDynamicLoading;
3488
+ customGateways = [];
2380
3489
  constructor(options = {}) {
2381
3490
  const isDev2 = process.env.MASTRA_DEV === "true" || process.env.MASTRA_DEV === "1";
2382
3491
  this.useDynamicLoading = options.useDynamicLoading ?? isDev2;
@@ -2390,6 +3499,19 @@ var GatewayRegistry = class _GatewayRegistry {
2390
3499
  }
2391
3500
  return _GatewayRegistry.instance;
2392
3501
  }
3502
+ /**
3503
+ * Register custom gateways for type generation
3504
+ * @param gateways - Array of custom gateway instances
3505
+ */
3506
+ registerCustomGateways(gateways) {
3507
+ this.customGateways = gateways;
3508
+ }
3509
+ /**
3510
+ * Get all registered custom gateways
3511
+ */
3512
+ getCustomGateways() {
3513
+ return this.customGateways;
3514
+ }
2393
3515
  /**
2394
3516
  * Sync providers from all gateways
2395
3517
  * Requires dynamic loading to be enabled (useDynamicLoading=true).
@@ -2405,11 +3527,12 @@ var GatewayRegistry = class _GatewayRegistry {
2405
3527
  }
2406
3528
  this.isRefreshing = true;
2407
3529
  try {
2408
- const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-7U4NRMM3.js');
2409
- const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-42ZNWIDQ.js');
2410
- const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-H4YNODDH.js');
2411
- const gateways2 = [new ModelsDevGateway2({}), new NetlifyGateway2()];
2412
- const { providers, models } = await fetchProvidersFromGateways(gateways2);
3530
+ const { ModelsDevGateway } = await import('./models-dev-23RN2WHG.js');
3531
+ const { NetlifyGateway } = await import('./netlify-GXJ5D5DD.js');
3532
+ const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-UMTNPBJX.js');
3533
+ const defaultGateways = [new ModelsDevGateway({}), new NetlifyGateway()];
3534
+ const gateways = [...defaultGateways, ...this.customGateways];
3535
+ const { providers, models } = await fetchProvidersFromGateways(gateways);
2413
3536
  const packageRoot = getPackageRoot();
2414
3537
  try {
2415
3538
  fs.mkdirSync(CACHE_DIR(), { recursive: true });
@@ -2522,255 +3645,6 @@ if (autoRefreshEnabled) {
2522
3645
  GatewayRegistry.getInstance({ useDynamicLoading: isDev }).startAutoRefresh();
2523
3646
  }
2524
3647
 
2525
- // src/llm/model/gateways/index.ts
2526
- function findGatewayForModel(gatewayId, gateways2) {
2527
- const prefixedGateway = gateways2.find((g) => g.prefix && gatewayId.startsWith(`${g.prefix}/`));
2528
- if (prefixedGateway) {
2529
- return prefixedGateway;
2530
- }
2531
- const unprefixedGateways = gateways2.filter((g) => !g.prefix);
2532
- for (const gateway of unprefixedGateways) {
2533
- return gateway;
2534
- }
2535
- throw new MastraError({
2536
- id: "MODEL_ROUTER_NO_GATEWAY_FOUND",
2537
- category: "USER",
2538
- domain: "MODEL_ROUTER",
2539
- text: `No Mastra model router gateway found for model id ${gatewayId}`
2540
- });
2541
- }
2542
-
2543
- // src/llm/model/router.ts
2544
- function getStaticProvidersByGateway(name) {
2545
- return Object.fromEntries(Object.entries(PROVIDER_REGISTRY).filter(([_provider, config]) => config.gateway === name));
2546
- }
2547
- var gateways = [new NetlifyGateway(), new ModelsDevGateway(getStaticProvidersByGateway(`models.dev`))];
2548
- var ModelRouterLanguageModel = class _ModelRouterLanguageModel {
2549
- specificationVersion = "v2";
2550
- defaultObjectGenerationMode = "json";
2551
- supportsStructuredOutputs = true;
2552
- supportsImageUrls = true;
2553
- supportedUrls = {};
2554
- modelId;
2555
- provider;
2556
- config;
2557
- gateway;
2558
- constructor(config) {
2559
- let normalizedConfig;
2560
- if (typeof config === "string") {
2561
- normalizedConfig = { id: config };
2562
- } else if ("providerId" in config && "modelId" in config) {
2563
- normalizedConfig = {
2564
- id: `${config.providerId}/${config.modelId}`,
2565
- url: config.url,
2566
- apiKey: config.apiKey,
2567
- headers: config.headers
2568
- };
2569
- } else {
2570
- normalizedConfig = {
2571
- id: config.id,
2572
- url: config.url,
2573
- apiKey: config.apiKey,
2574
- headers: config.headers
2575
- };
2576
- }
2577
- const parsedConfig = {
2578
- ...normalizedConfig,
2579
- routerId: normalizedConfig.id
2580
- };
2581
- this.gateway = findGatewayForModel(normalizedConfig.id, gateways);
2582
- const parsed = parseModelRouterId(normalizedConfig.id, this.gateway.prefix);
2583
- this.provider = parsed.providerId || "openai-compatible";
2584
- if (parsed.providerId && parsed.modelId !== normalizedConfig.id) {
2585
- parsedConfig.id = parsed.modelId;
2586
- }
2587
- this.modelId = parsedConfig.id;
2588
- this.config = parsedConfig;
2589
- }
2590
- async doGenerate() {
2591
- throw new Error(
2592
- "doGenerate is not supported by Mastra model router. Mastra only uses streaming (doStream) for all LLM calls."
2593
- );
2594
- }
2595
- async doStream(options) {
2596
- let apiKey;
2597
- try {
2598
- if (this.config.url) {
2599
- apiKey = this.config.apiKey || "";
2600
- } else {
2601
- apiKey = this.config.apiKey || await this.gateway.getApiKey(this.config.routerId);
2602
- }
2603
- } catch (error) {
2604
- return {
2605
- stream: new ReadableStream({
2606
- start(controller) {
2607
- controller.enqueue({
2608
- type: "error",
2609
- error
2610
- });
2611
- }
2612
- })
2613
- };
2614
- }
2615
- const model = await this.resolveLanguageModel({
2616
- apiKey,
2617
- ...parseModelRouterId(this.config.routerId, this.gateway.prefix)
2618
- });
2619
- return model.doStream(options);
2620
- }
2621
- async resolveLanguageModel({
2622
- modelId,
2623
- providerId,
2624
- apiKey
2625
- }) {
2626
- const key = createHash("sha256").update(this.gateway.name + modelId + providerId + apiKey + (this.config.url || "")).digest("hex");
2627
- if (_ModelRouterLanguageModel.modelInstances.has(key)) return _ModelRouterLanguageModel.modelInstances.get(key);
2628
- if (this.config.url) {
2629
- const modelInstance2 = createOpenAICompatible({
2630
- name: providerId,
2631
- apiKey,
2632
- baseURL: this.config.url,
2633
- headers: this.config.headers,
2634
- supportsStructuredOutputs: true
2635
- }).chatModel(modelId);
2636
- _ModelRouterLanguageModel.modelInstances.set(key, modelInstance2);
2637
- return modelInstance2;
2638
- }
2639
- const modelInstance = await this.gateway.resolveLanguageModel({ modelId, providerId, apiKey });
2640
- _ModelRouterLanguageModel.modelInstances.set(key, modelInstance);
2641
- return modelInstance;
2642
- }
2643
- static modelInstances = /* @__PURE__ */ new Map();
2644
- };
2645
-
2646
- // src/llm/model/resolve-model.ts
2647
- function isOpenAICompatibleObjectConfig(modelConfig) {
2648
- if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) return false;
2649
- if (typeof modelConfig === "object" && !("model" in modelConfig)) {
2650
- if ("id" in modelConfig) return true;
2651
- if ("providerId" in modelConfig && "modelId" in modelConfig) return true;
2652
- }
2653
- return false;
2654
- }
2655
- async function resolveModelConfig(modelConfig, requestContext = new RequestContext(), mastra) {
2656
- if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) {
2657
- return modelConfig;
2658
- }
2659
- if (typeof modelConfig === "string" || isOpenAICompatibleObjectConfig(modelConfig)) {
2660
- return new ModelRouterLanguageModel(modelConfig);
2661
- }
2662
- if (typeof modelConfig === "function") {
2663
- const fromDynamic = await modelConfig({ requestContext, mastra });
2664
- if (typeof fromDynamic === "string" || isOpenAICompatibleObjectConfig(fromDynamic)) {
2665
- return new ModelRouterLanguageModel(fromDynamic);
2666
- }
2667
- return fromDynamic;
2668
- }
2669
- throw new Error("Invalid model configuration provided");
2670
- }
2671
-
2672
- // src/llm/model/embedding-router.ts
2673
- var ModelRouterEmbeddingModel = class {
2674
- specificationVersion = "v2";
2675
- modelId;
2676
- provider;
2677
- maxEmbeddingsPerCall = 2048;
2678
- supportsParallelCalls = true;
2679
- providerModel;
2680
- constructor(config) {
2681
- let normalizedConfig;
2682
- if (typeof config === "string") {
2683
- const parts = config.split("/");
2684
- if (parts.length !== 2) {
2685
- throw new Error(`Invalid model string format: "${config}". Expected format: "provider/model"`);
2686
- }
2687
- const [providerId, modelId] = parts;
2688
- normalizedConfig = { providerId, modelId };
2689
- } else if ("providerId" in config && "modelId" in config) {
2690
- normalizedConfig = {
2691
- providerId: config.providerId,
2692
- modelId: config.modelId,
2693
- url: config.url,
2694
- apiKey: config.apiKey,
2695
- headers: config.headers
2696
- };
2697
- } else {
2698
- const parts = config.id.split("/");
2699
- if (parts.length !== 2) {
2700
- throw new Error(`Invalid model string format: "${config.id}". Expected format: "provider/model"`);
2701
- }
2702
- const [providerId, modelId] = parts;
2703
- normalizedConfig = {
2704
- providerId,
2705
- modelId,
2706
- url: config.url,
2707
- apiKey: config.apiKey,
2708
- headers: config.headers
2709
- };
2710
- }
2711
- this.provider = normalizedConfig.providerId;
2712
- this.modelId = normalizedConfig.modelId;
2713
- if (normalizedConfig.url) {
2714
- const apiKey = normalizedConfig.apiKey || "";
2715
- this.providerModel = createOpenAICompatible({
2716
- name: normalizedConfig.providerId,
2717
- apiKey,
2718
- baseURL: normalizedConfig.url,
2719
- headers: normalizedConfig.headers
2720
- }).textEmbeddingModel(normalizedConfig.modelId);
2721
- } else {
2722
- const registry = GatewayRegistry.getInstance();
2723
- const providerConfig = registry.getProviderConfig(normalizedConfig.providerId);
2724
- if (!providerConfig) {
2725
- throw new Error(`Unknown provider: ${normalizedConfig.providerId}`);
2726
- }
2727
- let apiKey = normalizedConfig.apiKey;
2728
- if (!apiKey) {
2729
- const apiKeyEnvVar = providerConfig.apiKeyEnvVar;
2730
- if (Array.isArray(apiKeyEnvVar)) {
2731
- for (const envVar of apiKeyEnvVar) {
2732
- apiKey = process.env[envVar];
2733
- if (apiKey) break;
2734
- }
2735
- } else {
2736
- apiKey = process.env[apiKeyEnvVar];
2737
- }
2738
- }
2739
- if (!apiKey) {
2740
- const envVarDisplay = Array.isArray(providerConfig.apiKeyEnvVar) ? providerConfig.apiKeyEnvVar.join(" or ") : providerConfig.apiKeyEnvVar;
2741
- throw new Error(`API key not found for provider ${normalizedConfig.providerId}. Set ${envVarDisplay}`);
2742
- }
2743
- if (normalizedConfig.providerId === "openai") {
2744
- this.providerModel = createOpenAI({ apiKey }).textEmbeddingModel(
2745
- normalizedConfig.modelId
2746
- );
2747
- } else if (normalizedConfig.providerId === "google") {
2748
- this.providerModel = createGoogleGenerativeAI({ apiKey }).textEmbedding(
2749
- normalizedConfig.modelId
2750
- );
2751
- } else {
2752
- if (!providerConfig.url) {
2753
- throw new Error(`Provider ${normalizedConfig.providerId} does not have a URL configured`);
2754
- }
2755
- this.providerModel = createOpenAICompatible({
2756
- name: normalizedConfig.providerId,
2757
- apiKey,
2758
- baseURL: providerConfig.url
2759
- }).textEmbeddingModel(normalizedConfig.modelId);
2760
- }
2761
- }
2762
- if (this.providerModel.maxEmbeddingsPerCall !== void 0) {
2763
- this.maxEmbeddingsPerCall = this.providerModel.maxEmbeddingsPerCall;
2764
- }
2765
- if (this.providerModel.supportsParallelCalls !== void 0) {
2766
- this.supportsParallelCalls = this.providerModel.supportsParallelCalls;
2767
- }
2768
- }
2769
- async doEmbed(args) {
2770
- return this.providerModel.doEmbed(args);
2771
- }
2772
- };
2773
-
2774
- export { ModelRouterEmbeddingModel, ModelRouterLanguageModel, PROVIDER_REGISTRY, getProviderConfig, parseModelString, resolveModelConfig };
2775
- //# sourceMappingURL=chunk-32CTMD2C.js.map
2776
- //# sourceMappingURL=chunk-32CTMD2C.js.map
3648
+ export { GatewayRegistry, PROVIDER_MODELS, PROVIDER_REGISTRY, getProviderConfig, getRegisteredProviders, isProviderRegistered, isValidModelId, parseModelString };
3649
+ //# sourceMappingURL=chunk-6ONQWD6S.js.map
3650
+ //# sourceMappingURL=chunk-6ONQWD6S.js.map