@mastra/core 1.11.0 → 1.12.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 (121) hide show
  1. package/CHANGELOG.md +25 -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/{chunk-QAIBZ7GH.cjs → chunk-2DFKNHEI.cjs} +79 -48
  6. package/dist/chunk-2DFKNHEI.cjs.map +1 -0
  7. package/dist/{chunk-RF2EPUM4.js → chunk-4RE5DA24.js} +4 -4
  8. package/dist/{chunk-RF2EPUM4.js.map → chunk-4RE5DA24.js.map} +1 -1
  9. package/dist/{chunk-GOGAIHBU.js → chunk-55I2D5RA.js} +22 -3
  10. package/dist/chunk-55I2D5RA.js.map +1 -0
  11. package/dist/{chunk-NJVIJQ4R.cjs → chunk-5CZTEH74.cjs} +18 -14
  12. package/dist/chunk-5CZTEH74.cjs.map +1 -0
  13. package/dist/{chunk-W3LSSG4T.js → chunk-5X4N6M7R.js} +2 -2
  14. package/dist/{chunk-W3LSSG4T.js.map → chunk-5X4N6M7R.js.map} +1 -1
  15. package/dist/{chunk-CWLK5FXA.cjs → chunk-BJHH5WFG.cjs} +202 -221
  16. package/dist/chunk-BJHH5WFG.cjs.map +1 -0
  17. package/dist/{chunk-FN6ZOGJ7.cjs → chunk-NMUP4X54.cjs} +2 -2
  18. package/dist/{chunk-FN6ZOGJ7.cjs.map → chunk-NMUP4X54.cjs.map} +1 -1
  19. package/dist/{chunk-VW4MYD6N.js → chunk-PYRU2AFG.js} +15 -11
  20. package/dist/chunk-PYRU2AFG.js.map +1 -0
  21. package/dist/{chunk-KK2U4Z7X.cjs → chunk-RD2IELJM.cjs} +24 -2
  22. package/dist/chunk-RD2IELJM.cjs.map +1 -0
  23. package/dist/{chunk-Y2MVLQFW.js → chunk-TZE75LDQ.js} +29 -48
  24. package/dist/chunk-TZE75LDQ.js.map +1 -0
  25. package/dist/{chunk-FIQRYC7M.cjs → chunk-Y5TNEU6E.cjs} +5 -5
  26. package/dist/{chunk-FIQRYC7M.cjs.map → chunk-Y5TNEU6E.cjs.map} +1 -1
  27. package/dist/{chunk-S5BMBKUR.js → chunk-Z7VOJIJU.js} +55 -24
  28. package/dist/chunk-Z7VOJIJU.js.map +1 -0
  29. package/dist/datasets/index.cjs +16 -16
  30. package/dist/datasets/index.js +1 -1
  31. package/dist/docs/SKILL.md +2 -2
  32. package/dist/docs/assets/SOURCE_MAP.json +424 -424
  33. package/dist/docs/references/docs-memory-storage.md +5 -5
  34. package/dist/docs/references/reference-storage-composite.md +11 -3
  35. package/dist/docs/references/reference-storage-overview.md +18 -1
  36. package/dist/evals/index.cjs +19 -19
  37. package/dist/evals/index.js +2 -2
  38. package/dist/evals/scoreTraces/index.cjs +5 -5
  39. package/dist/evals/scoreTraces/index.js +2 -2
  40. package/dist/harness/index.cjs +6 -6
  41. package/dist/harness/index.js +4 -4
  42. package/dist/index.cjs +2 -2
  43. package/dist/index.js +1 -1
  44. package/dist/llm/index.cjs +16 -16
  45. package/dist/llm/index.js +5 -5
  46. package/dist/llm/model/gateways/azure.d.ts +2 -1
  47. package/dist/llm/model/gateways/azure.d.ts.map +1 -1
  48. package/dist/llm/model/gateways/constants.d.ts +1 -0
  49. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  50. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  51. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  52. package/dist/loop/index.cjs +14 -14
  53. package/dist/loop/index.js +1 -1
  54. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  55. package/dist/mastra/index.cjs +2 -2
  56. package/dist/mastra/index.js +1 -1
  57. package/dist/memory/index.cjs +14 -14
  58. package/dist/memory/index.js +1 -1
  59. package/dist/models-dev-G3WSTWOC.cjs +12 -0
  60. package/dist/{models-dev-7JBNQXVK.cjs.map → models-dev-G3WSTWOC.cjs.map} +1 -1
  61. package/dist/models-dev-RXHGE3WI.js +3 -0
  62. package/dist/{models-dev-BB5C46BD.js.map → models-dev-RXHGE3WI.js.map} +1 -1
  63. package/dist/netlify-EEOC6JL7.cjs +12 -0
  64. package/dist/{netlify-RN36CL4F.cjs.map → netlify-EEOC6JL7.cjs.map} +1 -1
  65. package/dist/netlify-ZUJJUCID.js +3 -0
  66. package/dist/{netlify-BFMLDQM5.js.map → netlify-ZUJJUCID.js.map} +1 -1
  67. package/dist/processor-provider/index.cjs +10 -10
  68. package/dist/processor-provider/index.js +1 -1
  69. package/dist/processors/index.cjs +42 -42
  70. package/dist/processors/index.js +1 -1
  71. package/dist/provider-registry-7ZTKNI7T.cjs +40 -0
  72. package/dist/{provider-registry-IHJW2WNI.cjs.map → provider-registry-7ZTKNI7T.cjs.map} +1 -1
  73. package/dist/provider-registry-E5XXTB3V.js +3 -0
  74. package/dist/{provider-registry-6FITK73S.js.map → provider-registry-E5XXTB3V.js.map} +1 -1
  75. package/dist/relevance/index.cjs +3 -3
  76. package/dist/relevance/index.js +1 -1
  77. package/dist/storage/constants.cjs +56 -56
  78. package/dist/storage/constants.d.ts +1 -1
  79. package/dist/storage/constants.js +1 -1
  80. package/dist/storage/domains/observability/types.d.ts +6 -6
  81. package/dist/storage/index.cjs +172 -172
  82. package/dist/storage/index.js +2 -2
  83. package/dist/storage/types.d.ts +10 -0
  84. package/dist/storage/types.d.ts.map +1 -1
  85. package/dist/stream/index.cjs +8 -8
  86. package/dist/stream/index.js +1 -1
  87. package/dist/test-utils/llm-mock.cjs +4 -4
  88. package/dist/test-utils/llm-mock.js +1 -1
  89. package/dist/tool-loop-agent/index.cjs +4 -4
  90. package/dist/tool-loop-agent/index.js +1 -1
  91. package/dist/utils.cjs +23 -23
  92. package/dist/utils.js +1 -1
  93. package/dist/vector/index.cjs +9 -9
  94. package/dist/vector/index.js +2 -2
  95. package/dist/workflows/default.d.ts.map +1 -1
  96. package/dist/workflows/evented/index.cjs +10 -10
  97. package/dist/workflows/evented/index.js +1 -1
  98. package/dist/workflows/evented/step-executor.d.ts +3 -0
  99. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  100. package/dist/workflows/handlers/entry.d.ts +9 -0
  101. package/dist/workflows/handlers/entry.d.ts.map +1 -1
  102. package/dist/workflows/index.cjs +24 -24
  103. package/dist/workflows/index.js +1 -1
  104. package/dist/workflows/types.d.ts +13 -0
  105. package/dist/workflows/types.d.ts.map +1 -1
  106. package/dist/workflows/workflow.d.ts.map +1 -1
  107. package/package.json +4 -4
  108. package/dist/chunk-CWLK5FXA.cjs.map +0 -1
  109. package/dist/chunk-GOGAIHBU.js.map +0 -1
  110. package/dist/chunk-KK2U4Z7X.cjs.map +0 -1
  111. package/dist/chunk-NJVIJQ4R.cjs.map +0 -1
  112. package/dist/chunk-QAIBZ7GH.cjs.map +0 -1
  113. package/dist/chunk-S5BMBKUR.js.map +0 -1
  114. package/dist/chunk-VW4MYD6N.js.map +0 -1
  115. package/dist/chunk-Y2MVLQFW.js.map +0 -1
  116. package/dist/models-dev-7JBNQXVK.cjs +0 -12
  117. package/dist/models-dev-BB5C46BD.js +0 -3
  118. package/dist/netlify-BFMLDQM5.js +0 -3
  119. package/dist/netlify-RN36CL4F.cjs +0 -12
  120. package/dist/provider-registry-6FITK73S.js +0 -3
  121. package/dist/provider-registry-IHJW2WNI.cjs +0 -40
