@mastra/core 0.24.5 → 0.24.6

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 (277) hide show
  1. package/CHANGELOG.md +612 -0
  2. package/dist/agent/agent.d.ts +8 -6
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.types.d.ts +2 -0
  5. package/dist/agent/agent.types.d.ts.map +1 -1
  6. package/dist/agent/index.cjs +13 -13
  7. package/dist/agent/index.js +2 -2
  8. package/dist/agent/input-processor/index.cjs +6 -6
  9. package/dist/agent/input-processor/index.js +1 -1
  10. package/dist/agent/message-list/index.d.ts.map +1 -1
  11. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
  12. package/dist/agent/test-utils.d.ts +4 -3
  13. package/dist/agent/test-utils.d.ts.map +1 -1
  14. package/dist/agent/utils.d.ts.map +1 -1
  15. package/dist/agent/workflows/prepare-stream/index.d.ts +4 -4
  16. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  17. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  18. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +4 -4
  19. package/dist/agent/workflows/prepare-stream/schema.d.ts +4 -4
  20. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +8 -1
  21. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  22. package/dist/ai-tracing/index.cjs +36 -36
  23. package/dist/ai-tracing/index.js +1 -1
  24. package/dist/chunk-3PSWNGBF.js +3 -0
  25. package/dist/{chunk-ZV5CC35D.js.map → chunk-3PSWNGBF.js.map} +1 -1
  26. package/dist/{chunk-XHKMGOON.cjs → chunk-42RUESSD.cjs} +204 -150
  27. package/dist/chunk-42RUESSD.cjs.map +1 -0
  28. package/dist/{chunk-UD7DS7OY.cjs → chunk-46XGIEXM.cjs} +4 -4
  29. package/dist/{chunk-UD7DS7OY.cjs.map → chunk-46XGIEXM.cjs.map} +1 -1
  30. package/dist/{chunk-HGNRQ3OG.js → chunk-5O52O25J.js} +15 -8
  31. package/dist/chunk-5O52O25J.js.map +1 -0
  32. package/dist/{chunk-OLERJ2OU.js → chunk-6D2K2CAA.js} +7 -5
  33. package/dist/chunk-6D2K2CAA.js.map +1 -0
  34. package/dist/chunk-6XCINXZ7.cjs +194 -0
  35. package/dist/chunk-6XCINXZ7.cjs.map +1 -0
  36. package/dist/chunk-BJ6XIEC6.js +13 -0
  37. package/dist/chunk-BJ6XIEC6.js.map +1 -0
  38. package/dist/chunk-BWYU7D33.js +192 -0
  39. package/dist/chunk-BWYU7D33.js.map +1 -0
  40. package/dist/{chunk-R7UDZZA5.cjs → chunk-CT2DMHGC.cjs} +8 -8
  41. package/dist/{chunk-R7UDZZA5.cjs.map → chunk-CT2DMHGC.cjs.map} +1 -1
  42. package/dist/{chunk-YSQE5IHK.cjs → chunk-CYEQK4PM.cjs} +10 -8
  43. package/dist/chunk-CYEQK4PM.cjs.map +1 -0
  44. package/dist/{chunk-FCJ5INK7.js → chunk-DHLW4AP7.js} +3 -3
  45. package/dist/{chunk-FCJ5INK7.js.map → chunk-DHLW4AP7.js.map} +1 -1
  46. package/dist/{chunk-4UOIJRD6.cjs → chunk-GZDIHQDK.cjs} +4 -4
  47. package/dist/{chunk-4UOIJRD6.cjs.map → chunk-GZDIHQDK.cjs.map} +1 -1
  48. package/dist/{chunk-WCHE6FJ7.js → chunk-HCCXJ5YJ.js} +111 -6
  49. package/dist/chunk-HCCXJ5YJ.js.map +1 -0
  50. package/dist/{chunk-34ZCWSUA.js → chunk-HSX2K7HB.js} +15 -14
  51. package/dist/chunk-HSX2K7HB.js.map +1 -0
  52. package/dist/{chunk-LZFCR2SE.cjs → chunk-IAJHRFO4.cjs} +4 -4
  53. package/dist/{chunk-LZFCR2SE.cjs.map → chunk-IAJHRFO4.cjs.map} +1 -1
  54. package/dist/{chunk-4HQPVSGA.cjs → chunk-ICF3MCIN.cjs} +64 -12
  55. package/dist/chunk-ICF3MCIN.cjs.map +1 -0
  56. package/dist/{chunk-N2DOZAFH.js → chunk-INOOZ2A2.js} +760 -508
  57. package/dist/chunk-INOOZ2A2.js.map +1 -0
  58. package/dist/{chunk-3JX2Y3WH.cjs → chunk-IWU4YSYT.cjs} +16 -15
  59. package/dist/chunk-IWU4YSYT.cjs.map +1 -0
  60. package/dist/{chunk-3KVI2HLS.cjs → chunk-KWF3J2Q4.cjs} +11 -11
  61. package/dist/{chunk-3KVI2HLS.cjs.map → chunk-KWF3J2Q4.cjs.map} +1 -1
  62. package/dist/{chunk-TEW3ODXX.js → chunk-LAQQETGP.js} +36 -34
  63. package/dist/chunk-LAQQETGP.js.map +1 -0
  64. package/dist/{chunk-EUNOQ7HN.js → chunk-MRSBLBQ5.js} +4 -4
  65. package/dist/{chunk-EUNOQ7HN.js.map → chunk-MRSBLBQ5.js.map} +1 -1
  66. package/dist/{chunk-LLSLFDO6.js → chunk-NRQC7DQW.js} +57 -5
  67. package/dist/chunk-NRQC7DQW.js.map +1 -0
  68. package/dist/{chunk-WBAXXG34.cjs → chunk-PAOBGBU7.cjs} +112 -5
  69. package/dist/chunk-PAOBGBU7.cjs.map +1 -0
  70. package/dist/chunk-PE3V7GUL.cjs +4 -0
  71. package/dist/{chunk-LJFJTTZQ.cjs.map → chunk-PE3V7GUL.cjs.map} +1 -1
  72. package/dist/{chunk-DOLSYVNJ.cjs → chunk-PIH5FBNQ.cjs} +12 -12
  73. package/dist/{chunk-DOLSYVNJ.cjs.map → chunk-PIH5FBNQ.cjs.map} +1 -1
  74. package/dist/{chunk-4SXWN3RR.js → chunk-Q6LWNLAJ.js} +203 -149
  75. package/dist/chunk-Q6LWNLAJ.js.map +1 -0
  76. package/dist/{chunk-SL7VKAQ3.js → chunk-R6XC4DV5.js} +7 -7
  77. package/dist/chunk-R6XC4DV5.js.map +1 -0
  78. package/dist/{chunk-WNFLWMEP.cjs → chunk-RJOVFHWN.cjs} +765 -511
  79. package/dist/chunk-RJOVFHWN.cjs.map +1 -0
  80. package/dist/chunk-UCPGYU55.cjs +15 -0
  81. package/dist/chunk-UCPGYU55.cjs.map +1 -0
  82. package/dist/{chunk-K7MEUZ3O.js → chunk-UWTYVVVZ.js} +3 -3
  83. package/dist/{chunk-K7MEUZ3O.js.map → chunk-UWTYVVVZ.js.map} +1 -1
  84. package/dist/{chunk-ZISECZZO.js → chunk-VHEA3YXS.js} +2 -2
  85. package/dist/chunk-VHEA3YXS.js.map +1 -0
  86. package/dist/chunk-VXHOOZSK.js +446 -0
  87. package/dist/chunk-VXHOOZSK.js.map +1 -0
  88. package/dist/{chunk-NUAURT4I.cjs → chunk-W4UVO3HL.cjs} +2 -2
  89. package/dist/chunk-W4UVO3HL.cjs.map +1 -0
  90. package/dist/{chunk-ZIHEKHUB.js → chunk-WIMFJ2BA.js} +3 -3
  91. package/dist/{chunk-ZIHEKHUB.js.map → chunk-WIMFJ2BA.js.map} +1 -1
  92. package/dist/{chunk-LRSB62Z6.cjs → chunk-X7F4CSGR.cjs} +15 -8
  93. package/dist/chunk-X7F4CSGR.cjs.map +1 -0
  94. package/dist/{chunk-WUFFST2N.cjs → chunk-XDMQQZNX.cjs} +70 -68
  95. package/dist/chunk-XDMQQZNX.cjs.map +1 -0
  96. package/dist/chunk-XWGHD4C7.cjs +450 -0
  97. package/dist/chunk-XWGHD4C7.cjs.map +1 -0
  98. package/dist/{chunk-FZXAPBVV.js → chunk-Z6QCWTTO.js} +3 -3
  99. package/dist/{chunk-FZXAPBVV.js.map → chunk-Z6QCWTTO.js.map} +1 -1
  100. package/dist/{chunk-GWACPQ56.js → chunk-ZIWN73GQ.js} +5 -5
  101. package/dist/{chunk-GWACPQ56.js.map → chunk-ZIWN73GQ.js.map} +1 -1
  102. package/dist/{chunk-IJRERAWQ.cjs → chunk-ZOYE65RA.cjs} +8 -8
  103. package/dist/chunk-ZOYE65RA.cjs.map +1 -0
  104. package/dist/index.cjs +75 -54
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.js +15 -10
  107. package/dist/index.js.map +1 -1
  108. package/dist/llm/index.cjs +24 -8
  109. package/dist/llm/index.d.ts +1 -0
  110. package/dist/llm/index.d.ts.map +1 -1
  111. package/dist/llm/index.js +5 -1
  112. package/dist/llm/model/gateways/base.d.ts +9 -4
  113. package/dist/llm/model/gateways/base.d.ts.map +1 -1
  114. package/dist/llm/model/gateways/index.d.ts +3 -1
  115. package/dist/llm/model/gateways/index.d.ts.map +1 -1
  116. package/dist/llm/model/gateways/models-dev.d.ts +3 -2
  117. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  118. package/dist/llm/model/gateways/netlify.d.ts +4 -3
  119. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  120. package/dist/llm/model/model.d.ts.map +1 -1
  121. package/dist/llm/model/model.loop.d.ts +1 -1
  122. package/dist/llm/model/model.loop.d.ts.map +1 -1
  123. package/dist/llm/model/provider-registry.d.ts +11 -1
  124. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  125. package/dist/llm/model/provider-types.generated.d.ts +324 -29
  126. package/dist/llm/model/registry-generator.d.ts +12 -0
  127. package/dist/llm/model/registry-generator.d.ts.map +1 -1
  128. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  129. package/dist/llm/model/router.d.ts +6 -1
  130. package/dist/llm/model/router.d.ts.map +1 -1
  131. package/dist/loop/index.cjs +2 -2
  132. package/dist/loop/index.js +1 -1
  133. package/dist/loop/loop.d.ts.map +1 -1
  134. package/dist/loop/network/index.d.ts +6 -6
  135. package/dist/loop/network/index.d.ts.map +1 -1
  136. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  137. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  138. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  139. package/dist/loop/types.d.ts +8 -0
  140. package/dist/loop/types.d.ts.map +1 -1
  141. package/dist/loop/workflows/agentic-execution/index.d.ts +36 -36
  142. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  143. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +24 -24
  144. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  145. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +12 -12
  146. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +1 -1
  147. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  148. package/dist/loop/workflows/agentic-loop/index.d.ts +36 -36
  149. package/dist/loop/workflows/schema.d.ts +16 -16
  150. package/dist/mastra/index.cjs +2 -2
  151. package/dist/mastra/index.d.ts +23 -0
  152. package/dist/mastra/index.d.ts.map +1 -1
  153. package/dist/mastra/index.js +1 -1
  154. package/dist/memory/index.cjs +4 -4
  155. package/dist/memory/index.js +1 -1
  156. package/dist/memory/types.d.ts +3 -2
  157. package/dist/memory/types.d.ts.map +1 -1
  158. package/dist/models-dev-LJ4O6FNF.js +3 -0
  159. package/dist/{models-dev-BL5TAKE6.js.map → models-dev-LJ4O6FNF.js.map} +1 -1
  160. package/dist/models-dev-T2CXOEDH.cjs +12 -0
  161. package/dist/{models-dev-HZ3LZHPX.cjs.map → models-dev-T2CXOEDH.cjs.map} +1 -1
  162. package/dist/netlify-BAEMIQNH.cjs +12 -0
  163. package/dist/{netlify-TX6V7SJJ.cjs.map → netlify-BAEMIQNH.cjs.map} +1 -1
  164. package/dist/netlify-L7AZ74PV.js +3 -0
  165. package/dist/{netlify-VJXBII33.js.map → netlify-L7AZ74PV.js.map} +1 -1
  166. package/dist/processors/index.cjs +11 -11
  167. package/dist/processors/index.js +1 -1
  168. package/dist/provider-registry-RUDYHG7J.cjs +40 -0
  169. package/dist/provider-registry-RUDYHG7J.cjs.map +1 -0
  170. package/dist/provider-registry-THITZUJ7.js +3 -0
  171. package/dist/provider-registry-THITZUJ7.js.map +1 -0
  172. package/dist/provider-registry.json +705 -68
  173. package/dist/{registry-generator-6WVOHM2L.cjs → registry-generator-DL42NMBM.cjs} +23 -6
  174. package/dist/registry-generator-DL42NMBM.cjs.map +1 -0
  175. package/dist/{registry-generator-DXRSYYYT.js → registry-generator-I6S4ARS6.js} +23 -7
  176. package/dist/registry-generator-I6S4ARS6.js.map +1 -0
  177. package/dist/relevance/index.cjs +4 -4
  178. package/dist/relevance/index.js +1 -1
  179. package/dist/scores/index.cjs +9 -9
  180. package/dist/scores/index.js +2 -2
  181. package/dist/scores/scoreTraces/index.cjs +8 -8
  182. package/dist/scores/scoreTraces/index.js +3 -3
  183. package/dist/server/composite-auth.d.ts +9 -0
  184. package/dist/server/composite-auth.d.ts.map +1 -0
  185. package/dist/server/index.cjs +83 -1
  186. package/dist/server/index.cjs.map +1 -1
  187. package/dist/server/index.d.ts +3 -0
  188. package/dist/server/index.d.ts.map +1 -1
  189. package/dist/server/index.js +82 -2
  190. package/dist/server/index.js.map +1 -1
  191. package/dist/server/simple-auth.d.ts +32 -0
  192. package/dist/server/simple-auth.d.ts.map +1 -0
  193. package/dist/storage/index.cjs +3 -3
  194. package/dist/storage/index.js +1 -1
  195. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  196. package/dist/stream/base/output.d.ts.map +1 -1
  197. package/dist/stream/index.cjs +11 -11
  198. package/dist/stream/index.js +2 -2
  199. package/dist/stream/types.d.ts +7 -2
  200. package/dist/stream/types.d.ts.map +1 -1
  201. package/dist/test-utils/llm-mock.cjs +2 -2
  202. package/dist/test-utils/llm-mock.js +1 -1
  203. package/dist/tools/index.cjs +2 -2
  204. package/dist/tools/index.js +1 -1
  205. package/dist/tools/stream.d.ts +1 -0
  206. package/dist/tools/stream.d.ts.map +1 -1
  207. package/dist/utils.cjs +17 -17
  208. package/dist/utils.js +1 -1
  209. package/dist/vector/filter/index.cjs +7 -189
  210. package/dist/vector/filter/index.cjs.map +1 -1
  211. package/dist/vector/filter/index.js +1 -190
  212. package/dist/vector/filter/index.js.map +1 -1
  213. package/dist/vector/index.cjs +9 -4
  214. package/dist/vector/index.d.ts +1 -0
  215. package/dist/vector/index.d.ts.map +1 -1
  216. package/dist/vector/index.js +2 -1
  217. package/dist/vector/types.d.ts +86 -3
  218. package/dist/vector/types.d.ts.map +1 -1
  219. package/dist/vector/vector.d.ts +39 -2
  220. package/dist/vector/vector.d.ts.map +1 -1
  221. package/dist/voice/aisdk/index.d.ts +3 -0
  222. package/dist/voice/aisdk/index.d.ts.map +1 -0
  223. package/dist/voice/aisdk/speech.d.ts +23 -0
  224. package/dist/voice/aisdk/speech.d.ts.map +1 -0
  225. package/dist/voice/aisdk/transcription.d.ts +22 -0
  226. package/dist/voice/aisdk/transcription.d.ts.map +1 -0
  227. package/dist/voice/composite-voice.d.ts +3 -2
  228. package/dist/voice/composite-voice.d.ts.map +1 -1
  229. package/dist/voice/index.cjs +12 -4
  230. package/dist/voice/index.d.ts +1 -0
  231. package/dist/voice/index.d.ts.map +1 -1
  232. package/dist/voice/index.js +1 -1
  233. package/dist/workflows/evented/index.cjs +10 -10
  234. package/dist/workflows/evented/index.js +1 -1
  235. package/dist/workflows/index.cjs +14 -14
  236. package/dist/workflows/index.js +1 -1
  237. package/dist/workflows/legacy/index.cjs +22 -22
  238. package/dist/workflows/legacy/index.js +1 -1
  239. package/dist/workflows/legacy/machine.d.ts +1 -1
  240. package/dist/workflows/legacy/workflow-instance.d.ts +2 -2
  241. package/dist/workflows/utils.d.ts.map +1 -1
  242. package/dist/workflows/workflow.d.ts +2 -0
  243. package/dist/workflows/workflow.d.ts.map +1 -1
  244. package/package.json +7 -7
  245. package/src/llm/model/provider-types.generated.d.ts +324 -29
  246. package/dist/chunk-34ZCWSUA.js.map +0 -1
  247. package/dist/chunk-3JX2Y3WH.cjs.map +0 -1
  248. package/dist/chunk-4HQPVSGA.cjs.map +0 -1
  249. package/dist/chunk-4SXWN3RR.js.map +0 -1
  250. package/dist/chunk-HF3GZRFP.cjs +0 -9
  251. package/dist/chunk-HF3GZRFP.cjs.map +0 -1
  252. package/dist/chunk-HGNRQ3OG.js.map +0 -1
  253. package/dist/chunk-IJRERAWQ.cjs.map +0 -1
  254. package/dist/chunk-LJFJTTZQ.cjs +0 -4
  255. package/dist/chunk-LLSLFDO6.js.map +0 -1
  256. package/dist/chunk-LRSB62Z6.cjs.map +0 -1
  257. package/dist/chunk-N2DOZAFH.js.map +0 -1
  258. package/dist/chunk-NUAURT4I.cjs.map +0 -1
  259. package/dist/chunk-OLERJ2OU.js.map +0 -1
  260. package/dist/chunk-RKXWLG33.js +0 -7
  261. package/dist/chunk-RKXWLG33.js.map +0 -1
  262. package/dist/chunk-SL7VKAQ3.js.map +0 -1
  263. package/dist/chunk-TEW3ODXX.js.map +0 -1
  264. package/dist/chunk-WBAXXG34.cjs.map +0 -1
  265. package/dist/chunk-WCHE6FJ7.js.map +0 -1
  266. package/dist/chunk-WNFLWMEP.cjs.map +0 -1
  267. package/dist/chunk-WUFFST2N.cjs.map +0 -1
  268. package/dist/chunk-XHKMGOON.cjs.map +0 -1
  269. package/dist/chunk-YSQE5IHK.cjs.map +0 -1
  270. package/dist/chunk-ZISECZZO.js.map +0 -1
  271. package/dist/chunk-ZV5CC35D.js +0 -3
  272. package/dist/models-dev-BL5TAKE6.js +0 -3
  273. package/dist/models-dev-HZ3LZHPX.cjs +0 -12
  274. package/dist/netlify-TX6V7SJJ.cjs +0 -12
  275. package/dist/netlify-VJXBII33.js +0 -3
  276. package/dist/registry-generator-6WVOHM2L.cjs.map +0 -1
  277. package/dist/registry-generator-DXRSYYYT.js.map +0 -1
