@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.
- package/CHANGELOG.md +25 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-QAIBZ7GH.cjs → chunk-2DFKNHEI.cjs} +79 -48
- package/dist/chunk-2DFKNHEI.cjs.map +1 -0
- package/dist/{chunk-RF2EPUM4.js → chunk-4RE5DA24.js} +4 -4
- package/dist/{chunk-RF2EPUM4.js.map → chunk-4RE5DA24.js.map} +1 -1
- package/dist/{chunk-GOGAIHBU.js → chunk-55I2D5RA.js} +22 -3
- package/dist/chunk-55I2D5RA.js.map +1 -0
- package/dist/{chunk-NJVIJQ4R.cjs → chunk-5CZTEH74.cjs} +18 -14
- package/dist/chunk-5CZTEH74.cjs.map +1 -0
- package/dist/{chunk-W3LSSG4T.js → chunk-5X4N6M7R.js} +2 -2
- package/dist/{chunk-W3LSSG4T.js.map → chunk-5X4N6M7R.js.map} +1 -1
- package/dist/{chunk-CWLK5FXA.cjs → chunk-BJHH5WFG.cjs} +202 -221
- package/dist/chunk-BJHH5WFG.cjs.map +1 -0
- package/dist/{chunk-FN6ZOGJ7.cjs → chunk-NMUP4X54.cjs} +2 -2
- package/dist/{chunk-FN6ZOGJ7.cjs.map → chunk-NMUP4X54.cjs.map} +1 -1
- package/dist/{chunk-VW4MYD6N.js → chunk-PYRU2AFG.js} +15 -11
- package/dist/chunk-PYRU2AFG.js.map +1 -0
- package/dist/{chunk-KK2U4Z7X.cjs → chunk-RD2IELJM.cjs} +24 -2
- package/dist/chunk-RD2IELJM.cjs.map +1 -0
- package/dist/{chunk-Y2MVLQFW.js → chunk-TZE75LDQ.js} +29 -48
- package/dist/chunk-TZE75LDQ.js.map +1 -0
- package/dist/{chunk-FIQRYC7M.cjs → chunk-Y5TNEU6E.cjs} +5 -5
- package/dist/{chunk-FIQRYC7M.cjs.map → chunk-Y5TNEU6E.cjs.map} +1 -1
- package/dist/{chunk-S5BMBKUR.js → chunk-Z7VOJIJU.js} +55 -24
- package/dist/chunk-Z7VOJIJU.js.map +1 -0
- package/dist/datasets/index.cjs +16 -16
- package/dist/datasets/index.js +1 -1
- package/dist/docs/SKILL.md +2 -2
- package/dist/docs/assets/SOURCE_MAP.json +424 -424
- package/dist/docs/references/docs-memory-storage.md +5 -5
- package/dist/docs/references/reference-storage-composite.md +11 -3
- package/dist/docs/references/reference-storage-overview.md +18 -1
- package/dist/evals/index.cjs +19 -19
- package/dist/evals/index.js +2 -2
- package/dist/evals/scoreTraces/index.cjs +5 -5
- package/dist/evals/scoreTraces/index.js +2 -2
- package/dist/harness/index.cjs +6 -6
- package/dist/harness/index.js +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/llm/index.cjs +16 -16
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/gateways/azure.d.ts +2 -1
- package/dist/llm/model/gateways/azure.d.ts.map +1 -1
- package/dist/llm/model/gateways/constants.d.ts +1 -0
- package/dist/llm/model/gateways/constants.d.ts.map +1 -1
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
- package/dist/loop/index.cjs +14 -14
- package/dist/loop/index.js +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/models-dev-G3WSTWOC.cjs +12 -0
- package/dist/{models-dev-7JBNQXVK.cjs.map → models-dev-G3WSTWOC.cjs.map} +1 -1
- package/dist/models-dev-RXHGE3WI.js +3 -0
- package/dist/{models-dev-BB5C46BD.js.map → models-dev-RXHGE3WI.js.map} +1 -1
- package/dist/netlify-EEOC6JL7.cjs +12 -0
- package/dist/{netlify-RN36CL4F.cjs.map → netlify-EEOC6JL7.cjs.map} +1 -1
- package/dist/netlify-ZUJJUCID.js +3 -0
- package/dist/{netlify-BFMLDQM5.js.map → netlify-ZUJJUCID.js.map} +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +42 -42
- package/dist/processors/index.js +1 -1
- package/dist/provider-registry-7ZTKNI7T.cjs +40 -0
- package/dist/{provider-registry-IHJW2WNI.cjs.map → provider-registry-7ZTKNI7T.cjs.map} +1 -1
- package/dist/provider-registry-E5XXTB3V.js +3 -0
- package/dist/{provider-registry-6FITK73S.js.map → provider-registry-E5XXTB3V.js.map} +1 -1
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/domains/observability/types.d.ts +6 -6
- package/dist/storage/index.cjs +172 -172
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.ts +10 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/test-utils/llm-mock.cjs +4 -4
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/utils.cjs +23 -23
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +9 -9
- package/dist/vector/index.js +2 -2
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +3 -0
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/handlers/entry.d.ts +9 -0
- package/dist/workflows/handlers/entry.d.ts.map +1 -1
- package/dist/workflows/index.cjs +24 -24
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/types.d.ts +13 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-CWLK5FXA.cjs.map +0 -1
- package/dist/chunk-GOGAIHBU.js.map +0 -1
- package/dist/chunk-KK2U4Z7X.cjs.map +0 -1
- package/dist/chunk-NJVIJQ4R.cjs.map +0 -1
- package/dist/chunk-QAIBZ7GH.cjs.map +0 -1
- package/dist/chunk-S5BMBKUR.js.map +0 -1
- package/dist/chunk-VW4MYD6N.js.map +0 -1
- package/dist/chunk-Y2MVLQFW.js.map +0 -1
- package/dist/models-dev-7JBNQXVK.cjs +0 -12
- package/dist/models-dev-BB5C46BD.js +0 -3
- package/dist/netlify-BFMLDQM5.js +0 -3
- package/dist/netlify-RN36CL4F.cjs +0 -12
- package/dist/provider-registry-6FITK73S.js +0 -3
- package/dist/provider-registry-IHJW2WNI.cjs +0 -40
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MastraModelGateway, createOpenAICompatible, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-
|
|
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
|
-
...
|
|
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
|
-
|
|
148
|
-
...headers ? headers : {}
|
|
148
|
+
...mastraHeaders
|
|
149
149
|
}
|
|
150
150
|
})(modelId);
|
|
151
151
|
default:
|
|
152
|
-
return createOpenAICompatible({
|
|
153
|
-
|
|
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-
|
|
161
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
13808
|
-
//# sourceMappingURL=chunk-
|
|
13829
|
+
//# sourceMappingURL=chunk-RD2IELJM.cjs.map
|
|
13830
|
+
//# sourceMappingURL=chunk-RD2IELJM.cjs.map
|