@mastra/core 0.21.0 → 0.21.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 (174) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/agent/agent.d.ts +7 -1
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +13 -13
  5. package/dist/agent/index.js +2 -2
  6. package/dist/agent/input-processor/index.cjs +6 -6
  7. package/dist/agent/input-processor/index.js +1 -1
  8. package/dist/agent/utils.d.ts.map +1 -1
  9. package/dist/ai-tracing/index.cjs +32 -32
  10. package/dist/ai-tracing/index.js +1 -1
  11. package/dist/base.cjs +2 -2
  12. package/dist/base.js +1 -1
  13. package/dist/bundler/index.cjs +2 -2
  14. package/dist/bundler/index.js +1 -1
  15. package/dist/cache/index.cjs +3 -3
  16. package/dist/cache/index.js +1 -1
  17. package/dist/{chunk-EQV2PPN2.js → chunk-3NTOFNIU.js} +3 -3
  18. package/dist/{chunk-EQV2PPN2.js.map → chunk-3NTOFNIU.js.map} +1 -1
  19. package/dist/{chunk-DD3PWTXW.js → chunk-3V4O35FO.js} +4 -4
  20. package/dist/{chunk-DD3PWTXW.js.map → chunk-3V4O35FO.js.map} +1 -1
  21. package/dist/{chunk-JKJW6ASJ.cjs → chunk-44ODA6L3.cjs} +10 -10
  22. package/dist/{chunk-JKJW6ASJ.cjs.map → chunk-44ODA6L3.cjs.map} +1 -1
  23. package/dist/{chunk-VLJO4NT4.cjs → chunk-462DRETM.cjs} +62 -57
  24. package/dist/chunk-462DRETM.cjs.map +1 -0
  25. package/dist/{chunk-U5JW6KRX.js → chunk-5DZ4RYWL.js} +3 -3
  26. package/dist/{chunk-U5JW6KRX.js.map → chunk-5DZ4RYWL.js.map} +1 -1
  27. package/dist/{chunk-4L3P3PCP.cjs → chunk-6VOPKVYH.cjs} +8 -8
  28. package/dist/{chunk-4L3P3PCP.cjs.map → chunk-6VOPKVYH.cjs.map} +1 -1
  29. package/dist/{chunk-WVCEJBDR.cjs → chunk-A5KDVZDL.cjs} +3 -3
  30. package/dist/{chunk-WVCEJBDR.cjs.map → chunk-A5KDVZDL.cjs.map} +1 -1
  31. package/dist/{chunk-AVKWVYFN.cjs → chunk-AJK7QPSD.cjs} +11 -11
  32. package/dist/{chunk-AVKWVYFN.cjs.map → chunk-AJK7QPSD.cjs.map} +1 -1
  33. package/dist/{chunk-G4GBV44L.cjs → chunk-APY2BE4K.cjs} +4 -4
  34. package/dist/{chunk-G4GBV44L.cjs.map → chunk-APY2BE4K.cjs.map} +1 -1
  35. package/dist/{chunk-UU5L5GDY.cjs → chunk-B7V6NYWH.cjs} +4 -4
  36. package/dist/{chunk-UU5L5GDY.cjs.map → chunk-B7V6NYWH.cjs.map} +1 -1
  37. package/dist/{chunk-EABGDF4D.cjs → chunk-BV6CD4IZ.cjs} +9 -9
  38. package/dist/{chunk-EABGDF4D.cjs.map → chunk-BV6CD4IZ.cjs.map} +1 -1
  39. package/dist/{chunk-WU7LIV3L.cjs → chunk-DGQW5VRR.cjs} +337 -15
  40. package/dist/chunk-DGQW5VRR.cjs.map +1 -0
  41. package/dist/{chunk-MUBNGSAO.js → chunk-F6BMIPYW.js} +3 -3
  42. package/dist/{chunk-MUBNGSAO.js.map → chunk-F6BMIPYW.js.map} +1 -1
  43. package/dist/{chunk-AJQHJNNW.cjs → chunk-FESSBG5D.cjs} +17 -17
  44. package/dist/{chunk-AJQHJNNW.cjs.map → chunk-FESSBG5D.cjs.map} +1 -1
  45. package/dist/{chunk-Y3IFARBC.js → chunk-FLXB6WXO.js} +3 -3
  46. package/dist/{chunk-Y3IFARBC.js.map → chunk-FLXB6WXO.js.map} +1 -1
  47. package/dist/{chunk-UMLRW5Y3.js → chunk-HBJVAMCS.js} +16 -11
  48. package/dist/chunk-HBJVAMCS.js.map +1 -0
  49. package/dist/{chunk-VNVHOWW4.js → chunk-HP7B2TQQ.js} +335 -13
  50. package/dist/chunk-HP7B2TQQ.js.map +1 -0
  51. package/dist/{chunk-7QC3MHP7.cjs → chunk-I7KJDXUK.cjs} +4 -4
  52. package/dist/{chunk-7QC3MHP7.cjs.map → chunk-I7KJDXUK.cjs.map} +1 -1
  53. package/dist/{chunk-4PRV2Y55.cjs → chunk-IQGDOBME.cjs} +4 -4
  54. package/dist/{chunk-4PRV2Y55.cjs.map → chunk-IQGDOBME.cjs.map} +1 -1
  55. package/dist/{chunk-4EXSSE3I.js → chunk-J2OKI2L3.js} +5 -5
  56. package/dist/{chunk-4EXSSE3I.js.map → chunk-J2OKI2L3.js.map} +1 -1
  57. package/dist/{chunk-HQKCS7H7.cjs → chunk-KAV4EP3T.cjs} +4 -4
  58. package/dist/{chunk-HQKCS7H7.cjs.map → chunk-KAV4EP3T.cjs.map} +1 -1
  59. package/dist/{chunk-GBW5ZDLZ.js → chunk-KDX3ZMQ2.js} +3 -3
  60. package/dist/{chunk-GBW5ZDLZ.js.map → chunk-KDX3ZMQ2.js.map} +1 -1
  61. package/dist/{chunk-42VT5WOB.js → chunk-LBEV3YZ2.js} +3 -3
  62. package/dist/{chunk-42VT5WOB.js.map → chunk-LBEV3YZ2.js.map} +1 -1
  63. package/dist/{chunk-T4MYULBA.js → chunk-MUAFIPD7.js} +4 -4
  64. package/dist/{chunk-T4MYULBA.js.map → chunk-MUAFIPD7.js.map} +1 -1
  65. package/dist/{chunk-EF6Y74CN.js → chunk-NFIADRH5.js} +3 -3
  66. package/dist/{chunk-EF6Y74CN.js.map → chunk-NFIADRH5.js.map} +1 -1
  67. package/dist/{chunk-NXBBSTIG.js → chunk-NHKXTGR6.js} +4 -4
  68. package/dist/{chunk-NXBBSTIG.js.map → chunk-NHKXTGR6.js.map} +1 -1
  69. package/dist/{chunk-R37WYGEC.js → chunk-NUURZ3AY.js} +5 -5
  70. package/dist/{chunk-R37WYGEC.js.map → chunk-NUURZ3AY.js.map} +1 -1
  71. package/dist/{chunk-W5YMECZP.cjs → chunk-OY6UJ3QL.cjs} +4 -4
  72. package/dist/{chunk-W5YMECZP.cjs.map → chunk-OY6UJ3QL.cjs.map} +1 -1
  73. package/dist/{chunk-4HWB6PCC.cjs → chunk-QFF5JUKT.cjs} +4 -4
  74. package/dist/{chunk-4HWB6PCC.cjs.map → chunk-QFF5JUKT.cjs.map} +1 -1
  75. package/dist/{chunk-NMSLDMQ6.js → chunk-RBO5BUGG.js} +3 -3
  76. package/dist/{chunk-NMSLDMQ6.js.map → chunk-RBO5BUGG.js.map} +1 -1
  77. package/dist/{chunk-NEWEONKX.cjs → chunk-ROBLMWF6.cjs} +4 -4
  78. package/dist/{chunk-NEWEONKX.cjs.map → chunk-ROBLMWF6.cjs.map} +1 -1
  79. package/dist/chunk-SSULK22X.cjs +14 -0
  80. package/dist/{chunk-QLYANYE2.cjs.map → chunk-SSULK22X.cjs.map} +1 -1
  81. package/dist/{chunk-2KES233Q.js → chunk-T3PBU7JK.js} +3 -3
  82. package/dist/{chunk-2KES233Q.js.map → chunk-T3PBU7JK.js.map} +1 -1
  83. package/dist/{chunk-IB27A3HF.cjs → chunk-TKYKL7Y4.cjs} +4 -4
  84. package/dist/{chunk-IB27A3HF.cjs.map → chunk-TKYKL7Y4.cjs.map} +1 -1
  85. package/dist/{chunk-3Q5AADIA.js → chunk-U6CUPKV2.js} +7 -7
  86. package/dist/{chunk-3Q5AADIA.js.map → chunk-U6CUPKV2.js.map} +1 -1
  87. package/dist/{chunk-BN2M4UK5.js → chunk-UXG7PYML.js} +3 -3
  88. package/dist/{chunk-BN2M4UK5.js.map → chunk-UXG7PYML.js.map} +1 -1
  89. package/dist/{chunk-BMVFEBPE.js → chunk-VQASQG5D.js} +3 -3
  90. package/dist/{chunk-BMVFEBPE.js.map → chunk-VQASQG5D.js.map} +1 -1
  91. package/dist/{chunk-BBNBATLR.cjs → chunk-W3DS6F6G.cjs} +4 -4
  92. package/dist/{chunk-BBNBATLR.cjs.map → chunk-W3DS6F6G.cjs.map} +1 -1
  93. package/dist/{chunk-HOPRWFM3.cjs → chunk-XHPBKALR.cjs} +16 -16
  94. package/dist/{chunk-HOPRWFM3.cjs.map → chunk-XHPBKALR.cjs.map} +1 -1
  95. package/dist/{chunk-FJJV3END.cjs → chunk-XVREJCOW.cjs} +8 -8
  96. package/dist/{chunk-FJJV3END.cjs.map → chunk-XVREJCOW.cjs.map} +1 -1
  97. package/dist/{chunk-KK5LUATU.js → chunk-Z2OK2JM2.js} +3 -3
  98. package/dist/{chunk-KK5LUATU.js.map → chunk-Z2OK2JM2.js.map} +1 -1
  99. package/dist/{chunk-PYVA36ZV.js → chunk-ZMELUU72.js} +3 -3
  100. package/dist/{chunk-PYVA36ZV.js.map → chunk-ZMELUU72.js.map} +1 -1
  101. package/dist/deployer/index.cjs +2 -2
  102. package/dist/deployer/index.js +1 -1
  103. package/dist/index.cjs +61 -61
  104. package/dist/index.js +15 -15
  105. package/dist/llm/index.cjs +6 -6
  106. package/dist/llm/index.js +1 -1
  107. package/dist/llm/model/provider-types.generated.d.ts +160 -3
  108. package/dist/llm/model/registry-generator.d.ts.map +1 -1
  109. package/dist/logger/index.cjs +6 -6
  110. package/dist/logger/index.js +1 -1
  111. package/dist/loop/index.cjs +2 -2
  112. package/dist/loop/index.js +1 -1
  113. package/dist/loop/network/index.d.ts.map +1 -1
  114. package/dist/mastra/index.cjs +2 -2
  115. package/dist/mastra/index.js +1 -1
  116. package/dist/mcp/index.cjs +4 -4
  117. package/dist/mcp/index.js +2 -2
  118. package/dist/memory/index.cjs +4 -4
  119. package/dist/memory/index.js +1 -1
  120. package/dist/netlify-3B6HDHRP.cjs +12 -0
  121. package/dist/{netlify-53AMH53Z.cjs.map → netlify-3B6HDHRP.cjs.map} +1 -1
  122. package/dist/netlify-NYFKA6UB.js +3 -0
  123. package/dist/{netlify-NP3YFNSZ.js.map → netlify-NYFKA6UB.js.map} +1 -1
  124. package/dist/processors/index.cjs +11 -11
  125. package/dist/processors/index.js +1 -1
  126. package/dist/provider-registry.json +330 -8
  127. package/dist/{registry-generator-7XDUEFUT.cjs → registry-generator-6WVOHM2L.cjs} +8 -2
  128. package/dist/registry-generator-6WVOHM2L.cjs.map +1 -0
  129. package/dist/{registry-generator-ZKIT6I3E.js → registry-generator-DXRSYYYT.js} +7 -2
  130. package/dist/{registry-generator-7XDUEFUT.cjs.map → registry-generator-DXRSYYYT.js.map} +1 -1
  131. package/dist/relevance/index.cjs +4 -4
  132. package/dist/relevance/index.js +1 -1
  133. package/dist/scores/index.cjs +9 -9
  134. package/dist/scores/index.js +2 -2
  135. package/dist/scores/scoreTraces/index.cjs +8 -8
  136. package/dist/scores/scoreTraces/index.js +3 -3
  137. package/dist/server/index.cjs +2 -2
  138. package/dist/server/index.js +1 -1
  139. package/dist/storage/index.cjs +17 -17
  140. package/dist/storage/index.js +4 -4
  141. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  142. package/dist/stream/base/output.d.ts.map +1 -1
  143. package/dist/stream/index.cjs +10 -10
  144. package/dist/stream/index.js +2 -2
  145. package/dist/stream/types.d.ts +78 -8
  146. package/dist/stream/types.d.ts.map +1 -1
  147. package/dist/test-utils/llm-mock.cjs +2 -2
  148. package/dist/test-utils/llm-mock.js +1 -1
  149. package/dist/tts/index.cjs +2 -2
  150. package/dist/tts/index.js +1 -1
  151. package/dist/utils.cjs +17 -17
  152. package/dist/utils.js +1 -1
  153. package/dist/vector/index.cjs +4 -4
  154. package/dist/vector/index.js +1 -1
  155. package/dist/voice/index.cjs +4 -4
  156. package/dist/voice/index.js +1 -1
  157. package/dist/workflows/evented/index.cjs +10 -10
  158. package/dist/workflows/evented/index.js +1 -1
  159. package/dist/workflows/index.cjs +12 -12
  160. package/dist/workflows/index.js +1 -1
  161. package/dist/workflows/legacy/index.cjs +22 -22
  162. package/dist/workflows/legacy/index.js +1 -1
  163. package/dist/workflows/types.d.ts +2 -70
  164. package/dist/workflows/types.d.ts.map +1 -1
  165. package/package.json +4 -4
  166. package/src/llm/model/provider-types.generated.d.ts +160 -3
  167. package/dist/chunk-QLYANYE2.cjs +0 -14
  168. package/dist/chunk-UMLRW5Y3.js.map +0 -1
  169. package/dist/chunk-VLJO4NT4.cjs.map +0 -1
  170. package/dist/chunk-VNVHOWW4.js.map +0 -1
  171. package/dist/chunk-WU7LIV3L.cjs.map +0 -1
  172. package/dist/netlify-53AMH53Z.cjs +0 -12
  173. package/dist/netlify-NP3YFNSZ.js +0 -3
  174. package/dist/registry-generator-ZKIT6I3E.js.map +0 -1
