@mastra/core 0.21.1 → 0.22.0-alpha.1

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 +121 -0
  2. package/dist/agent/__tests__/mock-model.d.ts +6 -0
  3. package/dist/agent/__tests__/mock-model.d.ts.map +1 -0
  4. package/dist/agent/agent.d.ts +10 -4
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +4 -3
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +13 -13
  9. package/dist/agent/index.js +2 -2
  10. package/dist/agent/input-processor/index.cjs +6 -6
  11. package/dist/agent/input-processor/index.js +1 -1
  12. package/dist/agent/message-list/index.d.ts +14 -1
  13. package/dist/agent/message-list/index.d.ts.map +1 -1
  14. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +22 -0
  15. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -0
  16. package/dist/agent/test-utils.d.ts +1 -0
  17. package/dist/agent/test-utils.d.ts.map +1 -1
  18. package/dist/agent/types.d.ts +11 -1
  19. package/dist/agent/types.d.ts.map +1 -1
  20. package/dist/agent/utils.d.ts +1 -1
  21. package/dist/agent/utils.d.ts.map +1 -1
  22. package/dist/agent/workflows/prepare-stream/index.d.ts +7 -4
  23. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  24. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +7 -4
  25. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  26. package/dist/agent/workflows/prepare-stream/schema.d.ts +4 -4
  27. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -0
  28. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  29. package/dist/ai-tracing/chunk-tracing.d.ts +76 -0
  30. package/dist/ai-tracing/chunk-tracing.d.ts.map +1 -0
  31. package/dist/ai-tracing/exporters/base.d.ts +111 -0
  32. package/dist/ai-tracing/exporters/base.d.ts.map +1 -0
  33. package/dist/ai-tracing/exporters/cloud.d.ts +6 -8
  34. package/dist/ai-tracing/exporters/cloud.d.ts.map +1 -1
  35. package/dist/ai-tracing/exporters/console.d.ts +6 -6
  36. package/dist/ai-tracing/exporters/console.d.ts.map +1 -1
  37. package/dist/ai-tracing/exporters/index.d.ts +1 -0
  38. package/dist/ai-tracing/exporters/index.d.ts.map +1 -1
  39. package/dist/ai-tracing/index.cjs +48 -32
  40. package/dist/ai-tracing/index.d.ts +1 -0
  41. package/dist/ai-tracing/index.d.ts.map +1 -1
  42. package/dist/ai-tracing/index.js +1 -1
  43. package/dist/ai-tracing/spans/base.d.ts +4 -1
  44. package/dist/ai-tracing/spans/base.d.ts.map +1 -1
  45. package/dist/ai-tracing/spans/default.d.ts.map +1 -1
  46. package/dist/ai-tracing/tracers/base.d.ts +15 -1
  47. package/dist/ai-tracing/tracers/base.d.ts.map +1 -1
  48. package/dist/ai-tracing/types.d.ts +85 -11
  49. package/dist/ai-tracing/types.d.ts.map +1 -1
  50. package/dist/ai-tracing/utils.d.ts +14 -0
  51. package/dist/ai-tracing/utils.d.ts.map +1 -1
  52. package/dist/{chunk-FESSBG5D.cjs → chunk-34L2Z6PH.cjs} +12 -12
  53. package/dist/{chunk-FESSBG5D.cjs.map → chunk-34L2Z6PH.cjs.map} +1 -1
  54. package/dist/{chunk-3V4O35FO.js → chunk-3CVE7NQC.js} +729 -268
  55. package/dist/chunk-3CVE7NQC.js.map +1 -0
  56. package/dist/{chunk-44ODA6L3.cjs → chunk-5GIAZ3CH.cjs} +736 -271
  57. package/dist/chunk-5GIAZ3CH.cjs.map +1 -0
  58. package/dist/{chunk-5DZ4RYWL.js → chunk-5NYWRAJN.js} +3 -3
  59. package/dist/{chunk-5DZ4RYWL.js.map → chunk-5NYWRAJN.js.map} +1 -1
  60. package/dist/{chunk-APY2BE4K.cjs → chunk-634YFL42.cjs} +75 -49
  61. package/dist/chunk-634YFL42.cjs.map +1 -0
  62. package/dist/{chunk-HP7B2TQQ.js → chunk-A3TQYIIR.js} +198 -37
  63. package/dist/chunk-A3TQYIIR.js.map +1 -0
  64. package/dist/{chunk-KAV4EP3T.cjs → chunk-A4B6IAKN.cjs} +4 -4
  65. package/dist/{chunk-KAV4EP3T.cjs.map → chunk-A4B6IAKN.cjs.map} +1 -1
  66. package/dist/{chunk-T3PBU7JK.js → chunk-AGD5B3FB.js} +74 -48
  67. package/dist/chunk-AGD5B3FB.js.map +1 -0
  68. package/dist/{chunk-AJK7QPSD.cjs → chunk-CAZTWPDK.cjs} +11 -11
  69. package/dist/{chunk-AJK7QPSD.cjs.map → chunk-CAZTWPDK.cjs.map} +1 -1
  70. package/dist/{chunk-HBJVAMCS.js → chunk-F7OMDF5K.js} +93 -58
  71. package/dist/chunk-F7OMDF5K.js.map +1 -0
  72. package/dist/{chunk-DGQW5VRR.cjs → chunk-FMNZ3BPT.cjs} +202 -40
  73. package/dist/chunk-FMNZ3BPT.cjs.map +1 -0
  74. package/dist/{chunk-5NR2GY4U.js → chunk-GB5BIA4V.js} +5 -3
  75. package/dist/chunk-GB5BIA4V.js.map +1 -0
  76. package/dist/{chunk-A3QHQYMC.js → chunk-HGNRQ3OG.js} +12 -2
  77. package/dist/chunk-HGNRQ3OG.js.map +1 -0
  78. package/dist/{chunk-NHKXTGR6.js → chunk-HZIF7HQC.js} +3 -3
  79. package/dist/{chunk-NHKXTGR6.js.map → chunk-HZIF7HQC.js.map} +1 -1
  80. package/dist/{chunk-MUAFIPD7.js → chunk-ITFEGBP2.js} +4 -4
  81. package/dist/{chunk-MUAFIPD7.js.map → chunk-ITFEGBP2.js.map} +1 -1
  82. package/dist/{chunk-J2OKI2L3.js → chunk-KQBF5ZEN.js} +10 -5
  83. package/dist/chunk-KQBF5ZEN.js.map +1 -0
  84. package/dist/chunk-LJFJTTZQ.cjs +4 -0
  85. package/dist/chunk-LJFJTTZQ.cjs.map +1 -0
  86. package/dist/{chunk-OXAN5SM7.cjs → chunk-LRSB62Z6.cjs} +12 -2
  87. package/dist/chunk-LRSB62Z6.cjs.map +1 -0
  88. package/dist/{chunk-3ORA5EFD.cjs → chunk-LZUSZT7R.cjs} +5 -3
  89. package/dist/chunk-LZUSZT7R.cjs.map +1 -0
  90. package/dist/{chunk-U6CUPKV2.js → chunk-MHICZASQ.js} +5 -5
  91. package/dist/{chunk-U6CUPKV2.js.map → chunk-MHICZASQ.js.map} +1 -1
  92. package/dist/{chunk-H4KO46HZ.js → chunk-MKCC5K77.js} +3 -3
  93. package/dist/{chunk-H4KO46HZ.js.map → chunk-MKCC5K77.js.map} +1 -1
  94. package/dist/{chunk-W3DS6F6G.cjs → chunk-O4KVF3MI.cjs} +4 -4
  95. package/dist/{chunk-W3DS6F6G.cjs.map → chunk-O4KVF3MI.cjs.map} +1 -1
  96. package/dist/{chunk-462DRETM.cjs → chunk-QBPTDMR7.cjs} +121 -85
  97. package/dist/chunk-QBPTDMR7.cjs.map +1 -0
  98. package/dist/{chunk-XVREJCOW.cjs → chunk-RWWOJXMF.cjs} +6 -6
  99. package/dist/{chunk-XVREJCOW.cjs.map → chunk-RWWOJXMF.cjs.map} +1 -1
  100. package/dist/{chunk-NUURZ3AY.js → chunk-RXBG6UV2.js} +7 -4
  101. package/dist/chunk-RXBG6UV2.js.map +1 -0
  102. package/dist/{chunk-F6BMIPYW.js → chunk-SF75RENF.js} +3 -3
  103. package/dist/{chunk-F6BMIPYW.js.map → chunk-SF75RENF.js.map} +1 -1
  104. package/dist/{chunk-SE4PA467.cjs → chunk-VF676YCO.cjs} +2 -2
  105. package/dist/chunk-VF676YCO.cjs.map +1 -0
  106. package/dist/{chunk-FLXB6WXO.js → chunk-VQLW7LPO.js} +5 -3
  107. package/dist/chunk-VQLW7LPO.js.map +1 -0
  108. package/dist/{chunk-6OLRLZJ3.js → chunk-WM4RO23J.js} +2 -2
  109. package/dist/chunk-WM4RO23J.js.map +1 -0
  110. package/dist/{chunk-OY6UJ3QL.cjs → chunk-YGL6E6PD.cjs} +5 -3
  111. package/dist/chunk-YGL6E6PD.cjs.map +1 -0
  112. package/dist/{chunk-XHPBKALR.cjs → chunk-YOVX3R5U.cjs} +17 -14
  113. package/dist/chunk-YOVX3R5U.cjs.map +1 -0
  114. package/dist/{chunk-L5A4MRCK.cjs → chunk-ZABG3SZ2.cjs} +4 -4
  115. package/dist/{chunk-L5A4MRCK.cjs.map → chunk-ZABG3SZ2.cjs.map} +1 -1
  116. package/dist/{chunk-BV6CD4IZ.cjs → chunk-ZDW322JC.cjs} +12 -7
  117. package/dist/chunk-ZDW322JC.cjs.map +1 -0
  118. package/dist/chunk-ZV5CC35D.js +3 -0
  119. package/dist/chunk-ZV5CC35D.js.map +1 -0
  120. package/dist/index.cjs +56 -52
  121. package/dist/index.js +11 -11
  122. package/dist/integration/index.cjs +3 -3
  123. package/dist/integration/index.js +1 -1
  124. package/dist/llm/index.cjs +10 -6
  125. package/dist/llm/index.d.ts +1 -0
  126. package/dist/llm/index.d.ts.map +1 -1
  127. package/dist/llm/index.js +1 -1
  128. package/dist/llm/model/embedding-router.d.ts +50 -0
  129. package/dist/llm/model/embedding-router.d.ts.map +1 -0
  130. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  131. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  132. package/dist/llm/model/index.d.ts +1 -0
  133. package/dist/llm/model/index.d.ts.map +1 -1
  134. package/dist/llm/model/model.loop.d.ts +1 -1
  135. package/dist/llm/model/model.loop.d.ts.map +1 -1
  136. package/dist/llm/model/provider-options.d.ts +42 -0
  137. package/dist/llm/model/provider-options.d.ts.map +1 -0
  138. package/dist/llm/model/provider-types.generated.d.ts +30 -3
  139. package/dist/llm/model/router.d.ts.map +1 -1
  140. package/dist/loop/index.cjs +2 -2
  141. package/dist/loop/index.js +1 -1
  142. package/dist/loop/loop.d.ts.map +1 -1
  143. package/dist/loop/network/index.d.ts +4 -1
  144. package/dist/loop/network/index.d.ts.map +1 -1
  145. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  146. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  147. package/dist/loop/test-utils/mock-server-response.d.ts +7 -2
  148. package/dist/loop/test-utils/mock-server-response.d.ts.map +1 -1
  149. package/dist/loop/test-utils/options.d.ts.map +1 -1
  150. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  151. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  152. package/dist/loop/test-utils/telemetry.d.ts.map +1 -1
  153. package/dist/loop/test-utils/textStream.d.ts.map +1 -1
  154. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  155. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  156. package/dist/loop/test-utils/utils.d.ts +2 -0
  157. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  158. package/dist/loop/types.d.ts +2 -1
  159. package/dist/loop/types.d.ts.map +1 -1
  160. package/dist/loop/workflows/agentic-execution/index.d.ts +42 -42
  161. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +28 -28
  162. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  163. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +14 -14
  164. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +1 -1
  165. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  166. package/dist/loop/workflows/agentic-loop/index.d.ts +42 -42
  167. package/dist/loop/workflows/schema.d.ts +14 -14
  168. package/dist/mastra/index.cjs +2 -2
  169. package/dist/mastra/index.js +1 -1
  170. package/dist/memory/index.cjs +4 -4
  171. package/dist/memory/index.js +1 -1
  172. package/dist/memory/memory.d.ts +3 -2
  173. package/dist/memory/memory.d.ts.map +1 -1
  174. package/dist/memory/types.d.ts +10 -1
  175. package/dist/memory/types.d.ts.map +1 -1
  176. package/dist/models-dev-4VGIWYS3.js +3 -0
  177. package/dist/{models-dev-3VEABUH4.js.map → models-dev-4VGIWYS3.js.map} +1 -1
  178. package/dist/models-dev-AXZASLL2.cjs +12 -0
  179. package/dist/{models-dev-L42ORGVT.cjs.map → models-dev-AXZASLL2.cjs.map} +1 -1
  180. package/dist/netlify-26MMY5X4.js +3 -0
  181. package/dist/{netlify-NYFKA6UB.js.map → netlify-26MMY5X4.js.map} +1 -1
  182. package/dist/netlify-F3MVGV4Y.cjs +12 -0
  183. package/dist/{netlify-3B6HDHRP.cjs.map → netlify-F3MVGV4Y.cjs.map} +1 -1
  184. package/dist/processors/index.cjs +11 -11
  185. package/dist/processors/index.js +1 -1
  186. package/dist/provider-registry.json +62 -8
  187. package/dist/relevance/index.cjs +4 -4
  188. package/dist/relevance/index.js +1 -1
  189. package/dist/scores/index.cjs +9 -9
  190. package/dist/scores/index.js +2 -2
  191. package/dist/scores/scoreTraces/index.cjs +8 -8
  192. package/dist/scores/scoreTraces/index.js +3 -3
  193. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  194. package/dist/storage/index.cjs +5 -3
  195. package/dist/storage/index.cjs.map +1 -1
  196. package/dist/storage/index.js +3 -1
  197. package/dist/storage/index.js.map +1 -1
  198. package/dist/stream/RunOutput.d.ts +72 -0
  199. package/dist/stream/RunOutput.d.ts.map +1 -0
  200. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  201. package/dist/stream/aisdk/v5/output.d.ts +11 -12
  202. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  203. package/dist/stream/base/base.d.ts +7 -0
  204. package/dist/stream/base/base.d.ts.map +1 -0
  205. package/dist/stream/base/consume-stream.d.ts +5 -0
  206. package/dist/stream/base/consume-stream.d.ts.map +1 -0
  207. package/dist/stream/base/output-format-handlers.d.ts +1 -2
  208. package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
  209. package/dist/stream/base/output.d.ts.map +1 -1
  210. package/dist/stream/index.cjs +14 -10
  211. package/dist/stream/index.d.ts +2 -1
  212. package/dist/stream/index.d.ts.map +1 -1
  213. package/dist/stream/index.js +2 -2
  214. package/dist/stream/types.d.ts +18 -2
  215. package/dist/stream/types.d.ts.map +1 -1
  216. package/dist/test-utils/llm-mock.cjs +2 -2
  217. package/dist/test-utils/llm-mock.js +1 -1
  218. package/dist/tools/index.cjs +6 -6
  219. package/dist/tools/index.js +2 -2
  220. package/dist/tools/is-vercel-tool.cjs +2 -2
  221. package/dist/tools/is-vercel-tool.js +1 -1
  222. package/dist/tools/stream.d.ts +7 -0
  223. package/dist/tools/stream.d.ts.map +1 -1
  224. package/dist/tools/tool-builder/builder.d.ts +75 -2
  225. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  226. package/dist/tools/tool.d.ts +2 -2
  227. package/dist/tools/tool.d.ts.map +1 -1
  228. package/dist/tools/types.d.ts +17 -12
  229. package/dist/tools/types.d.ts.map +1 -1
  230. package/dist/utils.cjs +17 -17
  231. package/dist/utils.d.ts +1 -0
  232. package/dist/utils.d.ts.map +1 -1
  233. package/dist/utils.js +1 -1
  234. package/dist/workflows/default.d.ts +1 -0
  235. package/dist/workflows/default.d.ts.map +1 -1
  236. package/dist/workflows/evented/index.cjs +10 -10
  237. package/dist/workflows/evented/index.js +1 -1
  238. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  239. package/dist/workflows/evented/workflow.d.ts +5 -3
  240. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  241. package/dist/workflows/index.cjs +12 -12
  242. package/dist/workflows/index.js +1 -1
  243. package/dist/workflows/legacy/index.cjs +22 -22
  244. package/dist/workflows/legacy/index.js +1 -1
  245. package/dist/workflows/legacy/machine.d.ts +1 -1
  246. package/dist/workflows/step.d.ts +4 -1
  247. package/dist/workflows/step.d.ts.map +1 -1
  248. package/dist/workflows/types.d.ts +1 -0
  249. package/dist/workflows/types.d.ts.map +1 -1
  250. package/dist/workflows/workflow.d.ts +33 -24
  251. package/dist/workflows/workflow.d.ts.map +1 -1
  252. package/package.json +15 -12
  253. package/src/llm/model/provider-types.generated.d.ts +30 -3
  254. package/dist/chunk-3ORA5EFD.cjs.map +0 -1
  255. package/dist/chunk-3V4O35FO.js.map +0 -1
  256. package/dist/chunk-44ODA6L3.cjs.map +0 -1
  257. package/dist/chunk-462DRETM.cjs.map +0 -1
  258. package/dist/chunk-5NR2GY4U.js.map +0 -1
  259. package/dist/chunk-6OLRLZJ3.js.map +0 -1
  260. package/dist/chunk-A3QHQYMC.js.map +0 -1
  261. package/dist/chunk-APY2BE4K.cjs.map +0 -1
  262. package/dist/chunk-BV6CD4IZ.cjs.map +0 -1
  263. package/dist/chunk-DGQW5VRR.cjs.map +0 -1
  264. package/dist/chunk-FLXB6WXO.js.map +0 -1
  265. package/dist/chunk-HBJVAMCS.js.map +0 -1
  266. package/dist/chunk-HP7B2TQQ.js.map +0 -1
  267. package/dist/chunk-J2OKI2L3.js.map +0 -1
  268. package/dist/chunk-NUURZ3AY.js.map +0 -1
  269. package/dist/chunk-OXAN5SM7.cjs.map +0 -1
  270. package/dist/chunk-OY6UJ3QL.cjs.map +0 -1
  271. package/dist/chunk-SE4PA467.cjs.map +0 -1
  272. package/dist/chunk-T3PBU7JK.js.map +0 -1
  273. package/dist/chunk-XHPBKALR.cjs.map +0 -1
  274. package/dist/models-dev-3VEABUH4.js +0 -3
  275. package/dist/models-dev-L42ORGVT.cjs +0 -12
  276. package/dist/netlify-3B6HDHRP.cjs +0 -12
  277. package/dist/netlify-NYFKA6UB.js +0 -3
