@mastra/core 1.14.0-alpha.3 → 1.14.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 (102) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/{chunk-NUIDV2VL.js → chunk-42TT3VF3.js} +3 -3
  5. package/dist/{chunk-NUIDV2VL.js.map → chunk-42TT3VF3.js.map} +1 -1
  6. package/dist/{chunk-EEEPQC2V.cjs → chunk-5INB3RBA.cjs} +7 -7
  7. package/dist/{chunk-EEEPQC2V.cjs.map → chunk-5INB3RBA.cjs.map} +1 -1
  8. package/dist/{chunk-3X5TJK3I.js → chunk-BO4B4IUE.js} +3 -3
  9. package/dist/{chunk-3X5TJK3I.js.map → chunk-BO4B4IUE.js.map} +1 -1
  10. package/dist/{chunk-C3D2EKGM.cjs → chunk-CSDJRUU5.cjs} +3 -3
  11. package/dist/chunk-CSDJRUU5.cjs.map +1 -0
  12. package/dist/{chunk-KIL4FXNV.cjs → chunk-D2F3AOQO.cjs} +75 -75
  13. package/dist/{chunk-KIL4FXNV.cjs.map → chunk-D2F3AOQO.cjs.map} +1 -1
  14. package/dist/{chunk-U3YH4FWP.cjs → chunk-EI2DWLXJ.cjs} +185 -185
  15. package/dist/{chunk-U3YH4FWP.cjs.map → chunk-EI2DWLXJ.cjs.map} +1 -1
  16. package/dist/{chunk-TSMQOXL6.cjs → chunk-EQ7RFQAH.cjs} +48 -48
  17. package/dist/{chunk-TSMQOXL6.cjs.map → chunk-EQ7RFQAH.cjs.map} +1 -1
  18. package/dist/{chunk-UGD4IU3X.js → chunk-FBA74DL3.js} +3 -3
  19. package/dist/{chunk-UGD4IU3X.js.map → chunk-FBA74DL3.js.map} +1 -1
  20. package/dist/{chunk-SLEXQRTX.js → chunk-FL2ZHQ5X.js} +3 -3
  21. package/dist/chunk-FL2ZHQ5X.js.map +1 -0
  22. package/dist/{chunk-Q6MFBJ66.cjs → chunk-FS4I22PV.cjs} +9 -9
  23. package/dist/{chunk-Q6MFBJ66.cjs.map → chunk-FS4I22PV.cjs.map} +1 -1
  24. package/dist/{chunk-XB4RTECX.cjs → chunk-FSGRQN2S.cjs} +12 -12
  25. package/dist/{chunk-XB4RTECX.cjs.map → chunk-FSGRQN2S.cjs.map} +1 -1
  26. package/dist/{chunk-62KO5UTR.js → chunk-HRRDSSQ6.js} +4 -4
  27. package/dist/{chunk-62KO5UTR.js.map → chunk-HRRDSSQ6.js.map} +1 -1
  28. package/dist/{chunk-PDUI6NSB.js → chunk-I3T64TQT.js} +3 -3
  29. package/dist/{chunk-PDUI6NSB.js.map → chunk-I3T64TQT.js.map} +1 -1
  30. package/dist/{chunk-EBQALGNN.js → chunk-ICEYRAGL.js} +4 -4
  31. package/dist/{chunk-EBQALGNN.js.map → chunk-ICEYRAGL.js.map} +1 -1
  32. package/dist/{chunk-ZEV6ZTTJ.js → chunk-KJWK6VLB.js} +6 -6
  33. package/dist/{chunk-ZEV6ZTTJ.js.map → chunk-KJWK6VLB.js.map} +1 -1
  34. package/dist/{chunk-XPG4Y2LE.js → chunk-KWTXKBSU.js} +8 -8
  35. package/dist/{chunk-XPG4Y2LE.js.map → chunk-KWTXKBSU.js.map} +1 -1
  36. package/dist/{chunk-RKYLFJS2.js → chunk-MXKJEOAC.js} +4 -4
  37. package/dist/{chunk-RKYLFJS2.js.map → chunk-MXKJEOAC.js.map} +1 -1
  38. package/dist/{chunk-4334N37E.cjs → chunk-P7FGMAQE.cjs} +5 -5
  39. package/dist/{chunk-4334N37E.cjs.map → chunk-P7FGMAQE.cjs.map} +1 -1
  40. package/dist/{chunk-K4TJAFNZ.cjs → chunk-PEPNSYRB.cjs} +15 -15
  41. package/dist/{chunk-K4TJAFNZ.cjs.map → chunk-PEPNSYRB.cjs.map} +1 -1
  42. package/dist/{chunk-WY4RQDAN.js → chunk-S45RT6BL.js} +4 -4
  43. package/dist/{chunk-WY4RQDAN.js.map → chunk-S45RT6BL.js.map} +1 -1
  44. package/dist/{chunk-MCYRJIZP.cjs → chunk-XYDSWAZO.cjs} +6 -6
  45. package/dist/{chunk-MCYRJIZP.cjs.map → chunk-XYDSWAZO.cjs.map} +1 -1
  46. package/dist/{chunk-VVWXPSQE.cjs → chunk-ZLM2DHS7.cjs} +5 -5
  47. package/dist/{chunk-VVWXPSQE.cjs.map → chunk-ZLM2DHS7.cjs.map} +1 -1
  48. package/dist/datasets/index.cjs +11 -11
  49. package/dist/datasets/index.js +1 -1
  50. package/dist/docs/SKILL.md +1 -1
  51. package/dist/docs/assets/SOURCE_MAP.json +119 -119
  52. package/dist/evals/index.cjs +5 -5
  53. package/dist/evals/index.js +2 -2
  54. package/dist/evals/scoreTraces/index.cjs +3 -3
  55. package/dist/evals/scoreTraces/index.js +1 -1
  56. package/dist/harness/index.cjs +7 -7
  57. package/dist/harness/index.js +5 -5
  58. package/dist/index.cjs +2 -2
  59. package/dist/index.js +1 -1
  60. package/dist/llm/index.cjs +16 -16
  61. package/dist/llm/index.js +5 -5
  62. package/dist/loop/index.cjs +14 -14
  63. package/dist/loop/index.js +1 -1
  64. package/dist/mastra/index.cjs +2 -2
  65. package/dist/mastra/index.js +1 -1
  66. package/dist/memory/index.cjs +14 -14
  67. package/dist/memory/index.js +1 -1
  68. package/dist/models-dev-BNMQK7PL.cjs +12 -0
  69. package/dist/{models-dev-ZDDICXZ3.cjs.map → models-dev-BNMQK7PL.cjs.map} +1 -1
  70. package/dist/models-dev-H2QAY2CM.js +3 -0
  71. package/dist/{models-dev-YCVPUGGP.js.map → models-dev-H2QAY2CM.js.map} +1 -1
  72. package/dist/netlify-3U3NAGJ3.cjs +12 -0
  73. package/dist/{netlify-QHUTWBTR.cjs.map → netlify-3U3NAGJ3.cjs.map} +1 -1
  74. package/dist/netlify-NLIEE7PE.js +3 -0
  75. package/dist/{netlify-6YMLOPZS.js.map → netlify-NLIEE7PE.js.map} +1 -1
  76. package/dist/processor-provider/index.cjs +10 -10
  77. package/dist/processor-provider/index.js +1 -1
  78. package/dist/processors/index.cjs +42 -42
  79. package/dist/processors/index.js +1 -1
  80. package/dist/provider-registry-5OHGZ3GP.js +3 -0
  81. package/dist/{provider-registry-DZYIED4J.js.map → provider-registry-5OHGZ3GP.js.map} +1 -1
  82. package/dist/provider-registry-MKHIXI4D.cjs +40 -0
  83. package/dist/{provider-registry-NSDAYLQL.cjs.map → provider-registry-MKHIXI4D.cjs.map} +1 -1
  84. package/dist/relevance/index.cjs +3 -3
  85. package/dist/relevance/index.js +1 -1
  86. package/dist/stream/index.cjs +8 -8
  87. package/dist/stream/index.js +1 -1
  88. package/dist/tool-loop-agent/index.cjs +4 -4
  89. package/dist/tool-loop-agent/index.js +1 -1
  90. package/dist/workflows/evented/index.cjs +10 -10
  91. package/dist/workflows/evented/index.js +1 -1
  92. package/dist/workflows/index.cjs +24 -24
  93. package/dist/workflows/index.js +1 -1
  94. package/package.json +10 -10
  95. package/dist/chunk-C3D2EKGM.cjs.map +0 -1
  96. package/dist/chunk-SLEXQRTX.js.map +0 -1
  97. package/dist/models-dev-YCVPUGGP.js +0 -3
  98. package/dist/models-dev-ZDDICXZ3.cjs +0 -12
  99. package/dist/netlify-6YMLOPZS.js +0 -3
  100. package/dist/netlify-QHUTWBTR.cjs +0 -12
  101. package/dist/provider-registry-DZYIED4J.js +0 -3
  102. package/dist/provider-registry-NSDAYLQL.cjs +0 -40
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkC3D2EKGM_cjs = require('./chunk-C3D2EKGM.cjs');
3
+ var chunkCSDJRUU5_cjs = require('./chunk-CSDJRUU5.cjs');
4
4
  var chunk2VD5OGOT_cjs = require('./chunk-2VD5OGOT.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 chunkC3D2EKGM_cjs.MastraModelGateway {
8
+ var NetlifyGateway = class extends chunkCSDJRUU5_cjs.MastraModelGateway {
9
9
  id = "netlify";
10
10
  name = "Netlify AI Gateway";
11
11
  tokenCache = new chunk2VD5OGOT_cjs.InMemoryServerCache();
@@ -128,12 +128,12 @@ var NetlifyGateway = class extends chunkC3D2EKGM_cjs.MastraModelGateway {
128
128
  headers
129
129
  }) {
130
130
  const baseURL = await this.buildUrl(`${providerId}/${modelId}`);
131
- const mastraHeaders = { "User-Agent": chunkC3D2EKGM_cjs.MASTRA_USER_AGENT, ...headers };
131
+ const mastraHeaders = { "User-Agent": chunkCSDJRUU5_cjs.MASTRA_USER_AGENT, ...headers };
132
132
  switch (providerId) {
133
133
  case "openai":
134
- return chunkC3D2EKGM_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
134
+ return chunkCSDJRUU5_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
135
135
  case "gemini":
136
- return chunkC3D2EKGM_cjs.createGoogleGenerativeAI({
136
+ return chunkCSDJRUU5_cjs.createGoogleGenerativeAI({
137
137
  baseURL: `${baseURL}/v1beta/`,
138
138
  apiKey,
139
139
  headers: {
@@ -142,7 +142,7 @@ var NetlifyGateway = class extends chunkC3D2EKGM_cjs.MastraModelGateway {
142
142
  }
143
143
  }).chat(modelId);
144
144
  case "anthropic":
145
- return chunkC3D2EKGM_cjs.createAnthropic({
145
+ return chunkCSDJRUU5_cjs.createAnthropic({
146
146
  apiKey,
147
147
  baseURL: `${baseURL}/v1/`,
148
148
  headers: {
@@ -151,7 +151,7 @@ var NetlifyGateway = class extends chunkC3D2EKGM_cjs.MastraModelGateway {
151
151
  }
152
152
  })(modelId);
153
153
  default:
154
- return chunkC3D2EKGM_cjs.createOpenAICompatible({
154
+ return chunkCSDJRUU5_cjs.createOpenAICompatible({
155
155
  name: providerId,
156
156
  apiKey,
157
157
  baseURL,
@@ -163,5 +163,5 @@ var NetlifyGateway = class extends chunkC3D2EKGM_cjs.MastraModelGateway {
163
163
  };
164
164
 
165
165
  exports.NetlifyGateway = NetlifyGateway;
166
- //# sourceMappingURL=chunk-Q6MFBJ66.cjs.map
167
- //# sourceMappingURL=chunk-Q6MFBJ66.cjs.map
166
+ //# sourceMappingURL=chunk-FS4I22PV.cjs.map
167
+ //# sourceMappingURL=chunk-FS4I22PV.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-Q6MFBJ66.cjs","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":["MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenAICompatible"],"mappings":"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","file":"chunk-FS4I22PV.cjs","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,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkLDLSSJ7X_cjs = require('./chunk-LDLSSJ7X.cjs');
4
3
  var chunkZCBG4ZQT_cjs = require('./chunk-ZCBG4ZQT.cjs');
4
+ var chunkLDLSSJ7X_cjs = require('./chunk-LDLSSJ7X.cjs');
5
5
  var chunkNWC75FLU_cjs = require('./chunk-NWC75FLU.cjs');
6
6
  var chunkK5H3MT3B_cjs = require('./chunk-K5H3MT3B.cjs');
7
7
  var chunkNN4C4AVA_cjs = require('./chunk-NN4C4AVA.cjs');
8
8
  var chunkVBVOKSJK_cjs = require('./chunk-VBVOKSJK.cjs');
9
9
  var chunkCFMZZDO2_cjs = require('./chunk-CFMZZDO2.cjs');
10
10
  var chunkMR7ZWBL6_cjs = require('./chunk-MR7ZWBL6.cjs');
11
- var chunkKIL4FXNV_cjs = require('./chunk-KIL4FXNV.cjs');
11
+ var chunkD2F3AOQO_cjs = require('./chunk-D2F3AOQO.cjs');
12
12
  var chunkJ7Q3CZI5_cjs = require('./chunk-J7Q3CZI5.cjs');
13
13
  var chunk6BJ7XHRH_cjs = require('./chunk-6BJ7XHRH.cjs');
14
14
  var chunkOQDRPRKM_cjs = require('./chunk-OQDRPRKM.cjs');
@@ -2070,7 +2070,7 @@ var ProcessorRunner = class _ProcessorRunner {
2070
2070
  }
2071
2071
  const { model: _model, ...rest } = result;
2072
2072
  if (result.model) {
2073
- const resolvedModel = await chunkKIL4FXNV_cjs.resolveModelConfig(result.model);
2073
+ const resolvedModel = await chunkD2F3AOQO_cjs.resolveModelConfig(result.model);
2074
2074
  const isSupported = isSupportedLanguageModel(resolvedModel);
2075
2075
  if (!isSupported) {
2076
2076
  throw new chunk4U7ZLI36_cjs.MastraError({
@@ -11350,7 +11350,7 @@ var MastraScorer = class _MastraScorer {
11350
11350
  }
11351
11351
  });
11352
11352
  }
11353
- const resolvedModel = await chunkKIL4FXNV_cjs.resolveModelConfig(modelConfig, void 0, this.#mastra);
11353
+ const resolvedModel = await chunkD2F3AOQO_cjs.resolveModelConfig(modelConfig, void 0, this.#mastra);
11354
11354
  const judge = new Agent({
11355
11355
  id: "judge",
11356
11356
  name: "judge",
@@ -13007,7 +13007,7 @@ Analyse the suspended tools: ${JSON.stringify(suspendedTools)}, using the messag
13007
13007
  }
13008
13008
  });
13009
13009
  let transportResolver;
13010
- if (currentStep.model instanceof chunkKIL4FXNV_cjs.ModelRouterLanguageModel) {
13010
+ if (currentStep.model instanceof chunkD2F3AOQO_cjs.ModelRouterLanguageModel) {
13011
13011
  const routerModel = currentStep.model;
13012
13012
  transportResolver = () => routerModel._getStreamTransport();
13013
13013
  }
@@ -19860,7 +19860,7 @@ ${errorMessages}`,
19860
19860
  */
19861
19861
  async resolveModelConfig(modelConfig, requestContext) {
19862
19862
  try {
19863
- return await chunkKIL4FXNV_cjs.resolveModelConfig(modelConfig, requestContext, this.#mastra);
19863
+ return await chunkD2F3AOQO_cjs.resolveModelConfig(modelConfig, requestContext, this.#mastra);
19864
19864
  } catch (error) {
19865
19865
  const mastraError = new chunk4U7ZLI36_cjs.MastraError({
19866
19866
  id: "AGENT_GET_MODEL_MISSING_MODEL_INSTANCE",
@@ -21923,7 +21923,7 @@ ${effectiveInstructions}`;
21923
21923
  const resolvedModel = await this.resolveModelConfig(selection, requestContext);
21924
21924
  this.assertSupportsPreparedModels(resolvedModel);
21925
21925
  let headers;
21926
- if (resolvedModel instanceof chunkKIL4FXNV_cjs.ModelRouterLanguageModel) {
21926
+ if (resolvedModel instanceof chunkD2F3AOQO_cjs.ModelRouterLanguageModel) {
21927
21927
  headers = resolvedModel.config?.headers;
21928
21928
  }
21929
21929
  return [
@@ -21956,7 +21956,7 @@ ${effectiveInstructions}`;
21956
21956
  throw mastraError;
21957
21957
  }
21958
21958
  let headers;
21959
- if (model instanceof chunkKIL4FXNV_cjs.ModelRouterLanguageModel) {
21959
+ if (model instanceof chunkD2F3AOQO_cjs.ModelRouterLanguageModel) {
21960
21960
  headers = model.config?.headers;
21961
21961
  }
21962
21962
  return {
@@ -26039,7 +26039,7 @@ https://mastra.ai/en/docs/memory/semantic-recall`
26039
26039
  );
26040
26040
  }
26041
26041
  if (typeof config.embedder === "string") {
26042
- this.embedder = new chunkKIL4FXNV_cjs.ModelRouterEmbeddingModel(config.embedder);
26042
+ this.embedder = new chunkD2F3AOQO_cjs.ModelRouterEmbeddingModel(config.embedder);
26043
26043
  } else {
26044
26044
  this.embedder = config.embedder;
26045
26045
  }
@@ -26078,7 +26078,7 @@ https://mastra.ai/en/docs/memory/overview`
26078
26078
  }
26079
26079
  setEmbedder(embedder, embedderOptions) {
26080
26080
  if (typeof embedder === "string") {
26081
- this.embedder = new chunkKIL4FXNV_cjs.ModelRouterEmbeddingModel(embedder);
26081
+ this.embedder = new chunkD2F3AOQO_cjs.ModelRouterEmbeddingModel(embedder);
26082
26082
  } else {
26083
26083
  this.embedder = embedder;
26084
26084
  }
@@ -26833,5 +26833,5 @@ exports.validateStepRequestContext = validateStepRequestContext;
26833
26833
  exports.validateStepResumeData = validateStepResumeData;
26834
26834
  exports.validateStepStateData = validateStepStateData;
26835
26835
  exports.validateStepSuspendData = validateStepSuspendData;
26836
- //# sourceMappingURL=chunk-XB4RTECX.cjs.map
26837
- //# sourceMappingURL=chunk-XB4RTECX.cjs.map
26836
+ //# sourceMappingURL=chunk-FSGRQN2S.cjs.map
26837
+ //# sourceMappingURL=chunk-FSGRQN2S.cjs.map