@@ -41,7 +41,47 @@
41
41
  "apiKeyEnvVar": "DASHSCOPE_API_KEY",
42
42
  "apiKeyHeader": "Authorization",
43
43
  "name": "Alibaba",
44
- "models": ["qwen3-coder-plus"],
44
+ "models": [
45
+ "qvq-max",
46
+ "qwen-flash",
47
+ "qwen-max",
48
+ "qwen-mt-plus",
49
+ "qwen-mt-turbo",
50
+ "qwen-omni-turbo",
51
+ "qwen-omni-turbo-realtime",
52
+ "qwen-plus",
53
+ "qwen-plus-character-ja",
54
+ "qwen-turbo",
55
+ "qwen-vl-max",
56
+ "qwen-vl-ocr",
57
+ "qwen-vl-plus",
58
+ "qwen2-5-14b-instruct",
59
+ "qwen2-5-32b-instruct",
60
+ "qwen2-5-72b-instruct",
61
+ "qwen2-5-7b-instruct",
62
+ "qwen2-5-omni-7b",
63
+ "qwen2-5-vl-72b-instruct",
64
+ "qwen2-5-vl-7b-instruct",
65
+ "qwen3-14b",
66
+ "qwen3-235b-a22b",
67
+ "qwen3-32b",
68
+ "qwen3-8b",
69
+ "qwen3-asr-flash",
70
+ "qwen3-coder-30b-a3b-instruct",
71
+ "qwen3-coder-480b-a35b-instruct",
72
+ "qwen3-coder-flash",
73
+ "qwen3-coder-plus",
74
+ "qwen3-livetranslate-flash-realtime",
75
+ "qwen3-max",
76
+ "qwen3-next-80b-a3b-instruct",
77
+ "qwen3-next-80b-a3b-thinking",
78
+ "qwen3-omni-flash",
79
+ "qwen3-omni-flash-realtime",
80
+ "qwen3-vl-235b-a22b",
81
+ "qwen3-vl-30b-a3b",
82
+ "qwen3-vl-plus",
83
+ "qwq-plus"
84
+ ],
45
85
  "docUrl": "https://www.alibabacloud.com/help/en/model-studio/models",