@@ -1,6 +1,6 @@
1
- import { MastraModelGateway, createOpenAICompatible, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-GOGAIHBU.js';
2
- import { MastraError } from './chunk-FJEVLHJT.js';
1
+ import { MastraModelGateway, createOpenAICompatible, MASTRA_USER_AGENT, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-55I2D5RA.js';
3
2
  import { InMemoryServerCache } from './chunk-GMSAGYTB.js';
3
+ import { MastraError } from './chunk-FJEVLHJT.js';
4
4
 
5
5
  // src/llm/model/gateways/netlify.ts
6
6
  var NetlifyGateway = class extends MastraModelGateway {
@@ -126,16 +126,17 @@ var NetlifyGateway = class extends MastraModelGateway {
126
126
  headers
127
127
  }) {
128
128
  const baseURL = await this.buildUrl(`${providerId}/${modelId}`);
129
+ const mastraHeaders = { "User-Agent": MASTRA_USER_AGENT, ...headers };
129
130
  switch (providerId) {
130
131
  case "openai":
131
- return createOpenAI({ apiKey, baseURL, headers }).responses(modelId);
132
+ return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
132
133
  case "gemini":
133
134
  return createGoogleGenerativeAI({
134
135
  baseURL: `${baseURL}/v1beta/`,
135
136
  apiKey,
136
137
  headers: {
137
138
  "user-agent": "google-genai-sdk/",
138
- ...headers ? headers : {}
139
+ ...mastraHeaders
139
140
  }
140
141
  }).chat(modelId);
141
142
  case "anthropic":
@@ -144,18 +145,21 @@ var NetlifyGateway = class extends MastraModelGateway {
144
145
  baseURL: `${baseURL}/v1/`,
145
146
  headers: {
146
147
  "anthropic-version": "2023-06-01",
147
- "user-agent": "anthropic/",
148
- ...headers ? headers : {}
148
+ ...mastraHeaders
149
149
  }
150
150
  })(modelId);
151
151
  default:
152
- return createOpenAICompatible({ name: providerId, apiKey, baseURL, supportsStructuredOutputs: true }).chatModel(
153
- modelId
154
- );
152
+ return createOpenAICompatible({
153
+ name: providerId,
154
+ apiKey,
155
+ baseURL,
156
+ headers: mastraHeaders,
157
+ supportsStructuredOutputs: true
158
+ }).chatModel(modelId);
155
159
  }
156
160
  }
157
161
  };
