@mastra/core 1.22.0 → 1.23.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 (143) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/index.cjs +8 -8
  4. package/dist/agent/index.js +1 -1
  5. package/dist/browser/index.cjs +2 -2
  6. package/dist/browser/index.js +1 -1
  7. package/dist/channels/index.cjs +4 -4
  8. package/dist/channels/index.js +1 -1
  9. package/dist/{chunk-KLHUYSDF.cjs → chunk-2ABXM7ZX.cjs} +6 -6
  10. package/dist/{chunk-KLHUYSDF.cjs.map → chunk-2ABXM7ZX.cjs.map} +1 -1
  11. package/dist/{chunk-NLN4DDI6.js → chunk-2GB3EFMQ.js} +6 -6
  12. package/dist/{chunk-NLN4DDI6.js.map → chunk-2GB3EFMQ.js.map} +1 -1
  13. package/dist/{chunk-DRITAH5L.js → chunk-44L3XRON.js} +3 -3
  14. package/dist/{chunk-DRITAH5L.js.map → chunk-44L3XRON.js.map} +1 -1
  15. package/dist/{chunk-RHKFYYB6.cjs → chunk-67H3I6U2.cjs} +80 -28
  16. package/dist/chunk-67H3I6U2.cjs.map +1 -0
  17. package/dist/{chunk-VRH5HTH5.cjs → chunk-752IYVJ7.cjs} +7 -7
  18. package/dist/{chunk-VRH5HTH5.cjs.map → chunk-752IYVJ7.cjs.map} +1 -1
  19. package/dist/{chunk-HXX4JDIB.js → chunk-7L77UGLB.js} +3 -3
  20. package/dist/{chunk-HXX4JDIB.js.map → chunk-7L77UGLB.js.map} +1 -1
  21. package/dist/{chunk-AUJ7TUEZ.cjs → chunk-ASSX63NG.cjs} +185 -185
  22. package/dist/{chunk-AUJ7TUEZ.cjs.map → chunk-ASSX63NG.cjs.map} +1 -1
  23. package/dist/{chunk-QFVPZL25.cjs → chunk-C7W22LW7.cjs} +5 -5
  24. package/dist/{chunk-QFVPZL25.cjs.map → chunk-C7W22LW7.cjs.map} +1 -1
  25. package/dist/{chunk-TULT7C36.js → chunk-CBP34G7K.js} +50 -6
  26. package/dist/chunk-CBP34G7K.js.map +1 -0
  27. package/dist/{chunk-V5FLTMXK.js → chunk-E4FZAE2V.js} +3 -3
  28. package/dist/chunk-E4FZAE2V.js.map +1 -0
  29. package/dist/{chunk-CXQ3QR5K.cjs → chunk-FDB7QXFM.cjs} +48 -48
  30. package/dist/{chunk-CXQ3QR5K.cjs.map → chunk-FDB7QXFM.cjs.map} +1 -1
  31. package/dist/{chunk-A67TNS6N.cjs → chunk-HIC3WGQU.cjs} +75 -30
  32. package/dist/chunk-HIC3WGQU.cjs.map +1 -0
  33. package/dist/{chunk-NMRSL5GT.js → chunk-I4FNELWY.js} +9 -9
  34. package/dist/{chunk-NMRSL5GT.js.map → chunk-I4FNELWY.js.map} +1 -1
  35. package/dist/{chunk-PJERQ3YG.cjs → chunk-J5E6MWAL.cjs} +3 -3
  36. package/dist/chunk-J5E6MWAL.cjs.map +1 -0
  37. package/dist/{chunk-VDXTOWVO.cjs → chunk-MM743DL3.cjs} +63 -19
  38. package/dist/chunk-MM743DL3.cjs.map +1 -0
  39. package/dist/{chunk-GYQ22SLZ.js → chunk-NPU3H2M6.js} +4 -4
  40. package/dist/{chunk-GYQ22SLZ.js.map → chunk-NPU3H2M6.js.map} +1 -1
  41. package/dist/{chunk-M7O57C2Y.js → chunk-PGXL3YYH.js} +72 -27
  42. package/dist/chunk-PGXL3YYH.js.map +1 -0
  43. package/dist/{chunk-WTVDTW4F.js → chunk-PND63X2U.js} +68 -16
  44. package/dist/chunk-PND63X2U.js.map +1 -0
  45. package/dist/{chunk-NVMXENQS.cjs → chunk-QTJXNO73.cjs} +17 -17
  46. package/dist/{chunk-NVMXENQS.cjs.map → chunk-QTJXNO73.cjs.map} +1 -1
  47. package/dist/{chunk-UZVGJ26K.cjs → chunk-QWJTDFN4.cjs} +77 -77
  48. package/dist/{chunk-UZVGJ26K.cjs.map → chunk-QWJTDFN4.cjs.map} +1 -1
  49. package/dist/{chunk-4CUUOZHE.cjs → chunk-VBGSQQ6Z.cjs} +9 -9
  50. package/dist/{chunk-4CUUOZHE.cjs.map → chunk-VBGSQQ6Z.cjs.map} +1 -1
  51. package/dist/{chunk-Y7KNCAZY.js → chunk-VW6KVZ5J.js} +3 -3
  52. package/dist/{chunk-Y7KNCAZY.js.map → chunk-VW6KVZ5J.js.map} +1 -1
  53. package/dist/{chunk-7RUFTPIY.js → chunk-ZINYS2FM.js} +4 -4
  54. package/dist/{chunk-7RUFTPIY.js.map → chunk-ZINYS2FM.js.map} +1 -1
  55. package/dist/{chunk-HPVNBI7J.js → chunk-ZXVSOWZV.js} +3 -3
  56. package/dist/{chunk-HPVNBI7J.js.map → chunk-ZXVSOWZV.js.map} +1 -1
  57. package/dist/datasets/index.cjs +11 -11
  58. package/dist/datasets/index.js +1 -1
  59. package/dist/docs/SKILL.md +1 -1
  60. package/dist/docs/assets/SOURCE_MAP.json +157 -157
  61. package/dist/docs/references/docs-server-mastra-client.md +2 -2
  62. package/dist/docs/references/docs-server-mastra-server.md +1 -1
  63. package/dist/docs/references/docs-workspace-overview.md +35 -7
  64. package/dist/evals/index.cjs +5 -5
  65. package/dist/evals/index.js +2 -2
  66. package/dist/evals/scoreTraces/index.cjs +3 -3
  67. package/dist/evals/scoreTraces/index.js +1 -1
  68. package/dist/harness/index.cjs +18 -11
  69. package/dist/harness/index.cjs.map +1 -1
  70. package/dist/harness/index.js +14 -7
  71. package/dist/harness/index.js.map +1 -1
  72. package/dist/harness/tools.d.ts.map +1 -1
  73. package/dist/index.cjs +2 -2
  74. package/dist/index.js +1 -1
  75. package/dist/llm/index.cjs +20 -20
  76. package/dist/llm/index.js +5 -5
  77. package/dist/llm/model/provider-types.generated.d.ts +15 -1
  78. package/dist/loop/index.cjs +14 -14
  79. package/dist/loop/index.js +1 -1
  80. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  81. package/dist/mastra/index.cjs +2 -2
  82. package/dist/mastra/index.js +1 -1
  83. package/dist/mastra-PWENJ3CT.cjs +12 -0
  84. package/dist/{mastra-33MCZUH4.cjs.map → mastra-PWENJ3CT.cjs.map} +1 -1
  85. package/dist/mastra-VFBM63EH.js +3 -0
  86. package/dist/{mastra-RY543V4U.js.map → mastra-VFBM63EH.js.map} +1 -1
  87. package/dist/memory/index.cjs +17 -17
  88. package/dist/memory/index.js +1 -1
  89. package/dist/models-dev-LDOOABB3.js +3 -0
  90. package/dist/{models-dev-2BJQPEQJ.js.map → models-dev-LDOOABB3.js.map} +1 -1
  91. package/dist/models-dev-NK3HQWLN.cjs +12 -0
  92. package/dist/{models-dev-OZGJCJIG.cjs.map → models-dev-NK3HQWLN.cjs.map} +1 -1
  93. package/dist/netlify-BD2Y34DD.js +3 -0
  94. package/dist/{netlify-N7PUN3NA.js.map → netlify-BD2Y34DD.js.map} +1 -1
  95. package/dist/netlify-M374SBKN.cjs +12 -0
  96. package/dist/{netlify-TSDN7D7F.cjs.map → netlify-M374SBKN.cjs.map} +1 -1
  97. package/dist/processor-provider/index.cjs +10 -10
  98. package/dist/processor-provider/index.js +1 -1
  99. package/dist/processors/index.cjs +44 -44
  100. package/dist/processors/index.js +1 -1
  101. package/dist/provider-registry-OX6F72LR.js +3 -0
  102. package/dist/{provider-registry-EINTM27D.js.map → provider-registry-OX6F72LR.js.map} +1 -1
  103. package/dist/provider-registry-YMGOMVKY.cjs +40 -0
  104. package/dist/{provider-registry-DBWCMPP3.cjs.map → provider-registry-YMGOMVKY.cjs.map} +1 -1
  105. package/dist/provider-registry.json +60 -8
  106. package/dist/relevance/index.cjs +3 -3
  107. package/dist/relevance/index.js +1 -1
  108. package/dist/stream/index.cjs +8 -8
  109. package/dist/stream/index.js +1 -1
  110. package/dist/tool-loop-agent/index.cjs +4 -4
  111. package/dist/tool-loop-agent/index.js +1 -1
  112. package/dist/workflows/evented/index.cjs +10 -10
  113. package/dist/workflows/evented/index.js +1 -1
  114. package/dist/workflows/index.cjs +24 -24
  115. package/dist/workflows/index.js +1 -1
  116. package/dist/workspace/index.cjs +68 -68
  117. package/dist/workspace/index.d.ts +1 -1
  118. package/dist/workspace/index.d.ts.map +1 -1
  119. package/dist/workspace/index.js +1 -1
  120. package/dist/workspace/tools/index.d.ts +1 -1
  121. package/dist/workspace/tools/index.d.ts.map +1 -1
  122. package/dist/workspace/tools/tools.d.ts +18 -10
  123. package/dist/workspace/tools/tools.d.ts.map +1 -1
  124. package/dist/workspace/tools/types.d.ts +51 -7
  125. package/dist/workspace/tools/types.d.ts.map +1 -1
  126. package/package.json +5 -5
  127. package/src/llm/model/provider-types.generated.d.ts +15 -1
  128. package/dist/chunk-A67TNS6N.cjs.map +0 -1
  129. package/dist/chunk-M7O57C2Y.js.map +0 -1
  130. package/dist/chunk-PJERQ3YG.cjs.map +0 -1
  131. package/dist/chunk-RHKFYYB6.cjs.map +0 -1
  132. package/dist/chunk-TULT7C36.js.map +0 -1
  133. package/dist/chunk-V5FLTMXK.js.map +0 -1
  134. package/dist/chunk-VDXTOWVO.cjs.map +0 -1
  135. package/dist/chunk-WTVDTW4F.js.map +0 -1
  136. package/dist/mastra-33MCZUH4.cjs +0 -12
  137. package/dist/mastra-RY543V4U.js +0 -3
  138. package/dist/models-dev-2BJQPEQJ.js +0 -3
  139. package/dist/models-dev-OZGJCJIG.cjs +0 -12
  140. package/dist/netlify-N7PUN3NA.js +0 -3
  141. package/dist/netlify-TSDN7D7F.cjs +0 -12
  142. package/dist/provider-registry-DBWCMPP3.cjs +0 -40
  143. package/dist/provider-registry-EINTM27D.js +0 -3
