@mastra/core 1.18.0-alpha.3 → 1.18.0-alpha.4
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 +51 -0
- package/dist/_types/@internal_core/dist/index.d.ts +521 -172
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/{chunk-4K2NKQGN.cjs → chunk-2OZQLYLM.cjs} +196 -194
- package/dist/chunk-2OZQLYLM.cjs.map +1 -0
- package/dist/{chunk-VVR3SFKH.cjs → chunk-2RGBP3A3.cjs} +70 -70
- package/dist/{chunk-VVR3SFKH.cjs.map → chunk-2RGBP3A3.cjs.map} +1 -1
- package/dist/{chunk-GVHBM6VU.cjs → chunk-4LDFFARO.cjs} +29 -11
- package/dist/chunk-4LDFFARO.cjs.map +1 -0
- package/dist/{chunk-T5XU5TAV.cjs → chunk-4QLIPOI7.cjs} +82 -82
- package/dist/{chunk-T5XU5TAV.cjs.map → chunk-4QLIPOI7.cjs.map} +1 -1
- package/dist/{chunk-ZFZ6HQFT.cjs → chunk-5M3CKUAS.cjs} +210 -187
- package/dist/chunk-5M3CKUAS.cjs.map +1 -0
- package/dist/{chunk-D5VCCQ4L.js → chunk-6DDSP6ZE.js} +5 -5
- package/dist/{chunk-D5VCCQ4L.js.map → chunk-6DDSP6ZE.js.map} +1 -1
- package/dist/{chunk-5IZ346TV.cjs → chunk-A2FSD2KN.cjs} +7 -7
- package/dist/{chunk-5IZ346TV.cjs.map → chunk-A2FSD2KN.cjs.map} +1 -1
- package/dist/{chunk-64565EZF.cjs → chunk-ATKRXBCX.cjs} +22 -22
- package/dist/{chunk-64565EZF.cjs.map → chunk-ATKRXBCX.cjs.map} +1 -1
- package/dist/{chunk-K4NN2KQQ.cjs → chunk-AV4YSAZL.cjs} +6 -2
- package/dist/chunk-AV4YSAZL.cjs.map +1 -0
- package/dist/{chunk-7USX5P3I.js → chunk-B5LIMU4I.js} +28 -5
- package/dist/chunk-B5LIMU4I.js.map +1 -0
- package/dist/{chunk-BFRUEBG3.js → chunk-CEWIMGYP.js} +4 -4
- package/dist/{chunk-BFRUEBG3.js.map → chunk-CEWIMGYP.js.map} +1 -1
- package/dist/{chunk-X36INADV.cjs → chunk-CGDV5YUS.cjs} +131 -48
- package/dist/chunk-CGDV5YUS.cjs.map +1 -0
- package/dist/{chunk-HDPQ3LEE.js → chunk-DJ2RXLO3.js} +4 -4
- package/dist/{chunk-HDPQ3LEE.js.map → chunk-DJ2RXLO3.js.map} +1 -1
- package/dist/{chunk-OKKJRRSS.cjs → chunk-E7LJ7F56.cjs} +32 -14
- package/dist/chunk-E7LJ7F56.cjs.map +1 -0
- package/dist/{chunk-W2QYKEBN.js → chunk-ERAZTMF6.js} +113 -30
- package/dist/chunk-ERAZTMF6.js.map +1 -0
- package/dist/{chunk-IR4WRS3N.js → chunk-F77BL7Z7.js} +31 -13
- package/dist/chunk-F77BL7Z7.js.map +1 -0
- package/dist/{chunk-GRMC2OYN.js → chunk-FA4PTEBK.js} +6 -3
- package/dist/chunk-FA4PTEBK.js.map +1 -0
- package/dist/{chunk-YBVRBNRY.js → chunk-GIBIKVUG.js} +7 -7
- package/dist/{chunk-YBVRBNRY.js.map → chunk-GIBIKVUG.js.map} +1 -1
- package/dist/{chunk-QVVWKMFM.cjs → chunk-GXXNF6NF.cjs} +25 -25
- package/dist/{chunk-QVVWKMFM.cjs.map → chunk-GXXNF6NF.cjs.map} +1 -1
- package/dist/{chunk-OYAHOEQP.js → chunk-HJVPOP5S.js} +27 -9
- package/dist/chunk-HJVPOP5S.js.map +1 -0
- package/dist/{chunk-ABA3KD3X.js → chunk-HRT662B6.js} +3 -3
- package/dist/{chunk-ABA3KD3X.js.map → chunk-HRT662B6.js.map} +1 -1
- package/dist/chunk-IHVB4C5U.cjs +4 -0
- package/dist/{chunk-ROOVGRNA.cjs.map → chunk-IHVB4C5U.cjs.map} +1 -1
- package/dist/{chunk-OVWOD5GI.cjs → chunk-IKYWIQB2.cjs} +20 -20
- package/dist/{chunk-OVWOD5GI.cjs.map → chunk-IKYWIQB2.cjs.map} +1 -1
- package/dist/{chunk-UORUVXKY.js → chunk-JYVH24UY.js} +6 -6
- package/dist/{chunk-UORUVXKY.js.map → chunk-JYVH24UY.js.map} +1 -1
- package/dist/{chunk-AHFHYQS6.js → chunk-LQHNR4L7.js} +4 -4
- package/dist/{chunk-AHFHYQS6.js.map → chunk-LQHNR4L7.js.map} +1 -1
- package/dist/{chunk-OXS5X7PW.cjs → chunk-OJQCLQK7.cjs} +13 -13
- package/dist/{chunk-OXS5X7PW.cjs.map → chunk-OJQCLQK7.cjs.map} +1 -1
- package/dist/{chunk-CX5I6VS4.js → chunk-QE7OKYS3.js} +111 -38
- package/dist/chunk-QE7OKYS3.js.map +1 -0
- package/dist/{chunk-FB6O7FNK.js → chunk-QOFOOVPM.js} +9 -9
- package/dist/{chunk-FB6O7FNK.js.map → chunk-QOFOOVPM.js.map} +1 -1
- package/dist/{chunk-SLHDZJ4B.js → chunk-RHQHBU6R.js} +5 -4
- package/dist/chunk-RHQHBU6R.js.map +1 -0
- package/dist/{chunk-3UM5VCQ5.cjs → chunk-RIUDLIP3.cjs} +3 -3
- package/dist/{chunk-3UM5VCQ5.cjs.map → chunk-RIUDLIP3.cjs.map} +1 -1
- package/dist/chunk-S43VACTO.js +3 -0
- package/dist/{chunk-DMX7MC4N.js.map → chunk-S43VACTO.js.map} +1 -1
- package/dist/{chunk-PYNUWPGW.cjs → chunk-SMWXSQXP.cjs} +19 -19
- package/dist/{chunk-PYNUWPGW.cjs.map → chunk-SMWXSQXP.cjs.map} +1 -1
- package/dist/{chunk-32NEFSTI.js → chunk-T3TFXXGP.js} +12 -10
- package/dist/chunk-T3TFXXGP.js.map +1 -0
- package/dist/{chunk-6LHF5UDX.cjs → chunk-ULPWI6DN.cjs} +9 -9
- package/dist/{chunk-6LHF5UDX.cjs.map → chunk-ULPWI6DN.cjs.map} +1 -1
- package/dist/{chunk-QXPUTX3W.cjs → chunk-UZ426KMJ.cjs} +33 -32
- package/dist/chunk-UZ426KMJ.cjs.map +1 -0
- package/dist/{chunk-B6D4D2CY.cjs → chunk-VYVPUH6H.cjs} +112 -37
- package/dist/chunk-VYVPUH6H.cjs.map +1 -0
- package/dist/{chunk-MP2VGF73.js → chunk-WINCOFML.js} +3 -3
- package/dist/{chunk-MP2VGF73.js.map → chunk-WINCOFML.js.map} +1 -1
- package/dist/{chunk-ZFH5KWHO.js → chunk-Z5FE6LBA.js} +3 -3
- package/dist/{chunk-ZFH5KWHO.js.map → chunk-Z5FE6LBA.js.map} +1 -1
- package/dist/datasets/dataset.d.ts +1 -0
- package/dist/datasets/dataset.d.ts.map +1 -1
- package/dist/datasets/experiment/index.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/datasets/manager.d.ts +1 -0
- package/dist/datasets/manager.d.ts.map +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +534 -521
- package/dist/docs/references/reference-configuration.md +24 -0
- package/dist/docs/references/reference-core-mastra-model-gateway.md +2 -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 +17 -17
- package/dist/harness/index.js +7 -7
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +16 -16
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +11 -2
- 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.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/models-dev-JGKQCSEN.js +3 -0
- package/dist/{models-dev-VDZIOMAC.js.map → models-dev-JGKQCSEN.js.map} +1 -1
- package/dist/models-dev-THY3NOPF.cjs +12 -0
- package/dist/{models-dev-MIC2CW43.cjs.map → models-dev-THY3NOPF.cjs.map} +1 -1
- package/dist/netlify-6TILQFDV.js +3 -0
- package/dist/{netlify-2CGMKEKT.js.map → netlify-6TILQFDV.js.map} +1 -1
- package/dist/netlify-NL6O2R7M.cjs +12 -0
- package/dist/{netlify-KZ4HQR5N.cjs.map → netlify-NL6O2R7M.cjs.map} +1 -1
- package/dist/observability/index.cjs +18 -18
- package/dist/observability/index.js +1 -1
- package/dist/observability/no-op.d.ts +14 -1
- package/dist/observability/no-op.d.ts.map +1 -1
- package/dist/observability/types/core.d.ts +35 -4
- package/dist/observability/types/core.d.ts.map +1 -1
- package/dist/observability/types/feedback.d.ts +42 -11
- package/dist/observability/types/feedback.d.ts.map +1 -1
- package/dist/observability/types/logging.d.ts +6 -9
- package/dist/observability/types/logging.d.ts.map +1 -1
- package/dist/observability/types/metrics.d.ts +6 -4
- package/dist/observability/types/metrics.d.ts.map +1 -1
- package/dist/observability/types/scores.d.ts +25 -10
- package/dist/observability/types/scores.d.ts.map +1 -1
- package/dist/observability/types/tracing.d.ts +12 -5
- 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/processors/runner.d.ts.map +1 -1
- package/dist/provider-registry-CRD5YYZY.js +3 -0
- package/dist/{provider-registry-QRWUBN5N.js.map → provider-registry-CRD5YYZY.js.map} +1 -1
- package/dist/provider-registry-KXOHTVQF.cjs +40 -0
- package/dist/{provider-registry-HGWTTWCL.cjs.map → provider-registry-KXOHTVQF.cjs.map} +1 -1
- package/dist/provider-registry.json +27 -9
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/server/types.d.ts +16 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/domains/datasets/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/record-builders.d.ts.map +1 -1
- package/dist/storage/domains/observability/tracing.d.ts +8 -8
- package/dist/storage/domains/shared.d.ts +1 -1
- package/dist/storage/domains/shared.d.ts.map +1 -1
- package/dist/storage/index.cjs +276 -268
- package/dist/storage/index.js +3 -3
- package/dist/storage/types.d.ts +3 -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/tools/index.cjs +11 -7
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/validation.d.ts +1 -0
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/utils.cjs +23 -23
- 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/dist/workspace/index.cjs +68 -68
- package/dist/workspace/index.js +1 -1
- package/package.json +3 -3
- package/src/llm/model/provider-types.generated.d.ts +11 -2
- package/dist/chunk-32NEFSTI.js.map +0 -1
- package/dist/chunk-4K2NKQGN.cjs.map +0 -1
- package/dist/chunk-7USX5P3I.js.map +0 -1
- package/dist/chunk-B6D4D2CY.cjs.map +0 -1
- package/dist/chunk-CX5I6VS4.js.map +0 -1
- package/dist/chunk-DMX7MC4N.js +0 -3
- package/dist/chunk-GRMC2OYN.js.map +0 -1
- package/dist/chunk-GVHBM6VU.cjs.map +0 -1
- package/dist/chunk-IR4WRS3N.js.map +0 -1
- package/dist/chunk-K4NN2KQQ.cjs.map +0 -1
- package/dist/chunk-OKKJRRSS.cjs.map +0 -1
- package/dist/chunk-OYAHOEQP.js.map +0 -1
- package/dist/chunk-QXPUTX3W.cjs.map +0 -1
- package/dist/chunk-ROOVGRNA.cjs +0 -4
- package/dist/chunk-SLHDZJ4B.js.map +0 -1
- package/dist/chunk-W2QYKEBN.js.map +0 -1
- package/dist/chunk-X36INADV.cjs.map +0 -1
- package/dist/chunk-ZFZ6HQFT.cjs.map +0 -1
- package/dist/models-dev-MIC2CW43.cjs +0 -12
- package/dist/models-dev-VDZIOMAC.js +0 -3
- package/dist/netlify-2CGMKEKT.js +0 -3
- package/dist/netlify-KZ4HQR5N.cjs +0 -12
- package/dist/provider-registry-HGWTTWCL.cjs +0 -40
- package/dist/provider-registry-QRWUBN5N.js +0 -3
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkRIUDLIP3_cjs = require('./chunk-RIUDLIP3.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
|
|
8
|
+
var NetlifyGateway = class extends chunkRIUDLIP3_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 chunk3UM5VCQ5_cjs.MastraModelGateway {
|
|
|
128
128
|
headers
|
|
129
129
|
}) {
|
|
130
130
|
const baseURL = await this.buildUrl(`${providerId}/${modelId}`);
|
|
131
|
-
const mastraHeaders = { "User-Agent":
|
|
131
|
+
const mastraHeaders = { "User-Agent": chunkRIUDLIP3_cjs.MASTRA_USER_AGENT, ...headers };
|
|
132
132
|
switch (providerId) {
|
|
133
133
|
case "openai":
|
|
134
|
-
return
|
|
134
|
+
return chunkRIUDLIP3_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
|
|
135
135
|
case "gemini":
|
|
136
|
-
return
|
|
136
|
+
return chunkRIUDLIP3_cjs.createGoogleGenerativeAI({
|
|
137
137
|
baseURL: `${baseURL}/v1beta/`,
|
|
138
138
|
apiKey,
|
|
139
139
|
headers: {
|
|
@@ -142,7 +142,7 @@ var NetlifyGateway = class extends chunk3UM5VCQ5_cjs.MastraModelGateway {
|
|
|
142
142
|
}
|
|
143
143
|
}).chat(modelId);
|
|
144
144
|
case "anthropic":
|
|
145
|
-
return
|
|
145
|
+
return chunkRIUDLIP3_cjs.createAnthropic({
|
|
146
146
|
apiKey,
|
|
147
147
|
baseURL: `${baseURL}/v1/`,
|
|
148
148
|
headers: {
|
|
@@ -151,7 +151,7 @@ var NetlifyGateway = class extends chunk3UM5VCQ5_cjs.MastraModelGateway {
|
|
|
151
151
|
}
|
|
152
152
|
})(modelId);
|
|
153
153
|
default:
|
|
154
|
-
return
|
|
154
|
+
return chunkRIUDLIP3_cjs.createOpenAICompatible({
|
|
155
155
|
name: providerId,
|
|
156
156
|
apiKey,
|
|
157
157
|
baseURL,
|
|
@@ -163,5 +163,5 @@ var NetlifyGateway = class extends chunk3UM5VCQ5_cjs.MastraModelGateway {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
exports.NetlifyGateway = NetlifyGateway;
|
|
166
|
-
//# sourceMappingURL=chunk-
|
|
167
|
-
//# sourceMappingURL=chunk-
|
|
166
|
+
//# sourceMappingURL=chunk-ULPWI6DN.cjs.map
|
|
167
|
+
//# sourceMappingURL=chunk-ULPWI6DN.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-6LHF5UDX.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-ULPWI6DN.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,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkVYVPUH6H_cjs = require('./chunk-VYVPUH6H.cjs');
|
|
4
4
|
var chunkRLPRSIR2_cjs = require('./chunk-RLPRSIR2.cjs');
|
|
5
5
|
var v4 = require('zod/v4');
|
|
6
6
|
|
|
7
7
|
var scoringSourceSchema = v4.z.enum(["LIVE", "TEST"]);
|
|
8
|
-
var scoringEntityTypeSchema = v4.z.enum(["AGENT", "WORKFLOW", ...Object.values(
|
|
8
|
+
var scoringEntityTypeSchema = v4.z.enum(["AGENT", "WORKFLOW", ...Object.values(chunkVYVPUH6H_cjs.SpanType)]);
|
|
9
9
|
var scoringPromptsSchema = v4.z.object({
|
|
10
10
|
description: v4.z.string(),
|
|
11
11
|
prompt: v4.z.string()
|
|
@@ -95,7 +95,7 @@ var scoreRowDataSchema = v4.z.object({
|
|
|
95
95
|
generateScorePrompt: v4.z.string().optional(),
|
|
96
96
|
generateReasonPrompt: v4.z.string().optional(),
|
|
97
97
|
// Timestamps
|
|
98
|
-
...
|
|
98
|
+
...chunkVYVPUH6H_cjs.dbTimestamps
|
|
99
99
|
});
|
|
100
100
|
var saveScorePayloadSchema = scoreRowDataSchema.omit({
|
|
101
101
|
id: true,
|
|
@@ -103,7 +103,7 @@ var saveScorePayloadSchema = scoreRowDataSchema.omit({
|
|
|
103
103
|
updatedAt: true
|
|
104
104
|
});
|
|
105
105
|
var listScoresResponseSchema = v4.z.object({
|
|
106
|
-
pagination:
|
|
106
|
+
pagination: chunkVYVPUH6H_cjs.paginationInfoSchema,
|
|
107
107
|
scores: v4.z.array(scoreRowDataSchema)
|
|
108
108
|
});
|
|
109
109
|
function extractTrajectory(output) {
|
|
@@ -312,7 +312,7 @@ function extractTrajectoryFromTrace(spans, rootSpanId) {
|
|
|
312
312
|
var createOmitKeys = (shape) => Object.fromEntries(Object.keys(shape).map((k) => [k, true]));
|
|
313
313
|
var spanNameField = v4.z.string().describe("Human-readable span name");
|
|
314
314
|
var parentSpanIdField = v4.z.string().describe("Parent span reference (null = root span)");
|
|
315
|
-
var spanTypeField = v4.z.nativeEnum(
|
|
315
|
+
var spanTypeField = v4.z.nativeEnum(chunkVYVPUH6H_cjs.SpanType).describe("Span type (e.g., WORKFLOW_RUN, AGENT_RUN, TOOL_CALL, etc.)");
|
|
316
316
|
var attributesField = v4.z.record(v4.z.string(), v4.z.unknown()).describe("Span-type specific attributes (e.g., model, tokens, tools)");
|
|
317
317
|
var linksField = v4.z.array(v4.z.unknown()).describe("References to related spans in other traces");
|
|
318
318
|
var inputField = v4.z.unknown().describe("Input data passed to the span");
|
|
@@ -334,18 +334,18 @@ var hasChildErrorField = v4.z.preprocess((v) => {
|
|
|
334
334
|
return v;
|
|
335
335
|
}, v4.z.boolean()).describe("True if any span in the trace encountered an error");
|
|
336
336
|
var sharedFields = {
|
|
337
|
-
...
|
|
338
|
-
metadata:
|
|
339
|
-
tags:
|
|
337
|
+
...chunkVYVPUH6H_cjs.spanContextFields,
|
|
338
|
+
metadata: chunkVYVPUH6H_cjs.metadataField.nullish(),
|
|
339
|
+
tags: chunkVYVPUH6H_cjs.tagsField.nullish()
|
|
340
340
|
};
|
|
341
341
|
var spanIds = {
|
|
342
|
-
traceId:
|
|
343
|
-
spanId:
|
|
342
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField,
|
|
343
|
+
spanId: chunkVYVPUH6H_cjs.spanIdField
|
|
344
344
|
};
|
|
345
345
|
var spanIdsSchema = v4.z.object({
|
|
346
346
|
...spanIds
|
|
347
347
|
});
|
|
348
|
-
var omitDbTimestamps = createOmitKeys(
|
|
348
|
+
var omitDbTimestamps = createOmitKeys(chunkVYVPUH6H_cjs.dbTimestamps);
|
|
349
349
|
var omitSpanIds = createOmitKeys(spanIds);
|
|
350
350
|
var spanRecordSchema = v4.z.object({
|
|
351
351
|
// Required identifiers
|
|
@@ -368,7 +368,7 @@ var spanRecordSchema = v4.z.object({
|
|
|
368
368
|
endedAt: endedAtField.nullish(),
|
|
369
369
|
requestContext: v4.z.record(v4.z.string(), v4.z.unknown()).nullish().describe("Request context data"),
|
|
370
370
|
// Database timestamps
|
|
371
|
-
...
|
|
371
|
+
...chunkVYVPUH6H_cjs.dbTimestamps
|
|
372
372
|
}).describe("Span record data");
|
|
373
373
|
function computeTraceStatus(span) {
|
|
374
374
|
if (span.error != null) return "error" /* ERROR */;
|
|
@@ -395,29 +395,29 @@ var batchCreateSpansArgsSchema = v4.z.object({
|
|
|
395
395
|
records: v4.z.array(createSpanRecordSchema)
|
|
396
396
|
}).describe("Arguments for batch creating spans");
|
|
397
397
|
var getSpanArgsSchema = v4.z.object({
|
|
398
|
-
traceId:
|
|
399
|
-
spanId:
|
|
398
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField.min(1),
|
|
399
|
+
spanId: chunkVYVPUH6H_cjs.spanIdField.min(1)
|
|
400
400
|
}).describe("Arguments for getting a single span");
|
|
401
401
|
var getSpanResponseSchema = v4.z.object({
|
|
402
402
|
span: spanRecordSchema
|
|
403
403
|
});
|
|
404
404
|
var getRootSpanArgsSchema = v4.z.object({
|
|
405
|
-
traceId:
|
|
405
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField.min(1)
|
|
406
406
|
}).describe("Arguments for getting a root span");
|
|
407
407
|
var getRootSpanResponseSchema = v4.z.object({
|
|
408
408
|
span: spanRecordSchema
|
|
409
409
|
});
|
|
410
410
|
var getTraceArgsSchema = v4.z.object({
|
|
411
|
-
traceId:
|
|
411
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField.min(1)
|
|
412
412
|
}).describe("Arguments for getting a single trace");
|
|
413
413
|
var getTraceResponseSchema = v4.z.object({
|
|
414
|
-
traceId:
|
|
414
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField,
|
|
415
415
|
spans: v4.z.array(spanRecordSchema)
|
|
416
416
|
});
|
|
417
417
|
var tracesFilterSchema = v4.z.object({
|
|
418
418
|
// Date range filters
|
|
419
|
-
startedAt:
|
|
420
|
-
endedAt:
|
|
419
|
+
startedAt: chunkVYVPUH6H_cjs.dateRangeSchema.optional().describe("Filter by span start time range"),
|
|
420
|
+
endedAt: chunkVYVPUH6H_cjs.dateRangeSchema.optional().describe("Filter by span end time range"),
|
|
421
421
|
// Span type filter
|
|
422
422
|
spanType: spanTypeField.optional(),
|
|
423
423
|
// Shared fields
|
|
@@ -429,45 +429,45 @@ var tracesFilterSchema = v4.z.object({
|
|
|
429
429
|
var tracesOrderByFieldSchema = v4.z.enum(["startedAt", "endedAt"]).describe("Field to order by: 'startedAt' | 'endedAt'");
|
|
430
430
|
var tracesOrderBySchema = v4.z.object({
|
|
431
431
|
field: tracesOrderByFieldSchema.default("startedAt").describe("Field to order by"),
|
|
432
|
-
direction:
|
|
432
|
+
direction: chunkVYVPUH6H_cjs.sortDirectionSchema.default("DESC").describe("Sort direction")
|
|
433
433
|
}).describe("Order by configuration");
|
|
434
434
|
var listTracesArgsSchema = v4.z.object({
|
|
435
435
|
filters: tracesFilterSchema.optional().describe("Optional filters to apply"),
|
|
436
|
-
pagination:
|
|
436
|
+
pagination: chunkVYVPUH6H_cjs.paginationArgsSchema.default({ page: 0, perPage: 10 }).describe("Pagination settings"),
|
|
437
437
|
orderBy: tracesOrderBySchema.default({ field: "startedAt", direction: "DESC" }).describe("Ordering configuration (defaults to startedAt desc)")
|
|
438
438
|
}).describe("Arguments for listing traces");
|
|
439
439
|
var listTracesResponseSchema = v4.z.object({
|
|
440
|
-
pagination:
|
|
440
|
+
pagination: chunkVYVPUH6H_cjs.paginationInfoSchema,
|
|
441
441
|
spans: v4.z.array(traceSpanSchema)
|
|
442
442
|
});
|
|
443
443
|
var updateSpanRecordSchema = createSpanRecordSchema.omit(omitSpanIds);
|
|
444
444
|
var updateSpanArgsSchema = v4.z.object({
|
|
445
|
-
spanId:
|
|
446
|
-
traceId:
|
|
445
|
+
spanId: chunkVYVPUH6H_cjs.spanIdField,
|
|
446
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField,
|
|
447
447
|
updates: updateSpanRecordSchema.partial()
|
|
448
448
|
}).describe("Arguments for updating a single span");
|
|
449
449
|
var batchUpdateSpansArgsSchema = v4.z.object({
|
|
450
450
|
records: v4.z.array(
|
|
451
451
|
v4.z.object({
|
|
452
|
-
traceId:
|
|
453
|
-
spanId:
|
|
452
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField,
|
|
453
|
+
spanId: chunkVYVPUH6H_cjs.spanIdField,
|
|
454
454
|
updates: updateSpanRecordSchema.partial()
|
|
455
455
|
})
|
|
456
456
|
)
|
|
457
457
|
}).describe("Arguments for batch updating spans");
|
|
458
458
|
var batchDeleteTracesArgsSchema = v4.z.object({
|
|
459
|
-
traceIds: v4.z.array(
|
|
459
|
+
traceIds: v4.z.array(chunkVYVPUH6H_cjs.traceIdField)
|
|
460
460
|
}).describe("Arguments for batch deleting traces");
|
|
461
461
|
var listScoresBySpanResponseSchema = v4.z.object({
|
|
462
|
-
pagination:
|
|
462
|
+
pagination: chunkVYVPUH6H_cjs.paginationInfoSchema,
|
|
463
463
|
scores: v4.z.array(scoreRowDataSchema)
|
|
464
464
|
});
|
|
465
465
|
var scoreTracesRequestSchema = v4.z.object({
|
|
466
466
|
scorerName: v4.z.string().min(1),
|
|
467
467
|
targets: v4.z.array(
|
|
468
468
|
v4.z.object({
|
|
469
|
-
traceId:
|
|
470
|
-
spanId:
|
|
469
|
+
traceId: chunkVYVPUH6H_cjs.traceIdField,
|
|
470
|
+
spanId: chunkVYVPUH6H_cjs.spanIdField.optional()
|
|
471
471
|
})
|
|
472
472
|
).min(1)
|
|
473
473
|
});
|
|
@@ -939,6 +939,7 @@ var DATASETS_SCHEMA = {
|
|
|
939
939
|
tags: { type: "jsonb", nullable: true },
|
|
940
940
|
targetType: { type: "text", nullable: true },
|
|
941
941
|
targetIds: { type: "jsonb", nullable: true },
|
|
942
|
+
scorerIds: { type: "jsonb", nullable: true },
|
|
942
943
|
version: { type: "integer", nullable: false },
|
|
943
944
|
createdAt: { type: "timestamp", nullable: false },
|
|
944
945
|
updatedAt: { type: "timestamp", nullable: false }
|
|
@@ -1191,5 +1192,5 @@ exports.tracesOrderByFieldSchema = tracesOrderByFieldSchema;
|
|
|
1191
1192
|
exports.tracesOrderBySchema = tracesOrderBySchema;
|
|
1192
1193
|
exports.updateSpanArgsSchema = updateSpanArgsSchema;
|
|
1193
1194
|
exports.updateSpanRecordSchema = updateSpanRecordSchema;
|
|
1194
|
-
//# sourceMappingURL=chunk-
|
|
1195
|
-
//# sourceMappingURL=chunk-
|
|
1195
|
+
//# sourceMappingURL=chunk-UZ426KMJ.cjs.map
|
|
1196
|
+
//# sourceMappingURL=chunk-UZ426KMJ.cjs.map
|