@@ -8,9 +8,21 @@
8
8
  * This is derived from the JSON data and provides type-safe access
9
9
  */
10
10
  export type ProviderModelsMap = {
11
- readonly 'moonshotai-cn': readonly ['kimi-k2-0711-preview', 'kimi-k2-0905-preview', 'kimi-k2-turbo-preview'];
11
+ readonly 'moonshotai-cn': readonly [
12
+ 'kimi-k2-0711-preview',
13
+ 'kimi-k2-0905-preview',
14
+ 'kimi-k2-thinking',
15
+ 'kimi-k2-thinking-turbo',
16
+ 'kimi-k2-turbo-preview',
17
+ ];
12
18
  readonly lucidquery: readonly ['lucidnova-rf1-100b', 'lucidquery-nexus-coder'];
13
- readonly moonshotai: readonly ['kimi-k2-0711-preview', 'kimi-k2-0905-preview', 'kimi-k2-turbo-preview'];
19
+ readonly moonshotai: readonly [
20
+ 'kimi-k2-0711-preview',
21
+ 'kimi-k2-0905-preview',
22
+ 'kimi-k2-thinking',
23
+ 'kimi-k2-thinking-turbo',
24
+ 'kimi-k2-turbo-preview',
25
+ ];
14
26
  readonly 'zai-coding-plan': readonly ['glm-4.5', 'glm-4.5-air', 'glm-4.5-flash', 'glm-4.5v', 'glm-4.6'];
15
27
  readonly alibaba: readonly [
16
28
  'qvq-max',
@@ -69,6 +81,8 @@ export type ProviderModelsMap = {
69
81
  'grok-3-mini-fast-latest',
70
82
  'grok-3-mini-latest',
71
83
  'grok-4',
84
+ 'grok-4-1-fast',
85
+ 'grok-4-1-fast-non-reasoning',
72
86
  'grok-4-fast',
73
87
  'grok-4-fast-non-reasoning',
74
88
  'grok-beta',
@@ -88,17 +102,21 @@ export type ProviderModelsMap = {
88
102
  'deepseek-ai/deepseek-v3.1-terminus',
89
103
  'google/gemma-3-27b-it',
90
104
  'microsoft/phi-4-mini-instruct',
105
+ 'minimaxai/minimax-m2',
91
106
  'moonshotai/kimi-k2-instruct',
92
107
  'moonshotai/kimi-k2-instruct-0905',
93
108
  'nvidia/cosmos-nemotron-34b',
94
109
  'nvidia/llama-3.1-nemotron-ultra-253b-v1',
95
110
  'nvidia/llama-embed-nemotron-8b',
96
111
  'nvidia/nemoretriever-ocr-v1',
112
+ 'nvidia/nvidia-nemotron-nano-9b-v2',
97
113
  'nvidia/parakeet-tdt-0.6b-v2',
98
114
  'openai/gpt-oss-120b',
99
115
  'openai/whisper-large-v3',
100
116
  'qwen/qwen3-235b-a22b',
101
117
  'qwen/qwen3-coder-480b-a35b-instruct',
118
+ 'qwen/qwen3-next-80b-a3b-instruct',
119
+ 'qwen/qwen3-next-80b-a3b-thinking',
102
120
  ];
103
121
  readonly upstage: readonly ['solar-mini', 'solar-pro2'];
104
122
  readonly groq: readonly [
@@ -161,7 +179,7 @@ export type ProviderModelsMap = {
161
179
  'anthropic/claude-4-sonnet',
162
180
  'anthropic/claude-4.5-sonnet',
163
181
  'anthropic/claude-haiku-4.5',
164
- 'cerebras/qwen3-coder',
182
+ 'anthropic/claude-opus-4.5',
165
183
  'deepseek/deepseek-r1',
166
184
  'deepseek/deepseek-r1-distill-llama-70b',
167
185
  'deepseek/deepseek-v3.1-terminus',
@@ -174,9 +192,11 @@ export type ProviderModelsMap = {
174
192
  'google/gemini-2.5-flash-lite-preview-09-2025',
175
193
  'google/gemini-2.5-flash-preview-09-2025',
176
194
  'google/gemini-2.5-pro',
195
+ 'google/gemini-3-pro-preview',
177
196
  'meta/llama-3.3-70b',
178
197
  'meta/llama-4-maverick',
179
198
  'meta/llama-4-scout',
199
+ 'minimax/minimax-m2',
180
200
  'mistral/codestral',
181
201
  'mistral/magistral-medium',
182
202
  'mistral/magistral-small',
@@ -322,41 +342,61 @@ export type ProviderModelsMap = {
322
342
  'qwen3-235b',
323
343
  'qwen3-4b',
324
344
  'venice-uncensored',
345
+ 'zai-org-glm-4.6',
325
346
  ];
326
347
  readonly chutes: readonly [
348
+ 'Alibaba-NLP/Tongyi-DeepResearch-30B-A3B',
349
+ 'ArliAI/QwQ-32B-ArliAI-RpR-v1',
350
+ 'MiniMaxAI/MiniMax-M2',
351
+ 'NousResearch/DeepHermes-3-Mistral-24B-Preview',
352
+ 'NousResearch/Hermes-4-14B',
353
+ 'NousResearch/Hermes-4-405B-FP8',
354
+ 'NousResearch/Hermes-4-70B',
355
+ 'OpenGVLab/InternVL3-78B',
356
+ 'Qwen/Qwen2.5-72B-Instruct',
357
+ 'Qwen/Qwen2.5-Coder-32B-Instruct',
358
+ 'Qwen/Qwen2.5-VL-32B-Instruct',
359
+ 'Qwen/Qwen2.5-VL-72B-Instruct',
360
+ 'Qwen/Qwen3-14B',
361
+ 'Qwen/Qwen3-235B-A22B',
327
362
  'Qwen/Qwen3-235B-A22B-Instruct-2507',
328
363
  'Qwen/Qwen3-235B-A22B-Thinking-2507',
329
364
  'Qwen/Qwen3-30B-A3B',
330
365
  'Qwen/Qwen3-30B-A3B-Instruct-2507',
331
- 'Qwen/Qwen3-30B-A3B-Thinking-2507',
366
+ 'Qwen/Qwen3-32B',
332
367
  'Qwen/Qwen3-Coder-30B-A3B-Instruct',
333
368
  'Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8',
334
369
  'Qwen/Qwen3-Next-80B-A3B-Instruct',
335
- 'Qwen/Qwen3-Next-80B-A3B-Thinking',
336
- 'chutesai/Devstral-Small-2505',
370
+ 'Qwen/Qwen3-VL-235B-A22B-Instruct',
371
+ 'Qwen/Qwen3-VL-235B-A22B-Thinking',
372
+ 'chutesai/Mistral-Small-3.1-24B-Instruct-2503',
337
373
  'chutesai/Mistral-Small-3.2-24B-Instruct-2506',
374
+ 'deepseek-ai/DeepSeek-R1',
338
375
  'deepseek-ai/DeepSeek-R1-0528',
339
376
  'deepseek-ai/DeepSeek-R1-0528-Qwen3-8B',
340
377
  'deepseek-ai/DeepSeek-R1-Distill-Llama-70B',
378
+ 'deepseek-ai/DeepSeek-V3',
341
379
  'deepseek-ai/DeepSeek-V3-0324',
342
380
  'deepseek-ai/DeepSeek-V3.1',
343
381
  'deepseek-ai/DeepSeek-V3.1-Terminus',
344
- 'deepseek-ai/DeepSeek-V3.1-turbo',
345
- 'deepseek-ai/DeepSeek-V3.1:THINKING',
346
382
  'deepseek-ai/DeepSeek-V3.2-Exp',
347
383
  'meituan-longcat/LongCat-Flash-Chat-FP8',
348
- 'moonshotai/Kimi-Dev-72B',
384
+ 'microsoft/MAI-DS-R1-FP8',
349
385
  'moonshotai/Kimi-K2-Instruct-0905',
350
- 'moonshotai/Kimi-K2-Instruct-75k',
351
- 'moonshotai/Kimi-VL-A3B-Thinking',
386
+ 'moonshotai/Kimi-K2-Thinking',
352
387
  'openai/gpt-oss-120b',
388
+ 'openai/gpt-oss-20b',
389
+ 'rednote-hilab/dots.ocr',
353
390
  'tngtech/DeepSeek-R1T-Chimera',
354
391
  'tngtech/DeepSeek-TNG-R1T2-Chimera',
392
+ 'unsloth/Mistral-Nemo-Instruct-2407',
393
+ 'unsloth/Mistral-Small-24B-Instruct-2501',
394
+ 'unsloth/gemma-3-12b-it',
395
+ 'unsloth/gemma-3-27b-it',
396
+ 'unsloth/gemma-3-4b-it',
397
+ 'zai-org/GLM-4.5',
355
398
  'zai-org/GLM-4.5-Air',
356
- 'zai-org/GLM-4.5-FP8',
357
- 'zai-org/GLM-4.5-turbo',
358
- 'zai-org/GLM-4.6-FP8',
359
- 'zai-org/GLM-4.6-turbo',
399
+ 'zai-org/GLM-4.6',
360
400
  ];
361
401
  readonly cortecs: readonly [
362
402
  'claude-4-5-sonnet',
@@ -437,10 +477,85 @@ export type ProviderModelsMap = {
437
477
  'openai/gpt-oss-120b',
438
478
  ];
439
479
  readonly baseten: readonly [
440
- 'Qwen3/Qwen3-Coder-480B-A35B-Instruct',
480
+ 'Qwen/Qwen3-Coder-480B-A35B-Instruct',
441
481
  'moonshotai/Kimi-K2-Instruct-0905',
482
+ 'moonshotai/Kimi-K2-Thinking',
442
483
  'zai-org/GLM-4.6',
443
484
  ];
485
+ readonly siliconflow: readonly [
486
+ 'baidu-ernie-4.5-300b-a47b',
487
+ 'bytedance-seed-seed-oss-36b-instruct',
488
+ 'deepseek-ai-deepseek-r1',
489
+ 'deepseek-ai-deepseek-r1-distill-qwen-14b',
490
+ 'deepseek-ai-deepseek-r1-distill-qwen-32b',
491
+ 'deepseek-ai-deepseek-r1-distill-qwen-7b',
492
+ 'deepseek-ai-deepseek-v3',
493
+ 'deepseek-ai-deepseek-v3.1',
494
+ 'deepseek-ai-deepseek-v3.1-terminus',
495
+ 'deepseek-ai-deepseek-v3.2-exp',
496
+ 'deepseek-ai-deepseek-vl2',
497
+ 'inclusionai-ling-flash-2.0',
498
+ 'inclusionai-ling-mini-2.0',
499
+ 'inclusionai-ring-flash-2.0',
500
+ 'meta-llama-meta-llama-3.1-8b-instruct',
501
+ 'minimaxai-minimax-m1-80k',
502
+ 'minimaxai-minimax-m2',
503
+ 'moonshotai-kimi-dev-72b',
504
+ 'moonshotai-kimi-k2-instruct',
505
+ 'moonshotai-kimi-k2-instruct-0905',
506
+ 'moonshotai-kimi-k2-thinking',
507
+ 'nex-agi-deepseek-v3.1-nex-n1',
508
+ 'openai-gpt-oss-120b',
509
+ 'openai-gpt-oss-20b',
510
+ 'qwen-qwen2.5-14b-instruct',
511
+ 'qwen-qwen2.5-32b-instruct',
512
+ 'qwen-qwen2.5-72b-instruct',
513
+ 'qwen-qwen2.5-72b-instruct-128k',
514
+ 'qwen-qwen2.5-7b-instruct',
515
+ 'qwen-qwen2.5-coder-32b-instruct',
516
+ 'qwen-qwen2.5-vl-32b-instruct',
517
+ 'qwen-qwen2.5-vl-72b-instruct',
518
+ 'qwen-qwen2.5-vl-7b-instruct',
519
+ 'qwen-qwen3-14b',
520
+ 'qwen-qwen3-235b-a22b',
521
+ 'qwen-qwen3-235b-a22b-instruct-2507',
522
+ 'qwen-qwen3-235b-a22b-thinking-2507',
523
+ 'qwen-qwen3-30b-a3b',
524
+ 'qwen-qwen3-30b-a3b-instruct-2507',
525
+ 'qwen-qwen3-30b-a3b-thinking-2507',
526
+ 'qwen-qwen3-32b',
527
+ 'qwen-qwen3-8b',
528
+ 'qwen-qwen3-coder-30b-a3b-instruct',
529
+ 'qwen-qwen3-coder-480b-a35b-instruct',
530
+ 'qwen-qwen3-next-80b-a3b-instruct',
531
+ 'qwen-qwen3-next-80b-a3b-thinking',
532
+ 'qwen-qwen3-omni-30b-a3b-captioner',
533
+ 'qwen-qwen3-omni-30b-a3b-instruct',
534
+ 'qwen-qwen3-omni-30b-a3b-thinking',
535
+ 'qwen-qwen3-vl-235b-a22b-instruct',
536
+ 'qwen-qwen3-vl-235b-a22b-thinking',
537
+ 'qwen-qwen3-vl-30b-a3b-instruct',
538
+ 'qwen-qwen3-vl-30b-a3b-thinking',
539
+ 'qwen-qwen3-vl-32b-instruct',
540
+ 'qwen-qwen3-vl-32b-thinking',
541
+ 'qwen-qwen3-vl-8b-instruct',
542
+ 'qwen-qwen3-vl-8b-thinking',
543
+ 'qwen-qwq-32b',
544
+ 'stepfun-ai-step3',
545
+ 'tencent-hunyuan-a13b-instruct',
546
+ 'tencent-hunyuan-mt-7b',
547
+ 'thudm-glm-4-32b-0414',
548
+ 'thudm-glm-4-9b-0414',
549
+ 'thudm-glm-4.1v-9b-thinking',
550
+ 'thudm-glm-z1-32b-0414',
551
+ 'thudm-glm-z1-9b-0414',
552
+ 'z-ai-glm-4.5',
553
+ 'z-ai-glm-4.5-air',
554
+ 'zai-org-glm-4.5',
555
+ 'zai-org-glm-4.5-air',
556
+ 'zai-org-glm-4.5v',
557
+ 'zai-org-glm-4.6',
558
+ ];
444
559
  readonly huggingface: readonly [
445
560
  'MiniMaxAI/MiniMax-M2',
446
561
  'Qwen/Qwen3-235B-A22B-Thinking-2507',
@@ -458,19 +573,26 @@ export type ProviderModelsMap = {
458
573
  'zai-org/GLM-4.6',
459
574
  ];
460
575
  readonly opencode: readonly [
461
- 'an-gbt',
576
+ 'alpha-doubao-seed-code',
577
+ 'alpha-gd4',
578
+ 'alpha-minimax-m2',
462
579
  'big-pickle',
463
580
  'claude-3-5-haiku',
464
581
  'claude-haiku-4-5',
465
582
  'claude-opus-4-1',
583
+ 'claude-opus-4-5',
466
584
  'claude-sonnet-4',
467
585
  'claude-sonnet-4-5',
586
+ 'gemini-3-pro',
468
587
  'glm-4.6',
469
588
  'gpt-5',
470
589
  'gpt-5-codex',
590
+ 'gpt-5-nano',
591
+ 'gpt-5.1',
592
+ 'gpt-5.1-codex',
471
593
  'grok-code',
472
594
  'kimi-k2',
473
- 'minimax-m2',
595
+ 'kimi-k2-thinking',
474
596
  'qwen3-coder',
475
597
  ];
476
598
  readonly fastrouter: readonly [
@@ -489,6 +611,7 @@ export type ProviderModelsMap = {
489
611
  'qwen/qwen3-coder',
490
612
  'x-ai/grok-4',
491
613
  ];
614
+ readonly minimax: readonly ['MiniMax-M2'];
492
615
  readonly google: readonly [
493
616
  'gemini-1.5-flash',
494
617
  'gemini-1.5-flash-8b',
@@ -509,6 +632,7 @@ export type ProviderModelsMap = {
509
632
  'gemini-2.5-pro-preview-05-06',
510
633
  'gemini-2.5-pro-preview-06-05',
511
634
  'gemini-2.5-pro-preview-tts',
635
+ 'gemini-3-pro-preview',
512
636
  'gemini-embedding-001',
513
637
  'gemini-flash-latest',
514
638
  'gemini-flash-lite-latest',
@@ -547,6 +671,10 @@ export type ProviderModelsMap = {
547
671
  'gpt-5-mini',
548
672
  'gpt-5-nano',
549
673
  'gpt-5-pro',
674
+ 'gpt-5.1',
675
+ 'gpt-5.1-chat-latest',
676
+ 'gpt-5.1-codex',
677
+ 'gpt-5.1-codex-mini',
550
678
  'o1',
551
679
  'o1-mini',
552
680
  'o1-preview',
@@ -569,6 +697,7 @@ export type ProviderModelsMap = {
569
697
  'anthropic/claude-haiku-4.5',
570
698
  'anthropic/claude-opus-4',
571
699
  'anthropic/claude-opus-4.1',
700
+ 'anthropic/claude-opus-4.5',
572
701
  'anthropic/claude-sonnet-4',
573
702
  'anthropic/claude-sonnet-4.5',
574
703
  'cognitivecomputations/dolphin3.0-mistral-24b',
@@ -593,18 +722,20 @@ export type ProviderModelsMap = {
593
722
  'google/gemini-2.5-pro',
594
723
  'google/gemini-2.5-pro-preview-05-06',
595
724
  'google/gemini-2.5-pro-preview-06-05',
725
+ 'google/gemini-3-pro-preview',
596
726
  'google/gemma-2-9b-it:free',
597
727
  'google/gemma-3-12b-it',
598
728
  'google/gemma-3-27b-it',
599
729
  'google/gemma-3n-e4b-it',
600
730
  'google/gemma-3n-e4b-it:free',
731
+ 'kwaipilot/kat-coder-pro:free',
601
732
  'meta-llama/llama-3.2-11b-vision-instruct',
602
733
  'meta-llama/llama-3.3-70b-instruct:free',
603
734
  'meta-llama/llama-4-scout:free',
604
735
  'microsoft/mai-ds-r1:free',
605
736
  'minimax/minimax-01',
606
737
  'minimax/minimax-m1',
607
- 'minimax/minimax-m2:free',
738
+ 'minimax/minimax-m2',
608
739
  'mistralai/codestral-2508',
609
740
  'mistralai/devstral-medium-2507',
610
741
  'mistralai/devstral-small-2505',
@@ -621,10 +752,12 @@ export type ProviderModelsMap = {
621
752
  'moonshotai/kimi-k2',
622
753
  'moonshotai/kimi-k2-0905',
623
754
  'moonshotai/kimi-k2-0905:exacto',
755
+ 'moonshotai/kimi-k2-thinking',
624
756
  'moonshotai/kimi-k2:free',
625
757
  'nousresearch/deephermes-3-llama-3-8b-preview',
626
758
  'nousresearch/hermes-4-405b',
627
759
  'nousresearch/hermes-4-70b',
760
+ 'nvidia/nemotron-nano-9b-v2',
628
761
  'openai/gpt-4.1',
629
762
  'openai/gpt-4.1-mini',
630
763
  'openai/gpt-4o-mini',
@@ -635,15 +768,15 @@ export type ProviderModelsMap = {
635
768
  'openai/gpt-5-mini',
636
769
  'openai/gpt-5-nano',
637
770
  'openai/gpt-5-pro',
771
+ 'openai/gpt-5.1',
772
+ 'openai/gpt-5.1-chat',
773
+ 'openai/gpt-5.1-codex',
774
+ 'openai/gpt-5.1-codex-mini',
638
775
  'openai/gpt-oss-120b',
639
776
  'openai/gpt-oss-120b:exacto',
640
777
  'openai/gpt-oss-20b',
778
+ 'openai/gpt-oss-safeguard-20b',
641
779
  'openai/o4-mini',
642
- 'openrouter/cypher-alpha:free',
643
- 'openrouter/horizon-alpha',
644
- 'openrouter/horizon-beta',
645
- 'openrouter/sonoma-dusk-alpha',
646
- 'openrouter/sonoma-sky-alpha',
647
780
  'qwen/qwen-2.5-coder-32b-instruct',
648
781
  'qwen/qwen2.5-vl-32b-instruct:free',
649
782
  'qwen/qwen2.5-vl-72b-instruct',
@@ -659,6 +792,7 @@ export type ProviderModelsMap = {
659
792
  'qwen/qwen3-32b:free',
660
793
  'qwen/qwen3-8b:free',
661
794
  'qwen/qwen3-coder',
795
+ 'qwen/qwen3-coder-flash',
662
796
  'qwen/qwen3-coder:exacto',
663
797
  'qwen/qwen3-coder:free',
664
798
  'qwen/qwen3-max',
@@ -675,6 +809,7 @@ export type ProviderModelsMap = {
675
809
  'x-ai/grok-3-mini-beta',
676
810
  'x-ai/grok-4',
677
811
  'x-ai/grok-4-fast',
812
+ 'x-ai/grok-4.1-fast',
678
813
  'x-ai/grok-code-fast-1',
679
814
  'z-ai/glm-4.5',
680
815
  'z-ai/glm-4.5-air',
@@ -692,7 +827,10 @@ export type ProviderModelsMap = {
692
827
  'inclusionai/lint-1t',
693
828
  'inclusionai/ring-1t',
694
829
  'kuaishou/kat-coder-pro-v1',
830
+ 'minimax/minimax-m2',
695
831
  'moonshotai/kimi-k2-0905',
832
+ 'moonshotai/kimi-k2-thinking',
833
+ 'moonshotai/kimi-k2-thinking-turbo',
696
834
  'openai/gpt-5',
697
835
  'openai/gpt-5-codex',
698
836
  'qwen/qwen3-coder-plus',
@@ -703,6 +841,43 @@ export type ProviderModelsMap = {
703
841
  'z-ai/glm-4.5-air',
704
842
  'z-ai/glm-4.6',
705
843
  ];
844
+ readonly ovhcloud: readonly [
845
+ 'deepseek-r1-distill-llama-70b',
846
+ 'gpt-oss-120b',
847
+ 'gpt-oss-20b',
848
+ 'llama-3.1-8b-instruct',
849
+ 'llava-next-mistral-7b',
850
+ 'meta-llama-3_1-70b-instruct',
851
+ 'meta-llama-3_3-70b-instruct',
852
+ 'mistral-7b-instruct-v0.3',
853
+ 'mistral-nemo-instruct-2407',
854
+ 'mistral-small-3.2-24b-instruct-2506',
855
+ 'mixtral-8x7b-instruct-v0.1',
856
+ 'qwen2.5-coder-32b-instruct',
857
+ 'qwen2.5-vl-72b-instruct',
858
+ 'qwen3-32b',
859
+ 'qwen3-coder-30b-a3b-instruct',
860
+ ];
861
+ readonly iflowcn: readonly [
862
+ 'deepseek-r1',
863
+ 'deepseek-v3',
864
+ 'deepseek-v3.1',
865
+ 'deepseek-v3.2',
866
+ 'glm-4.6',
867
+ 'kimi-k2',
868
+ 'kimi-k2-0905',
869
+ 'minimax-m2',
870
+ 'qwen3-235b',
871
+ 'qwen3-235b-a22b-instruct',
872
+ 'qwen3-235b-a22b-thinking-2507',
873
+ 'qwen3-32b',
874
+ 'qwen3-coder',
875
+ 'qwen3-coder-plus',
876
+ 'qwen3-max',
877
+ 'qwen3-max-preview',
878
+ 'qwen3-vl-plus',
879
+ 'tstars2.0',
880
+ ];
706
881
  readonly synthetic: readonly [
707
882
  'hf:MiniMaxAI/MiniMax-M2',
708
883
  'hf:Qwen/Qwen2.5-Coder-32B-Instruct',
@@ -723,6 +898,7 @@ export type ProviderModelsMap = {
723
898
  'hf:meta-llama/Llama-4-Scout-17B-16E-Instruct',
724
899
  'hf:moonshotai/Kimi-K2-Instruct',
725
900
  'hf:moonshotai/Kimi-K2-Instruct-0905',
901
+ 'hf:moonshotai/Kimi-K2-Thinking',
726
902
  'hf:openai/gpt-oss-120b',
727
903
  'hf:zai-org/GLM-4.5',
728
904
  'hf:zai-org/GLM-4.6',
@@ -731,6 +907,8 @@ export type ProviderModelsMap = {
731
907
  'Qwen/Qwen3-Coder-480B-A35B-Instruct',
732
908
  'Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo',
733
909
  'moonshotai/Kimi-K2-Instruct',
910
+ 'openai/gpt-oss-120b',
911
+ 'openai/gpt-oss-20b',
734
912
  'zai-org/GLM-4.5',
735
913
  ];
736
914
  readonly zhipuai: readonly ['glm-4.5', 'glm-4.5-air', 'glm-4.5-flash', 'glm-4.5v', 'glm-4.6'];
@@ -759,9 +937,11 @@ export type ProviderModelsMap = {
759
937
  ];
760
938
  readonly requesty: readonly [
761
939
  'anthropic/claude-3-7-sonnet',
762
- 'anthropic/claude-4-sonnet-20250522',
940
+ 'anthropic/claude-haiku-4-5',
763
941
  'anthropic/claude-opus-4',
764
- 'anthropic/claude-opus-4-1-20250805',
942
+ 'anthropic/claude-opus-4-1',
943
+ 'anthropic/claude-sonnet-4',
944
+ 'anthropic/claude-sonnet-4-5',
765
945
  'google/gemini-2.5-flash',
766
946
  'google/gemini-2.5-pro',
767
947
  'openai/gpt-4.1',
@@ -771,6 +951,8 @@ export type ProviderModelsMap = {
771
951
  'openai/gpt-5-mini',
772
952
  'openai/gpt-5-nano',
773
953
  'openai/o4-mini',
954
+ 'xai/grok-4',
955
+ 'xai/grok-4-fast',
774
956
  ];
775
957
  readonly morph: readonly ['auto', 'morph-v3-fast', 'morph-v3-large'];
776
958
  readonly lmstudio: readonly ['openai/gpt-oss-20b', 'qwen/qwen3-30b-a3b-2507', 'qwen/qwen3-coder-30b'];
@@ -790,6 +972,7 @@ export type ProviderModelsMap = {
790
972
  'claude-opus-4-1',
791
973
  'claude-opus-4-1-20250805',
792
974
  'claude-opus-4-20250514',
975
+ 'claude-opus-4-5',
793
976
  'claude-sonnet-4-0',
794
977
  'claude-sonnet-4-20250514',
795
978
  'claude-sonnet-4-5',
@@ -804,6 +987,8 @@ export type ProviderModelsMap = {
804
987
  'accounts/fireworks/models/gpt-oss-120b',
805
988
  'accounts/fireworks/models/gpt-oss-20b',
806
989
  'accounts/fireworks/models/kimi-k2-instruct',
990
+ 'accounts/fireworks/models/kimi-k2-thinking',
991
+ 'accounts/fireworks/models/minimax-m2',
807
992
  'accounts/fireworks/models/qwen3-235b-a22b',
808
993
  'accounts/fireworks/models/qwen3-coder-480b-a35b-instruct',
809
994
  ];
@@ -840,26 +1025,130 @@ export type ProviderModelsMap = {
840
1025
  'voxtral-small-24b-2507',
841
1026
  'whisper-large-v3',
842
1027
  ];
843
- readonly cerebras: readonly ['gpt-oss-120b', 'qwen-3-235b-a22b-instruct-2507', 'qwen-3-coder-480b'];
1028
+ readonly poe: readonly [
1029
+ 'anthropic/claude-haiku-3',
1030
+ 'anthropic/claude-haiku-3.5',
1031
+ 'anthropic/claude-haiku-3.5-search',
1032
+ 'anthropic/claude-haiku-4.5',
1033
+ 'anthropic/claude-opus-3',
1034
+ 'anthropic/claude-opus-4',
1035
+ 'anthropic/claude-opus-4-reasoning',
1036
+ 'anthropic/claude-opus-4-search',
1037
+ 'anthropic/claude-opus-4.1',
1038
+ 'anthropic/claude-sonnet-3.5',
1039
+ 'anthropic/claude-sonnet-3.5-june',
1040
+ 'anthropic/claude-sonnet-3.7',
1041
+ 'anthropic/claude-sonnet-3.7-reasoning',
1042
+ 'anthropic/claude-sonnet-3.7-search',
1043
+ 'anthropic/claude-sonnet-4',
1044
+ 'anthropic/claude-sonnet-4-reasoning',
1045
+ 'anthropic/claude-sonnet-4-search',
1046
+ 'anthropic/claude-sonnet-4.5',
1047
+ 'elevenlabs/elevenlabs-music',
1048
+ 'elevenlabs/elevenlabs-v2.5-turbo',
1049
+ 'elevenlabs/elevenlabs-v3',
1050
+ 'facebook/llama-3.1-405b',
1051
+ 'facebook/llama-3.1-70b',
1052
+ 'facebook/llama-3.1-8b',
1053
+ 'google/gemini-2.0-flash',
1054
+ 'google/gemini-2.0-flash-lite',
1055
+ 'google/gemini-2.5-flash',
1056
+ 'google/gemini-2.5-flash-lite',
1057
+ 'google/gemini-2.5-pro',
1058
+ 'google/gemini-3.0-pro',
1059
+ 'google/imagen-3',
1060
+ 'google/imagen-3-fast',
1061
+ 'google/imagen-4',
1062
+ 'google/imagen-4-fast',
1063
+ 'google/imagen-4-ultra',
1064
+ 'google/lyria',
1065
+ 'google/nano-banana',
1066
+ 'google/veo-2',
1067
+ 'google/veo-3',
1068
+ 'google/veo-3-fast',
1069
+ 'google/veo-3.1',
1070
+ 'google/veo-3.1-fast',
1071
+ 'ideogramai/ideogram',
1072
+ 'ideogramai/ideogram-v2',
1073
+ 'ideogramai/ideogram-v2a',
1074
+ 'ideogramai/ideogram-v2a-turbo',
1075
+ 'lumalabs/dream-machine',
1076
+ 'lumalabs/ray2',
1077
+ 'novita/glm-4.6',
1078
+ 'openAi/chatgpt-4o-latest',
1079
+ 'openAi/dall-e-3',
1080
+ 'openAi/gpt-3.5-turbo',
1081
+ 'openAi/gpt-3.5-turbo-instruct',
1082
+ 'openAi/gpt-3.5-turbo-raw',
1083
+ 'openAi/gpt-4-classic',
1084
+ 'openAi/gpt-4-classic-0314',
1085
+ 'openAi/gpt-4-turbo',
1086
+ 'openAi/gpt-4.1',
1087
+ 'openAi/gpt-4.1-mini',
1088
+ 'openAi/gpt-4.1-nano',
1089
+ 'openAi/gpt-4o',
1090
+ 'openAi/gpt-4o-aug',
1091
+ 'openAi/gpt-4o-mini',
1092
+ 'openAi/gpt-4o-mini-search',
1093
+ 'openAi/gpt-4o-search',
1094
+ 'openAi/gpt-5',
1095
+ 'openAi/gpt-5-chat',
1096
+ 'openAi/gpt-5-codex',
1097
+ 'openAi/gpt-5-mini',
1098
+ 'openAi/gpt-5-nano',
1099
+ 'openAi/gpt-5-pro',
1100
+ 'openAi/gpt-image-1',
1101
+ 'openAi/gpt-image-1-mini',
1102
+ 'openAi/o1',
1103
+ 'openAi/o1-pro',
1104
+ 'openAi/o3',
1105
+ 'openAi/o3-deep-research',
1106
+ 'openAi/o3-mini',
1107
+ 'openAi/o3-mini-high',
1108
+ 'openAi/o3-pro',
1109
+ 'openAi/o4-mini',
1110
+ 'openAi/o4-mini-deep-research',
1111
+ 'openAi/sora-2',
1112
+ 'openAi/sora-2-pro',
1113
+ 'openai/gpt-5.1',
1114
+ 'openai/gpt-5.1-codex',
1115
+ 'openai/gpt-5.1-codex-mini',
1116
+ 'openai/gpt-5.1-instant',
1117
+ 'runwayml/runway',
1118
+ 'runwayml/runway-gen-4-turbo',
1119
+ 'stabilityai/stablediffusionxl',
1120
+ 'topazlabs-co/topazlabs',
1121
+ 'trytako/tako',
1122
+ 'xai/grok-2',
1123
+ 'xai/grok-3',
1124
+ 'xai/grok-3-mini',
1125
+ 'xai/grok-4',
1126
+ 'xai/grok-4-fast-non-reasoning',
1127
+ 'xai/grok-4-fast-reasoning',
1128
+ 'xai/grok-code-fast-1',
1129
+ ];
1130
+ readonly cerebras: readonly ['gpt-oss-120b', 'qwen-3-235b-a22b-instruct-2507', 'zai-glm-4.6'];
844
1131
  readonly netlify: readonly [
845
1132
  'anthropic/claude-3-5-haiku-20241022',
846
- 'anthropic/claude-3-5-haiku-latest',
847
1133
  'anthropic/claude-3-7-sonnet-20250219',
848
- 'anthropic/claude-3-7-sonnet-latest',
849
1134
  'anthropic/claude-3-haiku-20240307',
850
1135
  'anthropic/claude-haiku-4-5-20251001',
851
1136
  'anthropic/claude-opus-4-1-20250805',
852
1137
  'anthropic/claude-opus-4-20250514',
1138
+ 'anthropic/claude-opus-4-5-20251101',
853
1139
  'anthropic/claude-sonnet-4-20250514',
854
1140
  'anthropic/claude-sonnet-4-5-20250929',
855
1141
  'gemini/gemini-2.0-flash',
856
1142
  'gemini/gemini-2.0-flash-lite',
857
1143
  'gemini/gemini-2.5-flash',
1144
+ 'gemini/gemini-2.5-flash-image',
858
1145
  'gemini/gemini-2.5-flash-image-preview',
859
1146
  'gemini/gemini-2.5-flash-lite',
860
1147
  'gemini/gemini-2.5-flash-lite-preview-09-2025',
861
1148
  'gemini/gemini-2.5-flash-preview-09-2025',
862
1149
  'gemini/gemini-2.5-pro',
1150
+ 'gemini/gemini-3-pro-image-preview',
1151
+ 'gemini/gemini-3-pro-preview',
863
1152
  'gemini/gemini-flash-latest',
864
1153
  'gemini/gemini-flash-lite-latest',
865
1154
  'openai/codex-mini-latest',
@@ -869,10 +1158,16 @@ export type ProviderModelsMap = {
869
1158
  'openai/gpt-4o',
870
1159
  'openai/gpt-4o-mini',
871
1160
  'openai/gpt-5',
1161
+ 'openai/gpt-5-2025-08-07',
872
1162
  'openai/gpt-5-codex',
873
1163
  'openai/gpt-5-mini',
1164
+ 'openai/gpt-5-mini-2025-08-07',
874
1165
  'openai/gpt-5-nano',
875
1166
  'openai/gpt-5-pro',
1167
+ 'openai/gpt-5.1',
1168
+ 'openai/gpt-5.1-2025-11-13',
1169
+ 'openai/gpt-5.1-codex',
1170
+ 'openai/gpt-5.1-codex-mini',
876
1171
  'openai/o3',
877
1172
  'openai/o3-mini',
878
1173
  'openai/o4-mini',
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-34ZCWSUA.js","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v5';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\n\ninterface NetlifyProviderResponse {\n token_env_var: string;\n url_env_var: string;\n models: string[];\n}\ninterface NetlifyResponse {\n providers: Record<string, NetlifyProviderResponse>;\n}\n\ninterface NetlifyTokenResponse {\n token: string;\n url: string;\n expires_at: number;\n}\n\ninterface CachedToken {\n token: string;\n url: string;\n expiresAt: number;\n}\n\ninterface TokenData {\n token: string;\n url: string;\n}\n\nexport class NetlifyGateway extends MastraModelGateway {\n readonly name = 'netlify';\n readonly prefix = 'netlify'; // All providers will be prefixed with \"netlify/\"\n private tokenCache = new InMemoryServerCache();\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://api.netlify.com/api/v1/ai-gateway/providers');\n if (!response.ok) {\n throw new Error(`Failed to fetch from Netlify: ${response.statusText}`);\n }\n const data = (await response.json()) as NetlifyResponse;\n const netlify: ProviderConfig = {\n apiKeyEnvVar: ['NETLIFY_TOKEN', 'NETLIFY_SITE_ID'],\n apiKeyHeader: 'Authorization', // Netlify uses standard Bearer auth\n name: `Netlify`,\n gateway: `netlify`,\n models: [],\n docUrl: 'https://docs.netlify.com/build/ai-gateway/overview/',\n };\n // Convert Netlify format to our standard format\n for (const [providerId, provider] of Object.entries(data.providers)) {\n for (const model of provider.models) {\n netlify.models.push(`${providerId}/${model}`);\n }\n }\n return { netlify };\n }\n\n async buildUrl(routerId: string, envVars?: typeof process.env): Promise<string> {\n // Check for Netlify site ID first (for token exchange)\n const siteId = envVars?.['NETLIFY_SITE_ID'] || process.env['NETLIFY_SITE_ID'];\n const netlifyToken = envVars?.['NETLIFY_TOKEN'] || process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${routerId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${routerId}`,\n });\n }\n\n try {\n const tokenData = await this.getOrFetchToken(siteId, netlifyToken);\n return tokenData.url.endsWith(`/`) ? tokenData.url.substring(0, tokenData.url.length - 1) : tokenData.url;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${routerId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n private async getOrFetchToken(siteId: string, netlifyToken: string): Promise<TokenData> {\n const cacheKey = `netlify-token:${siteId}:${netlifyToken}`;\n\n // Check cache first\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n // Return cached token if it won't expire in the next minute\n return { token: cached.token, url: cached.url };\n }\n\n // Fetch new token\n const response = await fetch(`https://api.netlify.com/api/v1/sites/${siteId}/ai-gateway/token`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${netlifyToken}`,\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get Netlify AI Gateway token: ${response.status} ${error}`);\n }\n\n const tokenResponse = (await response.json()) as NetlifyTokenResponse;\n\n // Cache the token - InMemoryServerCache will handle the TTL\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.token,\n url: tokenResponse.url,\n expiresAt: tokenResponse.expires_at,\n });\n\n return { token: tokenResponse.token, url: tokenResponse.url };\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n async getApiKey(modelId: string): Promise<string> {\n const siteId = process.env['NETLIFY_SITE_ID'];\n const netlifyToken = process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${modelId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${modelId}`,\n });\n }\n\n try {\n return (await this.getOrFetchToken(siteId, netlifyToken)).token;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${modelId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n }): Promise<LanguageModelV2> {\n const baseURL = await this.buildUrl(`${providerId}/${modelId}`);\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL }).responses(modelId);\n case 'gemini':\n return createGoogleGenerativeAI({\n baseURL: `${baseURL}/v1beta/`,\n apiKey,\n headers: {\n 'user-agent': 'google-genai-sdk/',\n },\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({\n apiKey,\n baseURL: `${baseURL}/v1/`,\n headers: {\n 'anthropic-version': '2023-06-01',\n 'user-agent': 'anthropic/',\n },\n })(modelId);\n default:\n return createOpenAICompatible({ name: providerId, apiKey, baseURL, supportsStructuredOutputs: true }).chatModel(\n modelId,\n );\n }\n }\n}\n"]}