@@ -1,4 +1,4 @@
1
- import { MastraModelGateway, createOpenAICompatible, MASTRA_USER_AGENT, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-V5FLTMXK.js';
1
+ import { MastraModelGateway, createOpenAICompatible, MASTRA_USER_AGENT, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-E4FZAE2V.js';
2
2
  import { InMemoryServerCache } from './chunk-3EXOZA2Y.js';
3
3
  import { MastraError } from './chunk-FJEVLHJT.js';
4
4
 
@@ -161,5 +161,5 @@ var NetlifyGateway = class extends MastraModelGateway {
161
161
  };
162
162
 
163
163
  export { NetlifyGateway };
164
- //# sourceMappingURL=chunk-DRITAH5L.js.map
165
- //# sourceMappingURL=chunk-DRITAH5L.js.map
164
+ //# sourceMappingURL=chunk-44L3XRON.js.map
165
+ //# sourceMappingURL=chunk-44L3XRON.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-DRITAH5L.js","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v5';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { MASTRA_USER_AGENT } from './constants.js';\n\ninterface NetlifyProviderResponse {\n token_env_var: string;\n url_env_var: string;\n models: string[];\n}\ninterface NetlifyResponse {\n providers: Record<string, NetlifyProviderResponse>;\n}\n\ninterface NetlifyTokenResponse {\n token: string;\n url: string;\n expires_at: number;\n}\n\ninterface CachedToken {\n token: string;\n url: string;\n expiresAt: number;\n}\n\ninterface TokenData {\n token: string;\n url: string;\n}\n\nexport class NetlifyGateway extends MastraModelGateway {\n readonly id = 'netlify';\n readonly name = 'Netlify AI Gateway';\n private tokenCache = new InMemoryServerCache();\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://api.netlify.com/api/v1/ai-gateway/providers');\n if (!response.ok) {\n throw new Error(`Failed to fetch from Netlify: ${response.statusText}`);\n }\n const data = (await response.json()) as NetlifyResponse;\n const config: ProviderConfig = {\n apiKeyEnvVar: ['NETLIFY_TOKEN', 'NETLIFY_SITE_ID'],\n apiKeyHeader: 'Authorization',\n name: `Netlify`,\n gateway: `netlify`,\n models: [],\n docUrl: 'https://docs.netlify.com/build/ai-gateway/overview/',\n };\n // Convert Netlify format to our standard format\n for (const [providerId, provider] of Object.entries(data.providers)) {\n for (const model of provider.models) {\n config.models.push(`${providerId}/${model}`);\n }\n }\n // Return with gateway ID as key - registry generator will detect this and avoid doubling the prefix\n return { netlify: config };\n }\n\n async buildUrl(routerId: string, envVars?: typeof process.env): Promise<string> {\n // Check for Netlify site ID first (for token exchange)\n const siteId = envVars?.['NETLIFY_SITE_ID'] || process.env['NETLIFY_SITE_ID'];\n const netlifyToken = envVars?.['NETLIFY_TOKEN'] || process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${routerId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${routerId}`,\n });\n }\n\n try {\n const tokenData = await this.getOrFetchToken(siteId, netlifyToken);\n return tokenData.url.endsWith(`/`) ? tokenData.url.substring(0, tokenData.url.length - 1) : tokenData.url;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${routerId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n private async getOrFetchToken(siteId: string, netlifyToken: string): Promise<TokenData> {\n const cacheKey = `netlify-token:${siteId}:${netlifyToken}`;\n\n // Check cache first\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n // Return cached token if it won't expire in the next minute\n return { token: cached.token, url: cached.url };\n }\n\n // Fetch new token\n const response = await fetch(`https://api.netlify.com/api/v1/sites/${siteId}/ai-gateway/token`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${netlifyToken}`,\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get Netlify AI Gateway token: ${response.status} ${error}`);\n }\n\n const tokenResponse = (await response.json()) as NetlifyTokenResponse;\n\n // Cache the token - InMemoryServerCache will handle the TTL\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.token,\n url: tokenResponse.url,\n expiresAt: tokenResponse.expires_at,\n });\n\n return { token: tokenResponse.token, url: tokenResponse.url };\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n async getApiKey(modelId: string): Promise<string> {\n const siteId = process.env['NETLIFY_SITE_ID'];\n const netlifyToken = process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${modelId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${modelId}`,\n });\n }\n\n try {\n return (await this.getOrFetchToken(siteId, netlifyToken)).token;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${modelId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<LanguageModelV2> {\n const baseURL = await this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n return createGoogleGenerativeAI({\n baseURL: `${baseURL}/v1beta/`,\n apiKey,\n headers: {\n 'user-agent': 'google-genai-sdk/',\n ...mastraHeaders,\n },\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({\n apiKey,\n baseURL: `${baseURL}/v1/`,\n headers: {\n 'anthropic-version': '2023-06-01',\n ...mastraHeaders,\n },\n })(modelId);\n default:\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-44L3XRON.js","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v5';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { MASTRA_USER_AGENT } from './constants.js';\n\ninterface NetlifyProviderResponse {\n token_env_var: string;\n url_env_var: string;\n models: string[];\n}\ninterface NetlifyResponse {\n providers: Record<string, NetlifyProviderResponse>;\n}\n\ninterface NetlifyTokenResponse {\n token: string;\n url: string;\n expires_at: number;\n}\n\ninterface CachedToken {\n token: string;\n url: string;\n expiresAt: number;\n}\n\ninterface TokenData {\n token: string;\n url: string;\n}\n\nexport class NetlifyGateway extends MastraModelGateway {\n readonly id = 'netlify';\n readonly name = 'Netlify AI Gateway';\n private tokenCache = new InMemoryServerCache();\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://api.netlify.com/api/v1/ai-gateway/providers');\n if (!response.ok) {\n throw new Error(`Failed to fetch from Netlify: ${response.statusText}`);\n }\n const data = (await response.json()) as NetlifyResponse;\n const config: ProviderConfig = {\n apiKeyEnvVar: ['NETLIFY_TOKEN', 'NETLIFY_SITE_ID'],\n apiKeyHeader: 'Authorization',\n name: `Netlify`,\n gateway: `netlify`,\n models: [],\n docUrl: 'https://docs.netlify.com/build/ai-gateway/overview/',\n };\n // Convert Netlify format to our standard format\n for (const [providerId, provider] of Object.entries(data.providers)) {\n for (const model of provider.models) {\n config.models.push(`${providerId}/${model}`);\n }\n }\n // Return with gateway ID as key - registry generator will detect this and avoid doubling the prefix\n return { netlify: config };\n }\n\n async buildUrl(routerId: string, envVars?: typeof process.env): Promise<string> {\n // Check for Netlify site ID first (for token exchange)\n const siteId = envVars?.['NETLIFY_SITE_ID'] || process.env['NETLIFY_SITE_ID'];\n const netlifyToken = envVars?.['NETLIFY_TOKEN'] || process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${routerId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${routerId}`,\n });\n }\n\n try {\n const tokenData = await this.getOrFetchToken(siteId, netlifyToken);\n return tokenData.url.endsWith(`/`) ? tokenData.url.substring(0, tokenData.url.length - 1) : tokenData.url;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${routerId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n private async getOrFetchToken(siteId: string, netlifyToken: string): Promise<TokenData> {\n const cacheKey = `netlify-token:${siteId}:${netlifyToken}`;\n\n // Check cache first\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n // Return cached token if it won't expire in the next minute\n return { token: cached.token, url: cached.url };\n }\n\n // Fetch new token\n const response = await fetch(`https://api.netlify.com/api/v1/sites/${siteId}/ai-gateway/token`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${netlifyToken}`,\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get Netlify AI Gateway token: ${response.status} ${error}`);\n }\n\n const tokenResponse = (await response.json()) as NetlifyTokenResponse;\n\n // Cache the token - InMemoryServerCache will handle the TTL\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.token,\n url: tokenResponse.url,\n expiresAt: tokenResponse.expires_at,\n });\n\n return { token: tokenResponse.token, url: tokenResponse.url };\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n async getApiKey(modelId: string): Promise<string> {\n const siteId = process.env['NETLIFY_SITE_ID'];\n const netlifyToken = process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${modelId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${modelId}`,\n });\n }\n\n try {\n return (await this.getOrFetchToken(siteId, netlifyToken)).token;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${modelId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<LanguageModelV2> {\n const baseURL = await this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n return createGoogleGenerativeAI({\n baseURL: `${baseURL}/v1beta/`,\n apiKey,\n headers: {\n 'user-agent': 'google-genai-sdk/',\n ...mastraHeaders,\n },\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({\n apiKey,\n baseURL: `${baseURL}/v1/`,\n headers: {\n 'anthropic-version': '2023-06-01',\n ...mastraHeaders,\n },\n })(modelId);\n default:\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkAUJ7TUEZ_cjs = require('./chunk-AUJ7TUEZ.cjs');
4
- var chunk4CUUOZHE_cjs = require('./chunk-4CUUOZHE.cjs');
5
- var chunkPJERQ3YG_cjs = require('./chunk-PJERQ3YG.cjs');
3
+ var chunkASSX63NG_cjs = require('./chunk-ASSX63NG.cjs');
4
+ var chunkVBGSQQ6Z_cjs = require('./chunk-VBGSQQ6Z.cjs');
5
+ var chunkJ5E6MWAL_cjs = require('./chunk-J5E6MWAL.cjs');
6
6
  var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
7
7
  var fs = require('fs');
8
8
  var module$1 = require('module');
@@ -17,7 +17,7 @@ var os__default = /*#__PURE__*/_interopDefault(os);
17
17
  var path__default = /*#__PURE__*/_interopDefault(path);
18
18
 
19
19
  // src/llm/model/gateways/mastra.ts
20
- var MastraGateway = class extends chunkPJERQ3YG_cjs.MastraModelGateway {
20
+ var MastraGateway = class extends chunkJ5E6MWAL_cjs.MastraModelGateway {
21
21
  constructor(config) {
22
22
  super();
23
23
  this.config = config;
@@ -73,34 +73,34 @@ var MastraGateway = class extends chunkPJERQ3YG_cjs.MastraModelGateway {
73
73
  const baseURL = `${this.getBaseUrl()}/v1`;
74
74
  const fullModelId = `${providerId}/${modelId}`;
75
75
  if (this.config?.customFetch && providerId === "anthropic") {
76
- return chunkPJERQ3YG_cjs.createAnthropic({
76
+ return chunkJ5E6MWAL_cjs.createAnthropic({
77
77
  apiKey: "oauth-gateway-placeholder",
78
78
  baseURL,
79
79
  headers: {
80
- "User-Agent": chunkPJERQ3YG_cjs.MASTRA_USER_AGENT,
81
- [chunkPJERQ3YG_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
80
+ "User-Agent": chunkJ5E6MWAL_cjs.MASTRA_USER_AGENT,
81
+ [chunkJ5E6MWAL_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
82
82
  ...headers
83
83
  },
84
84
  fetch: this.config.customFetch
85
85
  })(modelId);
86
86
  }
87
87
  if (this.config?.customFetch) {
88
- return chunkAUJ7TUEZ_cjs.createOpenRouter({
88
+ return chunkASSX63NG_cjs.createOpenRouter({
89
89
  apiKey: "oauth-gateway-placeholder",
90
90
  baseURL,
91
91
  headers: {
92
- "User-Agent": chunkPJERQ3YG_cjs.MASTRA_USER_AGENT,
93
- [chunkPJERQ3YG_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
92
+ "User-Agent": chunkJ5E6MWAL_cjs.MASTRA_USER_AGENT,
93
+ [chunkJ5E6MWAL_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
94
94
  ...headers
95
95
  },
96
96
  fetch: this.config.customFetch
97
97
  }).chat(fullModelId);
98
98
  }
99
- return chunkAUJ7TUEZ_cjs.createOpenRouter({
99
+ return chunkASSX63NG_cjs.createOpenRouter({
100
100
  apiKey,
101
101
  baseURL,
102
102
  headers: {
103
- "User-Agent": chunkPJERQ3YG_cjs.MASTRA_USER_AGENT,
103
+ "User-Agent": chunkJ5E6MWAL_cjs.MASTRA_USER_AGENT,
104
104
  ...headers
105
105
  }
106
106
  }).chat(fullModelId);
@@ -1188,7 +1188,9 @@ var provider_registry_default = {
1188
1188
  "gemma-3-27b-it",
1189
1189
  "gemma-3-4b-it",
1190
1190
  "gemma-3n-e2b-it",
1191
- "gemma-3n-e4b-it"
1191
+ "gemma-3n-e4b-it",
1192
+ "gemma-4-26b",
1193
+ "gemma-4-31b"
1192
1194
  ],
1193
1195
  docUrl: "https://ai.google.dev/gemini-api/docs/pricing",
1194
1196
  gateway: "models.dev",
@@ -1313,7 +1315,7 @@ var provider_registry_default = {
1313
1315
  name: "Alibaba (China)",
1314
1316
  models: [
1315
1317
  "MiniMax-M2.5",
1316
- "MiniMax/MiniMax-M2.5",
1318
+ "MiniMax/MiniMax-M2.7",
1317
1319
  "deepseek-r1",
1318
1320
  "deepseek-r1-0528",
1319
1321
  "deepseek-r1-distill-llama-70b",
@@ -1379,6 +1381,7 @@ var provider_registry_default = {
1379
1381
  "qwen3.5-397b-a17b",
1380
1382
  "qwen3.5-flash",
1381
1383
  "qwen3.5-plus",
1384
+ "qwen3.6-plus",
1382
1385
  "qwq-32b",
1383
1386
  "qwq-plus",
1384
1387
  "siliconflow/deepseek-r1-0528",
@@ -2353,6 +2356,7 @@ var provider_registry_default = {
2353
2356
  "inclusionai/ring-1t",
2354
2357
  "kuaishou/kat-coder-pro-v1",
2355
2358
  "kuaishou/kat-coder-pro-v1-free",
2359
+ "kuaishou/kat-coder-pro-v2",
2356
2360
  "minimax/minimax-m2",
2357
2361
  "minimax/minimax-m2.1",
2358
2362
  "minimax/minimax-m2.5",
@@ -2382,6 +2386,7 @@ var provider_registry_default = {
2382
2386
  "qwen/qwen3-max",
2383
2387
  "qwen/qwen3.5-flash",
2384
2388
  "qwen/qwen3.5-plus",
2389
+ "qwen/qwen3.6-plus",
2385
2390
  "stepfun/step-3",
2386
2391
  "stepfun/step-3.5-flash",
2387
2392
  "stepfun/step-3.5-flash-free",
@@ -2412,7 +2417,8 @@ var provider_registry_default = {
2412
2417
  "z-ai/glm-4.7-flash-free",
2413
2418
  "z-ai/glm-4.7-flashx",
2414
2419
  "z-ai/glm-5",
2415
- "z-ai/glm-5-turbo"
2420
+ "z-ai/glm-5-turbo",
2421
+ "z-ai/glm-5v-turbo"
2416
2422
  ],
2417
2423
  docUrl: "https://docs.zenmux.ai",
2418
2424
  gateway: "models.dev"
@@ -2425,6 +2431,15 @@ var provider_registry_default = {
2425
2431
  gateway: "models.dev",
2426
2432
  npm: "@ai-sdk/perplexity"
2427
2433
  },
2434
+ "xiaomi-token-plan-sgp": {
2435
+ url: "https://token-plan-sgp.xiaomimimo.com/v1",
2436
+ apiKeyEnvVar: "XIAOMI_API_KEY",
2437
+ apiKeyHeader: "Authorization",
2438
+ name: "Xiaomi Token Plan (Singapore)",
2439
+ models: ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
2440
+ docUrl: "https://platform.xiaomimimo.com/#/docs",
2441
+ gateway: "models.dev"
2442
+ },
2428
2443
  "privatemode-ai": {
2429
2444
  url: "http://localhost:8080/v1",
2430
2445
  apiKeyEnvVar: "PRIVATEMODE_API_KEY",
@@ -2770,6 +2785,7 @@ var provider_registry_default = {
2770
2785
  "alibaba/qwen3-vl-thinking",
2771
2786
  "alibaba/qwen3.5-flash",
2772
2787
  "alibaba/qwen3.5-plus",
2788
+ "alibaba/qwen3.6-plus",
2773
2789
  "amazon/nova-2-lite",
2774
2790
  "amazon/nova-lite",
2775
2791
  "amazon/nova-micro",
@@ -2790,6 +2806,7 @@ var provider_registry_default = {
2790
2806
  "anthropic/claude-sonnet-4.5",
2791
2807
  "anthropic/claude-sonnet-4.6",
2792
2808
  "arcee-ai/trinity-large-preview",
2809
+ "arcee-ai/trinity-large-thinking",
2793
2810
  "arcee-ai/trinity-mini",
2794
2811
  "bfl/flux-kontext-max",
2795
2812
  "bfl/flux-kontext-pro",
@@ -2824,6 +2841,8 @@ var provider_registry_default = {
2824
2841
  "google/gemini-3.1-pro-preview",
2825
2842
  "google/gemini-embedding-001",
2826
2843
  "google/gemini-embedding-2",
2844
+ "google/gemma-4-26b-a4b-it",
2845
+ "google/gemma-4-31b-it",
2827
2846
  "google/imagen-4.0-fast-generate-001",
2828
2847
  "google/imagen-4.0-generate-001",
2829
2848
  "google/imagen-4.0-ultra-generate-001",
@@ -2974,7 +2993,8 @@ var provider_registry_default = {
2974
2993
  "zai/glm-4.7-flash",
2975
2994
  "zai/glm-4.7-flashx",
2976
2995
  "zai/glm-5",
2977
- "zai/glm-5-turbo"
2996
+ "zai/glm-5-turbo",
2997
+ "zai/glm-5v-turbo"
2978
2998
  ],
2979
2999
  docUrl: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",
2980
3000
  gateway: "models.dev"
@@ -3263,6 +3283,15 @@ var provider_registry_default = {
3263
3283
  gateway: "models.dev",
3264
3284
  npm: "@ai-sdk/groq"
3265
3285
  },
3286
+ "xiaomi-token-plan-ams": {
3287
+ url: "https://token-plan-ams.xiaomimimo.com/v1",
3288
+ apiKeyEnvVar: "XIAOMI_API_KEY",
3289
+ apiKeyHeader: "Authorization",
3290
+ name: "Xiaomi Token Plan (Europe)",
3291
+ models: ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
3292
+ docUrl: "https://platform.xiaomimimo.com/#/docs",
3293
+ gateway: "models.dev"
3294
+ },
3266
3295
  "minimax-cn-coding-plan": {
3267
3296
  url: "https://api.minimaxi.com/anthropic/v1",
3268
3297
  apiKeyEnvVar: "MINIMAX_API_KEY",
@@ -4364,6 +4393,15 @@ var provider_registry_default = {
4364
4393
  gateway: "models.dev",
4365
4394
  npm: "@ai-sdk/anthropic"
4366
4395
  },
4396
+ "xiaomi-token-plan-cn": {
4397
+ url: "https://token-plan-cn.xiaomimimo.com/v1",
4398
+ apiKeyEnvVar: "XIAOMI_API_KEY",
4399
+ apiKeyHeader: "Authorization",
4400
+ name: "Xiaomi Token Plan (China)",
4401
+ models: ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
4402
+ docUrl: "https://platform.xiaomimimo.com/#/docs",
4403
+ gateway: "models.dev"
4404
+ },
4367
4405
  "fireworks-ai": {
4368
4406
  url: "https://api.fireworks.ai/inference/v1/",
4369
4407
  apiKeyEnvVar: "FIREWORKS_API_KEY",
@@ -5368,7 +5406,9 @@ var provider_registry_default = {
5368
5406
  "gemma-3-27b-it",
5369
5407
  "gemma-3-4b-it",
5370
5408
  "gemma-3n-e2b-it",
5371
- "gemma-3n-e4b-it"
5409
+ "gemma-3n-e4b-it",
5410
+ "gemma-4-26b",
5411
+ "gemma-4-31b"
5372
5412
  ],
5373
5413
  "cloudferro-sherlock": [
5374
5414
  "MiniMaxAI/MiniMax-M2.5",
@@ -5451,7 +5491,7 @@ var provider_registry_default = {
5451
5491
  "kimi-for-coding": ["k2p5", "kimi-k2-thinking"],
5452
5492
  "alibaba-cn": [
5453
5493
  "MiniMax-M2.5",
5454
- "MiniMax/MiniMax-M2.5",
5494
+ "MiniMax/MiniMax-M2.7",
5455
5495
  "deepseek-r1",
5456
5496
  "deepseek-r1-0528",
5457
5497
  "deepseek-r1-distill-llama-70b",
@@ -5517,6 +5557,7 @@ var provider_registry_default = {
5517
5557
  "qwen3.5-397b-a17b",
5518
5558
  "qwen3.5-flash",
5519
5559
  "qwen3.5-plus",
5560
+ "qwen3.6-plus",
5520
5561
  "qwq-32b",
5521
5562
  "qwq-plus",
5522
5563
  "siliconflow/deepseek-r1-0528",
@@ -6395,6 +6436,7 @@ var provider_registry_default = {
6395
6436
  "inclusionai/ring-1t",
6396
6437
  "kuaishou/kat-coder-pro-v1",
6397
6438
  "kuaishou/kat-coder-pro-v1-free",
6439
+ "kuaishou/kat-coder-pro-v2",
6398
6440
  "minimax/minimax-m2",
6399
6441
  "minimax/minimax-m2.1",
6400
6442
  "minimax/minimax-m2.5",
@@ -6424,6 +6466,7 @@ var provider_registry_default = {
6424
6466
  "qwen/qwen3-max",
6425
6467
  "qwen/qwen3.5-flash",
6426
6468
  "qwen/qwen3.5-plus",
6469
+ "qwen/qwen3.6-plus",
6427
6470
  "stepfun/step-3",
6428
6471
  "stepfun/step-3.5-flash",
6429
6472
  "stepfun/step-3.5-flash-free",
@@ -6454,9 +6497,11 @@ var provider_registry_default = {
6454
6497
  "z-ai/glm-4.7-flash-free",
6455
6498
  "z-ai/glm-4.7-flashx",
6456
6499
  "z-ai/glm-5",
6457
- "z-ai/glm-5-turbo"
6500
+ "z-ai/glm-5-turbo",
6501
+ "z-ai/glm-5v-turbo"
6458
6502
  ],
6459
6503
  perplexity: ["sonar", "sonar-deep-research", "sonar-pro", "sonar-reasoning-pro"],
6504
+ "xiaomi-token-plan-sgp": ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
6460
6505
  "privatemode-ai": ["gemma-3-27b", "gpt-oss-120b", "qwen3-coder-30b-a3b", "qwen3-embedding-4b", "whisper-large-v3"],
6461
6506
  "perplexity-agent": [
6462
6507
  "anthropic/claude-haiku-4-5",
@@ -6701,6 +6746,7 @@ var provider_registry_default = {
6701
6746
  "alibaba/qwen3-vl-thinking",
6702
6747
  "alibaba/qwen3.5-flash",
6703
6748
  "alibaba/qwen3.5-plus",
6749
+ "alibaba/qwen3.6-plus",
6704
6750
  "amazon/nova-2-lite",
6705
6751
  "amazon/nova-lite",
6706
6752
  "amazon/nova-micro",
@@ -6721,6 +6767,7 @@ var provider_registry_default = {
6721
6767
  "anthropic/claude-sonnet-4.5",
6722
6768
  "anthropic/claude-sonnet-4.6",
6723
6769
  "arcee-ai/trinity-large-preview",
6770
+ "arcee-ai/trinity-large-thinking",
6724
6771
  "arcee-ai/trinity-mini",
6725
6772
  "bfl/flux-kontext-max",
6726
6773
  "bfl/flux-kontext-pro",
@@ -6755,6 +6802,8 @@ var provider_registry_default = {
6755
6802
  "google/gemini-3.1-pro-preview",
6756
6803
  "google/gemini-embedding-001",
6757
6804
  "google/gemini-embedding-2",
6805
+ "google/gemma-4-26b-a4b-it",
6806
+ "google/gemma-4-31b-it",
6758
6807
  "google/imagen-4.0-fast-generate-001",
6759
6808
  "google/imagen-4.0-generate-001",
6760
6809
  "google/imagen-4.0-ultra-generate-001",
@@ -6905,7 +6954,8 @@ var provider_registry_default = {
6905
6954
  "zai/glm-4.7-flash",
6906
6955
  "zai/glm-4.7-flashx",
6907
6956
  "zai/glm-5",
6908
- "zai/glm-5-turbo"
6957
+ "zai/glm-5-turbo",
6958
+ "zai/glm-5v-turbo"
6909
6959
  ],
6910
6960
  synthetic: [
6911
6961
  "hf:MiniMaxAI/MiniMax-M2",
@@ -7159,6 +7209,7 @@ var provider_registry_default = {
7159
7209
  "whisper-large-v3",
7160
7210
  "whisper-large-v3-turbo"
7161
7211
  ],
7212
+ "xiaomi-token-plan-ams": ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
7162
7213
  "minimax-cn-coding-plan": [
7163
7214
  "MiniMax-M2",
7164
7215
  "MiniMax-M2.1",
@@ -8081,6 +8132,7 @@ var provider_registry_default = {
8081
8132
  "kimi-k2-turbo-preview",
8082
8133
  "kimi-k2.5"
8083
8134
  ],
8135
+ "xiaomi-token-plan-cn": ["mimo-v2-omni", "mimo-v2-pro", "mimo-v2-tts"],
8084
8136
  "fireworks-ai": [
8085
8137
  "accounts/fireworks/models/deepseek-v3p1",
8086
8138
  "accounts/fireworks/models/deepseek-v3p2",
@@ -8361,7 +8413,7 @@ function saveLastRefreshTimeToDisk(date) {
8361
8413
  }
8362
8414
  function getPackageRoot() {
8363
8415
  try {
8364
- const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-RHKFYYB6.cjs', document.baseURI).href)) || "file://");
8416
+ const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-67H3I6U2.cjs', document.baseURI).href)) || "file://");
8365
8417
  const packageJsonPath = require2.resolve("@mastra/core/package.json");
8366
8418
  return path__default.default.dirname(packageJsonPath);
8367
8419
  } catch {
@@ -8370,8 +8422,8 @@ function getPackageRoot() {
8370
8422
  }
8371
8423
  function loadRegistry(useDynamicLoading, customGateways = []) {
8372
8424
  const enabledGatewayIds = getEnabledGatewayIds([
8373
- new chunkAUJ7TUEZ_cjs.ModelsDevGateway({}),
8374
- new chunk4CUUOZHE_cjs.NetlifyGateway(),
8425
+ new chunkASSX63NG_cjs.ModelsDevGateway({}),
8426
+ new chunkVBGSQQ6Z_cjs.NetlifyGateway(),
8375
8427
  new MastraGateway(),
8376
8428
  ...customGateways
8377
8429
  ]);
@@ -8568,9 +8620,9 @@ var GatewayRegistry = class _GatewayRegistry {
8568
8620
  }
8569
8621
  this.isRefreshing = true;
8570
8622
  try {
8571
- const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-OZGJCJIG.cjs');
8572
- const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-TSDN7D7F.cjs');
8573
- const { MastraGateway: MastraGateway2 } = await import('./mastra-33MCZUH4.cjs');
8623
+ const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-NK3HQWLN.cjs');
8624
+ const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-M374SBKN.cjs');
8625
+ const { MastraGateway: MastraGateway2 } = await import('./mastra-PWENJ3CT.cjs');
8574
8626
  const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-VNYH6GDH.cjs');
8575
8627
  const defaultGateways = [
8576
8628
  new ModelsDevGateway2({}),
@@ -8700,5 +8752,5 @@ exports.getRegisteredProviders = getRegisteredProviders;
8700
8752
  exports.isProviderRegistered = isProviderRegistered;
8701
8753
  exports.isValidModelId = isValidModelId;
8702
8754
  exports.parseModelString = parseModelString;
8703
- //# sourceMappingURL=chunk-RHKFYYB6.cjs.map
8704
- //# sourceMappingURL=chunk-RHKFYYB6.cjs.map
8755
+ //# sourceMappingURL=chunk-67H3I6U2.cjs.map
8756
+ //# sourceMappingURL=chunk-67H3I6U2.cjs.map