@@ -78,6 +78,7 @@ export type ProviderModelsMap = {
78
78
  readonly nvidia: readonly [
79
79
  'black-forest-labs/flux.1-dev',
80
80
  'deepseek-ai/deepseek-v3.1',
81
+ 'deepseek-ai/deepseek-v3.1-terminus',
81
82
  'google/gemma-3-27b-it',
82
83
  'microsoft/phi-4-mini-instruct',
83
84
  'moonshotai/kimi-k2-instruct',
@@ -427,7 +428,11 @@ export type ProviderModelsMap = {
427
428
  'moonshotai/Kimi-K2-Instruct',
428
429
  'openai/gpt-oss-120b',
429
430
  ];
430
- readonly baseten: readonly ['Qwen3/Qwen3-Coder-480B-A35B-Instruct', 'moonshotai/Kimi-K2-Instruct-0905'];
431
+ readonly baseten: readonly [
432
+ 'Qwen3/Qwen3-Coder-480B-A35B-Instruct',
433
+ 'moonshotai/Kimi-K2-Instruct-0905',
434
+ 'zai-org/GLM-4.6',
435
+ ];
431
436
  readonly huggingface: readonly [
432
437
  'Qwen/Qwen3-235B-A22B-Thinking-2507',
433
438
  'Qwen/Qwen3-Coder-480B-A35B-Instruct',
@@ -442,7 +447,8 @@ export type ProviderModelsMap = {
442
447
  'zai-org/GLM-4.6',
443
448
  ];
444
449
  readonly opencode: readonly [
445
- 'an-g8x',
450
+ 'an-gbt',
451
+ 'big-pickle',
446
452
  'claude-3-5-haiku',
447
453
  'claude-haiku-4-5',
448
454
  'claude-opus-4-1',
@@ -544,7 +550,7 @@ export type ProviderModelsMap = {
544
550
  readonly openrouter: readonly [
545
551
  'anthropic/claude-3.5-haiku',
546
552
  'anthropic/claude-3.7-sonnet',
547
- 'anthropic/claude-4.5-haiku',
553
+ 'anthropic/claude-haiku-4.5',
548
554
  'anthropic/claude-opus-4',
549
555
  'anthropic/claude-opus-4.1',
550
556
  'anthropic/claude-sonnet-4',
@@ -725,16 +731,23 @@ export type ProviderModelsMap = {
725
731
  readonly lmstudio: readonly ['openai/gpt-oss-20b', 'qwen/qwen3-30b-a3b-2507', 'qwen/qwen3-coder-30b'];
726
732
  readonly anthropic: readonly [
727
733
  'claude-3-5-haiku-20241022',
734
+ 'claude-3-5-haiku-latest',
728
735
  'claude-3-5-sonnet-20240620',
729
736
  'claude-3-5-sonnet-20241022',
730
737
  'claude-3-7-sonnet-20250219',
738
+ 'claude-3-7-sonnet-latest',
731
739
  'claude-3-haiku-20240307',
732
740
  'claude-3-opus-20240229',
733
741
  'claude-3-sonnet-20240229',
742
+ 'claude-haiku-4-5',
734
743
  'claude-haiku-4-5-20251001',
744
+ 'claude-opus-4-0',
745
+ 'claude-opus-4-1',
735
746
  'claude-opus-4-1-20250805',
736
747
  'claude-opus-4-20250514',
748
+ 'claude-sonnet-4-0',
737
749
  'claude-sonnet-4-20250514',
750
+ 'claude-sonnet-4-5',
738
751
  'claude-sonnet-4-5-20250929',
739
752
  ];
740
753
  readonly 'fireworks-ai': readonly [
@@ -756,6 +769,7 @@ export type ProviderModelsMap = {
756
769
  'Qwen/Qwen3-30B-A3B-Thinking-2507',
757
770
  'Qwen/Qwen3-Coder-30B-A3B-Instruct',
758
771
  'ZhipuAI/GLM-4.5',
772
+ 'ZhipuAI/GLM-4.6',
759
773
  ];
760
774
  readonly llama: readonly [
761
775
  'cerebras-llama-4-maverick-17b-128e-instruct',
@@ -766,6 +780,19 @@ export type ProviderModelsMap = {
766
780
  'llama-4-maverick-17b-128e-instruct-fp8',
767
781
  'llama-4-scout-17b-16e-instruct-fp8',
768
782
  ];
783
+ readonly scaleway: readonly [
784
+ 'deepseek-r1-distill-llama-70b',
785
+ 'gemma-3-27b-it',
786
+ 'gpt-oss-120b',
787
+ 'llama-3.1-8b-instruct',
788
+ 'llama-3.3-70b-instruct',
789
+ 'mistral-nemo-instruct-2407',
790
+ 'mistral-small-3.2-24b-instruct-2506',
791
+ 'pixtral-12b-2409',
792
+ 'qwen3-235b-a22b-instruct-2507',
793
+ 'qwen3-coder-30b-a3b-instruct',
794
+ 'voxtral-small-24b-2507',
795
+ ];
769
796
  readonly cerebras: readonly ['gpt-oss-120b', 'qwen-3-235b-a22b-instruct-2507', 'qwen-3-coder-480b'];
770
797
  readonly netlify: readonly [
771
798
  'anthropic/claude-3-5-haiku-20241022',
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llm/model/gateway-resolver.ts","../src/llm/model/gateways/constants.ts","../src/llm/model/gateways/models-dev.ts"],"names":["MastraModelGateway","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenRouter","createXai","createOpenAICompatible"],"mappings":"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","file":"chunk-3ORA5EFD.cjs","sourcesContent":["export type ResolvedModelConfig = {\n url: string | false;\n headers: Record<string, string>;\n resolvedModelId: string;\n fullModelId: string;\n};\n\nexport function parseModelRouterId(routerId: string, gatewayPrefix?: string): { providerId: string; modelId: string } {\n if (gatewayPrefix && !routerId.startsWith(`${gatewayPrefix}/`)) {\n throw new Error(`Expected ${gatewayPrefix}/ in model router ID ${routerId}`);\n }\n\n const idParts = routerId.split('/');\n\n if (gatewayPrefix && idParts.length < 3) {\n throw new Error(\n `Expected atleast 3 id parts ${gatewayPrefix}/provider/model, but only saw ${idParts.length} in ${routerId}`,\n );\n }\n\n const providerId = idParts.at(gatewayPrefix ? 1 : 0);\n const modelId = idParts.slice(gatewayPrefix ? 2 : 1).join(`/`);\n\n if (!routerId.includes(`/`) || !providerId || !modelId) {\n throw new Error(\n `Attempted to parse provider/model from ${routerId} but this ID doesn't appear to contain a provider`,\n );\n }\n\n return {\n providerId,\n modelId,\n };\n}\n","// anything in this list will use the corresponding ai sdk package instead of using openai-compat endpoints\nexport const PROVIDERS_WITH_INSTALLED_PACKAGES = ['anthropic', 'google', 'openai', 'openrouter', 'xai'];\n\n// anything here doesn't show up in model router. for now that's just copilot which requires a special oauth flow\nexport const EXCLUDED_PROVIDERS = ['github-copilot'];\n","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 { createXai } from '@ai-sdk/xai-v5';\nimport { createOpenRouter } from '@openrouter/ai-sdk-provider-v5';\nimport { parseModelRouterId } from '../gateway-resolver.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { EXCLUDED_PROVIDERS, PROVIDERS_WITH_INSTALLED_PACKAGES } from './constants.js';\n\ninterface ModelsDevProviderInfo {\n id: string;\n name: string;\n models: Record<string, any>;\n env?: string[]; // Array of env var names\n api?: string; // Base API URL\n npm?: string; // NPM package name\n doc?: string; // Documentation URL\n}\n\ninterface ModelsDevResponse {\n [providerId: string]: ModelsDevProviderInfo;\n}\n\n// Special cases: providers that are OpenAI-compatible but have their own SDKs\n// These providers work with OpenAI-compatible endpoints even though models.dev\n// might list them with their own SDK packages\n// This constant is ONLY used during generation in fetchProviders() to determine\n// which providers from models.dev should be included in the registry.\n// At runtime, buildUrl() and buildHeaders() use the pre-generated PROVIDER_REGISTRY instead.\nconst OPENAI_COMPATIBLE_OVERRIDES: Record<string, Partial<ProviderConfig>> = {\n cerebras: {\n url: 'https://api.cerebras.ai/v1',\n },\n mistral: {\n url: 'https://api.mistral.ai/v1',\n },\n groq: {\n url: 'https://api.groq.com/openai/v1',\n },\n togetherai: {\n url: 'https://api.together.xyz/v1',\n },\n deepinfra: {\n url: 'https://api.deepinfra.com/v1/openai',\n },\n perplexity: {\n url: 'https://api.perplexity.ai',\n },\n vercel: {\n url: 'https://ai-gateway.vercel.sh/v1',\n apiKeyEnvVar: 'AI_GATEWAY_API_KEY',\n },\n};\n\nexport class ModelsDevGateway extends MastraModelGateway {\n readonly name = 'models.dev';\n readonly prefix = undefined; // No prefix for registry gateway\n\n private providerConfigs: Record<string, ProviderConfig> = {};\n\n constructor(providerConfigs?: Record<string, ProviderConfig>) {\n super();\n if (providerConfigs) this.providerConfigs = providerConfigs;\n }\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://models.dev/api.json');\n if (!response.ok) {\n throw new Error(`Failed to fetch from models.dev: ${response.statusText}`);\n }\n\n const data = (await response.json()) as ModelsDevResponse;\n\n const providerConfigs: Record<string, ProviderConfig> = {};\n\n for (const [providerId, providerInfo] of Object.entries(data)) {\n // Skip excluded providers\n if (EXCLUDED_PROVIDERS.includes(providerId)) continue;\n // Skip non-provider entries (if any)\n if (!providerInfo || typeof providerInfo !== 'object' || !providerInfo.models) continue;\n\n // Use provider ID as-is (keep hyphens for consistency)\n const normalizedId = providerId;\n\n // Check if this is OpenAI-compatible based on npm package or overrides\n const isOpenAICompatible =\n providerInfo.npm === '@ai-sdk/openai-compatible' ||\n providerInfo.npm === '@ai-sdk/gateway' || // Vercel AI Gateway is OpenAI-compatible\n normalizedId in OPENAI_COMPATIBLE_OVERRIDES;\n\n // these have their ai sdk provider package installed and don't use openai-compat\n const hasInstalledPackage = PROVIDERS_WITH_INSTALLED_PACKAGES.includes(providerId);\n\n // Also include providers that have an API URL and env vars (likely OpenAI-compatible)\n const hasApiAndEnv = providerInfo.api && providerInfo.env && providerInfo.env.length > 0;\n\n if (isOpenAICompatible || hasInstalledPackage || hasApiAndEnv) {\n // Get model IDs from the models object\n const modelIds = Object.keys(providerInfo.models).sort();\n\n // Get the API URL from the provider info or overrides\n const url = providerInfo.api || OPENAI_COMPATIBLE_OVERRIDES[normalizedId]?.url;\n\n // Skip if we don't have a URL\n if (!hasInstalledPackage && !url) {\n continue;\n }\n\n // Get the API key env var from the provider info\n // Convert hyphens to underscores for env var naming convention\n const apiKeyEnvVar = providerInfo.env?.[0] || `${normalizedId.toUpperCase().replace(/-/g, '_')}_API_KEY`;\n\n // Determine the API key header (special case for Anthropic)\n const apiKeyHeader = !hasInstalledPackage\n ? OPENAI_COMPATIBLE_OVERRIDES[normalizedId]?.apiKeyHeader || 'Authorization'\n : undefined;\n\n providerConfigs[normalizedId] = {\n url,\n apiKeyEnvVar,\n apiKeyHeader,\n name: providerInfo.name || providerId.charAt(0).toUpperCase() + providerId.slice(1),\n models: modelIds,\n docUrl: providerInfo.doc, // Include documentation URL if available\n gateway: `models.dev`,\n };\n }\n }\n\n // Store for later use in buildUrl and buildHeaders\n this.providerConfigs = providerConfigs;\n\n return providerConfigs;\n }\n\n buildUrl(routerId: string, envVars?: typeof process.env): string | undefined {\n const { providerId } = parseModelRouterId(routerId);\n\n const config = this.providerConfigs[providerId];\n\n if (!config?.url) {\n return;\n }\n\n // Check for custom base URL from env vars\n const baseUrlEnvVar = `${providerId.toUpperCase().replace(/-/g, '_')}_BASE_URL`;\n const customBaseUrl = envVars?.[baseUrlEnvVar] || process.env[baseUrlEnvVar];\n\n return customBaseUrl || config.url;\n }\n\n getApiKey(modelId: string): Promise<string> {\n const [provider, model] = modelId.split('/');\n if (!provider || !model) {\n throw new Error(`Could not identify provider from model id ${modelId}`);\n }\n const config = this.providerConfigs[provider];\n\n if (!config) {\n throw new Error(`Could not find config for provider ${provider} with model id ${modelId}`);\n }\n\n const apiKey = typeof config.apiKeyEnvVar === `string` ? process.env[config.apiKeyEnvVar] : undefined; // we only use single string env var for models.dev for now\n\n if (!apiKey) {\n throw new Error(`Could not find API key process.env.${config.apiKeyEnvVar} for model id ${modelId}`);\n }\n\n return Promise.resolve(apiKey);\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 = this.buildUrl(`${providerId}/${modelId}`);\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey }).responses(modelId);\n case 'gemini':\n case 'google':\n return createGoogleGenerativeAI({\n apiKey,\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({ apiKey })(modelId);\n case 'openrouter':\n return createOpenRouter({ apiKey })(modelId);\n case 'xai':\n return createXai({\n apiKey,\n })(modelId);\n default:\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createOpenAICompatible({ name: providerId, apiKey, baseURL }).chatModel(modelId);\n }\n }\n}\n"]}