158
162
 
159
163
  export { NetlifyGateway };
160
- //# sourceMappingURL=chunk-VW4MYD6N.js.map
161
- //# sourceMappingURL=chunk-VW4MYD6N.js.map
164
+ //# sourceMappingURL=chunk-PYRU2AFG.js.map
165
+ //# sourceMappingURL=chunk-PYRU2AFG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-PYRU2AFG.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"]}
@@ -8508,6 +8508,25 @@ var MastraModelGateway = class {
8508
8508
  return this.id;
8509
8509
  }
8510
8510
  };
8511
+
8512
+ // src/llm/model/gateways/constants.ts
8513
+ var MASTRA_USER_AGENT = `mastra/${"1.12.0-alpha.0"}` ;
8514
+ var PROVIDERS_WITH_INSTALLED_PACKAGES = [
8515
+ "anthropic",
8516
+ "cerebras",
8517
+ "deepinfra",
8518
+ "deepseek",
8519
+ "google",
8520
+ "groq",
8521
+ "mistral",
8522
+ "openai",
8523
+ "openrouter",
8524
+ "perplexity",
8525
+ "togetherai",
8526
+ "vercel",
8527
+ "xai"
8528
+ ];
8529
+ var EXCLUDED_PROVIDERS = ["github-copilot"];
8511
8530
  var VERSION4 = "2.0.61" ;
8512
8531
  var anthropicErrorDataSchema = lazySchema(
8513
8532
  () => zodSchema(
@@ -13765,14 +13784,17 @@ function createGoogleGenerativeAI(options = {}) {
13765
13784
  createGoogleGenerativeAI();
13766
13785
 
13767
13786
  exports.APICallError = APICallError;
13787
+ exports.EXCLUDED_PROVIDERS = EXCLUDED_PROVIDERS;
13768
13788
  exports.EventSourceParserStream = EventSourceParserStream;
13769
13789
  exports.InvalidResponseDataError = InvalidResponseDataError;
13790
+ exports.MASTRA_USER_AGENT = MASTRA_USER_AGENT;
13770
13791
  exports.MastraModelGateway = MastraModelGateway;
13771
13792
  exports.NoSuchModelError = NoSuchModelError;
13772
13793
  exports.OpenAICompatibleChatLanguageModel = OpenAICompatibleChatLanguageModel;
13773
13794
  exports.OpenAICompatibleCompletionLanguageModel = OpenAICompatibleCompletionLanguageModel;
13774
13795
  exports.OpenAICompatibleEmbeddingModel = OpenAICompatibleEmbeddingModel;
13775
13796
  exports.OpenAICompatibleImageModel = OpenAICompatibleImageModel;
13797
+ exports.PROVIDERS_WITH_INSTALLED_PACKAGES = PROVIDERS_WITH_INSTALLED_PACKAGES;
13776
13798
  exports.TooManyEmbeddingValuesForCallError = TooManyEmbeddingValuesForCallError;
13777
13799
  exports.UnsupportedFunctionalityError = UnsupportedFunctionalityError;
13778
13800
  exports.combineHeaders = combineHeaders;
@@ -13804,5 +13826,5 @@ exports.validateTypes = validateTypes;
13804
13826
  exports.withUserAgentSuffix = withUserAgentSuffix;
13805
13827
  exports.withoutTrailingSlash = withoutTrailingSlash;
13806
13828
  exports.zodSchema = zodSchema;
13807
- //# sourceMappingURL=chunk-KK2U4Z7X.cjs.map
13808
- //# sourceMappingURL=chunk-KK2U4Z7X.cjs.map
13829
+ //# sourceMappingURL=chunk-RD2IELJM.cjs.map
13830
+ //# sourceMappingURL=chunk-RD2IELJM.cjs.map