@mastra/core 1.28.0 → 1.29.0-alpha.0

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 (119) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/browser/index.cjs +2 -2
  5. package/dist/browser/index.js +1 -1
  6. package/dist/channels/index.cjs +4 -4
  7. package/dist/channels/index.js +1 -1
  8. package/dist/{chunk-DPYW3FPY.js → chunk-2WNYRCWK.js} +4 -4
  9. package/dist/{chunk-DPYW3FPY.js.map → chunk-2WNYRCWK.js.map} +1 -1
  10. package/dist/{chunk-DUQ3D26E.js → chunk-5GVFP3V6.js} +3 -3
  11. package/dist/chunk-5GVFP3V6.js.map +1 -0
  12. package/dist/{chunk-NXLAPKWV.js → chunk-6DOVWPAU.js} +3 -3
  13. package/dist/{chunk-NXLAPKWV.js.map → chunk-6DOVWPAU.js.map} +1 -1
  14. package/dist/{chunk-FUY6V2GQ.cjs → chunk-6ETCJK3W.cjs} +14 -14
  15. package/dist/{chunk-FUY6V2GQ.cjs.map → chunk-6ETCJK3W.cjs.map} +1 -1
  16. package/dist/{chunk-SMTGW6C5.js → chunk-B324CLR7.js} +10 -10
  17. package/dist/chunk-B324CLR7.js.map +1 -0
  18. package/dist/{chunk-FFNSDJOJ.cjs → chunk-B5Q34N4E.cjs} +57 -57
  19. package/dist/{chunk-FFNSDJOJ.cjs.map → chunk-B5Q34N4E.cjs.map} +1 -1
  20. package/dist/{chunk-RBWKHHP2.js → chunk-BZRB4HM2.js} +3 -3
  21. package/dist/{chunk-RBWKHHP2.js.map → chunk-BZRB4HM2.js.map} +1 -1
  22. package/dist/{chunk-N4RYN7C2.js → chunk-CSE22KG6.js} +3 -3
  23. package/dist/{chunk-N4RYN7C2.js.map → chunk-CSE22KG6.js.map} +1 -1
  24. package/dist/{chunk-DE3KHHLV.js → chunk-EMZ6DHQM.js} +3 -3
  25. package/dist/{chunk-DE3KHHLV.js.map → chunk-EMZ6DHQM.js.map} +1 -1
  26. package/dist/{chunk-BPT3YHUU.js → chunk-FRRSKGPV.js} +5 -5
  27. package/dist/{chunk-BPT3YHUU.js.map → chunk-FRRSKGPV.js.map} +1 -1
  28. package/dist/{chunk-5WTJHNP4.js → chunk-H5AP7SA5.js} +4 -4
  29. package/dist/{chunk-5WTJHNP4.js.map → chunk-H5AP7SA5.js.map} +1 -1
  30. package/dist/{chunk-J7DD4SSC.js → chunk-HEG6Q72X.js} +9 -9
  31. package/dist/{chunk-J7DD4SSC.js.map → chunk-HEG6Q72X.js.map} +1 -1
  32. package/dist/{chunk-AVGHSESJ.cjs → chunk-I2S3Y4U7.cjs} +224 -224
  33. package/dist/{chunk-AVGHSESJ.cjs.map → chunk-I2S3Y4U7.cjs.map} +1 -1
  34. package/dist/{chunk-JSOPDGXR.cjs → chunk-L5EYDYLZ.cjs} +17 -17
  35. package/dist/{chunk-JSOPDGXR.cjs.map → chunk-L5EYDYLZ.cjs.map} +1 -1
  36. package/dist/{chunk-MMD73TWG.cjs → chunk-MRMZAZQD.cjs} +7 -7
  37. package/dist/{chunk-MMD73TWG.cjs.map → chunk-MRMZAZQD.cjs.map} +1 -1
  38. package/dist/{chunk-G4IXPHSC.js → chunk-NB6W7IEZ.js} +6 -6
  39. package/dist/{chunk-G4IXPHSC.js.map → chunk-NB6W7IEZ.js.map} +1 -1
  40. package/dist/{chunk-OCWTM757.cjs → chunk-P6467VXB.cjs} +3 -3
  41. package/dist/chunk-P6467VXB.cjs.map +1 -0
  42. package/dist/{chunk-VNVKVOCW.cjs → chunk-R4UVRKHN.cjs} +6 -6
  43. package/dist/{chunk-VNVKVOCW.cjs.map → chunk-R4UVRKHN.cjs.map} +1 -1
  44. package/dist/{chunk-GCKYB7XS.cjs → chunk-RKLQTQOB.cjs} +292 -292
  45. package/dist/{chunk-GCKYB7XS.cjs.map → chunk-RKLQTQOB.cjs.map} +1 -1
  46. package/dist/{chunk-2ZLG55OF.cjs → chunk-VYPZBFXU.cjs} +9 -9
  47. package/dist/{chunk-2ZLG55OF.cjs.map → chunk-VYPZBFXU.cjs.map} +1 -1
  48. package/dist/{chunk-OUPTIIQU.cjs → chunk-W4HRUHDQ.cjs} +22 -22
  49. package/dist/chunk-W4HRUHDQ.cjs.map +1 -0
  50. package/dist/{chunk-GGHNXZKH.cjs → chunk-YDYSKY2G.cjs} +5 -5
  51. package/dist/{chunk-GGHNXZKH.cjs.map → chunk-YDYSKY2G.cjs.map} +1 -1
  52. package/dist/datasets/index.cjs +11 -11
  53. package/dist/datasets/index.js +1 -1
  54. package/dist/docs/SKILL.md +1 -1
  55. package/dist/docs/assets/SOURCE_MAP.json +131 -131
  56. package/dist/docs/references/docs-browser-overview.md +1 -0
  57. package/dist/docs/references/reference-client-js-agents.md +20 -0
  58. package/dist/evals/index.cjs +5 -5
  59. package/dist/evals/index.js +2 -2
  60. package/dist/evals/scoreTraces/index.cjs +3 -3
  61. package/dist/evals/scoreTraces/index.js +1 -1
  62. package/dist/harness/index.cjs +7 -7
  63. package/dist/harness/index.js +5 -5
  64. package/dist/index.cjs +2 -2
  65. package/dist/index.js +1 -1
  66. package/dist/llm/index.cjs +20 -20
  67. package/dist/llm/index.js +5 -5
  68. package/dist/llm/model/provider-types.generated.d.ts +1 -1
  69. package/dist/loop/index.cjs +14 -14
  70. package/dist/loop/index.js +1 -1
  71. package/dist/mastra/index.cjs +2 -2
  72. package/dist/mastra/index.js +1 -1
  73. package/dist/mastra-PHWJK3KT.cjs +12 -0
  74. package/dist/{mastra-P52GX7UZ.cjs.map → mastra-PHWJK3KT.cjs.map} +1 -1
  75. package/dist/mastra-QLKW7VLH.js +3 -0
  76. package/dist/{mastra-XXFWO6KG.js.map → mastra-QLKW7VLH.js.map} +1 -1
  77. package/dist/memory/index.cjs +19 -19
  78. package/dist/memory/index.js +1 -1
  79. package/dist/models-dev-BR33IUXC.cjs +12 -0
  80. package/dist/{models-dev-GPPPUPTJ.cjs.map → models-dev-BR33IUXC.cjs.map} +1 -1
  81. package/dist/models-dev-KZPYP6KI.js +3 -0
  82. package/dist/{models-dev-2X5G2DAS.js.map → models-dev-KZPYP6KI.js.map} +1 -1
  83. package/dist/netlify-MK3ONPAY.js +3 -0
  84. package/dist/{netlify-IXWIB5YM.js.map → netlify-MK3ONPAY.js.map} +1 -1
  85. package/dist/netlify-PWTSQ3KM.cjs +12 -0
  86. package/dist/{netlify-XCVMFKJW.cjs.map → netlify-PWTSQ3KM.cjs.map} +1 -1
  87. package/dist/processor-provider/index.cjs +10 -10
  88. package/dist/processor-provider/index.js +1 -1
  89. package/dist/processors/index.cjs +45 -45
  90. package/dist/processors/index.js +1 -1
  91. package/dist/provider-registry-35PCPXZ4.cjs +44 -0
  92. package/dist/{provider-registry-ZIFHRDXN.cjs.map → provider-registry-35PCPXZ4.cjs.map} +1 -1
  93. package/dist/provider-registry-PSSGSG2N.js +3 -0
  94. package/dist/{provider-registry-IEK7YETD.js.map → provider-registry-PSSGSG2N.js.map} +1 -1
  95. package/dist/provider-registry.json +2 -2
  96. package/dist/relevance/index.cjs +3 -3
  97. package/dist/relevance/index.js +1 -1
  98. package/dist/stream/index.cjs +8 -8
  99. package/dist/stream/index.js +1 -1
  100. package/dist/tool-loop-agent/index.cjs +4 -4
  101. package/dist/tool-loop-agent/index.js +1 -1
  102. package/dist/workflows/evented/index.cjs +10 -10
  103. package/dist/workflows/evented/index.js +1 -1
  104. package/dist/workflows/index.cjs +24 -24
  105. package/dist/workflows/index.js +1 -1
  106. package/package.json +4 -4
  107. package/src/llm/model/provider-types.generated.d.ts +1 -1
  108. package/dist/chunk-DUQ3D26E.js.map +0 -1
  109. package/dist/chunk-OCWTM757.cjs.map +0 -1
  110. package/dist/chunk-OUPTIIQU.cjs.map +0 -1
  111. package/dist/chunk-SMTGW6C5.js.map +0 -1
  112. package/dist/mastra-P52GX7UZ.cjs +0 -12
  113. package/dist/mastra-XXFWO6KG.js +0 -3
  114. package/dist/models-dev-2X5G2DAS.js +0 -3
  115. package/dist/models-dev-GPPPUPTJ.cjs +0 -12
  116. package/dist/netlify-IXWIB5YM.js +0 -3
  117. package/dist/netlify-XCVMFKJW.cjs +0 -12
  118. package/dist/provider-registry-IEK7YETD.js +0 -3
  119. package/dist/provider-registry-ZIFHRDXN.cjs +0 -44
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkOCWTM757_cjs = require('./chunk-OCWTM757.cjs');
3
+ var chunkP6467VXB_cjs = require('./chunk-P6467VXB.cjs');
4
4
  var chunkI4YMMVQ3_cjs = require('./chunk-I4YMMVQ3.cjs');