46
86
  "gateway": "models.dev"
47
87
  },
@@ -84,6 +124,7 @@
84
124
  "google/gemma-3-27b-it",
85
125
  "microsoft/phi-4-mini-instruct",
86
126
  "moonshotai/kimi-k2-instruct",
127
+ "moonshotai/kimi-k2-instruct-0905",
87
128
  "nvidia/cosmos-nemotron-34b",
88
129
  "nvidia/llama-3.1-nemotron-ultra-253b-v1",
89
130
  "nvidia/nemoretriever-ocr-v1",
@@ -167,6 +208,12 @@
167
208
  "apiKeyHeader": "Authorization",
168
209
  "name": "Vercel AI Gateway",
169
210
  "models": [
211
+ "alibaba/qwen3-coder-plus",
212
+ "alibaba/qwen3-max",
213
+ "alibaba/qwen3-next-80b-a3b-instruct",
214
+ "alibaba/qwen3-next-80b-a3b-thinking",
215
+ "alibaba/qwen3-vl-instruct",
216
+ "alibaba/qwen3-vl-thinking",
170
217
  "amazon/nova-lite",
171
218
  "amazon/nova-micro",
172
219
  "amazon/nova-pro",
@@ -179,12 +226,19 @@
179
226
  "anthropic/claude-4-opus",
180
227
  "anthropic/claude-4-sonnet",
181
228
  "anthropic/claude-4.5-sonnet",
229
+ "anthropic/claude-haiku-4.5",
182
230
  "cerebras/qwen3-coder",
183
231
  "deepseek/deepseek-r1",
184
232
  "deepseek/deepseek-r1-distill-llama-70b",
233
+ "deepseek/deepseek-v3.1-terminus",
234
+ "deepseek/deepseek-v3.2-exp",
235
+ "deepseek/deepseek-v3.2-exp-thinking",
185
236
  "google/gemini-2.0-flash",
186
237
  "google/gemini-2.0-flash-lite",
187
238
  "google/gemini-2.5-flash",
239
+ "google/gemini-2.5-flash-lite",
240
+ "google/gemini-2.5-flash-lite-preview-09-2025",
241
+ "google/gemini-2.5-flash-preview-09-2025",
188
242
  "google/gemini-2.5-pro",
189
243
  "meta/llama-3.3-70b",
190
244
  "meta/llama-4-maverick",
@@ -218,6 +272,10 @@
218
272
  "openai/o3",
219
273
  "openai/o3-mini",
220
274
  "openai/o4-mini",
275
+ "perplexity/sonar",
276
+ "perplexity/sonar-pro",
277
+ "perplexity/sonar-reasoning",
278
+ "perplexity/sonar-reasoning-pro",
221
279
  "vercel/v0-1.0-md",
222
280
  "vercel/v0-1.5-md",
223
281
  "xai/grok-2",
@@ -229,11 +287,40 @@
229
287
  "xai/grok-4",
230
288
  "xai/grok-4-fast",
231
289
  "xai/grok-4-fast-non-reasoning",
232
- "xai/grok-code-fast-1"
290
+ "xai/grok-code-fast-1",
291
+ "zai/glm-4.5",
292
+ "zai/glm-4.5-air",
293
+ "zai/glm-4.5v",
294
+ "zai/glm-4.6"
233
295
  ],
