@mastra/core 1.0.0-beta.1 → 1.0.0-beta.3

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 (287) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/dist/agent/agent-legacy.d.ts +2 -2
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent.d.ts +1 -1
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +3 -2
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +9 -9
  9. package/dist/agent/index.js +2 -2
  10. package/dist/agent/message-list/index.cjs +3 -3
  11. package/dist/agent/message-list/index.d.ts.map +1 -1
  12. package/dist/agent/message-list/index.js +1 -1
  13. package/dist/agent/message-list/prompt/convert-file.d.ts +1 -1
  14. package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -1
  15. package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
  16. package/dist/agent/types.d.ts +1 -0
  17. package/dist/agent/types.d.ts.map +1 -1
  18. package/dist/agent/utils.d.ts.map +1 -1
  19. package/dist/agent/workflows/prepare-stream/index.d.ts +2 -1
  20. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  21. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -1
  22. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  23. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +2 -1
  24. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  25. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +2 -1
  26. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  27. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
  28. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  29. package/dist/chunk-3PSWNGBF.js +3 -0
  30. package/dist/{chunk-ZV5CC35D.js.map → chunk-3PSWNGBF.js.map} +1 -1
  31. package/dist/{chunk-IQO7ANVS.cjs → chunk-3VOUB4ZU.cjs} +10 -9
  32. package/dist/chunk-3VOUB4ZU.cjs.map +1 -0
  33. package/dist/{chunk-H6CZGPZD.js → chunk-4DWZ4Z6H.js} +157 -24
  34. package/dist/chunk-4DWZ4Z6H.js.map +1 -0
  35. package/dist/{chunk-ET6UOTTU.cjs → chunk-4IKJAKCD.cjs} +40 -4
  36. package/dist/chunk-4IKJAKCD.cjs.map +1 -0
  37. package/dist/{chunk-MA7TEM62.cjs → chunk-4RSHBKDJ.cjs} +244 -4
  38. package/dist/chunk-4RSHBKDJ.cjs.map +1 -0
  39. package/dist/{chunk-MV7KHWUT.js → chunk-5CWWU22H.js} +25 -4
  40. package/dist/chunk-5CWWU22H.js.map +1 -0
  41. package/dist/{chunk-JV2KH24V.js → chunk-BAMR7HKO.js} +18 -13
  42. package/dist/chunk-BAMR7HKO.js.map +1 -0
  43. package/dist/{chunk-JUBFO5J3.js → chunk-CKGIPST2.js} +829 -92
  44. package/dist/chunk-CKGIPST2.js.map +1 -0
  45. package/dist/{chunk-4CDL2QJT.js → chunk-D6EDHNGV.js} +53 -16
  46. package/dist/chunk-D6EDHNGV.js.map +1 -0
  47. package/dist/{chunk-CD56CXVE.cjs → chunk-EZVRSZMK.cjs} +13 -12
  48. package/dist/chunk-EZVRSZMK.cjs.map +1 -0
  49. package/dist/{chunk-ECFXGXWO.cjs → chunk-G36A2JRR.cjs} +18 -13
  50. package/dist/chunk-G36A2JRR.cjs.map +1 -0
  51. package/dist/{chunk-VOQ3ULMT.js → chunk-G3OOCXAI.js} +243 -3
  52. package/dist/chunk-G3OOCXAI.js.map +1 -0
  53. package/dist/{chunk-I4CXL4SR.js → chunk-GRGPQ32U.js} +5 -4
  54. package/dist/chunk-GRGPQ32U.js.map +1 -0
  55. package/dist/{chunk-WM6CK2F3.cjs → chunk-HBJPYQRN.cjs} +57 -19
  56. package/dist/chunk-HBJPYQRN.cjs.map +1 -0
  57. package/dist/{chunk-GGYKYORQ.cjs → chunk-JTXVR2RA.cjs} +27 -6
  58. package/dist/chunk-JTXVR2RA.cjs.map +1 -0
  59. package/dist/{chunk-XEVG546F.js → chunk-JXESKY4A.js} +3 -3
  60. package/dist/{chunk-XEVG546F.js.map → chunk-JXESKY4A.js.map} +1 -1
  61. package/dist/{chunk-7AHYOMHJ.js → chunk-KEURQGCQ.js} +40 -5
  62. package/dist/chunk-KEURQGCQ.js.map +1 -0
  63. package/dist/{chunk-JPGVRWWL.js → chunk-KOSW5PP5.js} +8 -2
  64. package/dist/chunk-KOSW5PP5.js.map +1 -0
  65. package/dist/chunk-MCUX2D5Q.js +420 -0
  66. package/dist/chunk-MCUX2D5Q.js.map +1 -0
  67. package/dist/chunk-N4SJ4YX7.cjs +424 -0
  68. package/dist/chunk-N4SJ4YX7.cjs.map +1 -0
  69. package/dist/{chunk-VOY2RXOC.cjs → chunk-O6NA3Z43.cjs} +6 -6
  70. package/dist/{chunk-VOY2RXOC.cjs.map → chunk-O6NA3Z43.cjs.map} +1 -1
  71. package/dist/{chunk-CINNK34N.js → chunk-OQF4H5Y2.js} +6 -5
  72. package/dist/chunk-OQF4H5Y2.js.map +1 -0
  73. package/dist/{chunk-MSWTA73A.cjs → chunk-OWX2PUFH.cjs} +866 -126
  74. package/dist/chunk-OWX2PUFH.cjs.map +1 -0
  75. package/dist/chunk-PE3V7GUL.cjs +4 -0
  76. package/dist/{chunk-LJFJTTZQ.cjs.map → chunk-PE3V7GUL.cjs.map} +1 -1
  77. package/dist/{chunk-HDJFSJCK.js → chunk-T3WZCEC4.js} +4 -3
  78. package/dist/chunk-T3WZCEC4.js.map +1 -0
  79. package/dist/{chunk-W7UH2PWL.js → chunk-VU6DVS7J.js} +179 -282
  80. package/dist/chunk-VU6DVS7J.js.map +1 -0
  81. package/dist/{chunk-DNEURYF3.cjs → chunk-VZGBVYXA.cjs} +175 -42
  82. package/dist/chunk-VZGBVYXA.cjs.map +1 -0
  83. package/dist/{chunk-2ZVKF4HP.cjs → chunk-XRIVPHXV.cjs} +184 -285
  84. package/dist/chunk-XRIVPHXV.cjs.map +1 -0
  85. package/dist/{chunk-LWBQ4P4N.cjs → chunk-YQ7NLZZ3.cjs} +54 -53
  86. package/dist/chunk-YQ7NLZZ3.cjs.map +1 -0
  87. package/dist/{chunk-CB575O6L.cjs → chunk-ZPMFINU2.cjs} +8 -2
  88. package/dist/chunk-ZPMFINU2.cjs.map +1 -0
  89. package/dist/evals/base.d.ts.map +1 -1
  90. package/dist/evals/index.cjs +4 -4
  91. package/dist/evals/index.js +1 -1
  92. package/dist/evals/scoreTraces/index.cjs +5 -4
  93. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  94. package/dist/evals/scoreTraces/index.js +3 -2
  95. package/dist/evals/scoreTraces/index.js.map +1 -1
  96. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  97. package/dist/index.cjs +2 -2
  98. package/dist/index.js +1 -1
  99. package/dist/integration/index.cjs +2 -2
  100. package/dist/integration/index.js +1 -1
  101. package/dist/llm/index.cjs +26 -10
  102. package/dist/llm/index.d.ts +1 -0
  103. package/dist/llm/index.d.ts.map +1 -1
  104. package/dist/llm/index.js +5 -1
  105. package/dist/llm/model/aisdk/v5/model.d.ts +47 -0
  106. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -0
  107. package/dist/llm/model/gateways/base.d.ts +8 -0
  108. package/dist/llm/model/gateways/base.d.ts.map +1 -1
  109. package/dist/llm/model/gateways/models-dev.d.ts +1 -0
  110. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  111. package/dist/llm/model/gateways/netlify.d.ts +2 -1
  112. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  113. package/dist/llm/model/is-v2-model.d.ts +3 -0
  114. package/dist/llm/model/is-v2-model.d.ts.map +1 -0
  115. package/dist/llm/model/model-method-from-agent.d.ts +4 -0
  116. package/dist/llm/model/model-method-from-agent.d.ts.map +1 -0
  117. package/dist/llm/model/model.loop.d.ts +2 -2
  118. package/dist/llm/model/model.loop.d.ts.map +1 -1
  119. package/dist/llm/model/model.loop.types.d.ts +2 -0
  120. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  121. package/dist/llm/model/provider-registry.d.ts +11 -1
  122. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  123. package/dist/llm/model/provider-types.generated.d.ts +56 -7
  124. package/dist/llm/model/registry-generator.d.ts.map +1 -1
  125. package/dist/llm/model/resolve-model.d.ts +1 -1
  126. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  127. package/dist/llm/model/router.d.ts +12 -5
  128. package/dist/llm/model/router.d.ts.map +1 -1
  129. package/dist/llm/model/shared.types.d.ts +10 -4
  130. package/dist/llm/model/shared.types.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/network/index.d.ts.map +1 -1
  134. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +37 -0
  135. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -0
  136. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  137. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  138. package/dist/loop/test-utils/options.d.ts.map +1 -1
  139. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  140. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  141. package/dist/loop/test-utils/textStream.d.ts.map +1 -1
  142. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  143. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  144. package/dist/loop/test-utils/utils.d.ts +1 -1
  145. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  146. package/dist/loop/types.d.ts +8 -3
  147. package/dist/loop/types.d.ts.map +1 -1
  148. package/dist/loop/workflows/agentic-execution/index.d.ts +12 -12
  149. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  150. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +9 -9
  151. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  152. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +4 -4
  153. package/dist/loop/workflows/agentic-loop/index.d.ts +13 -12
  154. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  155. package/dist/loop/workflows/run-state.d.ts +2 -2
  156. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  157. package/dist/loop/workflows/schema.d.ts +4 -4
  158. package/dist/loop/workflows/stream.d.ts.map +1 -1
  159. package/dist/mastra/index.cjs +2 -2
  160. package/dist/mastra/index.d.ts +127 -3
  161. package/dist/mastra/index.d.ts.map +1 -1
  162. package/dist/mastra/index.js +1 -1
  163. package/dist/memory/index.cjs +8 -8
  164. package/dist/memory/index.js +4 -4
  165. package/dist/models-dev-GCVENVWA.js +3 -0
  166. package/dist/{models-dev-DNBKXHT4.js.map → models-dev-GCVENVWA.js.map} +1 -1
  167. package/dist/models-dev-TIBJR6IG.cjs +12 -0
  168. package/dist/{models-dev-YBEEQIX6.cjs.map → models-dev-TIBJR6IG.cjs.map} +1 -1
  169. package/dist/netlify-NTSNNT6F.cjs +12 -0
  170. package/dist/{netlify-GWNGSIRZ.cjs.map → netlify-NTSNNT6F.cjs.map} +1 -1
  171. package/dist/netlify-O5NJW7CF.js +3 -0
  172. package/dist/{netlify-7G2L5VSH.js.map → netlify-O5NJW7CF.js.map} +1 -1
  173. package/dist/processors/index.cjs +11 -11
  174. package/dist/processors/index.js +1 -1
  175. package/dist/provider-registry-74GMFZKT.js +3 -0
  176. package/dist/provider-registry-74GMFZKT.js.map +1 -0
  177. package/dist/provider-registry-BZP3DIIV.cjs +40 -0
  178. package/dist/provider-registry-BZP3DIIV.cjs.map +1 -0
  179. package/dist/provider-registry.json +140 -18
  180. package/dist/{registry-generator-MK63POJO.cjs → registry-generator-JPCV47SC.cjs} +6 -4
  181. package/dist/registry-generator-JPCV47SC.cjs.map +1 -0
  182. package/dist/{registry-generator-H4YNODDH.js → registry-generator-XD4FPZTU.js} +6 -4
  183. package/dist/registry-generator-XD4FPZTU.js.map +1 -0
  184. package/dist/relevance/index.cjs +2 -2
  185. package/dist/relevance/index.js +1 -1
  186. package/dist/server/index.cjs +2 -1
  187. package/dist/server/index.cjs.map +1 -1
  188. package/dist/server/index.d.ts +4 -0
  189. package/dist/server/index.d.ts.map +1 -1
  190. package/dist/server/index.js +2 -1
  191. package/dist/server/index.js.map +1 -1
  192. package/dist/storage/domains/workflows/inmemory.d.ts +1 -1
  193. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  194. package/dist/storage/index.cjs +29 -29
  195. package/dist/storage/index.js +1 -1
  196. package/dist/storage/types.d.ts +2 -1
  197. package/dist/storage/types.d.ts.map +1 -1
  198. package/dist/stream/RunOutput.d.ts +1 -1
  199. package/dist/stream/RunOutput.d.ts.map +1 -1
  200. package/dist/stream/aisdk/v5/execute.d.ts +6 -3
  201. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  202. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  203. package/dist/stream/base/input.d.ts +1 -1
  204. package/dist/stream/base/output.d.ts.map +1 -1
  205. package/dist/stream/index.cjs +11 -11
  206. package/dist/stream/index.js +2 -2
  207. package/dist/stream/types.d.ts +4 -3
  208. package/dist/stream/types.d.ts.map +1 -1
  209. package/dist/test-utils/llm-mock.cjs +2 -2
  210. package/dist/test-utils/llm-mock.js +1 -1
  211. package/dist/tools/index.cjs +4 -4
  212. package/dist/tools/index.js +1 -1
  213. package/dist/tools/is-vercel-tool.cjs +2 -2
  214. package/dist/tools/is-vercel-tool.js +1 -1
  215. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  216. package/dist/tools/tool.d.ts.map +1 -1
  217. package/dist/tools/types.d.ts +1 -0
  218. package/dist/tools/types.d.ts.map +1 -1
  219. package/dist/tools/validation.d.ts +12 -0
  220. package/dist/tools/validation.d.ts.map +1 -1
  221. package/dist/utils.cjs +25 -21
  222. package/dist/utils.d.ts +4 -1
  223. package/dist/utils.d.ts.map +1 -1
  224. package/dist/utils.js +1 -1
  225. package/dist/workflows/default.d.ts +24 -8
  226. package/dist/workflows/default.d.ts.map +1 -1
  227. package/dist/workflows/evented/execution-engine.d.ts +3 -1
  228. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  229. package/dist/workflows/evented/index.cjs +10 -10
  230. package/dist/workflows/evented/index.js +1 -1
  231. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  232. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
  233. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  234. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
  235. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  236. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  237. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
  238. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  239. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
  240. package/dist/workflows/evented/workflow.d.ts +2 -1
  241. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  242. package/dist/workflows/execution-engine.d.ts +4 -2
  243. package/dist/workflows/execution-engine.d.ts.map +1 -1
  244. package/dist/workflows/index.cjs +28 -16
  245. package/dist/workflows/index.js +1 -1
  246. package/dist/workflows/step.d.ts +2 -1
  247. package/dist/workflows/step.d.ts.map +1 -1
  248. package/dist/workflows/types.d.ts +64 -7
  249. package/dist/workflows/types.d.ts.map +1 -1
  250. package/dist/workflows/utils.d.ts +20 -0
  251. package/dist/workflows/utils.d.ts.map +1 -1
  252. package/dist/workflows/workflow.d.ts +109 -40
  253. package/dist/workflows/workflow.d.ts.map +1 -1
  254. package/package.json +12 -20
  255. package/src/llm/model/provider-types.generated.d.ts +56 -7
  256. package/dist/chunk-2ZVKF4HP.cjs.map +0 -1
  257. package/dist/chunk-4CDL2QJT.js.map +0 -1
  258. package/dist/chunk-7AHYOMHJ.js.map +0 -1
  259. package/dist/chunk-CB575O6L.cjs.map +0 -1
  260. package/dist/chunk-CD56CXVE.cjs.map +0 -1
  261. package/dist/chunk-CINNK34N.js.map +0 -1
  262. package/dist/chunk-DNEURYF3.cjs.map +0 -1
  263. package/dist/chunk-ECFXGXWO.cjs.map +0 -1
  264. package/dist/chunk-ET6UOTTU.cjs.map +0 -1
  265. package/dist/chunk-GGYKYORQ.cjs.map +0 -1
  266. package/dist/chunk-H6CZGPZD.js.map +0 -1
  267. package/dist/chunk-HDJFSJCK.js.map +0 -1
  268. package/dist/chunk-I4CXL4SR.js.map +0 -1
  269. package/dist/chunk-IQO7ANVS.cjs.map +0 -1
  270. package/dist/chunk-JPGVRWWL.js.map +0 -1
  271. package/dist/chunk-JUBFO5J3.js.map +0 -1
  272. package/dist/chunk-JV2KH24V.js.map +0 -1
  273. package/dist/chunk-LJFJTTZQ.cjs +0 -4
  274. package/dist/chunk-LWBQ4P4N.cjs.map +0 -1
  275. package/dist/chunk-MA7TEM62.cjs.map +0 -1
  276. package/dist/chunk-MSWTA73A.cjs.map +0 -1
  277. package/dist/chunk-MV7KHWUT.js.map +0 -1
  278. package/dist/chunk-VOQ3ULMT.js.map +0 -1
  279. package/dist/chunk-W7UH2PWL.js.map +0 -1
  280. package/dist/chunk-WM6CK2F3.cjs.map +0 -1
  281. package/dist/chunk-ZV5CC35D.js +0 -3
  282. package/dist/models-dev-DNBKXHT4.js +0 -3
  283. package/dist/models-dev-YBEEQIX6.cjs +0 -12
  284. package/dist/netlify-7G2L5VSH.js +0 -3
  285. package/dist/netlify-GWNGSIRZ.cjs +0 -12
  286. package/dist/registry-generator-H4YNODDH.js.map +0 -1
  287. package/dist/registry-generator-MK63POJO.cjs.map +0 -1