5
5
  var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
6
6
 
7
7
  // src/llm/model/gateways/netlify.ts
8
- var NetlifyGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
8
+ var NetlifyGateway = class extends chunkP6467VXB_cjs.MastraModelGateway {
9
9
  id = "netlify";
10
10
  name = "Netlify AI Gateway";
11
11
  tokenCache = new chunkI4YMMVQ3_cjs.InMemoryServerCache();
@@ -128,12 +128,12 @@ var NetlifyGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
128
128
  headers
129
129
  }) {
130
130
  const baseURL = await this.buildUrl(`${providerId}/${modelId}`);
131
- const mastraHeaders = { "User-Agent": chunkOCWTM757_cjs.MASTRA_USER_AGENT, ...headers };
131
+ const mastraHeaders = { "User-Agent": chunkP6467VXB_cjs.MASTRA_USER_AGENT, ...headers };
132
132
  switch (providerId) {
133
133
  case "openai":
134
- return chunkOCWTM757_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
134
+ return chunkP6467VXB_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
135
135
  case "gemini":
136
- return chunkOCWTM757_cjs.createGoogleGenerativeAI({
136
+ return chunkP6467VXB_cjs.createGoogleGenerativeAI({
137
137
  baseURL: `${baseURL}/v1beta/`,
138
138
  apiKey,
139
139
  headers: {
@@ -142,7 +142,7 @@ var NetlifyGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
142
142
  }
143
143
  }).chat(modelId);
144
144
  case "anthropic":
145
- return chunkOCWTM757_cjs.createAnthropic({
145
+ return chunkP6467VXB_cjs.createAnthropic({
146
146
  apiKey,
147
147
  baseURL: `${baseURL}/v1/`,
148
148
  headers: {
@@ -151,7 +151,7 @@ var NetlifyGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
151
151
  }
152
152
  })(modelId);
153
153
  default:
154
- return chunkOCWTM757_cjs.createOpenAICompatible({
154
+ return chunkP6467VXB_cjs.createOpenAICompatible({
155
155
  name: providerId,
156
156
  apiKey,
157
157
  baseURL,
@@ -163,5 +163,5 @@ var NetlifyGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
163
163
  };
164
164
 
165
165
  exports.NetlifyGateway = NetlifyGateway;
166
- //# sourceMappingURL=chunk-2ZLG55OF.cjs.map
167
- //# sourceMappingURL=chunk-2ZLG55OF.cjs.map
166
+ //# sourceMappingURL=chunk-VYPZBFXU.cjs.map
167
+ //# sourceMappingURL=chunk-VYPZBFXU.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":["MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenAICompatible"],"mappings":"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","file":"chunk-2ZLG55OF.cjs","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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":["MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenAICompatible"],"mappings":"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","file":"chunk-VYPZBFXU.cjs","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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 chunkAVGHSESJ_cjs = require('./chunk-AVGHSESJ.cjs');
4
- var chunk2ZLG55OF_cjs = require('./chunk-2ZLG55OF.cjs');
5
- var chunkOCWTM757_cjs = require('./chunk-OCWTM757.cjs');
3
+ var chunkI2S3Y4U7_cjs = require('./chunk-I2S3Y4U7.cjs');
4
+ var chunkVYPZBFXU_cjs = require('./chunk-VYPZBFXU.cjs');
5
+ var chunkP6467VXB_cjs = require('./chunk-P6467VXB.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 chunkOCWTM757_cjs.MastraModelGateway {
20
+ var MastraGateway = class extends chunkP6467VXB_cjs.MastraModelGateway {
21
21
  constructor(config) {
22
22
  super();
23
23
  this.config = config;
@@ -74,34 +74,34 @@ var MastraGateway = class extends chunkOCWTM757_cjs.MastraModelGateway {
74
74
  const baseURL = `${this.getBaseUrl()}/v1`;
75
75
  const fullModelId = `${providerId}/${modelId}`;
76
76
  if (this.config?.customFetch && providerId === "anthropic") {
77
- return chunkOCWTM757_cjs.createAnthropic({
77
+ return chunkP6467VXB_cjs.createAnthropic({
78
78
  apiKey: "oauth-gateway-placeholder",
79
79
  baseURL,
80
80
  headers: {
81
- "User-Agent": chunkOCWTM757_cjs.MASTRA_USER_AGENT,
82
- [chunkOCWTM757_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
81
+ "User-Agent": chunkP6467VXB_cjs.MASTRA_USER_AGENT,
82
+ [chunkP6467VXB_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
83
83
  ...headers
84
84
  },
85
85
  fetch: this.config.customFetch
86
86
  })(modelId);
87
87
  }
88
88
  if (this.config?.customFetch) {
89
- return chunkAVGHSESJ_cjs.createOpenRouter({
89
+ return chunkI2S3Y4U7_cjs.createOpenRouter({
90
90
  apiKey: "oauth-gateway-placeholder",
91
91
  baseURL,
92
92
  headers: {
93
- "User-Agent": chunkOCWTM757_cjs.MASTRA_USER_AGENT,
94
- [chunkOCWTM757_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
93
+ "User-Agent": chunkP6467VXB_cjs.MASTRA_USER_AGENT,
94
+ [chunkP6467VXB_cjs.GATEWAY_AUTH_HEADER]: `Bearer ${apiKey}`,
95
95
  ...headers
96
96
  },
97
97
  fetch: this.config.customFetch
98
98
  }).chat(fullModelId);
99
99
  }
100
- return chunkAVGHSESJ_cjs.createOpenRouter({
100
+ return chunkI2S3Y4U7_cjs.createOpenRouter({
101
101
  apiKey,
102
102
  baseURL,
103
103
  headers: {
104
- "User-Agent": chunkOCWTM757_cjs.MASTRA_USER_AGENT,
104
+ "User-Agent": chunkP6467VXB_cjs.MASTRA_USER_AGENT,
105
105
  ...headers
106
106
  }
107
107
  }).chat(fullModelId);
@@ -1070,7 +1070,7 @@ var provider_registry_default = {
1070
1070
  url: "https://api.deepseek.com",
1071
1071
  apiKeyEnvVar: "DEEPSEEK_API_KEY",
1072
1072
  name: "DeepSeek",
1073
- models: ["deepseek-chat", "deepseek-reasoner"],
1073
+ models: ["deepseek-chat", "deepseek-reasoner", "deepseek-v4-flash", "deepseek-v4-pro"],
1074
1074
  docUrl: "https://api-docs.deepseek.com/quick_start/pricing",
1075
1075
  gateway: "models.dev"
1076
1076
  },
@@ -5637,7 +5637,7 @@ var provider_registry_default = {
5637
5637
  "MiniMax-M2.7-highspeed"
5638
5638
  ],
5639
5639
  perplexity: ["sonar", "sonar-deep-research", "sonar-pro", "sonar-reasoning-pro"],
5640
- deepseek: ["deepseek-chat", "deepseek-reasoner"],
5640
+ deepseek: ["deepseek-chat", "deepseek-reasoner", "deepseek-v4-flash", "deepseek-v4-pro"],
5641
5641
  llama: [
5642
5642
  "cerebras-llama-4-maverick-17b-128e-instruct",
5643
5643
  "cerebras-llama-4-scout-17b-16e-instruct",
@@ -8728,7 +8728,7 @@ function saveLastRefreshTimeToDisk(date) {
8728
8728
  }
8729
8729
  function getPackageRoot() {
8730
8730
  try {
8731
- const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-OUPTIIQU.cjs', document.baseURI).href)) || "file://");
8731
+ const require2 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-W4HRUHDQ.cjs', document.baseURI).href)) || "file://");
8732
8732
  const packageJsonPath = require2.resolve("@mastra/core/package.json");
8733
8733
  return path__default.default.dirname(packageJsonPath);
8734
8734
  } catch {
@@ -8737,8 +8737,8 @@ function getPackageRoot() {
8737
8737
  }
8738
8738
  function loadRegistry(useDynamicLoading, customGateways = []) {
8739
8739
  const enabledGatewayIds = getEnabledGatewayIds([
8740
- new chunkAVGHSESJ_cjs.ModelsDevGateway({}),
8741
- new chunk2ZLG55OF_cjs.NetlifyGateway(),
8740
+ new chunkI2S3Y4U7_cjs.ModelsDevGateway({}),
8741
+ new chunkVYPZBFXU_cjs.NetlifyGateway(),
8742
8742
  new MastraGateway(),
8743
8743
  ...customGateways
8744
8744
  ]);
@@ -8938,9 +8938,9 @@ var GatewayRegistry = class _GatewayRegistry {
8938
8938
  }
8939
8939
  this.isRefreshing = true;
8940
8940
  try {
8941
- const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-GPPPUPTJ.cjs');
8942
- const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-XCVMFKJW.cjs');
8943
- const { MastraGateway: MastraGateway2 } = await import('./mastra-P52GX7UZ.cjs');
8941
+ const { ModelsDevGateway: ModelsDevGateway2 } = await import('./models-dev-BR33IUXC.cjs');
8942
+ const { NetlifyGateway: NetlifyGateway2 } = await import('./netlify-PWTSQ3KM.cjs');
8943
+ const { MastraGateway: MastraGateway2 } = await import('./mastra-PHWJK3KT.cjs');
8944
8944
  const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-VNYH6GDH.cjs');
8945
8945
  const defaultGateways = [
8946
8946
  new ModelsDevGateway2({}),
@@ -9074,5 +9074,5 @@ exports.isOfflineMode = isOfflineMode;
9074
9074
  exports.isProviderRegistered = isProviderRegistered;
9075
9075
  exports.isValidModelId = isValidModelId;
9076
9076
  exports.parseModelString = parseModelString;
9077
- //# sourceMappingURL=chunk-OUPTIIQU.cjs.map
9078
- //# sourceMappingURL=chunk-OUPTIIQU.cjs.map
9077
+ //# sourceMappingURL=chunk-W4HRUHDQ.cjs.map
9078
+ //# sourceMappingURL=chunk-W4HRUHDQ.cjs.map