234
296
  "docUrl": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",
235
297
  "gateway": "models.dev"
236
298
  },
299
+ "nebius": {
300
+ "url": "https://api.studio.nebius.com/v1/",
301
+ "apiKeyEnvVar": "NEBIUS_API_KEY",
302
+ "apiKeyHeader": "Authorization",
303
+ "name": "Nebius AI Studio",
304
+ "models": [
305
+ "NousResearch/hermes-4-405b",
306
+ "NousResearch/hermes-4-70b",
307
+ "deepseek-ai/deepseek-v3",
308
+ "meta-llama/llama-3.3-70b-instruct-base",
309
+ "meta-llama/llama-3.3-70b-instruct-fast",
310
+ "meta-llama/llama-3_1-405b-instruct",
311
+ "moonshotai/kimi-k2-instruct",
312
+ "nvidia/llama-3_1-nemotron-ultra-253b-v1",
313
+ "openai/gpt-oss-120b",
314
+ "openai/gpt-oss-20b",
315
+ "qwen/qwen3-235b-a22b-instruct-2507",
316
+ "qwen/qwen3-235b-a22b-thinking-2507",
317
+ "qwen/qwen3-coder-480b-a35b-instruct",
318
+ "zai-org/glm-4.5",
319
+ "zai-org/glm-4.5-air"
320
+ ],
321
+ "docUrl": "https://docs.studio.nebius.com/quickstart",
322
+ "gateway": "models.dev"
323
+ },
237
324
  "deepseek": {
238
325
  "url": "https://api.deepseek.com",
239
326
  "apiKeyEnvVar": "DEEPSEEK_API_KEY",
@@ -248,7 +335,69 @@
248
335
  "apiKeyEnvVar": "DASHSCOPE_API_KEY",
249
336
  "apiKeyHeader": "Authorization",
250
337
  "name": "Alibaba (China)",
251
- "models": ["qwen3-coder-plus"],
338
+ "models": [
339
+ "deepseek-r1",
340
+ "deepseek-r1-0528",
341
+ "deepseek-r1-distill-llama-70b",
342
+ "deepseek-r1-distill-llama-8b",
343
+ "deepseek-r1-distill-qwen-1-5b",
344
+ "deepseek-r1-distill-qwen-14b",
345
+ "deepseek-r1-distill-qwen-32b",
346
+ "deepseek-r1-distill-qwen-7b",
347
+ "deepseek-v3",
348
+ "deepseek-v3-1",
349
+ "deepseek-v3-2-exp",
350
+ "moonshot-kimi-k2-instruct",
351
+ "qvq-max",
352
+ "qwen-deep-research",
353
+ "qwen-doc-turbo",
354
+ "qwen-flash",
355
+ "qwen-long",
356
+ "qwen-math-plus",
357
+ "qwen-math-turbo",
358
+ "qwen-max",
359
+ "qwen-mt-plus",
360
+ "qwen-mt-turbo",
361
+ "qwen-omni-turbo",
362
+ "qwen-omni-turbo-realtime",
363
+ "qwen-plus",
364
+ "qwen-plus-character",
365
+ "qwen-turbo",
366
+ "qwen-vl-max",
367
+ "qwen-vl-ocr",
368
+ "qwen-vl-plus",
369
+ "qwen2-5-14b-instruct",
370
+ "qwen2-5-32b-instruct",
371
+ "qwen2-5-72b-instruct",
372
+ "qwen2-5-7b-instruct",
373
+ "qwen2-5-coder-32b-instruct",
374
+ "qwen2-5-coder-7b-instruct",
375
+ "qwen2-5-math-72b-instruct",
376
+ "qwen2-5-math-7b-instruct",
377
+ "qwen2-5-omni-7b",
378
+ "qwen2-5-vl-72b-instruct",
379
+ "qwen2-5-vl-7b-instruct",
380
+ "qwen3-14b",
381
+ "qwen3-235b-a22b",
382
+ "qwen3-32b",
383
+ "qwen3-8b",
384
+ "qwen3-asr-flash",
385
+ "qwen3-coder-30b-a3b-instruct",
386
+ "qwen3-coder-480b-a35b-instruct",
387
+ "qwen3-coder-flash",
388
+ "qwen3-coder-plus",
389
+ "qwen3-max",
390
+ "qwen3-next-80b-a3b-instruct",
391
+ "qwen3-next-80b-a3b-thinking",
392
+ "qwen3-omni-flash",
393
+ "qwen3-omni-flash-realtime",
394
+ "qwen3-vl-235b-a22b",
395
+ "qwen3-vl-30b-a3b",
396
+ "qwen3-vl-plus",
397
+ "qwq-32b",
398
+ "qwq-plus",
399
+ "tongyi-intent-detect-v3"
400
+ ],
252
401
  "docUrl": "https://www.alibabacloud.com/help/en/model-studio/models",
253
402
  "gateway": "models.dev"
254
403
  },
@@ -324,6 +473,7 @@
324
473
  "apiKeyHeader": "Authorization",
325
474
  "name": "Cortecs",