@@ -1,15 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkLWBQ4P4N_cjs = require('./chunk-LWBQ4P4N.cjs');
4
- var chunkIQO7ANVS_cjs = require('./chunk-IQO7ANVS.cjs');
5
- var chunkCB575O6L_cjs = require('./chunk-CB575O6L.cjs');
6
- var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
7
- var chunkJ7O6WENZ_cjs = require('./chunk-J7O6WENZ.cjs');
8
3
  var fs = require('fs');
9
4
  var module$1 = require('module');
10
5
  var os = require('os');
11
6
  var path = require('path');
12
- var crypto = require('crypto');
13
7
 
14
8
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
15
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -18,6 +12,8 @@ var fs__default = /*#__PURE__*/_interopDefault(fs);
18
12
  var os__default = /*#__PURE__*/_interopDefault(os);
19
13
  var path__default = /*#__PURE__*/_interopDefault(path);
20
14
 
15
+ // src/llm/model/provider-registry.ts
16
+
21
17
  // src/llm/model/provider-registry.json
22
18
  var provider_registry_default = {
23
19
  providers: {
@@ -648,7 +644,12 @@ var provider_registry_default = {
648
644
  apiKeyEnvVar: "BASETEN_API_KEY",
649
645
  apiKeyHeader: "Authorization",
650
646
  name: "Baseten",
651
- models: ["Qwen/Qwen3-Coder-480B-A35B-Instruct", "moonshotai/Kimi-K2-Instruct-0905", "zai-org/GLM-4.6"],
647
+ models: [
648
+ "Qwen/Qwen3-Coder-480B-A35B-Instruct",
649
+ "moonshotai/Kimi-K2-Instruct-0905",
650
+ "moonshotai/Kimi-K2-Thinking",
651
+ "zai-org/GLM-4.6"
652
+ ],
652
653
  docUrl: "https://docs.baseten.co/development/model-apis/overview",
653
654
  gateway: "models.dev"
654
655
  },
@@ -682,7 +683,10 @@ var provider_registry_default = {
682
683
  apiKeyHeader: "Authorization",
683
684
  name: "OpenCode Zen",
684
685
  models: [
685
- "an-gd4",
686
+ "alpha-doubao-seed-code",
687
+ "alpha-gd4",
688
+ "alpha-kimi-k2-thinking",
689
+ "alpha-minimax-m2",
686
690
  "big-pickle",
687
691
  "claude-3-5-haiku",
688
692
  "claude-haiku-4-5",
@@ -692,9 +696,11 @@ var provider_registry_default = {
692
696
  "glm-4.6",
693
697
  "gpt-5",
694
698
  "gpt-5-codex",
699
+ "gpt-5-nano",
700
+ "gpt-5.1",
701
+ "gpt-5.1-codex",
695
702
  "grok-code",
696
703
  "kimi-k2",
697
- "minimax-m2",
698
704
  "qwen3-coder"
699
705
  ],
700
706
  docUrl: "https://opencode.ai/docs/zen",
@@ -724,6 +730,15 @@ var provider_registry_default = {
724
730
  docUrl: "https://fastrouter.ai/models",
725
731
  gateway: "models.dev"
726
732
  },
733
+ minimax: {
734
+ url: "https://api.minimax.io/anthropic/v1",
735
+ apiKeyEnvVar: "MINIMAX_API_KEY",
736
+ apiKeyHeader: "Authorization",
737
+ name: "Minimax",
738
+ models: ["MiniMax-M2"],
739
+ docUrl: "https://platform.minimax.io/docs/guides/quickstart",
740
+ gateway: "models.dev"
741
+ },
727
742
  google: {
728
743
  apiKeyEnvVar: "GOOGLE_GENERATIVE_AI_API_KEY",
729
744
  name: "Google",
@@ -747,6 +762,7 @@ var provider_registry_default = {
747
762
  "gemini-2.5-pro-preview-05-06",
748
763
  "gemini-2.5-pro-preview-06-05",
749
764
  "gemini-2.5-pro-preview-tts",
765
+ "gemini-3-pro-preview",
750
766
  "gemini-embedding-001",
751
767
  "gemini-flash-latest",
752
768
  "gemini-flash-lite-latest",
@@ -807,6 +823,10 @@ var provider_registry_default = {
807
823
  "gpt-5-mini",
808
824
  "gpt-5-nano",
809
825
  "gpt-5-pro",
826
+ "gpt-5.1",
827
+ "gpt-5.1-chat-latest",
828
+ "gpt-5.1-codex",
829
+ "gpt-5.1-codex-mini",
810
830
  "o1",
811
831
  "o1-mini",
812
832
  "o1-preview",
@@ -881,13 +901,14 @@ var provider_registry_default = {
881
901
  "google/gemma-3-27b-it",
882
902
  "google/gemma-3n-e4b-it",
883
903
  "google/gemma-3n-e4b-it:free",
904
+ "kwaipilot/kat-coder-pro:free",
884
905
  "meta-llama/llama-3.2-11b-vision-instruct",
885
906
  "meta-llama/llama-3.3-70b-instruct:free",
886
907
  "meta-llama/llama-4-scout:free",
887
908
  "microsoft/mai-ds-r1:free",
888
909
  "minimax/minimax-01",
889
910
  "minimax/minimax-m1",
890
- "minimax/minimax-m2:free",
911
+ "minimax/minimax-m2",
891
912
  "mistralai/codestral-2508",
892
913
  "mistralai/devstral-medium-2507",
893
914
  "mistralai/devstral-small-2505",
@@ -920,6 +941,10 @@ var provider_registry_default = {
920
941
  "openai/gpt-5-mini",
921
942
  "openai/gpt-5-nano",
922
943
  "openai/gpt-5-pro",
944
+ "openai/gpt-5.1",
945
+ "openai/gpt-5.1-chat",
946
+ "openai/gpt-5.1-codex",
947
+ "openai/gpt-5.1-codex-mini",
923
948
  "openai/gpt-oss-120b",
924
949
  "openai/gpt-oss-120b:exacto",
925
950
  "openai/gpt-oss-20b",
@@ -928,6 +953,8 @@ var provider_registry_default = {
928
953
  "openrouter/horizon-alpha",
929
954
  "openrouter/horizon-beta",
930
955
  "openrouter/polaris-alpha",
956
+ "openrouter/sherlock-dash-alpha",
957
+ "openrouter/sherlock-think-alpha",
931
958
  "openrouter/sonoma-dusk-alpha",
932
959
  "openrouter/sonoma-sky-alpha",
933
960
  "qwen/qwen-2.5-coder-32b-instruct",
@@ -986,7 +1013,10 @@ var provider_registry_default = {
986
1013
  "inclusionai/lint-1t",
987
1014
  "inclusionai/ring-1t",
988
1015
  "kuaishou/kat-coder-pro-v1",
1016
+ "minimax/minimax-m2",
989
1017
  "moonshotai/kimi-k2-0905",
1018
+ "moonshotai/kimi-k2-thinking",
1019
+ "moonshotai/kimi-k2-thinking-turbo",
990
1020
  "openai/gpt-5",
991
1021
  "openai/gpt-5-codex",
992
1022
  "qwen/qwen3-coder-plus",
@@ -1000,6 +1030,31 @@ var provider_registry_default = {
1000
1030
  docUrl: "https://docs.zenmux.ai",
1001
1031
  gateway: "models.dev"
1002
1032
  },
1033
+ ovhcloud: {
1034
+ url: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
1035
+ apiKeyEnvVar: "OVHCLOUD_API_KEY",
1036
+ apiKeyHeader: "Authorization",
1037
+ name: "OVHcloud AI Endpoints",
1038
+ models: [
1039
+ "deepseek-r1-distill-llama-70b",
1040
+ "gpt-oss-120b",
1041
+ "gpt-oss-20b",
1042
+ "llama-3.1-8b-instruct",
1043
+ "llava-next-mistral-7b",
1044
+ "meta-llama-3_1-70b-instruct",
1045
+ "meta-llama-3_3-70b-instruct",
1046
+ "mistral-7b-instruct-v0.3",
1047
+ "mistral-nemo-instruct-2407",
1048
+ "mistral-small-3.2-24b-instruct-2506",
1049
+ "mixtral-8x7b-instruct-v0.1",
1050
+ "qwen2.5-coder-32b-instruct",
1051
+ "qwen2.5-vl-72b-instruct",
1052
+ "qwen3-32b",
1053
+ "qwen3-coder-30b-a3b-instruct"
1054
+ ],
1055
+ docUrl: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//",
1056
+ gateway: "models.dev"
1057
+ },
1003
1058
  iflowcn: {
1004
1059
  url: "https://apis.iflow.cn/v1",
1005
1060
  apiKeyEnvVar: "IFLOW_API_KEY",
@@ -1013,6 +1068,7 @@ var provider_registry_default = {
1013
1068
  "glm-4.6",
1014
1069
  "kimi-k2",
1015
1070
  "kimi-k2-0905",
1071
+ "minimax-m2",
1016
1072
  "qwen3-235b",
1017
1073
  "qwen3-235b-a22b-instruct",
1018
1074
  "qwen3-235b-a22b-thinking-2507",
@@ -1139,9 +1195,11 @@ var provider_registry_default = {
1139
1195
  name: "Requesty",
1140
1196
  models: [
1141
1197
  "anthropic/claude-3-7-sonnet",
1142
- "anthropic/claude-4-sonnet-20250522",
1198
+ "anthropic/claude-haiku-4-5",
1143
1199
  "anthropic/claude-opus-4",
1144
- "anthropic/claude-opus-4-1-20250805",
1200
+ "anthropic/claude-opus-4-1",
1201
+ "anthropic/claude-sonnet-4",
1202
+ "anthropic/claude-sonnet-4-5",
1145
1203
  "google/gemini-2.5-flash",
1146
1204
  "google/gemini-2.5-pro",
1147
1205
  "openai/gpt-4.1",
@@ -1150,7 +1208,9 @@ var provider_registry_default = {
1150
1208
  "openai/gpt-5",
1151
1209
  "openai/gpt-5-mini",
1152
1210
  "openai/gpt-5-nano",
1153
- "openai/o4-mini"
1211
+ "openai/o4-mini",
1212
+ "xai/grok-4",
1213
+ "xai/grok-4-fast"
1154
1214
  ],
1155
1215
  docUrl: "https://requesty.ai/solution/llm-routing/models",
1156
1216
  gateway: "models.dev"
@@ -1294,9 +1354,7 @@ var provider_registry_default = {
1294
1354
  gateway: "netlify",
1295
1355
  models: [
1296
1356
  "anthropic/claude-3-5-haiku-20241022",
1297
- "anthropic/claude-3-5-haiku-latest",
1298
1357
  "anthropic/claude-3-7-sonnet-20250219",
1299
- "anthropic/claude-3-7-sonnet-latest",
1300
1358
  "anthropic/claude-3-haiku-20240307",
1301
1359
  "anthropic/claude-haiku-4-5-20251001",
1302
1360
  "anthropic/claude-opus-4-1-20250805",
@@ -1306,11 +1364,13 @@ var provider_registry_default = {
1306
1364
  "gemini/gemini-2.0-flash",
1307
1365
  "gemini/gemini-2.0-flash-lite",
1308
1366
  "gemini/gemini-2.5-flash",
1367
+ "gemini/gemini-2.5-flash-image",
1309
1368
  "gemini/gemini-2.5-flash-image-preview",
1310
1369
  "gemini/gemini-2.5-flash-lite",
1311
1370
  "gemini/gemini-2.5-flash-lite-preview-09-2025",
1312
1371
  "gemini/gemini-2.5-flash-preview-09-2025",
1313
1372
  "gemini/gemini-2.5-pro",
1373
+ "gemini/gemini-3-pro-preview",
1314
1374
  "gemini/gemini-flash-latest",
1315
1375
  "gemini/gemini-flash-lite-latest",
1316
1376
  "openai/codex-mini-latest",
@@ -1320,10 +1380,15 @@ var provider_registry_default = {
1320
1380
  "openai/gpt-4o",
1321
1381
  "openai/gpt-4o-mini",
1322
1382
  "openai/gpt-5",
1383
+ "openai/gpt-5-2025-08-07",
1323
1384
  "openai/gpt-5-codex",
1324
1385
  "openai/gpt-5-mini",
1386
+ "openai/gpt-5-mini-2025-08-07",
1325
1387
  "openai/gpt-5-nano",
1326
1388
  "openai/gpt-5-pro",
1389
+ "openai/gpt-5.1",
1390
+ "openai/gpt-5.1-2025-11-13",
1391
+ "openai/gpt-5.1-codex",
1327
1392
  "openai/o3",
1328
1393
  "openai/o3-mini",
1329
1394
  "openai/o4-mini"
@@ -1797,7 +1862,12 @@ var provider_registry_default = {
1797
1862
  "moonshotai/Kimi-K2-Instruct",
1798
1863
  "openai/gpt-oss-120b"
1799
1864
  ],
1800
- baseten: ["Qwen/Qwen3-Coder-480B-A35B-Instruct", "moonshotai/Kimi-K2-Instruct-0905", "zai-org/GLM-4.6"],
1865
+ baseten: [
1866
+ "Qwen/Qwen3-Coder-480B-A35B-Instruct",
1867
+ "moonshotai/Kimi-K2-Instruct-0905",
1868
+ "moonshotai/Kimi-K2-Thinking",
1869
+ "zai-org/GLM-4.6"
1870
+ ],
1801
1871
  huggingface: [
1802
1872
  "MiniMaxAI/MiniMax-M2",
1803
1873
  "Qwen/Qwen3-235B-A22B-Thinking-2507",
@@ -1815,7 +1885,10 @@ var provider_registry_default = {
1815
1885
  "zai-org/GLM-4.6"
1816
1886
  ],
1817
1887
  opencode: [
1818
- "an-gd4",
1888
+ "alpha-doubao-seed-code",
1889
+ "alpha-gd4",
1890
+ "alpha-kimi-k2-thinking",
1891
+ "alpha-minimax-m2",
1819
1892
  "big-pickle",
1820
1893
  "claude-3-5-haiku",
1821
1894
  "claude-haiku-4-5",
@@ -1825,9 +1898,11 @@ var provider_registry_default = {
1825
1898
  "glm-4.6",
1826
1899
  "gpt-5",
1827
1900
  "gpt-5-codex",
1901
+ "gpt-5-nano",
1902
+ "gpt-5.1",
1903
+ "gpt-5.1-codex",
1828
1904
  "grok-code",
1829
1905
  "kimi-k2",
1830
- "minimax-m2",
1831
1906
  "qwen3-coder"
1832
1907
  ],
1833
1908
  fastrouter: [
@@ -1846,6 +1921,7 @@ var provider_registry_default = {
1846
1921
  "qwen/qwen3-coder",
1847
1922
  "x-ai/grok-4"
1848
1923
  ],
1924
+ minimax: ["MiniMax-M2"],
1849
1925
  google: [
1850
1926
  "gemini-1.5-flash",
1851
1927
  "gemini-1.5-flash-8b",
@@ -1866,6 +1942,7 @@ var provider_registry_default = {
1866
1942
  "gemini-2.5-pro-preview-05-06",
1867
1943
  "gemini-2.5-pro-preview-06-05",
1868
1944
  "gemini-2.5-pro-preview-tts",
1945
+ "gemini-3-pro-preview",
1869
1946
  "gemini-embedding-001",
1870
1947
  "gemini-flash-latest",
1871
1948
  "gemini-flash-lite-latest",
@@ -1904,6 +1981,10 @@ var provider_registry_default = {
1904
1981
  "gpt-5-mini",
1905
1982
  "gpt-5-nano",
1906
1983
  "gpt-5-pro",
1984
+ "gpt-5.1",
1985
+ "gpt-5.1-chat-latest",
1986
+ "gpt-5.1-codex",
1987
+ "gpt-5.1-codex-mini",
1907
1988
  "o1",
1908
1989
  "o1-mini",
1909
1990
  "o1-preview",
@@ -1955,13 +2036,14 @@ var provider_registry_default = {
1955
2036
  "google/gemma-3-27b-it",
1956
2037
  "google/gemma-3n-e4b-it",
1957
2038
  "google/gemma-3n-e4b-it:free",
2039
+ "kwaipilot/kat-coder-pro:free",
1958
2040
  "meta-llama/llama-3.2-11b-vision-instruct",
1959
2041
  "meta-llama/llama-3.3-70b-instruct:free",
1960
2042
  "meta-llama/llama-4-scout:free",
1961
2043
  "microsoft/mai-ds-r1:free",
1962
2044
  "minimax/minimax-01",
1963
2045
  "minimax/minimax-m1",
1964
- "minimax/minimax-m2:free",
2046
+ "minimax/minimax-m2",
1965
2047
  "mistralai/codestral-2508",
1966
2048
  "mistralai/devstral-medium-2507",
1967
2049
  "mistralai/devstral-small-2505",
@@ -1994,6 +2076,10 @@ var provider_registry_default = {
1994
2076
  "openai/gpt-5-mini",
1995
2077
  "openai/gpt-5-nano",
1996
2078
  "openai/gpt-5-pro",
2079
+ "openai/gpt-5.1",
2080
+ "openai/gpt-5.1-chat",
2081
+ "openai/gpt-5.1-codex",
2082
+ "openai/gpt-5.1-codex-mini",
1997
2083
  "openai/gpt-oss-120b",
1998
2084
  "openai/gpt-oss-120b:exacto",
1999
2085
  "openai/gpt-oss-20b",
@@ -2002,6 +2088,8 @@ var provider_registry_default = {
2002
2088
  "openrouter/horizon-alpha",
2003
2089
  "openrouter/horizon-beta",
2004
2090
  "openrouter/polaris-alpha",
2091
+ "openrouter/sherlock-dash-alpha",
2092
+ "openrouter/sherlock-think-alpha",
2005
2093
  "openrouter/sonoma-dusk-alpha",
2006
2094
  "openrouter/sonoma-sky-alpha",
2007
2095
  "qwen/qwen-2.5-coder-32b-instruct",
@@ -2052,7 +2140,10 @@ var provider_registry_default = {
2052
2140
  "inclusionai/lint-1t",
2053
2141
  "inclusionai/ring-1t",
2054
2142
  "kuaishou/kat-coder-pro-v1",
2143
+ "minimax/minimax-m2",
2055
2144
  "moonshotai/kimi-k2-0905",
2145
+ "moonshotai/kimi-k2-thinking",
2146
+ "moonshotai/kimi-k2-thinking-turbo",
2056
2147
  "openai/gpt-5",
2057
2148
  "openai/gpt-5-codex",
2058
2149
  "qwen/qwen3-coder-plus",
@@ -2063,6 +2154,23 @@ var provider_registry_default = {
2063
2154
  "z-ai/glm-4.5-air",
2064
2155
  "z-ai/glm-4.6"
2065
2156
  ],
2157
+ ovhcloud: [
2158
+ "deepseek-r1-distill-llama-70b",
2159
+ "gpt-oss-120b",
2160
+ "gpt-oss-20b",
2161
+ "llama-3.1-8b-instruct",
2162
+ "llava-next-mistral-7b",
2163
+ "meta-llama-3_1-70b-instruct",
2164
+ "meta-llama-3_3-70b-instruct",
2165
+ "mistral-7b-instruct-v0.3",
2166
+ "mistral-nemo-instruct-2407",
2167
+ "mistral-small-3.2-24b-instruct-2506",
2168
+ "mixtral-8x7b-instruct-v0.1",
2169
+ "qwen2.5-coder-32b-instruct",
2170
+ "qwen2.5-vl-72b-instruct",
2171
+ "qwen3-32b",
2172
+ "qwen3-coder-30b-a3b-instruct"
2173
+ ],
2066
2174
  iflowcn: [
2067
2175
  "deepseek-r1",
2068
2176
  "deepseek-v3",
@@ -2071,6 +2179,7 @@ var provider_registry_default = {
2071
2179
  "glm-4.6",
2072
2180
  "kimi-k2",
2073
2181
  "kimi-k2-0905",
2182
+ "minimax-m2",
2074
2183
  "qwen3-235b",
2075
2184
  "qwen3-235b-a22b-instruct",
2076
2185
  "qwen3-235b-a22b-thinking-2507",
@@ -2141,9 +2250,11 @@ var provider_registry_default = {
2141
2250
  ],
2142
2251
  requesty: [
2143
2252
  "anthropic/claude-3-7-sonnet",
2144
- "anthropic/claude-4-sonnet-20250522",
2253
+ "anthropic/claude-haiku-4-5",
2145
2254
  "anthropic/claude-opus-4",
2146
- "anthropic/claude-opus-4-1-20250805",
2255
+ "anthropic/claude-opus-4-1",
2256
+ "anthropic/claude-sonnet-4",
2257
+ "anthropic/claude-sonnet-4-5",
2147
2258
  "google/gemini-2.5-flash",
2148
2259
  "google/gemini-2.5-pro",
2149
2260
  "openai/gpt-4.1",
@@ -2152,7 +2263,9 @@ var provider_registry_default = {
2152
2263
  "openai/gpt-5",
2153
2264
  "openai/gpt-5-mini",
2154
2265
  "openai/gpt-5-nano",
2155
- "openai/o4-mini"
2266
+ "openai/o4-mini",
2267
+ "xai/grok-4",
2268
+ "xai/grok-4-fast"
2156
2269
  ],
2157
2270
  morph: ["auto", "morph-v3-fast", "morph-v3-large"],
2158
2271
  lmstudio: ["openai/gpt-oss-20b", "qwen/qwen3-30b-a3b-2507", "qwen/qwen3-coder-30b"],
@@ -2226,9 +2339,7 @@ var provider_registry_default = {
2226
2339
  cerebras: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "qwen-3-coder-480b", "zai-glm-4.6"],
2227
2340
  netlify: [
2228
2341
  "anthropic/claude-3-5-haiku-20241022",
2229
- "anthropic/claude-3-5-haiku-latest",
2230
2342
  "anthropic/claude-3-7-sonnet-20250219",
2231
- "anthropic/claude-3-7-sonnet-latest",
2232
2343
  "anthropic/claude-3-haiku-20240307",
2233
2344
  "anthropic/claude-haiku-4-5-20251001",
2234
2345
  "anthropic/claude-opus-4-1-20250805",
@@ -2238,11 +2349,13 @@ var provider_registry_default = {
2238
2349
  "gemini/gemini-2.0-flash",
2239
2350
  "gemini/gemini-2.0-flash-lite",
2240
2351
  "gemini/gemini-2.5-flash",
2352
+ "gemini/gemini-2.5-flash-image",
2241
2353
  "gemini/gemini-2.5-flash-image-preview",
2242
2354
  "gemini/gemini-2.5-flash-lite",
2243
2355
  "gemini/gemini-2.5-flash-lite-preview-09-2025",
2244
2356
  "gemini/gemini-2.5-flash-preview-09-2025",
2245
2357
  "gemini/gemini-2.5-pro",
2358
+ "gemini/gemini-3-pro-preview",
2246
2359
  "gemini/gemini-flash-latest",
2247
2360
  "gemini/gemini-flash-lite-latest",
2248
2361
  "openai/codex-mini-latest",
@@ -2252,10 +2365,15 @@ var provider_registry_default = {
2252
2365
  "openai/gpt-4o",
2253
2366
  "openai/gpt-4o-mini",
2254
2367
  "openai/gpt-5",
2368
+ "openai/gpt-5-2025-08-07",
2255
2369
  "openai/gpt-5-codex",
2256
2370
  "openai/gpt-5-mini",
2371
+ "openai/gpt-5-mini-2025-08-07",
2257
2372
  "openai/gpt-5-nano",
2258
2373
  "openai/gpt-5-pro",
2374
+ "openai/gpt-5.1",
2375
+ "openai/gpt-5.1-2025-11-13",
2376
+ "openai/gpt-5.1-codex",
2259
2377
  "openai/o3",
2260
2378
  "openai/o3-mini",
2261
2379
  "openai/o4-mini"
@@ -2335,7 +2453,7 @@ function saveLastRefreshTimeToDisk(date) {
2335
2453
  }
2336
2454
  function getPackageRoot() {
2337
2455
  try {
2338
- const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-2ZVKF4HP.cjs', document.baseURI).href)) || "file://");
2456
+ const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-XRIVPHXV.cjs', document.baseURI).href)) || "file://");
2339
2457
  const packageJsonPath = require2.resolve("@mastra/core/package.json");
2340
2458
  return path__default.default.dirname(packageJsonPath);
2341
2459
  } catch {
@@ -2406,7 +2524,7 @@ var PROVIDER_REGISTRY = new Proxy({}, {
2406
2524
  return void 0;
2407
2525
  }
2408
2526
  });
2409
- new Proxy({}, {
2527
+ var PROVIDER_MODELS = new Proxy({}, {
2410
2528
  get(_target, prop) {
2411
2529
  const registry = GatewayRegistry.getInstance();
2412
2530
  const models = registry.getModels();
@@ -2455,12 +2573,26 @@ function getProviderConfig(providerId) {
2455
2573
  const registry = GatewayRegistry.getInstance();
2456
2574
  return registry.getProviderConfig(providerId);
2457
2575
  }
2576
+ function isProviderRegistered(providerId) {
2577
+ const registry = GatewayRegistry.getInstance();
2578
+ return registry.isProviderRegistered(providerId);
2579
+ }
2580
+ function getRegisteredProviders() {
2581
+ const registry = GatewayRegistry.getInstance();
2582
+ const providers = registry.getProviders();
2583
+ return Object.keys(providers);
2584
+ }
2585
+ function isValidModelId(modelId) {
2586
+ const { provider } = parseModelString(modelId);
2587
+ return provider !== null && isProviderRegistered(provider);
2588
+ }
2458
2589
  var GatewayRegistry = class _GatewayRegistry {
2459
2590
  static instance = null;
2460
2591
  lastRefreshTime = null;
2461
2592
  refreshInterval = null;
2462
2593
  isRefreshing = false;
2463
2594
  useDynamicLoading;
2595
+ customGateways = [];
2464
2596
  constructor(options = {}) {
2465
2597
  const isDev2 = process.env.MASTRA_DEV === "true" || process.env.MASTRA_DEV === "1";
2466
2598
  this.useDynamicLoading = options.useDynamicLoading ?? isDev2;
@@ -2474,6 +2606,19 @@ var GatewayRegistry = class _GatewayRegistry {
2474
2606
  }
2475
2607
  return _GatewayRegistry.instance;
2476
2608
  }
2609
+ /**
2610
+ * Register custom gateways for type generation
2611
+ * @param gateways - Array of custom gateway instances
2612
+ */
2613
+ registerCustomGateways(gateways) {
2614
+ this.customGateways = gateways;
2615
+ }
2616
+ /**
2617
+ * Get all registered custom gateways
2618
+ */
2619
+ getCustomGateways() {
2620
+ return this.customGateways;
2621
+ }
2477
2622
  /**
2478
2623
  * Sync providers from all gateways
2479
2624
  * Requires dynamic loading to be enabled (useDynamicLoading=true).
@@ -2489,11 +2634,12 @@ var GatewayRegistry = class _GatewayRegistry {
2489
2634
  }
2490
2635
  this.isRefreshing = true;
2491
2636
  try {
2492
- const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-YBEEQIX6.cjs');
2493
- const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-GWNGSIRZ.cjs');
2494
- const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-MK63POJO.cjs');
2495
- const gateways2 = [new ModelsDevGateway2({}), new NetlifyGateway2()];
2496
- const { providers, models } = await fetchProvidersFromGateways(gateways2);
2637
+ const { ModelsDevGateway } = await import('./models-dev-TIBJR6IG.cjs');
2638
+ const { NetlifyGateway } = await import('./netlify-NTSNNT6F.cjs');
2639
+ const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-JPCV47SC.cjs');
2640
+ const defaultGateways = [new ModelsDevGateway({}), new NetlifyGateway()];
2641
+ const gateways = [...defaultGateways, ...this.customGateways];
2642
+ const { providers, models } = await fetchProvidersFromGateways(gateways);
2497
2643
  const packageRoot = getPackageRoot();
2498
2644
  try {
2499
2645
  fs__default.default.mkdirSync(CACHE_DIR(), { recursive: true });
@@ -2606,260 +2752,13 @@ if (autoRefreshEnabled) {
2606
2752
  GatewayRegistry.getInstance({ useDynamicLoading: isDev }).startAutoRefresh();
2607
2753
  }
2608
2754
 
2609
- // src/llm/model/gateways/index.ts
2610
- function findGatewayForModel(gatewayId, gateways2) {
2611
- const prefixedGateway = gateways2.find((g) => g.prefix && gatewayId.startsWith(`${g.prefix}/`));
2612
- if (prefixedGateway) {
2613
- return prefixedGateway;
2614
- }
2615
- const unprefixedGateways = gateways2.filter((g) => !g.prefix);
2616
- for (const gateway of unprefixedGateways) {
2617
- return gateway;
2618
- }
2619
- throw new chunkTWH4PTDG_cjs.MastraError({
2620
- id: "MODEL_ROUTER_NO_GATEWAY_FOUND",
2621
- category: "USER",
2622
- domain: "MODEL_ROUTER",
2623
- text: `No Mastra model router gateway found for model id ${gatewayId}`
2624
- });
2625
- }
2626
-
2627
- // src/llm/model/router.ts
2628
- function getStaticProvidersByGateway(name) {
2629
- return Object.fromEntries(Object.entries(PROVIDER_REGISTRY).filter(([_provider, config]) => config.gateway === name));
2630
- }
2631
- var gateways = [new chunkIQO7ANVS_cjs.NetlifyGateway(), new chunkLWBQ4P4N_cjs.ModelsDevGateway(getStaticProvidersByGateway(`models.dev`))];
2632
- var ModelRouterLanguageModel = class _ModelRouterLanguageModel {
2633
- specificationVersion = "v2";
2634
- defaultObjectGenerationMode = "json";
2635
- supportsStructuredOutputs = true;
2636
- supportsImageUrls = true;
2637
- supportedUrls = {};
2638
- modelId;
2639
- provider;
2640
- config;
2641
- gateway;
2642
- constructor(config) {
2643
- let normalizedConfig;
2644
- if (typeof config === "string") {
2645
- normalizedConfig = { id: config };
2646
- } else if ("providerId" in config && "modelId" in config) {
2647
- normalizedConfig = {
2648
- id: `${config.providerId}/${config.modelId}`,
2649
- url: config.url,
2650
- apiKey: config.apiKey,
2651
- headers: config.headers
2652
- };
2653
- } else {
2654
- normalizedConfig = {
2655
- id: config.id,
2656
- url: config.url,
2657
- apiKey: config.apiKey,
2658
- headers: config.headers
2659
- };
2660
- }
2661
- const parsedConfig = {
2662
- ...normalizedConfig,
2663
- routerId: normalizedConfig.id
2664
- };
2665
- this.gateway = findGatewayForModel(normalizedConfig.id, gateways);
2666
- const parsed = chunkLWBQ4P4N_cjs.parseModelRouterId(normalizedConfig.id, this.gateway.prefix);
2667
- this.provider = parsed.providerId || "openai-compatible";
2668
- if (parsed.providerId && parsed.modelId !== normalizedConfig.id) {
2669
- parsedConfig.id = parsed.modelId;
2670
- }
2671
- this.modelId = parsedConfig.id;
2672
- this.config = parsedConfig;
2673
- }
2674
- async doGenerate() {
2675
- throw new Error(
2676
- "doGenerate is not supported by Mastra model router. Mastra only uses streaming (doStream) for all LLM calls."
2677
- );
2678
- }
2679
- async doStream(options) {
2680
- let apiKey;
2681
- try {
2682
- if (this.config.url) {
2683
- apiKey = this.config.apiKey || "";
2684
- } else {
2685
- apiKey = this.config.apiKey || await this.gateway.getApiKey(this.config.routerId);
2686
- }
2687
- } catch (error) {
2688
- return {
2689
- stream: new ReadableStream({
2690
- start(controller) {
2691
- controller.enqueue({
2692
- type: "error",
2693
- error
2694
- });
2695
- }
2696
- })
2697
- };
2698
- }
2699
- const model = await this.resolveLanguageModel({
2700
- apiKey,
2701
- ...chunkLWBQ4P4N_cjs.parseModelRouterId(this.config.routerId, this.gateway.prefix)
2702
- });
2703
- return model.doStream(options);
2704
- }
2705
- async resolveLanguageModel({
2706
- modelId,
2707
- providerId,
2708
- apiKey
2709
- }) {
2710
- const key = crypto.createHash("sha256").update(this.gateway.name + modelId + providerId + apiKey + (this.config.url || "")).digest("hex");
2711
- if (_ModelRouterLanguageModel.modelInstances.has(key)) return _ModelRouterLanguageModel.modelInstances.get(key);
2712
- if (this.config.url) {
2713
- const modelInstance2 = chunkCB575O6L_cjs.createOpenAICompatible({
2714
- name: providerId,
2715
- apiKey,
2716
- baseURL: this.config.url,
2717
- headers: this.config.headers,
2718
- supportsStructuredOutputs: true
2719
- }).chatModel(modelId);
2720
- _ModelRouterLanguageModel.modelInstances.set(key, modelInstance2);
2721
- return modelInstance2;
2722
- }
2723
- const modelInstance = await this.gateway.resolveLanguageModel({ modelId, providerId, apiKey });
2724
- _ModelRouterLanguageModel.modelInstances.set(key, modelInstance);
2725
- return modelInstance;
2726
- }
2727
- static modelInstances = /* @__PURE__ */ new Map();
2728
- };
2729
-
2730
- // src/llm/model/resolve-model.ts
2731
- function isOpenAICompatibleObjectConfig(modelConfig) {
2732
- if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) return false;
2733
- if (typeof modelConfig === "object" && !("model" in modelConfig)) {
2734
- if ("id" in modelConfig) return true;
2735
- if ("providerId" in modelConfig && "modelId" in modelConfig) return true;
2736
- }
2737
- return false;
2738
- }
2739
- async function resolveModelConfig(modelConfig, requestContext = new chunkJ7O6WENZ_cjs.RequestContext(), mastra) {
2740
- if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) {
2741
- return modelConfig;
2742
- }
2743
- if (typeof modelConfig === "string" || isOpenAICompatibleObjectConfig(modelConfig)) {
2744
- return new ModelRouterLanguageModel(modelConfig);
2745
- }
2746
- if (typeof modelConfig === "function") {
2747
- const fromDynamic = await modelConfig({ requestContext, mastra });
2748
- if (typeof fromDynamic === "string" || isOpenAICompatibleObjectConfig(fromDynamic)) {
2749
- return new ModelRouterLanguageModel(fromDynamic);
2750
- }
2751
- return fromDynamic;
2752
- }
2753
- throw new Error("Invalid model configuration provided");
2754
- }
2755
-
2756
- // src/llm/model/embedding-router.ts
2757
- var ModelRouterEmbeddingModel = class {
2758
- specificationVersion = "v2";
2759
- modelId;
2760
- provider;
2761
- maxEmbeddingsPerCall = 2048;
2762
- supportsParallelCalls = true;
2763
- providerModel;
2764
- constructor(config) {
2765
- let normalizedConfig;
2766
- if (typeof config === "string") {
2767
- const parts = config.split("/");
2768
- if (parts.length !== 2) {
2769
- throw new Error(`Invalid model string format: "${config}". Expected format: "provider/model"`);
2770
- }
2771
- const [providerId, modelId] = parts;
2772
- normalizedConfig = { providerId, modelId };
2773
- } else if ("providerId" in config && "modelId" in config) {
2774
- normalizedConfig = {
2775
- providerId: config.providerId,
2776
- modelId: config.modelId,
2777
- url: config.url,
2778
- apiKey: config.apiKey,
2779
- headers: config.headers
2780
- };
2781
- } else {
2782
- const parts = config.id.split("/");
2783
- if (parts.length !== 2) {
2784
- throw new Error(`Invalid model string format: "${config.id}". Expected format: "provider/model"`);
2785
- }
2786
- const [providerId, modelId] = parts;
2787
- normalizedConfig = {
2788
- providerId,
2789
- modelId,
2790
- url: config.url,
2791
- apiKey: config.apiKey,
2792
- headers: config.headers
2793
- };
2794
- }
2795
- this.provider = normalizedConfig.providerId;
2796
- this.modelId = normalizedConfig.modelId;
2797
- if (normalizedConfig.url) {
2798
- const apiKey = normalizedConfig.apiKey || "";
2799
- this.providerModel = chunkCB575O6L_cjs.createOpenAICompatible({
2800
- name: normalizedConfig.providerId,
2801
- apiKey,
2802
- baseURL: normalizedConfig.url,
2803
- headers: normalizedConfig.headers
2804
- }).textEmbeddingModel(normalizedConfig.modelId);
2805
- } else {
2806
- const registry = GatewayRegistry.getInstance();
2807
- const providerConfig = registry.getProviderConfig(normalizedConfig.providerId);
2808
- if (!providerConfig) {
2809
- throw new Error(`Unknown provider: ${normalizedConfig.providerId}`);
2810
- }
2811
- let apiKey = normalizedConfig.apiKey;
2812
- if (!apiKey) {
2813
- const apiKeyEnvVar = providerConfig.apiKeyEnvVar;
2814
- if (Array.isArray(apiKeyEnvVar)) {
2815
- for (const envVar of apiKeyEnvVar) {
2816
- apiKey = process.env[envVar];
2817
- if (apiKey) break;
2818
- }
2819
- } else {
2820
- apiKey = process.env[apiKeyEnvVar];
2821
- }
2822
- }
2823
- if (!apiKey) {
2824
- const envVarDisplay = Array.isArray(providerConfig.apiKeyEnvVar) ? providerConfig.apiKeyEnvVar.join(" or ") : providerConfig.apiKeyEnvVar;
2825
- throw new Error(`API key not found for provider ${normalizedConfig.providerId}. Set ${envVarDisplay}`);
2826
- }
2827
- if (normalizedConfig.providerId === "openai") {
2828
- this.providerModel = chunkCB575O6L_cjs.createOpenAI({ apiKey }).textEmbeddingModel(
2829
- normalizedConfig.modelId
2830
- );
2831
- } else if (normalizedConfig.providerId === "google") {
2832
- this.providerModel = chunkCB575O6L_cjs.createGoogleGenerativeAI({ apiKey }).textEmbedding(
2833
- normalizedConfig.modelId
2834
- );
2835
- } else {
2836
- if (!providerConfig.url) {
2837
- throw new Error(`Provider ${normalizedConfig.providerId} does not have a URL configured`);
2838
- }
2839
- this.providerModel = chunkCB575O6L_cjs.createOpenAICompatible({
2840
- name: normalizedConfig.providerId,
2841
- apiKey,
2842
- baseURL: providerConfig.url
2843
- }).textEmbeddingModel(normalizedConfig.modelId);
2844
- }
2845
- }
2846
- if (this.providerModel.maxEmbeddingsPerCall !== void 0) {
2847
- this.maxEmbeddingsPerCall = this.providerModel.maxEmbeddingsPerCall;
2848
- }
2849
- if (this.providerModel.supportsParallelCalls !== void 0) {
2850
- this.supportsParallelCalls = this.providerModel.supportsParallelCalls;
2851
- }
2852
- }
2853
- async doEmbed(args) {
2854
- return this.providerModel.doEmbed(args);
2855
- }
2856
- };
2857
-
2858
- exports.ModelRouterEmbeddingModel = ModelRouterEmbeddingModel;
2859
- exports.ModelRouterLanguageModel = ModelRouterLanguageModel;
2755
+ exports.GatewayRegistry = GatewayRegistry;
2756
+ exports.PROVIDER_MODELS = PROVIDER_MODELS;
2860
2757
  exports.PROVIDER_REGISTRY = PROVIDER_REGISTRY;
2861
2758
  exports.getProviderConfig = getProviderConfig;
2759
+ exports.getRegisteredProviders = getRegisteredProviders;
2760
+ exports.isProviderRegistered = isProviderRegistered;
2761
+ exports.isValidModelId = isValidModelId;
2862
2762
  exports.parseModelString = parseModelString;
2863
- exports.resolveModelConfig = resolveModelConfig;
2864
- //# sourceMappingURL=chunk-2ZVKF4HP.cjs.map
2865
- //# sourceMappingURL=chunk-2ZVKF4HP.cjs.map
2763
+ //# sourceMappingURL=chunk-XRIVPHXV.cjs.map
2764
+ //# sourceMappingURL=chunk-XRIVPHXV.cjs.map