@mastra/core 1.23.1-alpha.0 → 1.24.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +71 -0
- package/dist/agent/index.cjs +13 -13
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/adapters/AIV5Adapter.d.ts.map +1 -1
- package/dist/agent/message-list/conversion/input-converter.d.ts.map +1 -1
- package/dist/agent/message-list/index.cjs +19 -19
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/message-list.d.ts.map +1 -1
- package/dist/agent/message-list/state/types.d.ts +7 -4
- package/dist/agent/message-list/state/types.d.ts.map +1 -1
- package/dist/agent/message-list/utils/stamp-part.d.ts +4 -0
- package/dist/agent/message-list/utils/stamp-part.d.ts.map +1 -0
- package/dist/browser/index.cjs +2 -2
- package/dist/browser/index.js +1 -1
- package/dist/channels/index.cjs +4 -4
- package/dist/channels/index.js +1 -1
- package/dist/{chunk-LB3GO6MV.js → chunk-234T424F.js} +5 -5
- package/dist/{chunk-LB3GO6MV.js.map → chunk-234T424F.js.map} +1 -1
- package/dist/{chunk-WCQOOGVM.cjs → chunk-365PDOQ4.cjs} +9 -9
- package/dist/{chunk-WCQOOGVM.cjs.map → chunk-365PDOQ4.cjs.map} +1 -1
- package/dist/{chunk-N7W2KRUH.js → chunk-3RI7ILBW.js} +3 -3
- package/dist/{chunk-N7W2KRUH.js.map → chunk-3RI7ILBW.js.map} +1 -1
- package/dist/{chunk-B4OOPFD3.cjs → chunk-4FFOOHE5.cjs} +27 -2
- package/dist/chunk-4FFOOHE5.cjs.map +1 -0
- package/dist/{chunk-S2546L42.js → chunk-7BBERBXP.js} +6 -6
- package/dist/{chunk-S2546L42.js.map → chunk-7BBERBXP.js.map} +1 -1
- package/dist/{chunk-BG3IPQZ7.cjs → chunk-B2FQ6L2I.cjs} +21 -21
- package/dist/{chunk-BG3IPQZ7.cjs.map → chunk-B2FQ6L2I.cjs.map} +1 -1
- package/dist/{chunk-UNQCLA7I.cjs → chunk-BFOZOAU2.cjs} +54 -26
- package/dist/chunk-BFOZOAU2.cjs.map +1 -0
- package/dist/{chunk-JC2RW3N5.js → chunk-CN6AFOVV.js} +4 -4
- package/dist/{chunk-JC2RW3N5.js.map → chunk-CN6AFOVV.js.map} +1 -1
- package/dist/{chunk-IAUQYADS.cjs → chunk-CY4AMNDV.cjs} +7 -7
- package/dist/{chunk-IAUQYADS.cjs.map → chunk-CY4AMNDV.cjs.map} +1 -1
- package/dist/{chunk-MW6HBUMV.cjs → chunk-D64ZY3NT.cjs} +29 -27
- package/dist/chunk-D64ZY3NT.cjs.map +1 -0
- package/dist/{chunk-JVXQTSRU.js → chunk-E7PBOS66.js} +3 -3
- package/dist/{chunk-JVXQTSRU.js.map → chunk-E7PBOS66.js.map} +1 -1
- package/dist/{chunk-GBUKRAUU.cjs → chunk-EAQQP6OK.cjs} +75 -75
- package/dist/{chunk-GBUKRAUU.cjs.map → chunk-EAQQP6OK.cjs.map} +1 -1
- package/dist/chunk-EGIEQEHP.js +35 -0
- package/dist/chunk-EGIEQEHP.js.map +1 -0
- package/dist/{chunk-C3RGHCOG.js → chunk-EJ62D3QH.js} +7 -7
- package/dist/{chunk-C3RGHCOG.js.map → chunk-EJ62D3QH.js.map} +1 -1
- package/dist/{chunk-J5JND5CL.cjs → chunk-FCW225T4.cjs} +84 -84
- package/dist/{chunk-J5JND5CL.cjs.map → chunk-FCW225T4.cjs.map} +1 -1
- package/dist/{chunk-OVQVLGT2.cjs → chunk-FLMCO42Y.cjs} +4 -4
- package/dist/{chunk-OVQVLGT2.cjs.map → chunk-FLMCO42Y.cjs.map} +1 -1
- package/dist/{chunk-RNKRA4W6.js → chunk-GAW7WFCY.js} +6 -6
- package/dist/{chunk-RNKRA4W6.js.map → chunk-GAW7WFCY.js.map} +1 -1
- package/dist/{chunk-7CWIKWHN.js → chunk-I7DUPZFN.js} +90 -43
- package/dist/chunk-I7DUPZFN.js.map +1 -0
- package/dist/{chunk-HMVCVSAM.js → chunk-IKUMKFM4.js} +5 -5
- package/dist/{chunk-HMVCVSAM.js.map → chunk-IKUMKFM4.js.map} +1 -1
- package/dist/{chunk-YTLU3Q7Q.js → chunk-JBFAGOAG.js} +13 -11
- package/dist/chunk-JBFAGOAG.js.map +1 -0
- package/dist/{chunk-6WRVZNQL.cjs → chunk-L56725IW.cjs} +7 -2
- package/dist/chunk-L56725IW.cjs.map +1 -0
- package/dist/{chunk-FDSY7ZGW.cjs → chunk-L73KZFX6.cjs} +10 -10
- package/dist/{chunk-FDSY7ZGW.cjs.map → chunk-L73KZFX6.cjs.map} +1 -1
- package/dist/{chunk-QX5YBALM.js → chunk-LUEXY2QV.js} +3 -3
- package/dist/{chunk-QX5YBALM.js.map → chunk-LUEXY2QV.js.map} +1 -1
- package/dist/{chunk-235IILEY.js → chunk-MD3VGE3F.js} +7 -2
- package/dist/chunk-MD3VGE3F.js.map +1 -0
- package/dist/{chunk-Q2RTFBSF.js → chunk-MK5IF24D.js} +8 -8
- package/dist/{chunk-Q2RTFBSF.js.map → chunk-MK5IF24D.js.map} +1 -1
- package/dist/{chunk-PJ5YCHXB.js → chunk-MZJQ7OKW.js} +3 -3
- package/dist/{chunk-PJ5YCHXB.js.map → chunk-MZJQ7OKW.js.map} +1 -1
- package/dist/{chunk-3UBTJXPW.cjs → chunk-P5C4HEAB.cjs} +32 -32
- package/dist/{chunk-3UBTJXPW.cjs.map → chunk-P5C4HEAB.cjs.map} +1 -1
- package/dist/{chunk-AMQICJHD.js → chunk-PCHML5XO.js} +11 -11
- package/dist/{chunk-AMQICJHD.js.map → chunk-PCHML5XO.js.map} +1 -1
- package/dist/{chunk-4LJ4M2DI.js → chunk-PQKSETS5.js} +3 -3
- package/dist/{chunk-4LJ4M2DI.js.map → chunk-PQKSETS5.js.map} +1 -1
- package/dist/{chunk-PHSDY5MP.cjs → chunk-QFGYBEP3.cjs} +10 -10
- package/dist/{chunk-PHSDY5MP.cjs.map → chunk-QFGYBEP3.cjs.map} +1 -1
- package/dist/{chunk-2M6QAFRM.cjs → chunk-RJAOQKHJ.cjs} +90 -43
- package/dist/chunk-RJAOQKHJ.cjs.map +1 -0
- package/dist/{chunk-WXCT24DY.cjs → chunk-SRQR5UN6.cjs} +27 -27
- package/dist/{chunk-WXCT24DY.cjs.map → chunk-SRQR5UN6.cjs.map} +1 -1
- package/dist/{chunk-7OU57YXD.cjs → chunk-SUEVJYTA.cjs} +185 -185
- package/dist/{chunk-7OU57YXD.cjs.map → chunk-SUEVJYTA.cjs.map} +1 -1
- package/dist/{chunk-LYCAEN2H.cjs → chunk-SYH64AGV.cjs} +219 -219
- package/dist/{chunk-LYCAEN2H.cjs.map → chunk-SYH64AGV.cjs.map} +1 -1
- package/dist/{chunk-ZHMULBPD.js → chunk-V2HSN7VZ.js} +26 -3
- package/dist/chunk-V2HSN7VZ.js.map +1 -0
- package/dist/{chunk-KPNURYWF.js → chunk-V657RNGK.js} +42 -14
- package/dist/chunk-V657RNGK.js.map +1 -0
- package/dist/{chunk-JGPMCTG4.cjs → chunk-XEDVYHBK.cjs} +3 -3
- package/dist/{chunk-JGPMCTG4.cjs.map → chunk-XEDVYHBK.cjs.map} +1 -1
- package/dist/{chunk-CLNGCSHU.cjs → chunk-XEM4OYJI.cjs} +15 -15
- package/dist/{chunk-CLNGCSHU.cjs.map → chunk-XEM4OYJI.cjs.map} +1 -1
- package/dist/{chunk-QG5JWMFX.cjs → chunk-XS3FHQ34.cjs} +11 -11
- package/dist/{chunk-QG5JWMFX.cjs.map → chunk-XS3FHQ34.cjs.map} +1 -1
- package/dist/{chunk-STZTHX32.js → chunk-XS75QEED.js} +5 -5
- package/dist/{chunk-STZTHX32.js.map → chunk-XS75QEED.js.map} +1 -1
- package/dist/{chunk-5OXVECLF.js → chunk-Y4SL4WJQ.js} +3 -3
- package/dist/{chunk-5OXVECLF.js.map → chunk-Y4SL4WJQ.js.map} +1 -1
- package/dist/chunk-ZPHI6QAA.cjs +40 -0
- package/dist/chunk-ZPHI6QAA.cjs.map +1 -0
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/docs/SKILL.md +2 -1
- package/dist/docs/assets/SOURCE_MAP.json +450 -450
- package/dist/docs/references/reference-observability-tracing-configuration.md +8 -1
- package/dist/docs/references/reference-observability-tracing-span-filtering.md +95 -0
- package/dist/docs/references/reference.md +1 -0
- package/dist/evals/index.cjs +23 -23
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +7 -7
- package/dist/evals/scoreTraces/index.js +3 -3
- package/dist/harness/index.cjs +9 -9
- package/dist/harness/index.js +6 -6
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/llm/index.cjs +20 -20
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/provider-types.generated.d.ts +11 -1
- package/dist/logger/index.cjs +6 -6
- package/dist/logger/index.js +1 -1
- package/dist/loop/index.cjs +14 -14
- package/dist/loop/index.js +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mastra-5YHFXAJO.js +3 -0
- package/dist/{mastra-JWFZL5TC.js.map → mastra-5YHFXAJO.js.map} +1 -1
- package/dist/mastra-7CFH7DGM.cjs +12 -0
- package/dist/{mastra-ZQK3PKEU.cjs.map → mastra-7CFH7DGM.cjs.map} +1 -1
- package/dist/memory/index.cjs +19 -19
- package/dist/memory/index.js +1 -1
- package/dist/models-dev-X2MWNPAU.cjs +12 -0
- package/dist/{models-dev-6DVNVKP4.cjs.map → models-dev-X2MWNPAU.cjs.map} +1 -1
- package/dist/models-dev-ZXC3IYLG.js +3 -0
- package/dist/{models-dev-FOTHHSEK.js.map → models-dev-ZXC3IYLG.js.map} +1 -1
- package/dist/netlify-GOILLTQO.cjs +12 -0
- package/dist/{netlify-S2IW3O2X.cjs.map → netlify-GOILLTQO.cjs.map} +1 -1
- package/dist/netlify-HJL7EXHY.js +3 -0
- package/dist/{netlify-NMTX7SVL.js.map → netlify-HJL7EXHY.js.map} +1 -1
- package/dist/observability/context-storage.cjs +18 -28
- package/dist/observability/context-storage.cjs.map +1 -1
- package/dist/observability/context-storage.d.ts +9 -0
- package/dist/observability/context-storage.d.ts.map +1 -1
- package/dist/observability/context-storage.js +1 -28
- package/dist/observability/context-storage.js.map +1 -1
- package/dist/observability/index.cjs +33 -25
- package/dist/observability/index.d.ts +2 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +3 -3
- package/dist/observability/rag-ingestion.d.ts +108 -0
- package/dist/observability/rag-ingestion.d.ts.map +1 -0
- package/dist/observability/types/core.d.ts +31 -1
- package/dist/observability/types/core.d.ts.map +1 -1
- package/dist/observability/types/tracing.d.ts +133 -1
- package/dist/observability/types/tracing.d.ts.map +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +44 -44
- package/dist/processors/index.js +1 -1
- package/dist/provider-registry-25ELOB67.cjs +44 -0
- package/dist/{provider-registry-7WS3N5BF.cjs.map → provider-registry-25ELOB67.cjs.map} +1 -1
- package/dist/provider-registry-UWTCPEFF.js +3 -0
- package/dist/{provider-registry-YADLRYW6.js.map → provider-registry-UWTCPEFF.js.map} +1 -1
- package/dist/provider-registry.json +34 -6
- 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.js +1 -1
- package/dist/storage/index.cjs +286 -286
- package/dist/storage/index.js +3 -3
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.js +2 -2
- 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 +25 -25
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +24 -24
- package/dist/workflows/index.js +1 -1
- package/package.json +5 -5
- package/src/llm/model/provider-types.generated.d.ts +11 -1
- package/dist/chunk-235IILEY.js.map +0 -1
- package/dist/chunk-2M6QAFRM.cjs.map +0 -1
- package/dist/chunk-6WRVZNQL.cjs.map +0 -1
- package/dist/chunk-7CWIKWHN.js.map +0 -1
- package/dist/chunk-B4OOPFD3.cjs.map +0 -1
- package/dist/chunk-KPNURYWF.js.map +0 -1
- package/dist/chunk-MW6HBUMV.cjs.map +0 -1
- package/dist/chunk-UNQCLA7I.cjs.map +0 -1
- package/dist/chunk-YTLU3Q7Q.js.map +0 -1
- package/dist/chunk-ZHMULBPD.js.map +0 -1
- package/dist/mastra-JWFZL5TC.js +0 -3
- package/dist/mastra-ZQK3PKEU.cjs +0 -12
- package/dist/models-dev-6DVNVKP4.cjs +0 -12
- package/dist/models-dev-FOTHHSEK.js +0 -3
- package/dist/netlify-NMTX7SVL.js +0 -3
- package/dist/netlify-S2IW3O2X.cjs +0 -12
- package/dist/provider-registry-7WS3N5BF.cjs +0 -44
- package/dist/provider-registry-YADLRYW6.js +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MastraModelGateway, createOpenAICompatible, MASTRA_USER_AGENT, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-
|
|
1
|
+
import { MastraModelGateway, createOpenAICompatible, MASTRA_USER_AGENT, createAnthropic, createGoogleGenerativeAI, createOpenAI } from './chunk-LUEXY2QV.js';
|
|
2
2
|
import { InMemoryServerCache } from './chunk-HQXVBGBM.js';
|
|
3
3
|
import { MastraError } from './chunk-FJEVLHJT.js';
|
|
4
4
|
|
|
@@ -161,5 +161,5 @@ var NetlifyGateway = class extends MastraModelGateway {
|
|
|
161
161
|
};
|
|
162
162
|
|
|
163
163
|
export { NetlifyGateway };
|
|
164
|
-
//# sourceMappingURL=chunk-
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
164
|
+
//# sourceMappingURL=chunk-PQKSETS5.js.map
|
|
165
|
+
//# sourceMappingURL=chunk-PQKSETS5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-4LJ4M2DI.js","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v5';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { MASTRA_USER_AGENT } from './constants.js';\n\ninterface NetlifyProviderResponse {\n token_env_var: string;\n url_env_var: string;\n models: string[];\n}\ninterface NetlifyResponse {\n providers: Record<string, NetlifyProviderResponse>;\n}\n\ninterface NetlifyTokenResponse {\n token: string;\n url: string;\n expires_at: number;\n}\n\ninterface CachedToken {\n token: string;\n url: string;\n expiresAt: number;\n}\n\ninterface TokenData {\n token: string;\n url: string;\n}\n\nexport class NetlifyGateway extends MastraModelGateway {\n readonly id = 'netlify';\n readonly name = 'Netlify AI Gateway';\n private tokenCache = new InMemoryServerCache();\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://api.netlify.com/api/v1/ai-gateway/providers');\n if (!response.ok) {\n throw new Error(`Failed to fetch from Netlify: ${response.statusText}`);\n }\n const data = (await response.json()) as NetlifyResponse;\n const config: ProviderConfig = {\n apiKeyEnvVar: ['NETLIFY_TOKEN', 'NETLIFY_SITE_ID'],\n apiKeyHeader: 'Authorization',\n name: `Netlify`,\n gateway: `netlify`,\n models: [],\n docUrl: 'https://docs.netlify.com/build/ai-gateway/overview/',\n };\n // Convert Netlify format to our standard format\n for (const [providerId, provider] of Object.entries(data.providers)) {\n for (const model of provider.models) {\n config.models.push(`${providerId}/${model}`);\n }\n }\n // Return with gateway ID as key - registry generator will detect this and avoid doubling the prefix\n return { netlify: config };\n }\n\n async buildUrl(routerId: string, envVars?: typeof process.env): Promise<string> {\n // Check for Netlify site ID first (for token exchange)\n const siteId = envVars?.['NETLIFY_SITE_ID'] || process.env['NETLIFY_SITE_ID'];\n const netlifyToken = envVars?.['NETLIFY_TOKEN'] || process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${routerId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${routerId}`,\n });\n }\n\n try {\n const tokenData = await this.getOrFetchToken(siteId, netlifyToken);\n return tokenData.url.endsWith(`/`) ? tokenData.url.substring(0, tokenData.url.length - 1) : tokenData.url;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${routerId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n private async getOrFetchToken(siteId: string, netlifyToken: string): Promise<TokenData> {\n const cacheKey = `netlify-token:${siteId}:${netlifyToken}`;\n\n // Check cache first\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n // Return cached token if it won't expire in the next minute\n return { token: cached.token, url: cached.url };\n }\n\n // Fetch new token\n const response = await fetch(`https://api.netlify.com/api/v1/sites/${siteId}/ai-gateway/token`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${netlifyToken}`,\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get Netlify AI Gateway token: ${response.status} ${error}`);\n }\n\n const tokenResponse = (await response.json()) as NetlifyTokenResponse;\n\n // Cache the token - InMemoryServerCache will handle the TTL\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.token,\n url: tokenResponse.url,\n expiresAt: tokenResponse.expires_at,\n });\n\n return { token: tokenResponse.token, url: tokenResponse.url };\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n async getApiKey(modelId: string): Promise<string> {\n const siteId = process.env['NETLIFY_SITE_ID'];\n const netlifyToken = process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${modelId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${modelId}`,\n });\n }\n\n try {\n return (await this.getOrFetchToken(siteId, netlifyToken)).token;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${modelId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<LanguageModelV2> {\n const baseURL = await this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n return createGoogleGenerativeAI({\n baseURL: `${baseURL}/v1beta/`,\n apiKey,\n headers: {\n 'user-agent': 'google-genai-sdk/',\n ...mastraHeaders,\n },\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({\n apiKey,\n baseURL: `${baseURL}/v1/`,\n headers: {\n 'anthropic-version': '2023-06-01',\n ...mastraHeaders,\n },\n })(modelId);\n default:\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/llm/model/gateways/netlify.ts"],"names":[],"mappings":"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","file":"chunk-PQKSETS5.js","sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v5';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\nimport { MASTRA_USER_AGENT } from './constants.js';\n\ninterface NetlifyProviderResponse {\n token_env_var: string;\n url_env_var: string;\n models: string[];\n}\ninterface NetlifyResponse {\n providers: Record<string, NetlifyProviderResponse>;\n}\n\ninterface NetlifyTokenResponse {\n token: string;\n url: string;\n expires_at: number;\n}\n\ninterface CachedToken {\n token: string;\n url: string;\n expiresAt: number;\n}\n\ninterface TokenData {\n token: string;\n url: string;\n}\n\nexport class NetlifyGateway extends MastraModelGateway {\n readonly id = 'netlify';\n readonly name = 'Netlify AI Gateway';\n private tokenCache = new InMemoryServerCache();\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://api.netlify.com/api/v1/ai-gateway/providers');\n if (!response.ok) {\n throw new Error(`Failed to fetch from Netlify: ${response.statusText}`);\n }\n const data = (await response.json()) as NetlifyResponse;\n const config: ProviderConfig = {\n apiKeyEnvVar: ['NETLIFY_TOKEN', 'NETLIFY_SITE_ID'],\n apiKeyHeader: 'Authorization',\n name: `Netlify`,\n gateway: `netlify`,\n models: [],\n docUrl: 'https://docs.netlify.com/build/ai-gateway/overview/',\n };\n // Convert Netlify format to our standard format\n for (const [providerId, provider] of Object.entries(data.providers)) {\n for (const model of provider.models) {\n config.models.push(`${providerId}/${model}`);\n }\n }\n // Return with gateway ID as key - registry generator will detect this and avoid doubling the prefix\n return { netlify: config };\n }\n\n async buildUrl(routerId: string, envVars?: typeof process.env): Promise<string> {\n // Check for Netlify site ID first (for token exchange)\n const siteId = envVars?.['NETLIFY_SITE_ID'] || process.env['NETLIFY_SITE_ID'];\n const netlifyToken = envVars?.['NETLIFY_TOKEN'] || process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${routerId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${routerId}`,\n });\n }\n\n try {\n const tokenData = await this.getOrFetchToken(siteId, netlifyToken);\n return tokenData.url.endsWith(`/`) ? tokenData.url.substring(0, tokenData.url.length - 1) : tokenData.url;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${routerId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n private async getOrFetchToken(siteId: string, netlifyToken: string): Promise<TokenData> {\n const cacheKey = `netlify-token:${siteId}:${netlifyToken}`;\n\n // Check cache first\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n // Return cached token if it won't expire in the next minute\n return { token: cached.token, url: cached.url };\n }\n\n // Fetch new token\n const response = await fetch(`https://api.netlify.com/api/v1/sites/${siteId}/ai-gateway/token`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${netlifyToken}`,\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get Netlify AI Gateway token: ${response.status} ${error}`);\n }\n\n const tokenResponse = (await response.json()) as NetlifyTokenResponse;\n\n // Cache the token - InMemoryServerCache will handle the TTL\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.token,\n url: tokenResponse.url,\n expiresAt: tokenResponse.expires_at,\n });\n\n return { token: tokenResponse.token, url: tokenResponse.url };\n }\n\n /**\n * Get cached token or fetch a new site-specific AI Gateway token from Netlify\n */\n async getApiKey(modelId: string): Promise<string> {\n const siteId = process.env['NETLIFY_SITE_ID'];\n const netlifyToken = process.env['NETLIFY_TOKEN'];\n\n if (!netlifyToken) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_TOKEN',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_TOKEN environment variable required for model: ${modelId}`,\n });\n }\n\n if (!siteId) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_NO_SITE_ID',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Missing NETLIFY_SITE_ID environment variable required for model: ${modelId}`,\n });\n }\n\n try {\n return (await this.getOrFetchToken(siteId, netlifyToken)).token;\n } catch (error) {\n throw new MastraError({\n id: 'NETLIFY_GATEWAY_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Netlify AI Gateway token for model ${modelId}: ${error instanceof Error ? error.message : String(error)}`,\n });\n }\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<LanguageModelV2> {\n const baseURL = await this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n return createGoogleGenerativeAI({\n baseURL: `${baseURL}/v1beta/`,\n apiKey,\n headers: {\n 'user-agent': 'google-genai-sdk/',\n ...mastraHeaders,\n },\n }).chat(modelId);\n case 'anthropic':\n return createAnthropic({\n apiKey,\n baseURL: `${baseURL}/v1/`,\n headers: {\n 'anthropic-version': '2023-06-01',\n ...mastraHeaders,\n },\n })(modelId);\n default:\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkL56725IW_cjs = require('./chunk-L56725IW.cjs');
|
|
4
4
|
|
|
5
5
|
// src/observability/utils.ts
|
|
6
|
-
var entityTypeValues = new Set(Object.values(
|
|
6
|
+
var entityTypeValues = new Set(Object.values(chunkL56725IW_cjs.EntityType));
|
|
7
7
|
var currentSpanResolver;
|
|
8
8
|
function setCurrentSpanResolver(resolver) {
|
|
9
9
|
currentSpanResolver = resolver;
|
|
@@ -90,19 +90,19 @@ function getEntityTypeForSpan(span) {
|
|
|
90
90
|
}
|
|
91
91
|
switch (span.spanType) {
|
|
92
92
|
case "agent_run" /* AGENT_RUN */:
|
|
93
|
-
return
|
|
93
|
+
return chunkL56725IW_cjs.EntityType.AGENT;
|
|
94
94
|
case "scorer_run" /* SCORER_RUN */:
|
|
95
95
|
case "scorer_step" /* SCORER_STEP */:
|
|
96
|
-
return
|
|
96
|
+
return chunkL56725IW_cjs.EntityType.SCORER;
|
|
97
97
|
case "workflow_run" /* WORKFLOW_RUN */:
|
|
98
|
-
return
|
|
98
|
+
return chunkL56725IW_cjs.EntityType.WORKFLOW_RUN;
|
|
99
99
|
case "workflow_step" /* WORKFLOW_STEP */:
|
|
100
|
-
return
|
|
100
|
+
return chunkL56725IW_cjs.EntityType.WORKFLOW_STEP;
|
|
101
101
|
case "tool_call" /* TOOL_CALL */:
|
|
102
102
|
case "mcp_tool_call" /* MCP_TOOL_CALL */:
|
|
103
|
-
return
|
|
103
|
+
return chunkL56725IW_cjs.EntityType.TOOL;
|
|
104
104
|
case "processor_run" /* PROCESSOR_RUN */:
|
|
105
|
-
return
|
|
105
|
+
return chunkL56725IW_cjs.EntityType.OUTPUT_PROCESSOR;
|
|
106
106
|
default:
|
|
107
107
|
return void 0;
|
|
108
108
|
}
|
|
@@ -117,5 +117,5 @@ exports.resolveCurrentSpan = resolveCurrentSpan;
|
|
|
117
117
|
exports.setCurrentSpanResolver = setCurrentSpanResolver;
|
|
118
118
|
exports.setExecuteWithContext = setExecuteWithContext;
|
|
119
119
|
exports.setExecuteWithContextSync = setExecuteWithContextSync;
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
120
|
+
//# sourceMappingURL=chunk-QFGYBEP3.cjs.map
|
|
121
|
+
//# sourceMappingURL=chunk-QFGYBEP3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/observability/utils.ts"],"names":["EntityType"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/observability/utils.ts"],"names":["EntityType"],"mappings":"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","file":"chunk-QFGYBEP3.cjs","sourcesContent":["/**\n * Browser-safe observability utilities.\n *\n * Functions that depend on AsyncLocalStorage (getCurrentSpan, executeWithContext,\n * executeWithContextSync) are in context-storage.ts and should only be imported\n * by server-side code.\n */\n\nimport { EntityType, SpanType } from './types';\nimport type { Span, GetOrCreateSpanOptions, AnySpan } from './types';\n\nconst entityTypeValues = new Set(Object.values(EntityType));\nlet currentSpanResolver: (() => AnySpan | undefined) | undefined;\n\nexport function setCurrentSpanResolver(resolver: (() => AnySpan | undefined) | undefined): void {\n currentSpanResolver = resolver;\n}\n\nexport function resolveCurrentSpan(): AnySpan | undefined {\n return currentSpanResolver?.();\n}\n\n// --- Lazy resolvers for executeWithContext / executeWithContextSync ---\n// The real implementations live in context-storage.ts (which imports AsyncLocalStorage).\n// context-storage.ts registers them at import time so that consumer code can call these\n// browser-safe wrappers without pulling async_hooks into shared chunks.\n\ntype ExecuteWithContextFn = <T>(params: { span?: AnySpan; fn: () => Promise<T> }) => Promise<T>;\ntype ExecuteWithContextSyncFn = <T>(params: { span?: AnySpan; fn: () => T }) => T;\n\nlet executeWithContextImpl: ExecuteWithContextFn | undefined;\nlet executeWithContextSyncImpl: ExecuteWithContextSyncFn | undefined;\n\nexport function setExecuteWithContext(impl: ExecuteWithContextFn): void {\n executeWithContextImpl = impl;\n}\n\nexport function setExecuteWithContextSync(impl: ExecuteWithContextSyncFn): void {\n executeWithContextSyncImpl = impl;\n}\n\n/**\n * Execute an async function within a span's tracing context.\n * Falls back to direct execution if no context-storage implementation is registered or no span exists.\n */\nexport async function executeWithContext<T>(params: { span?: AnySpan; fn: () => Promise<T> }): Promise<T> {\n if (executeWithContextImpl) {\n return executeWithContextImpl(params);\n }\n const { span, fn } = params;\n if (span?.executeInContext) {\n return span.executeInContext(fn);\n }\n return fn();\n}\n\n/**\n * Execute a sync function within a span's tracing context.\n * Falls back to direct execution if no context-storage implementation is registered or no span exists.\n */\nexport function executeWithContextSync<T>(params: { span?: AnySpan; fn: () => T }): T {\n if (executeWithContextSyncImpl) {\n return executeWithContextSyncImpl(params);\n }\n const { span, fn } = params;\n if (span?.executeInContextSync) {\n return span.executeInContextSync(fn);\n }\n return fn();\n}\n\n/**\n * Creates or gets a child span from existing tracing context or starts a new trace.\n * This helper consolidates the common pattern of creating spans that can either be:\n * 1. Children of an existing span (when tracingContext.currentSpan exists)\n * 2. New root spans (when no current span exists)\n *\n * @param options - Configuration object for span creation\n * @returns The created Span or undefined if tracing is disabled\n */\nexport function getOrCreateSpan<T extends SpanType>(options: GetOrCreateSpanOptions<T>): Span<T> | undefined {\n const { type, attributes, tracingContext, requestContext, tracingOptions, ...rest } = options;\n\n const metadata = {\n ...(rest.metadata ?? {}),\n ...(tracingOptions?.metadata ?? {}),\n };\n\n // If we have a current span, create a child span\n if (tracingContext?.currentSpan) {\n return tracingContext.currentSpan.createChildSpan({\n type,\n attributes,\n ...rest,\n metadata,\n requestContext,\n });\n }\n\n // Otherwise, try to create a new root span\n const instance = options.mastra?.observability?.getSelectedInstance({ requestContext });\n\n return instance?.startSpan<T>({\n type,\n attributes,\n ...rest,\n metadata,\n requestContext,\n tracingOptions,\n traceId: tracingOptions?.traceId,\n parentSpanId: tracingOptions?.parentSpanId,\n customSamplerOptions: {\n requestContext,\n metadata,\n },\n });\n}\n\n/**\n * Returns the top-most non-internal span that would appear in exported tracing output.\n *\n * Public API results should use this span for trace/span correlation because internal Mastra\n * workflow spans are omitted from external exporters.\n */\nexport function getRootExportSpan(span?: AnySpan): AnySpan | undefined {\n if (!span?.isValid) {\n return undefined;\n }\n\n let current: AnySpan | undefined = span;\n let rootExportSpan: AnySpan | undefined = span.isInternal ? undefined : span;\n\n while (current?.parent) {\n current = current.parent;\n\n if (!current.isInternal) {\n rootExportSpan = current;\n }\n }\n\n return rootExportSpan;\n}\n\n/**\n * Resolves the best available entity type for a span-like record.\n *\n * Prefers an explicit `entityType` when present and valid, then falls back to the\n * span type for common observability entities.\n */\nexport function getEntityTypeForSpan(span: {\n entityType?: string | null;\n spanType?: SpanType | string | null;\n}): EntityType | undefined {\n if (span.entityType && entityTypeValues.has(span.entityType as EntityType)) {\n return span.entityType as EntityType;\n }\n\n switch (span.spanType) {\n case SpanType.AGENT_RUN:\n return EntityType.AGENT;\n case SpanType.SCORER_RUN:\n case SpanType.SCORER_STEP:\n return EntityType.SCORER;\n case SpanType.WORKFLOW_RUN:\n return EntityType.WORKFLOW_RUN;\n case SpanType.WORKFLOW_STEP:\n return EntityType.WORKFLOW_STEP;\n case SpanType.TOOL_CALL:\n case SpanType.MCP_TOOL_CALL:\n return EntityType.TOOL;\n case SpanType.PROCESSOR_RUN:\n return EntityType.OUTPUT_PROCESSOR;\n default:\n return undefined;\n }\n}\n"]}
|
|
@@ -764,6 +764,26 @@ function getToolName(type) {
|
|
|
764
764
|
}
|
|
765
765
|
return sanitizeToolName(type);
|
|
766
766
|
}
|
|
767
|
+
function mergeMastraCreatedAt(metadata, createdAt) {
|
|
768
|
+
if (createdAt == null) {
|
|
769
|
+
return metadata;
|
|
770
|
+
}
|
|
771
|
+
return {
|
|
772
|
+
...metadata || {},
|
|
773
|
+
mastra: {
|
|
774
|
+
...(metadata || {}).mastra || {},
|
|
775
|
+
createdAt
|
|
776
|
+
}
|
|
777
|
+
};
|
|
778
|
+
}
|
|
779
|
+
function getMastraCreatedAt(providerMetadata) {
|
|
780
|
+
const value = providerMetadata?.mastra;
|
|
781
|
+
if (!value || typeof value !== "object") {
|
|
782
|
+
return void 0;
|
|
783
|
+
}
|
|
784
|
+
const createdAt = value.createdAt;
|
|
785
|
+
return typeof createdAt === "number" ? createdAt : void 0;
|
|
786
|
+
}
|
|
767
787
|
var AIV5Adapter = class {
|
|
768
788
|
/**
|
|
769
789
|
* Direct conversion from MastraDBMessage to AIV5 UIMessage
|
|
@@ -829,7 +849,7 @@ var AIV5Adapter = class {
|
|
|
829
849
|
input: inv.args,
|
|
830
850
|
output: inv.result,
|
|
831
851
|
state: "output-available",
|
|
832
|
-
callProviderMetadata: part.providerMetadata,
|
|
852
|
+
callProviderMetadata: mergeMastraCreatedAt(part.providerMetadata, part.createdAt),
|
|
833
853
|
providerExecuted: part.providerExecuted
|
|
834
854
|
});
|
|
835
855
|
} else {
|
|
@@ -838,7 +858,7 @@ var AIV5Adapter = class {
|
|
|
838
858
|
toolCallId: inv.toolCallId,
|
|
839
859
|
input: inv.args,
|
|
840
860
|
state: "input-available",
|
|
841
|
-
callProviderMetadata: part.providerMetadata,
|
|
861
|
+
callProviderMetadata: mergeMastraCreatedAt(part.providerMetadata, part.createdAt),
|
|
842
862
|
providerExecuted: part.providerExecuted
|
|
843
863
|
});
|
|
844
864
|
}
|
|
@@ -855,9 +875,7 @@ var AIV5Adapter = class {
|
|
|
855
875
|
text: text || "",
|
|
856
876
|
state: "done"
|
|
857
877
|
};
|
|
858
|
-
|
|
859
|
-
v5UIPart.providerMetadata = part.providerMetadata;
|
|
860
|
-
}
|
|
878
|
+
v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
|
|
861
879
|
parts.push(v5UIPart);
|
|
862
880
|
}
|
|
863
881
|
continue;
|
|
@@ -876,9 +894,7 @@ var AIV5Adapter = class {
|
|
|
876
894
|
url: part.data,
|
|
877
895
|
mediaType: categorized.mimeType || "image/png"
|
|
878
896
|
};
|
|
879
|
-
|
|
880
|
-
v5UIPart.providerMetadata = part.providerMetadata;
|
|
881
|
-
}
|
|
897
|
+
v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
|
|
882
898
|
parts.push(v5UIPart);
|
|
883
899
|
} else {
|
|
884
900
|
let filePartData;
|
|
@@ -908,9 +924,7 @@ var AIV5Adapter = class {
|
|
|
908
924
|
url: dataUri,
|
|
909
925
|
mediaType: finalMimeType
|
|
910
926
|
};
|
|
911
|
-
|
|
912
|
-
v5UIPart.providerMetadata = part.providerMetadata;
|
|
913
|
-
}
|
|
927
|
+
v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
|
|
914
928
|
parts.push(v5UIPart);
|
|
915
929
|
}
|
|
916
930
|
} else if (part.type === "source") {
|
|
@@ -920,9 +934,7 @@ var AIV5Adapter = class {
|
|
|
920
934
|
sourceId: part.source.id,
|
|
921
935
|
title: part.source.title
|
|
922
936
|
};
|
|
923
|
-
|
|
924
|
-
v5UIPart.providerMetadata = part.providerMetadata;
|
|
925
|
-
}
|
|
937
|
+
v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
|
|
926
938
|
parts.push(v5UIPart);
|
|
927
939
|
} else if (part.type === "source-document") {
|
|
928
940
|
continue;
|
|
@@ -931,9 +943,7 @@ var AIV5Adapter = class {
|
|
|
931
943
|
type: "text",
|
|
932
944
|
text: part.text
|
|
933
945
|
};
|
|
934
|
-
|
|
935
|
-
v5UIPart.providerMetadata = part.providerMetadata;
|
|
936
|
-
}
|
|
946
|
+
v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
|
|
937
947
|
parts.push(v5UIPart);
|
|
938
948
|
hasNonToolReasoningParts = true;
|
|
939
949
|
} else {
|
|
@@ -1020,7 +1030,8 @@ var AIV5Adapter = class {
|
|
|
1020
1030
|
result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
|
|
1021
1031
|
state: "result"
|
|
1022
1032
|
},
|
|
1023
|
-
providerMetadata: callProviderMetadata
|
|
1033
|
+
providerMetadata: callProviderMetadata,
|
|
1034
|
+
createdAt: getMastraCreatedAt(callProviderMetadata)
|
|
1024
1035
|
};
|
|
1025
1036
|
}
|
|
1026
1037
|
return {
|
|
@@ -1031,7 +1042,8 @@ var AIV5Adapter = class {
|
|
|
1031
1042
|
args: p.input,
|
|
1032
1043
|
state: "call"
|
|
1033
1044
|
},
|
|
1034
|
-
providerMetadata: callProviderMetadata
|
|
1045
|
+
providerMetadata: callProviderMetadata,
|
|
1046
|
+
createdAt: getMastraCreatedAt(callProviderMetadata)
|
|
1035
1047
|
};
|
|
1036
1048
|
}
|
|
1037
1049
|
if (p.type === "reasoning") {
|
|
@@ -1044,7 +1056,8 @@ var AIV5Adapter = class {
|
|
|
1044
1056
|
text: p.text
|
|
1045
1057
|
}
|
|
1046
1058
|
],
|
|
1047
|
-
providerMetadata: p.providerMetadata
|
|
1059
|
+
providerMetadata: p.providerMetadata,
|
|
1060
|
+
createdAt: getMastraCreatedAt(p.providerMetadata)
|
|
1048
1061
|
};
|
|
1049
1062
|
}
|
|
1050
1063
|
if (p.type === "file") {
|
|
@@ -1053,6 +1066,7 @@ var AIV5Adapter = class {
|
|
|
1053
1066
|
mimeType: p.mediaType,
|
|
1054
1067
|
data: p.url || "",
|
|
1055
1068
|
providerMetadata: p.providerMetadata,
|
|
1069
|
+
createdAt: getMastraCreatedAt(p.providerMetadata),
|
|
1056
1070
|
...p.filename ? { filename: p.filename } : {}
|
|
1057
1071
|
};
|
|
1058
1072
|
}
|
|
@@ -1065,14 +1079,16 @@ var AIV5Adapter = class {
|
|
|
1065
1079
|
id: p.url,
|
|
1066
1080
|
providerMetadata: p.providerMetadata
|
|
1067
1081
|
},
|
|
1068
|
-
providerMetadata: p.providerMetadata
|
|
1082
|
+
providerMetadata: p.providerMetadata,
|
|
1083
|
+
createdAt: getMastraCreatedAt(p.providerMetadata)
|
|
1069
1084
|
};
|
|
1070
1085
|
}
|
|
1071
1086
|
if (p.type === "text") {
|
|
1072
1087
|
return {
|
|
1073
1088
|
type: "text",
|
|
1074
1089
|
text: p.text,
|
|
1075
|
-
providerMetadata: p.providerMetadata
|
|
1090
|
+
providerMetadata: p.providerMetadata,
|
|
1091
|
+
createdAt: getMastraCreatedAt(p.providerMetadata)
|
|
1076
1092
|
};
|
|
1077
1093
|
}
|
|
1078
1094
|
if (p.type === "step-start") {
|
|
@@ -1165,6 +1181,7 @@ var AIV5Adapter = class {
|
|
|
1165
1181
|
};
|
|
1166
1182
|
if (part.providerOptions) {
|
|
1167
1183
|
textPart.providerMetadata = part.providerOptions;
|
|
1184
|
+
textPart.createdAt = getMastraCreatedAt(part.providerOptions);
|
|
1168
1185
|
}
|
|
1169
1186
|
mastraDBParts.push(textPart);
|
|
1170
1187
|
} else if (part.type === "tool-call") {
|
|
@@ -1180,6 +1197,7 @@ var AIV5Adapter = class {
|
|
|
1180
1197
|
};
|
|
1181
1198
|
if (part.providerOptions) {
|
|
1182
1199
|
toolInvocationPart.providerMetadata = part.providerOptions;
|
|
1200
|
+
toolInvocationPart.createdAt = getMastraCreatedAt(part.providerOptions);
|
|
1183
1201
|
}
|
|
1184
1202
|
mastraDBParts.push(toolInvocationPart);
|
|
1185
1203
|
toolInvocations.push({
|
|
@@ -1214,6 +1232,7 @@ var AIV5Adapter = class {
|
|
|
1214
1232
|
updateMatchingCallInvocationResult(toolResultPart, matchingV2Part.toolInvocation);
|
|
1215
1233
|
if (toolResultPart.providerOptions) {
|
|
1216
1234
|
matchingV2Part.providerMetadata = toolResultPart.providerOptions;
|
|
1235
|
+
matchingV2Part.createdAt = getMastraCreatedAt(toolResultPart.providerOptions) ?? matchingV2Part.createdAt;
|
|
1217
1236
|
}
|
|
1218
1237
|
} else {
|
|
1219
1238
|
const toolInvocationPart = {
|
|
@@ -1228,6 +1247,7 @@ var AIV5Adapter = class {
|
|
|
1228
1247
|
updateMatchingCallInvocationResult(toolResultPart, toolInvocationPart.toolInvocation);
|
|
1229
1248
|
if (toolResultPart.providerOptions) {
|
|
1230
1249
|
toolInvocationPart.providerMetadata = toolResultPart.providerOptions;
|
|
1250
|
+
toolInvocationPart.createdAt = getMastraCreatedAt(toolResultPart.providerOptions);
|
|
1231
1251
|
}
|
|
1232
1252
|
mastraDBParts.push(toolInvocationPart);
|
|
1233
1253
|
}
|
|
@@ -1239,6 +1259,7 @@ var AIV5Adapter = class {
|
|
|
1239
1259
|
};
|
|
1240
1260
|
if (part.providerOptions) {
|
|
1241
1261
|
v2ReasoningPart.providerMetadata = part.providerOptions;
|
|
1262
|
+
v2ReasoningPart.createdAt = getMastraCreatedAt(part.providerOptions);
|
|
1242
1263
|
}
|
|
1243
1264
|
mastraDBParts.push(v2ReasoningPart);
|
|
1244
1265
|
reasoningParts.push(part.text);
|
|
@@ -1253,6 +1274,7 @@ var AIV5Adapter = class {
|
|
|
1253
1274
|
};
|
|
1254
1275
|
if (part.providerOptions) {
|
|
1255
1276
|
imageFilePart.providerMetadata = part.providerOptions;
|
|
1277
|
+
imageFilePart.createdAt = getMastraCreatedAt(part.providerOptions);
|
|
1256
1278
|
}
|
|
1257
1279
|
mastraDBParts.push(imageFilePart);
|
|
1258
1280
|
experimental_attachments.push({
|
|
@@ -1270,6 +1292,7 @@ var AIV5Adapter = class {
|
|
|
1270
1292
|
};
|
|
1271
1293
|
if (part.providerOptions) {
|
|
1272
1294
|
v2FilePart.providerMetadata = part.providerOptions;
|
|
1295
|
+
v2FilePart.createdAt = getMastraCreatedAt(part.providerOptions);
|
|
1273
1296
|
}
|
|
1274
1297
|
if (filePart.filename) {
|
|
1275
1298
|
v2FilePart.filename = filePart.filename;
|
|
@@ -2253,6 +2276,21 @@ function messagesAreEqual(one, two) {
|
|
|
2253
2276
|
return true;
|
|
2254
2277
|
}
|
|
2255
2278
|
|
|
2279
|
+
// src/agent/message-list/utils/stamp-part.ts
|
|
2280
|
+
function stampPart(part) {
|
|
2281
|
+
if (part.createdAt == null) {
|
|
2282
|
+
part.createdAt = Date.now();
|
|
2283
|
+
}
|
|
2284
|
+
return part;
|
|
2285
|
+
}
|
|
2286
|
+
function stampMessageParts(message, source) {
|
|
2287
|
+
if (source === "memory" || !Array.isArray(message.content.parts)) {
|
|
2288
|
+
return message;
|
|
2289
|
+
}
|
|
2290
|
+
message.content.parts = message.content.parts.map((part) => stampPart(part));
|
|
2291
|
+
return message;
|
|
2292
|
+
}
|
|
2293
|
+
|
|
2256
2294
|
// src/agent/message-list/conversion/input-converter.ts
|
|
2257
2295
|
function inputToMastraDBMessage(message, messageSource, context) {
|
|
2258
2296
|
if (messageSource !== `memory` && `threadId` in message && message.threadId && context.memoryInfo && message.threadId !== context.memoryInfo.threadId) {
|
|
@@ -2266,16 +2304,19 @@ function inputToMastraDBMessage(message, messageSource, context) {
|
|
|
2266
2304
|
);
|
|
2267
2305
|
}
|
|
2268
2306
|
if (TypeDetector.isMastraMessageV1(message)) {
|
|
2269
|
-
return mastraMessageV1ToMastraDBMessage(message, messageSource, context);
|
|
2307
|
+
return stampMessageParts(mastraMessageV1ToMastraDBMessage(message, messageSource, context), messageSource);
|
|
2270
2308
|
}
|
|
2271
2309
|
if (TypeDetector.isMastraDBMessage(message)) {
|
|
2272
|
-
return hydrateMastraDBMessageFields(message, context);
|
|
2310
|
+
return stampMessageParts(hydrateMastraDBMessageFields(message, context), messageSource);
|
|
2273
2311
|
}
|
|
2274
2312
|
if (TypeDetector.isAIV4CoreMessage(message)) {
|
|
2275
|
-
return AIV4Adapter.fromCoreMessage(message, context, messageSource);
|
|
2313
|
+
return stampMessageParts(AIV4Adapter.fromCoreMessage(message, context, messageSource), messageSource);
|
|
2276
2314
|
}
|
|
2277
2315
|
if (TypeDetector.isAIV4UIMessage(message)) {
|
|
2278
|
-
return
|
|
2316
|
+
return stampMessageParts(
|
|
2317
|
+
AIV4Adapter.fromUIMessage(message, context, messageSource),
|
|
2318
|
+
messageSource
|
|
2319
|
+
);
|
|
2279
2320
|
}
|
|
2280
2321
|
const hasOriginalId = "id" in message && typeof message.id === "string";
|
|
2281
2322
|
const id = hasOriginalId ? message.id : context.newMessageId();
|
|
@@ -2304,24 +2345,30 @@ function inputToMastraDBMessage(message, messageSource, context) {
|
|
|
2304
2345
|
if (TypeDetector.isAIV5CoreMessage(message)) {
|
|
2305
2346
|
const dbMsg = AIV5Adapter.fromModelMessage(message, messageSource);
|
|
2306
2347
|
const rawCreatedAt = "metadata" in message && message.metadata && typeof message.metadata === "object" && "createdAt" in message.metadata ? message.metadata.createdAt : void 0;
|
|
2307
|
-
return
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2348
|
+
return stampMessageParts(
|
|
2349
|
+
{
|
|
2350
|
+
...dbMsg,
|
|
2351
|
+
id,
|
|
2352
|
+
createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
|
|
2353
|
+
threadId: context.memoryInfo?.threadId,
|
|
2354
|
+
resourceId: context.memoryInfo?.resourceId
|
|
2355
|
+
},
|
|
2356
|
+
messageSource
|
|
2357
|
+
);
|
|
2314
2358
|
}
|
|
2315
2359
|
if (TypeDetector.isAIV5UIMessage(message)) {
|
|
2316
2360
|
const dbMsg = AIV5Adapter.fromUIMessage(message);
|
|
2317
2361
|
const rawCreatedAt = "createdAt" in message ? message.createdAt : void 0;
|
|
2318
|
-
return
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2362
|
+
return stampMessageParts(
|
|
2363
|
+
{
|
|
2364
|
+
...dbMsg,
|
|
2365
|
+
id,
|
|
2366
|
+
createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
|
|
2367
|
+
threadId: context.memoryInfo?.threadId,
|
|
2368
|
+
resourceId: context.memoryInfo?.resourceId
|
|
2369
|
+
},
|
|
2370
|
+
messageSource
|
|
2371
|
+
);
|
|
2325
2372
|
}
|
|
2326
2373
|
throw new Error(`Found unhandled message ${JSON.stringify(message)}`);
|
|
2327
2374
|
}
|
|
@@ -4489,7 +4536,7 @@ var MessageList = class {
|
|
|
4489
4536
|
if (lastPart?.type === "step-start") {
|
|
4490
4537
|
return false;
|
|
4491
4538
|
}
|
|
4492
|
-
lastMsg.content.parts.push({ type: "step-start" });
|
|
4539
|
+
lastMsg.content.parts.push(stampPart({ type: "step-start" }));
|
|
4493
4540
|
if (!this.stateManager.isResponseMessage(lastMsg)) {
|
|
4494
4541
|
this.stateManager.removeMessage(lastMsg);
|
|
4495
4542
|
this.stateManager.addToSource(lastMsg, "response");
|
|
@@ -4812,5 +4859,5 @@ exports.getOpenAIReasoningItemId = getOpenAIReasoningItemId;
|
|
|
4812
4859
|
exports.hasOpenAIReasoningItemId = hasOpenAIReasoningItemId;
|
|
4813
4860
|
exports.messagesAreEqual = messagesAreEqual;
|
|
4814
4861
|
exports.sanitizeToolName = sanitizeToolName;
|
|
4815
|
-
//# sourceMappingURL=chunk-
|
|
4816
|
-
//# sourceMappingURL=chunk-
|
|
4862
|
+
//# sourceMappingURL=chunk-RJAOQKHJ.cjs.map
|
|
4863
|
+
//# sourceMappingURL=chunk-RJAOQKHJ.cjs.map
|