326
475
  "models": [
476
+ "claude-4-5-sonnet",
327
477
  "claude-sonnet-4",
328
478
  "deepseek-v3-0324",
329
479
  "gemini-2.5-pro",
@@ -455,7 +605,9 @@
455
605
  "apiKeyHeader": "Authorization",
456
606
  "name": "OpenCode Zen",
457
607
  "models": [
608
+ "an-g8x",
458
609
  "claude-3-5-haiku",
610
+ "claude-haiku-4-5",
459
611
  "claude-opus-4-1",
460
612
  "claude-sonnet-4",
461
613
  "claude-sonnet-4-5",
@@ -504,17 +656,22 @@
504
656
  "gemini-2.0-flash",
505
657
  "gemini-2.0-flash-lite",
506
658
  "gemini-2.5-flash",
659
+ "gemini-2.5-flash-image",
660
+ "gemini-2.5-flash-image-preview",
507
661
  "gemini-2.5-flash-lite",
508
662
  "gemini-2.5-flash-lite-preview-06-17",
509
663
  "gemini-2.5-flash-lite-preview-09-2025",
510
664
  "gemini-2.5-flash-preview-04-17",
511
665
  "gemini-2.5-flash-preview-05-20",
512
666
  "gemini-2.5-flash-preview-09-2025",
667
+ "gemini-2.5-flash-preview-tts",
513
668
  "gemini-2.5-pro",
514
669
  "gemini-2.5-pro-preview-05-06",
515
670
  "gemini-2.5-pro-preview-06-05",
671
+ "gemini-2.5-pro-preview-tts",
516
672
  "gemini-flash-latest",
517
673
  "gemini-flash-lite-latest",
674
+ "gemini-live-2.5-flash",
518
675
  "gemini-live-2.5-flash-preview-native-audio"
519
676
  ],
520
677
  "docUrl": "https://ai.google.dev/gemini-api/docs/pricing",
@@ -609,6 +766,7 @@
609
766
  "models": [
610
767
  "anthropic/claude-3.5-haiku",
611
768
  "anthropic/claude-3.7-sonnet",
769
+ "anthropic/claude-4.5-haiku",
612
770
  "anthropic/claude-opus-4",
613
771
  "anthropic/claude-opus-4.1",
614
772
  "anthropic/claude-sonnet-4",
@@ -628,6 +786,9 @@
628
786
  "google/gemini-2.0-flash-001",
629
787
  "google/gemini-2.0-flash-exp:free",
630
788
  "google/gemini-2.5-flash",
789
+ "google/gemini-2.5-flash-lite",
790
+ "google/gemini-2.5-flash-lite-preview-09-2025",
791
+ "google/gemini-2.5-flash-preview-09-2025",
631
792
  "google/gemini-2.5-pro",
632
793
  "google/gemini-2.5-pro-preview-05-06",
633
794
  "google/gemini-2.5-pro-preview-06-05",
@@ -665,6 +826,7 @@
665
826
  "openai/gpt-5",
666
827
  "openai/gpt-5-chat",
667
828
  "openai/gpt-5-codex",
829
+ "openai/gpt-5-image",
668
830
  "openai/gpt-5-mini",
669
831
  "openai/gpt-5-nano",
670
832
  "openai/gpt-oss-120b",
@@ -685,6 +847,7 @@
685
847
  "qwen/qwen3-235b-a22b-thinking-2507",
686
848
  "qwen/qwen3-235b-a22b:free",
687
849
  "qwen/qwen3-30b-a3b-instruct-2507",
850
+ "qwen/qwen3-30b-a3b-thinking-2507",
688
851
  "qwen/qwen3-30b-a3b:free",
689
852
  "qwen/qwen3-32b:free",
690
853
  "qwen/qwen3-8b:free",
@@ -692,6 +855,7 @@
692
855
  "qwen/qwen3-coder:free",
693
856
  "qwen/qwen3-max",
694
857
  "qwen/qwen3-next-80b-a3b-instruct",
858
+ "qwen/qwen3-next-80b-a3b-thinking",
695
859
  "qwen/qwq-32b:free",
696
860
  "rekaai/reka-flash-3",
697
861
  "sarvamai/sarvam-m:free",
@@ -867,6 +1031,7 @@
867
1031
  "claude-3-haiku-20240307",
868
1032
  "claude-3-opus-20240229",
869
1033
  "claude-3-sonnet-20240229",
1034
+ "claude-haiku-4-5-20251001",
870
1035
  "claude-opus-4-1-20250805",
871
1036
  "claude-opus-4-20250514",
872
1037
  "claude-sonnet-4-20250514",
@@ -906,7 +1071,6 @@
906
1071
  "Qwen/Qwen3-30B-A3B-Instruct-2507",
907
1072
  "Qwen/Qwen3-30B-A3B-Thinking-2507",
908
1073
  "Qwen/Qwen3-Coder-30B-A3B-Instruct",
909
- "Qwen/Qwen3-Coder-480B-A35B-Instruct",
910
1074
  "ZhipuAI/GLM-4.5"
911
1075
  ],
912
1076
  "docUrl": "https://modelscope.cn/docs/model-service/API-Inference/intro",
@@ -949,6 +1113,7 @@
949
1113
  "anthropic/claude-3-7-sonnet-20250219",
950
1114
  "anthropic/claude-3-7-sonnet-latest",
951
1115
  "anthropic/claude-3-haiku-20240307",
1116
+ "anthropic/claude-haiku-4-5-20251001",
952
1117
  "anthropic/claude-opus-4-1-20250805",
953
1118
  "anthropic/claude-opus-4-20250514",
954
1119
  "anthropic/claude-sonnet-4-20250514",
@@ -986,7 +1151,47 @@
986
1151
  "lucidquery": ["lucidnova-rf1-100b", "lucidquery-nexus-coder"],
987
1152
  "moonshotai": ["kimi-k2-0711-preview", "kimi-k2-0905-preview", "kimi-k2-turbo-preview"],
988
1153
  "zai-coding-plan": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6"],
989
- "alibaba": ["qwen3-coder-plus"],
1154
+ "alibaba": [
1155
+ "qvq-max",
1156
+ "qwen-flash",
1157
+ "qwen-max",
1158
+ "qwen-mt-plus",
1159
+ "qwen-mt-turbo",
1160
+ "qwen-omni-turbo",
1161
+ "qwen-omni-turbo-realtime",
1162
+ "qwen-plus",
1163
+ "qwen-plus-character-ja",
1164
+ "qwen-turbo",
1165
+ "qwen-vl-max",
1166
+ "qwen-vl-ocr",
1167
+ "qwen-vl-plus",
1168
+ "qwen2-5-14b-instruct",
1169
+ "qwen2-5-32b-instruct",
1170
+ "qwen2-5-72b-instruct",
1171
+ "qwen2-5-7b-instruct",
1172
+ "qwen2-5-omni-7b",
1173
+ "qwen2-5-vl-72b-instruct",
1174
+ "qwen2-5-vl-7b-instruct",
1175
+ "qwen3-14b",
1176
+ "qwen3-235b-a22b",
1177
+ "qwen3-32b",
1178
+ "qwen3-8b",
1179
+ "qwen3-asr-flash",
1180
+ "qwen3-coder-30b-a3b-instruct",
1181
+ "qwen3-coder-480b-a35b-instruct",
1182
+ "qwen3-coder-flash",
1183
+ "qwen3-coder-plus",
1184
+ "qwen3-livetranslate-flash-realtime",
1185
+ "qwen3-max",
1186
+ "qwen3-next-80b-a3b-instruct",
1187
+ "qwen3-next-80b-a3b-thinking",
1188
+ "qwen3-omni-flash",
1189
+ "qwen3-omni-flash-realtime",
1190
+ "qwen3-vl-235b-a22b",
1191
+ "qwen3-vl-30b-a3b",
1192
+ "qwen3-vl-plus",
1193
+ "qwq-plus"
1194
+ ],
990
1195
  "xai": [
991
1196
  "grok-2",
992
1197
  "grok-2-1212",
@@ -1015,6 +1220,7 @@
1015
1220
  "google/gemma-3-27b-it",
1016
1221
  "microsoft/phi-4-mini-instruct",
1017
1222
  "moonshotai/kimi-k2-instruct",
1223
+ "moonshotai/kimi-k2-instruct-0905",
1018
1224
  "nvidia/cosmos-nemotron-34b",
1019
1225
  "nvidia/llama-3.1-nemotron-ultra-253b-v1",
1020
1226
  "nvidia/nemoretriever-ocr-v1",
@@ -1066,6 +1272,12 @@
1066
1272
  "pixtral-large-latest"
1067
1273
  ],
1068
1274
  "vercel": [
1275
+ "alibaba/qwen3-coder-plus",
1276
+ "alibaba/qwen3-max",
1277
+ "alibaba/qwen3-next-80b-a3b-instruct",
1278
+ "alibaba/qwen3-next-80b-a3b-thinking",
1279
+ "alibaba/qwen3-vl-instruct",
1280
+ "alibaba/qwen3-vl-thinking",
1069
1281
  "amazon/nova-lite",
1070
1282
  "amazon/nova-micro",
1071
1283
  "amazon/nova-pro",
@@ -1078,12 +1290,19 @@
1078
1290
  "anthropic/claude-4-opus",
1079
1291
  "anthropic/claude-4-sonnet",
1080
1292
  "anthropic/claude-4.5-sonnet",
1293
+ "anthropic/claude-haiku-4.5",
1081
1294
  "cerebras/qwen3-coder",
1082
1295
  "deepseek/deepseek-r1",
1083
1296
  "deepseek/deepseek-r1-distill-llama-70b",
1297
+ "deepseek/deepseek-v3.1-terminus",
1298
+ "deepseek/deepseek-v3.2-exp",
1299
+ "deepseek/deepseek-v3.2-exp-thinking",
1084
1300
  "google/gemini-2.0-flash",
1085
1301
  "google/gemini-2.0-flash-lite",
1086
1302
  "google/gemini-2.5-flash",
1303
+ "google/gemini-2.5-flash-lite",
1304
+ "google/gemini-2.5-flash-lite-preview-09-2025",
1305
+ "google/gemini-2.5-flash-preview-09-2025",
1087
1306
  "google/gemini-2.5-pro",
1088
1307
  "meta/llama-3.3-70b",
1089
1308
  "meta/llama-4-maverick",
@@ -1117,6 +1336,10 @@
1117
1336
  "openai/o3",
1118
1337
  "openai/o3-mini",
1119
1338
  "openai/o4-mini",
1339
+ "perplexity/sonar",
1340
+ "perplexity/sonar-pro",
1341
+ "perplexity/sonar-reasoning",
1342
+ "perplexity/sonar-reasoning-pro",
1120
1343
  "vercel/v0-1.0-md",
1121
1344
  "vercel/v0-1.5-md",
1122
1345
  "xai/grok-2",
@@ -1128,10 +1351,93 @@
1128
1351
  "xai/grok-4",
1129
1352
  "xai/grok-4-fast",
1130
1353
  "xai/grok-4-fast-non-reasoning",
1131
- "xai/grok-code-fast-1"
1354
+ "xai/grok-code-fast-1",
1355
+ "zai/glm-4.5",
1356
+ "zai/glm-4.5-air",
1357
+ "zai/glm-4.5v",
1358
+ "zai/glm-4.6"
1359
+ ],
1360
+ "nebius": [
1361
+ "NousResearch/hermes-4-405b",
1362
+ "NousResearch/hermes-4-70b",
1363
+ "deepseek-ai/deepseek-v3",
1364
+ "meta-llama/llama-3.3-70b-instruct-base",
1365
+ "meta-llama/llama-3.3-70b-instruct-fast",
1366
+ "meta-llama/llama-3_1-405b-instruct",
1367
+ "moonshotai/kimi-k2-instruct",
1368
+ "nvidia/llama-3_1-nemotron-ultra-253b-v1",
1369
+ "openai/gpt-oss-120b",
1370
+ "openai/gpt-oss-20b",
1371
+ "qwen/qwen3-235b-a22b-instruct-2507",
1372
+ "qwen/qwen3-235b-a22b-thinking-2507",
1373
+ "qwen/qwen3-coder-480b-a35b-instruct",
1374
+ "zai-org/glm-4.5",
1375
+ "zai-org/glm-4.5-air"
1132
1376
  ],
1133
1377
  "deepseek": ["deepseek-chat", "deepseek-reasoner"],
1134
- "alibaba-cn": ["qwen3-coder-plus"],
1378
+ "alibaba-cn": [
1379
+ "deepseek-r1",
1380
+ "deepseek-r1-0528",
1381
+ "deepseek-r1-distill-llama-70b",
1382
+ "deepseek-r1-distill-llama-8b",
1383
+ "deepseek-r1-distill-qwen-1-5b",
1384
+ "deepseek-r1-distill-qwen-14b",
1385
+ "deepseek-r1-distill-qwen-32b",
1386
+ "deepseek-r1-distill-qwen-7b",
1387
+ "deepseek-v3",
1388
+ "deepseek-v3-1",
1389
+ "deepseek-v3-2-exp",
1390
+ "moonshot-kimi-k2-instruct",
1391
+ "qvq-max",
1392
+ "qwen-deep-research",
1393
+ "qwen-doc-turbo",
1394
+ "qwen-flash",
1395
+ "qwen-long",
1396
+ "qwen-math-plus",
1397
+ "qwen-math-turbo",
1398
+ "qwen-max",
1399
+ "qwen-mt-plus",
1400
+ "qwen-mt-turbo",
1401
+ "qwen-omni-turbo",
1402
+ "qwen-omni-turbo-realtime",
1403
+ "qwen-plus",
1404
+ "qwen-plus-character",
1405
+ "qwen-turbo",
1406
+ "qwen-vl-max",
1407
+ "qwen-vl-ocr",
1408
+ "qwen-vl-plus",
1409
+ "qwen2-5-14b-instruct",
1410
+ "qwen2-5-32b-instruct",
1411
+ "qwen2-5-72b-instruct",
1412
+ "qwen2-5-7b-instruct",
1413
+ "qwen2-5-coder-32b-instruct",
1414
+ "qwen2-5-coder-7b-instruct",
1415
+ "qwen2-5-math-72b-instruct",
1416
+ "qwen2-5-math-7b-instruct",
1417
+ "qwen2-5-omni-7b",
1418
+ "qwen2-5-vl-72b-instruct",
1419
+ "qwen2-5-vl-7b-instruct",
1420
+ "qwen3-14b",
1421
+ "qwen3-235b-a22b",
1422
+ "qwen3-32b",
1423
+ "qwen3-8b",
1424
+ "qwen3-asr-flash",
1425
+ "qwen3-coder-30b-a3b-instruct",
1426
+ "qwen3-coder-480b-a35b-instruct",
1427
+ "qwen3-coder-flash",
1428
+ "qwen3-coder-plus",
1429
+ "qwen3-max",
1430
+ "qwen3-next-80b-a3b-instruct",
1431
+ "qwen3-next-80b-a3b-thinking",
1432
+ "qwen3-omni-flash",
1433
+ "qwen3-omni-flash-realtime",
1434
+ "qwen3-vl-235b-a22b",
1435
+ "qwen3-vl-30b-a3b",
1436
+ "qwen3-vl-plus",
1437
+ "qwq-32b",
1438
+ "qwq-plus",
1439
+ "tongyi-intent-detect-v3"
1440
+ ],
1135
1441
  "venice": [
1136
1442
  "deepseek-coder-v2-lite",
1137
1443
  "deepseek-r1-671b",
@@ -1183,6 +1489,7 @@
1183
1489
  "zai-org/GLM-4.6-turbo"
1184
1490
  ],
1185
1491
  "cortecs": [
1492
+ "claude-4-5-sonnet",
1186
1493
  "claude-sonnet-4",
1187
1494
  "deepseek-v3-0324",
1188
1495
  "gemini-2.5-pro",
@@ -1274,7 +1581,9 @@
1274
1581
  "zai-org/GLM-4.6"
1275
1582
  ],
1276
1583
  "opencode": [
1584
+ "an-g8x",
1277
1585
  "claude-3-5-haiku",
1586
+ "claude-haiku-4-5",
1278
1587
  "claude-opus-4-1",
1279
1588
  "claude-sonnet-4",
1280
1589
  "claude-sonnet-4-5",
@@ -1309,17 +1618,22 @@
1309
1618
  "gemini-2.0-flash",
1310
1619
  "gemini-2.0-flash-lite",
1311
1620
  "gemini-2.5-flash",
1621
+ "gemini-2.5-flash-image",
1622
+ "gemini-2.5-flash-image-preview",
1312
1623
  "gemini-2.5-flash-lite",
1313
1624
  "gemini-2.5-flash-lite-preview-06-17",
1314
1625
  "gemini-2.5-flash-lite-preview-09-2025",
1315
1626
  "gemini-2.5-flash-preview-04-17",
1316
1627
  "gemini-2.5-flash-preview-05-20",
1317
1628
  "gemini-2.5-flash-preview-09-2025",
1629
+ "gemini-2.5-flash-preview-tts",
1318
1630
  "gemini-2.5-pro",
1319
1631
  "gemini-2.5-pro-preview-05-06",
1320
1632
  "gemini-2.5-pro-preview-06-05",
1633
+ "gemini-2.5-pro-preview-tts",
1321
1634
  "gemini-flash-latest",
1322
1635
  "gemini-flash-lite-latest",
1636
+ "gemini-live-2.5-flash",
1323
1637
  "gemini-live-2.5-flash-preview-native-audio"
1324
1638
  ],
1325
1639
  "inception": ["mercury", "mercury-coder"],
@@ -1369,6 +1683,7 @@
1369
1683
  "openrouter": [
1370
1684
  "anthropic/claude-3.5-haiku",
1371
1685
  "anthropic/claude-3.7-sonnet",
1686
+ "anthropic/claude-4.5-haiku",
1372
1687
  "anthropic/claude-opus-4",
1373
1688
  "anthropic/claude-opus-4.1",
1374
1689
  "anthropic/claude-sonnet-4",
@@ -1388,6 +1703,9 @@
1388
1703
  "google/gemini-2.0-flash-001",
1389
1704
  "google/gemini-2.0-flash-exp:free",
1390
1705
  "google/gemini-2.5-flash",
1706
+ "google/gemini-2.5-flash-lite",
1707
+ "google/gemini-2.5-flash-lite-preview-09-2025",
1708
+ "google/gemini-2.5-flash-preview-09-2025",
1391
1709
  "google/gemini-2.5-pro",
1392
1710
  "google/gemini-2.5-pro-preview-05-06",
1393
1711
  "google/gemini-2.5-pro-preview-06-05",
@@ -1425,6 +1743,7 @@
1425
1743
  "openai/gpt-5",
1426
1744
  "openai/gpt-5-chat",
1427
1745
  "openai/gpt-5-codex",
1746
+ "openai/gpt-5-image",
1428
1747
  "openai/gpt-5-mini",
1429
1748
  "openai/gpt-5-nano",
1430
1749
  "openai/gpt-oss-120b",
@@ -1445,6 +1764,7 @@
1445
1764
  "qwen/qwen3-235b-a22b-thinking-2507",
1446
1765
  "qwen/qwen3-235b-a22b:free",
1447
1766
  "qwen/qwen3-30b-a3b-instruct-2507",
1767
+ "qwen/qwen3-30b-a3b-thinking-2507",
1448
1768
  "qwen/qwen3-30b-a3b:free",
1449
1769
  "qwen/qwen3-32b:free",
1450
1770
  "qwen/qwen3-8b:free",
@@ -1452,6 +1772,7 @@
1452
1772
  "qwen/qwen3-coder:free",
1453
1773
  "qwen/qwen3-max",
1454
1774
  "qwen/qwen3-next-80b-a3b-instruct",
1775
+ "qwen/qwen3-next-80b-a3b-thinking",
1455
1776
  "qwen/qwq-32b:free",
1456
1777
  "rekaai/reka-flash-3",
1457
1778
  "sarvamai/sarvam-m:free",
@@ -1549,6 +1870,7 @@
1549
1870
  "claude-3-haiku-20240307",
1550
1871
  "claude-3-opus-20240229",
1551
1872
  "claude-3-sonnet-20240229",
1873
+ "claude-haiku-4-5-20251001",
1552
1874
  "claude-opus-4-1-20250805",
1553
1875
  "claude-opus-4-20250514",
1554
1876
  "claude-sonnet-4-20250514",
@@ -1572,7 +1894,6 @@
1572
1894
  "Qwen/Qwen3-30B-A3B-Instruct-2507",
1573
1895
  "Qwen/Qwen3-30B-A3B-Thinking-2507",
1574
1896
  "Qwen/Qwen3-Coder-30B-A3B-Instruct",
1575
- "Qwen/Qwen3-Coder-480B-A35B-Instruct",
1576
1897
  "ZhipuAI/GLM-4.5"
1577
1898
  ],
1578
1899
  "llama": [
@@ -1591,6 +1912,7 @@
1591
1912
  "anthropic/claude-3-7-sonnet-20250219",
1592
1913
  "anthropic/claude-3-7-sonnet-latest",
1593
1914
  "anthropic/claude-3-haiku-20240307",
1915
+ "anthropic/claude-haiku-4-5-20251001",
1594
1916
  "anthropic/claude-opus-4-1-20250805",
1595
1917
  "anthropic/claude-opus-4-20250514",
1596
1918
  "anthropic/claude-sonnet-4-20250514",
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs/promises');
4
+ var path = require('path');
4
5
 
5
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
7
 
7
8
  var fs__default = /*#__PURE__*/_interopDefault(fs);
9
+ var path__default = /*#__PURE__*/_interopDefault(path);
8
10
 
9
11
  async function fetchProvidersFromGateways(gateways) {
10
12
  const allProviders = {};
@@ -94,6 +96,10 @@ export type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];
94
96
  `;
95
97
  }
96
98
  async function writeRegistryFiles(jsonPath, typesPath, providers, models) {
99
+ const jsonDir = path__default.default.dirname(jsonPath);
100
+ const typesDir = path__default.default.dirname(typesPath);
101
+ await fs__default.default.mkdir(jsonDir, { recursive: true });
102
+ await fs__default.default.mkdir(typesDir, { recursive: true });
97
103
  const registryData = {
98
104
  providers,
99
105
  models,
@@ -107,5 +113,5 @@ async function writeRegistryFiles(jsonPath, typesPath, providers, models) {
107
113
  exports.fetchProvidersFromGateways = fetchProvidersFromGateways;
108
114
  exports.generateTypesContent = generateTypesContent;
109
115
  exports.writeRegistryFiles = writeRegistryFiles;
110
- //# sourceMappingURL=registry-generator-7XDUEFUT.cjs.map
111
- //# sourceMappingURL=registry-generator-7XDUEFUT.cjs.map
116
+ //# sourceMappingURL=registry-generator-6WVOHM2L.cjs.map
117
+ //# sourceMappingURL=registry-generator-6WVOHM2L.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/model/registry-generator.ts"],"names":["path","fs"],"mappings":"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","file":"registry-generator-6WVOHM2L.cjs","sourcesContent":["/**\n * Shared provider registry generation logic\n * Used by both the CLI generation script and runtime refresh\n */\n\nimport fs from 'fs/promises';\nimport path from 'path';\nimport type { MastraModelGateway, ProviderConfig } from './gateways/base.js';\n\n/**\n * Fetch providers from all gateways with retry logic\n * @param gateways - Array of gateway instances to fetch from\n * @returns Object containing providers and models records\n */\nexport async function fetchProvidersFromGateways(\n gateways: MastraModelGateway[],\n): Promise<{ providers: Record<string, ProviderConfig>; models: Record<string, string[]> }> {\n const allProviders: Record<string, ProviderConfig> = {};\n const allModels: Record<string, string[]> = {};\n\n const maxRetries = 3;\n\n for (const gateway of gateways) {\n let lastError: Error | null = null;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const providers = await gateway.fetchProviders();\n\n for (const [providerId, config] of Object.entries(providers)) {\n allProviders[providerId] = config;\n // Sort models alphabetically for consistent ordering\n allModels[providerId] = config.models.sort();\n }\n\n lastError = null;\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < maxRetries) {\n // Wait before retrying (exponential backoff)\n const delayMs = Math.min(1000 * Math.pow(2, attempt - 1), 5000);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n }\n\n // If all retries failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n }\n\n return { providers: allProviders, models: allModels };\n}\n\n/**\n * Generate TypeScript type definitions content\n * @param models - Record of provider IDs to model arrays\n * @returns Generated TypeScript type definitions as a string\n */\nexport function generateTypesContent(models: Record<string, string[]>): string {\n const providerModelsEntries = Object.entries(models)\n .map(([provider, modelList]) => {\n const modelsList = modelList.map(m => `'${m}'`);\n\n // Only quote provider key if it contains special characters (like dashes)\n const needsQuotes = /[^a-zA-Z0-9_$]/.test(provider);\n const providerKey = needsQuotes ? `'${provider}'` : provider;\n\n // Format array based on length (prettier printWidth: 120)\n const singleLine = ` readonly ${providerKey}: readonly [${modelsList.join(', ')}];`;\n\n // If single line exceeds 120 chars, format as multi-line\n if (singleLine.length > 120) {\n const formattedModels = modelList.map(m => ` '${m}',`).join('\\n');\n return ` readonly ${providerKey}: readonly [\\n${formattedModels}\\n ];`;\n }\n\n return singleLine;\n })\n .join('\\n');\n\n return `/**\n * THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n * Generated from model gateway providers\n */\n\n/**\n * Provider models mapping type\n * This is derived from the JSON data and provides type-safe access\n */\nexport type ProviderModelsMap = {\n${providerModelsEntries}\n};\n\n/**\n * Union type of all registered provider IDs\n */\nexport type Provider = keyof ProviderModelsMap;\n\n/**\n * Provider models mapping interface\n */\nexport interface ProviderModels {\n [key: string]: string[];\n}\n\n/**\n * OpenAI-compatible model ID type\n * Dynamically derived from ProviderModelsMap\n * Full provider/model paths (e.g., \"openai/gpt-4o\", \"anthropic/claude-3-5-sonnet-20241022\")\n */\nexport type ModelRouterModelId =\n | {\n [P in Provider]: \\`\\${P}/\\${ProviderModelsMap[P][number]}\\`;\n }[Provider]\n | (string & {});\n\n/**\n * Extract the model part from a ModelRouterModelId for a specific provider\n * Dynamically derived from ProviderModelsMap\n * Example: ModelForProvider<'openai'> = 'gpt-4o' | 'gpt-4-turbo' | ...\n */\nexport type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];\n`;\n}\n\n/**\n * Write registry files to disk (JSON and .d.ts)\n * @param jsonPath - Path to write the JSON file\n * @param typesPath - Path to write the .d.ts file\n * @param providers - Provider configurations\n * @param models - Model lists by provider\n */\nexport async function writeRegistryFiles(\n jsonPath: string,\n typesPath: string,\n providers: Record<string, ProviderConfig>,\n models: Record<string, string[]>,\n): Promise<void> {\n // 0. Ensure directories exist\n const jsonDir = path.dirname(jsonPath);\n const typesDir = path.dirname(typesPath);\n await fs.mkdir(jsonDir, { recursive: true });\n await fs.mkdir(typesDir, { recursive: true });\n\n // 1. Write JSON file\n const registryData = {\n providers,\n models,\n version: '1.0.0',\n };\n\n await fs.writeFile(jsonPath, JSON.stringify(registryData, null, 2), 'utf-8');\n\n // 2. Generate .d.ts file with type-only declarations\n const typeContent = generateTypesContent(models);\n await fs.writeFile(typesPath, typeContent, 'utf-8');\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import fs from 'fs/promises';
2
+ import path from 'path';
2
3
 
3
4
  async function fetchProvidersFromGateways(gateways) {
4
5
  const allProviders = {};
@@ -88,6 +89,10 @@ export type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];
88
89
  `;
89
90
  }
90
91
  async function writeRegistryFiles(jsonPath, typesPath, providers, models) {
92
+ const jsonDir = path.dirname(jsonPath);
93
+ const typesDir = path.dirname(typesPath);
94
+ await fs.mkdir(jsonDir, { recursive: true });
95
+ await fs.mkdir(typesDir, { recursive: true });
91
96
  const registryData = {
92
97
  providers,
93
98
  models,
@@ -99,5 +104,5 @@ async function writeRegistryFiles(jsonPath, typesPath, providers, models) {
99
104
  }
100
105
 
101
106
  export { fetchProvidersFromGateways, generateTypesContent, writeRegistryFiles };
102
- //# sourceMappingURL=registry-generator-ZKIT6I3E.js.map
103
- //# sourceMappingURL=registry-generator-ZKIT6I3E.js.map
107
+ //# sourceMappingURL=registry-generator-DXRSYYYT.js.map
108
+ //# sourceMappingURL=registry-generator-DXRSYYYT.js.map