@mastra/core 1.55.0-alpha.2 → 1.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/durable/index.cjs +1 -1
  4. package/dist/agent/durable/index.js +1 -1
  5. package/dist/agent/index.cjs +2 -2
  6. package/dist/agent/index.js +2 -2
  7. package/dist/{agent-BvRfRKIt.js → agent-0y2cApTZ.js} +57 -82
  8. package/dist/agent-0y2cApTZ.js.map +1 -0
  9. package/dist/agent-builder/ee/index.cjs +1 -1
  10. package/dist/agent-builder/ee/index.js +1 -1
  11. package/dist/agent-controller/index.cjs +1 -1
  12. package/dist/agent-controller/index.js +1 -1
  13. package/dist/{agent-controller-CM6tQSMj.js → agent-controller-ByW51eCC.js} +5 -5
  14. package/dist/{agent-controller-CM6tQSMj.js.map → agent-controller-ByW51eCC.js.map} +1 -1
  15. package/dist/{agent-controller-C75dc544.cjs → agent-controller-DahKlMET.cjs} +5 -5
  16. package/dist/{agent-controller-C75dc544.cjs.map → agent-controller-DahKlMET.cjs.map} +1 -1
  17. package/dist/{agent-CwUYflGG.cjs → agent-um2LJs-0.cjs} +57 -82
  18. package/dist/agent-um2LJs-0.cjs.map +1 -0
  19. package/dist/background-tasks/index.cjs +1 -1
  20. package/dist/background-tasks/index.js +1 -1
  21. package/dist/{background-tasks-AKlv5tIo.js → background-tasks-CM94BIj8.js} +2 -2
  22. package/dist/{background-tasks-AKlv5tIo.js.map → background-tasks-CM94BIj8.js.map} +1 -1
  23. package/dist/{background-tasks-Chpan7PB.cjs → background-tasks-CobPW4Z3.cjs} +2 -2
  24. package/dist/{background-tasks-Chpan7PB.cjs.map → background-tasks-CobPW4Z3.cjs.map} +1 -1
  25. package/dist/browser/index.cjs +1 -1
  26. package/dist/browser/index.js +1 -1
  27. package/dist/channels/index.cjs +2 -2
  28. package/dist/channels/index.js +2 -2
  29. package/dist/{channels-BW52ccH_.cjs → channels-BgbloDjB.cjs} +2 -2
  30. package/dist/{channels-BW52ccH_.cjs.map → channels-BgbloDjB.cjs.map} +1 -1
  31. package/dist/{channels-Da9lEAi1.js → channels-MegO_4KL.js} +2 -2
  32. package/dist/{channels-Da9lEAi1.js.map → channels-MegO_4KL.js.map} +1 -1
  33. package/dist/coding-agent/index.cjs +1 -1
  34. package/dist/coding-agent/index.js +1 -1
  35. package/dist/{create-durable-agent-DmTTvoGi.cjs → create-durable-agent-ChmjQwzE.cjs} +8 -8
  36. package/dist/{create-durable-agent-DmTTvoGi.cjs.map → create-durable-agent-ChmjQwzE.cjs.map} +1 -1
  37. package/dist/{create-durable-agent-Bd4Bm5FV.js → create-durable-agent-DH_dWTMR.js} +8 -8
  38. package/dist/{create-durable-agent-Bd4Bm5FV.js.map → create-durable-agent-DH_dWTMR.js.map} +1 -1
  39. package/dist/datasets/index.cjs +1 -1
  40. package/dist/datasets/index.js +1 -1
  41. package/dist/{dist-C077BlAN.js → dist-BZBxELZo.js} +2 -2
  42. package/dist/{dist-C077BlAN.js.map → dist-BZBxELZo.js.map} +1 -1
  43. package/dist/{dist-CsR_D1uk.cjs → dist-ftJxyNRx.cjs} +2 -2
  44. package/dist/{dist-CsR_D1uk.cjs.map → dist-ftJxyNRx.cjs.map} +1 -1
  45. package/dist/docs/SKILL.md +1 -1
  46. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  47. package/dist/evals/index.cjs +1 -1
  48. package/dist/evals/index.js +1 -1
  49. package/dist/evals/scoreTraces/index.cjs +1 -1
  50. package/dist/evals/scoreTraces/index.js +1 -1
  51. package/dist/harness/index.cjs +1 -1
  52. package/dist/harness/index.js +1 -1
  53. package/dist/index.cjs +1 -1
  54. package/dist/index.js +1 -1
  55. package/dist/llm/index.cjs +5 -5
  56. package/dist/llm/index.js +5 -5
  57. package/dist/{llm-DlVyw1cX.js → llm-DGuYy_Nx.js} +5 -5
  58. package/dist/{llm-DlVyw1cX.js.map → llm-DGuYy_Nx.js.map} +1 -1
  59. package/dist/{llm-Bjt2hZ3f.cjs → llm-DmAhSSgh.cjs} +5 -5
  60. package/dist/{llm-Bjt2hZ3f.cjs.map → llm-DmAhSSgh.cjs.map} +1 -1
  61. package/dist/loop/index.cjs +1 -1
  62. package/dist/loop/index.js +1 -1
  63. package/dist/{manager-CYGpXJfK.js → manager-DDRcONBK.js} +3 -3
  64. package/dist/{manager-CYGpXJfK.js.map → manager-DDRcONBK.js.map} +1 -1
  65. package/dist/{manager-BjrFnt_A.cjs → manager-DqHiikx1.cjs} +3 -3
  66. package/dist/{manager-BjrFnt_A.cjs.map → manager-DqHiikx1.cjs.map} +1 -1
  67. package/dist/mastra/index.cjs +1 -1
  68. package/dist/mastra/index.js +1 -1
  69. package/dist/{mastra-CVLF1dWt.js → mastra-B6CffFOC.js} +9 -9
  70. package/dist/{mastra-CVLF1dWt.js.map → mastra-B6CffFOC.js.map} +1 -1
  71. package/dist/{mastra-Bxx9WPf6.cjs → mastra-BlT9srQJ.cjs} +9 -9
  72. package/dist/{mastra-Bxx9WPf6.cjs.map → mastra-BlT9srQJ.cjs.map} +1 -1
  73. package/dist/memory/index.cjs +1 -1
  74. package/dist/memory/index.js +1 -1
  75. package/dist/{model-CA0WLISt.js → model-DQzxkQqM.js} +2 -2
  76. package/dist/{model-CA0WLISt.js.map → model-DQzxkQqM.js.map} +1 -1
  77. package/dist/{model-DMVq6nAS.cjs → model-Iow-mV9i.cjs} +2 -2
  78. package/dist/{model-DMVq6nAS.cjs.map → model-Iow-mV9i.cjs.map} +1 -1
  79. package/dist/{models-dev-Cbus1Uh2.js → models-dev-BFOUCgyS.js} +2 -2
  80. package/dist/{models-dev-Cbus1Uh2.js.map → models-dev-BFOUCgyS.js.map} +1 -1
  81. package/dist/{models-dev-D_X4VMSu.cjs → models-dev-BUEaCBxL.cjs} +2 -2
  82. package/dist/{models-dev-D_X4VMSu.cjs.map → models-dev-BUEaCBxL.cjs.map} +1 -1
  83. package/dist/{netlify-C-nnPVSj.js → netlify-7eHXUkln.js} +2 -2
  84. package/dist/{netlify-C-nnPVSj.js.map → netlify-7eHXUkln.js.map} +1 -1
  85. package/dist/{netlify-CUuCnmtd.cjs → netlify-Db5icdAJ.cjs} +2 -2
  86. package/dist/{netlify-CUuCnmtd.cjs.map → netlify-Db5icdAJ.cjs.map} +1 -1
  87. package/dist/processor-provider/index.cjs +1 -1
  88. package/dist/processor-provider/index.js +1 -1
  89. package/dist/processors/index.cjs +2 -2
  90. package/dist/processors/index.js +2 -2
  91. package/dist/processors/processors/index.d.ts +1 -1
  92. package/dist/processors/processors/index.d.ts.map +1 -1
  93. package/dist/processors/tool-result-reminder.d.ts +23 -0
  94. package/dist/processors/tool-result-reminder.d.ts.map +1 -1
  95. package/dist/{provider-registry-BFknh6Fu.cjs → provider-registry-DRJihW5_.cjs} +6 -6
  96. package/dist/{provider-registry-BFknh6Fu.cjs.map → provider-registry-DRJihW5_.cjs.map} +1 -1
  97. package/dist/{provider-registry-DIbls44Z.js → provider-registry-DzSSAz1R.js} +6 -6
  98. package/dist/{provider-registry-DIbls44Z.js.map → provider-registry-DzSSAz1R.js.map} +1 -1
  99. package/dist/relevance/index.cjs +2 -2
  100. package/dist/relevance/index.js +2 -2
  101. package/dist/stream/index.cjs +3 -3
  102. package/dist/stream/index.js +3 -3
  103. package/dist/{stream-tlVjYkAO.cjs → stream-D-cHV05r.cjs} +3 -3
  104. package/dist/{stream-tlVjYkAO.cjs.map → stream-D-cHV05r.cjs.map} +1 -1
  105. package/dist/{stream-Cd_isEZJ.js → stream-DJaosaeO.js} +3 -3
  106. package/dist/{stream-Cd_isEZJ.js.map → stream-DJaosaeO.js.map} +1 -1
  107. package/dist/test-utils/llm-mock.cjs +1 -1
  108. package/dist/test-utils/llm-mock.js +1 -1
  109. package/dist/tool-loop-agent/index.cjs +1 -1
  110. package/dist/tool-loop-agent/index.js +1 -1
  111. package/dist/{tool-loop-agent-th9L-ls9.cjs → tool-loop-agent-ByrutV2Q.cjs} +4 -4
  112. package/dist/{tool-loop-agent-th9L-ls9.cjs.map → tool-loop-agent-ByrutV2Q.cjs.map} +1 -1
  113. package/dist/{tool-loop-agent-CcT-TTcT.js → tool-loop-agent-BzHXZDL3.js} +4 -4
  114. package/dist/{tool-loop-agent-CcT-TTcT.js.map → tool-loop-agent-BzHXZDL3.js.map} +1 -1
  115. package/dist/{trip-wire-Cj0cJivR.js → trip-wire-DxpTS3jV.js} +2 -2
  116. package/dist/{trip-wire-Cj0cJivR.js.map → trip-wire-DxpTS3jV.js.map} +1 -1
  117. package/dist/{trip-wire-BNzxirr0.cjs → trip-wire-utCESgMt.cjs} +2 -2
  118. package/dist/{trip-wire-BNzxirr0.cjs.map → trip-wire-utCESgMt.cjs.map} +1 -1
  119. package/dist/{utils-BoQofieM.cjs → utils-CPUQn5dX.cjs} +2 -2
  120. package/dist/{utils-BoQofieM.cjs.map → utils-CPUQn5dX.cjs.map} +1 -1
  121. package/dist/{utils-DUfAZ4gr.js → utils-CrKEOVUo.js} +2 -2
  122. package/dist/{utils-DUfAZ4gr.js.map → utils-CrKEOVUo.js.map} +1 -1
  123. package/dist/utils.cjs +1 -1
  124. package/dist/utils.js +1 -1
  125. package/dist/worker/index.cjs +1 -1
  126. package/dist/worker/index.js +1 -1
  127. package/dist/{worker-DwlyX5l8.js → worker-Ciya6mfo.js} +3 -3
  128. package/dist/{worker-DwlyX5l8.js.map → worker-Ciya6mfo.js.map} +1 -1
  129. package/dist/{worker-CsbZPhWb.cjs → worker-YT_pMttZ.cjs} +3 -3
  130. package/dist/{worker-CsbZPhWb.cjs.map → worker-YT_pMttZ.cjs.map} +1 -1
  131. package/dist/{workflow-BR5D6ij_.cjs → workflow-DcS_0R0Z.cjs} +3 -3
  132. package/dist/{workflow-BR5D6ij_.cjs.map → workflow-DcS_0R0Z.cjs.map} +1 -1
  133. package/dist/{workflow-OjZRiiCG.js → workflow-k6s0ESOR.js} +3 -3
  134. package/dist/{workflow-OjZRiiCG.js.map → workflow-k6s0ESOR.js.map} +1 -1
  135. package/dist/workflows/evented/index.cjs +1 -1
  136. package/dist/workflows/evented/index.js +1 -1
  137. package/dist/workflows/index.cjs +1 -1
  138. package/dist/workflows/index.js +1 -1
  139. package/package.json +12 -12
  140. package/dist/agent-BvRfRKIt.js.map +0 -1
  141. package/dist/agent-CwUYflGG.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-DP3BCW9_.js";
2
2
  import { t as InMemoryServerCache } from "./inmemory-DHuA6Z20.js";
3
3
  import { i as MastraError } from "./error-MjDSls8S.js";
4
- import { c as MastraModelGateway, i as MASTRA_USER_AGENT, l as createOpenAI, o as createAnthropic, p as createOpenAICompatible, t as createGoogleGenerativeAI } from "./dist-C077BlAN.js";
4
+ import { c as MastraModelGateway, i as MASTRA_USER_AGENT, l as createOpenAI, o as createAnthropic, p as createOpenAICompatible, t as createGoogleGenerativeAI } from "./dist-BZBxELZo.js";
5
5
  //#region src/llm/model/gateways/netlify.ts
6
6
  var netlify_exports = /* @__PURE__ */ __exportAll({ NetlifyGateway: () => NetlifyGateway });
7
7
  var NetlifyGateway = class extends MastraModelGateway {
@@ -149,4 +149,4 @@ var NetlifyGateway = class extends MastraModelGateway {
149
149
  //#endregion
150
150
  export { netlify_exports as n, NetlifyGateway as t };
151
151
 
152
- //# sourceMappingURL=netlify-C-nnPVSj.js.map
152
+ //# sourceMappingURL=netlify-7eHXUkln.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"netlify-C-nnPVSj.js","names":[],"sources":["../src/llm/model/gateways/netlify.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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"],"mappings":"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"}
1
+ {"version":3,"file":"netlify-7eHXUkln.js","names":[],"sources":["../src/llm/model/gateways/netlify.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-uwYp4b74.cjs");
2
2
  const require_inmemory = require("./inmemory-CVHnncRp.cjs");
3
3
  const require_error = require("./error-B-e62x-A.cjs");
4
- const require_dist = require("./dist-CsR_D1uk.cjs");
4
+ const require_dist = require("./dist-ftJxyNRx.cjs");
5
5
  //#region src/llm/model/gateways/netlify.ts
6
6
  var netlify_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({ NetlifyGateway: () => NetlifyGateway });
7
7
  var NetlifyGateway = class extends require_dist.MastraModelGateway {
@@ -160,4 +160,4 @@ Object.defineProperty(exports, "netlify_exports", {
160
160
  }
161
161
  });
162
162
 
163
- //# sourceMappingURL=netlify-CUuCnmtd.cjs.map
163
+ //# sourceMappingURL=netlify-Db5icdAJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"netlify-CUuCnmtd.cjs","names":["MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenAICompatible"],"sources":["../src/llm/model/gateways/netlify.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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"],"mappings":"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"}
1
+ {"version":3,"file":"netlify-Db5icdAJ.cjs","names":["MastraModelGateway","InMemoryServerCache","MastraError","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createOpenAICompatible"],"sources":["../src/llm/model/gateways/netlify.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig, GatewayLanguageModel } 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<GatewayLanguageModel> {\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"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_agent = require("../agent-CwUYflGG.cjs");
2
+ const require_agent = require("../agent-um2LJs-0.cjs");
3
3
  let zod_v4 = require("zod/v4");
4
4
  //#region src/processor-provider/types.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { $n as UnicodeNormalizer, Dt as SystemPromptScrubber, Mt as PIIDetector, Nt as PromptInjectionDetector, Ot as TokenLimiterProcessor, Pt as ModerationProcessor, jt as LanguageDetector, kt as BatchPartsProcessor, wt as ToolCallFilter } from "../agent-BvRfRKIt.js";
1
+ import { $n as UnicodeNormalizer, Dt as SystemPromptScrubber, Mt as PIIDetector, Nt as PromptInjectionDetector, Ot as TokenLimiterProcessor, Pt as ModerationProcessor, jt as LanguageDetector, kt as BatchPartsProcessor, wt as ToolCallFilter } from "../agent-0y2cApTZ.js";
2
2
  import { z } from "zod/v4";
3
3
  //#region src/processor-provider/types.ts
4
4
  /**
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trip_wire = require("../trip-wire-BNzxirr0.cjs");
3
- const require_agent = require("../agent-CwUYflGG.cjs");
2
+ const require_trip_wire = require("../trip-wire-utCESgMt.cjs");
3
+ const require_agent = require("../agent-um2LJs-0.cjs");
4
4
  exports.AgentsMDInjector = require_agent.AgentsMDInjector;
5
5
  exports.BaseProcessor = require_agent.BaseProcessor;
6
6
  exports.BatchPartsProcessor = require_agent.BatchPartsProcessor;
@@ -1,3 +1,3 @@
1
- import { E as isProcessorWorkflow, d as ProcessorState, u as ProcessorRunner, y as createProcessorSendSignal } from "../trip-wire-Cj0cJivR.js";
2
- import { $n as UnicodeNormalizer, An as ImagePartSchema, At as StructuredOutputProcessor, B as globalEmbeddingCache, Bn as ProcessorStepInputSchema, Ct as AgentsMDInjector, Dt as SystemPromptScrubber, Et as CostGuardProcessor, Fn as ProcessorMessageContentSchema, Gn as StepStartPartSchema, H as MessageHistory, Hn as ProcessorStepSchema, In as ProcessorMessageSchema, Kn as TextPartSchema, Ln as ProcessorOutputResultPhaseSchema, Mn as MessagePartSchema, Mt as PIIDetector, Nn as ProcessorInputPhaseSchema, Nt as PromptInjectionDetector, Ot as TokenLimiterProcessor, Pn as ProcessorInputStepPhaseSchema, Pt as ModerationProcessor, R as BaseProcessor, Rn as ProcessorOutputStepPhaseSchema, St as ToolSearchProcessor, Tt as RegexFilterProcessor, Un as ReasoningPartSchema, V as WorkingMemory, Vn as ProcessorStepOutputSchema, Wn as SourcePartSchema, _t as ResponseCache, bt as SkillSearchProcessor, ct as StreamErrorRetryProcessor, dt as ProviderHistoryCompat, ft as anthropicToolIdFormat, gt as RESPONSE_CACHE_CONTEXT_KEY, ht as DEFAULT_RESPONSE_CACHE_TTL_SECONDS, jn as MessageContentSchema, jt as LanguageDetector, kn as FilePartSchema, kt as BatchPartsProcessor, lt as isBadRequestError, mt as PrefillErrorHandler, pt as cerebrasStripReasoningContent, qn as ToolInvocationPartSchema, ut as isRetryableOpenAIResponsesStreamError, vt as buildResponseCacheKey, wt as ToolCallFilter, xt as SkillsProcessor, yt as WorkspaceInstructionsProcessor, z as SemanticRecall, zn as ProcessorOutputStreamPhaseSchema } from "../agent-BvRfRKIt.js";
1
+ import { E as isProcessorWorkflow, d as ProcessorState, u as ProcessorRunner, y as createProcessorSendSignal } from "../trip-wire-DxpTS3jV.js";
2
+ import { $n as UnicodeNormalizer, An as ImagePartSchema, At as StructuredOutputProcessor, B as globalEmbeddingCache, Bn as ProcessorStepInputSchema, Ct as AgentsMDInjector, Dt as SystemPromptScrubber, Et as CostGuardProcessor, Fn as ProcessorMessageContentSchema, Gn as StepStartPartSchema, H as MessageHistory, Hn as ProcessorStepSchema, In as ProcessorMessageSchema, Kn as TextPartSchema, Ln as ProcessorOutputResultPhaseSchema, Mn as MessagePartSchema, Mt as PIIDetector, Nn as ProcessorInputPhaseSchema, Nt as PromptInjectionDetector, Ot as TokenLimiterProcessor, Pn as ProcessorInputStepPhaseSchema, Pt as ModerationProcessor, R as BaseProcessor, Rn as ProcessorOutputStepPhaseSchema, St as ToolSearchProcessor, Tt as RegexFilterProcessor, Un as ReasoningPartSchema, V as WorkingMemory, Vn as ProcessorStepOutputSchema, Wn as SourcePartSchema, _t as ResponseCache, bt as SkillSearchProcessor, ct as StreamErrorRetryProcessor, dt as ProviderHistoryCompat, ft as anthropicToolIdFormat, gt as RESPONSE_CACHE_CONTEXT_KEY, ht as DEFAULT_RESPONSE_CACHE_TTL_SECONDS, jn as MessageContentSchema, jt as LanguageDetector, kn as FilePartSchema, kt as BatchPartsProcessor, lt as isBadRequestError, mt as PrefillErrorHandler, pt as cerebrasStripReasoningContent, qn as ToolInvocationPartSchema, ut as isRetryableOpenAIResponsesStreamError, vt as buildResponseCacheKey, wt as ToolCallFilter, xt as SkillsProcessor, yt as WorkspaceInstructionsProcessor, z as SemanticRecall, zn as ProcessorOutputStreamPhaseSchema } from "../agent-0y2cApTZ.js";
3
3
  export { AgentsMDInjector, BaseProcessor, BatchPartsProcessor, CostGuardProcessor, DEFAULT_RESPONSE_CACHE_TTL_SECONDS, FilePartSchema, ImagePartSchema, LanguageDetector, MessageContentSchema, MessageHistory, MessagePartSchema, ModerationProcessor, PIIDetector, PrefillErrorHandler, ProcessorInputPhaseSchema, ProcessorInputStepPhaseSchema, ProcessorMessageContentSchema, ProcessorMessageSchema, ProcessorOutputResultPhaseSchema, ProcessorOutputStepPhaseSchema, ProcessorOutputStreamPhaseSchema, ProcessorRunner, ProcessorState, ProcessorStepInputSchema, ProcessorStepOutputSchema, ProcessorStepSchema, PromptInjectionDetector, ProviderHistoryCompat, RESPONSE_CACHE_CONTEXT_KEY, ReasoningPartSchema, RegexFilterProcessor, ResponseCache, SemanticRecall, SkillSearchProcessor, SkillsProcessor, SourcePartSchema, StepStartPartSchema, StreamErrorRetryProcessor, StructuredOutputProcessor, SystemPromptScrubber, TextPartSchema, TokenLimiterProcessor as TokenLimiter, TokenLimiterProcessor, ToolCallFilter, ToolInvocationPartSchema, ToolSearchProcessor, UnicodeNormalizer, WorkingMemory, WorkspaceInstructionsProcessor, anthropicToolIdFormat, buildResponseCacheKey, cerebrasStripReasoningContent, createProcessorSendSignal, globalEmbeddingCache, isBadRequestError, isProcessorWorkflow, isRetryableOpenAIResponsesStreamError };
@@ -11,7 +11,7 @@ export { SystemPromptScrubber, type SystemPromptScrubberOptions, type SystemProm
11
11
  export { CostGuardProcessor, type CostGuardOptions, type CostGuardUsage, type CostGuardTripwireMetadata, type CostGuardViolationDetail, type CostScope, type CostWindow, } from './cost-guard.js';
12
12
  export { RegexFilterProcessor, type RegexFilterOptions, type RegexRule, type RegexMatch, type RegexPreset, type RegexFilterTripwireMetadata, } from './regex-filter.js';
13
13
  export { ToolCallFilter } from './tool-call-filter.js';
14
- export { AgentsMDInjector, type ToolResultReminderOptions } from '../tool-result-reminder.js';
14
+ export { AgentsMDInjector, type ToolResultReminderOptions, type ReminderFileReader } from '../tool-result-reminder.js';
15
15
  export { ToolSearchProcessor, type ToolSearchFilterArgs, type ToolSearchFilterPhase, type ToolSearchProcessorOptions, } from './tool-search.js';
16
16
  export { SkillsProcessor, type SkillsProcessorOptions } from './skills.js';
17
17
  export { SkillSearchProcessor, type SkillSearchProcessorOptions } from './skill-search.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/processors/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,IAAI,YAAY,EACrC,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,2BAA2B,GACjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,KAAK,qCAAqC,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,EACL,aAAa,EACb,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/processors/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,IAAI,YAAY,EACrC,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,2BAA2B,GACjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEpH,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,KAAK,qCAAqC,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,EACL,aAAa,EACb,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC"}
@@ -7,6 +7,27 @@ export interface ToolResultReminderOptions {
7
7
  isDirectory?: (path: string) => boolean;
8
8
  readFile?: (path: string) => string;
9
9
  getIgnoredInstructionPaths?: (args: ProcessInputStepArgs) => string[];
10
+ /**
11
+ * When provided and returning false for a request, no instruction-file
12
+ * reminders are injected at all. Lets hosts suppress ingestion of
13
+ * instruction files from untrusted checkouts (e.g. a PR branch under
14
+ * review), where AGENTS.md content is attacker-controlled.
15
+ */
16
+ isEnabled?: (args: ProcessInputStepArgs) => boolean;
17
+ /**
18
+ * Per-request override for how instruction files are located and read.
19
+ * When it returns a reader, that reader replaces the instance-level
20
+ * pathExists/isDirectory/readFile for this request — e.g. serving content
21
+ * from a trusted git ref instead of an untrusted working tree. Returning
22
+ * undefined keeps the instance defaults.
23
+ */
24
+ getReader?: (args: ProcessInputStepArgs) => ReminderFileReader | undefined;
25
+ }
26
+ /** Filesystem-shaped read access used to locate and read instruction files. */
27
+ export interface ReminderFileReader {
28
+ pathExists: (path: string) => boolean;
29
+ isDirectory: (path: string) => boolean;
30
+ readFile: (path: string) => string;
10
31
  }
11
32
  /**
12
33
  * Injects a persisted UI-visible reminder when the agent just interacted with
@@ -23,6 +44,8 @@ export declare class AgentsMDInjector implements Processor<'agents-md-injector'>
23
44
  private readonly isDirectory;
24
45
  private readonly readFile;
25
46
  private readonly getIgnoredInstructionPaths?;
47
+ private readonly isEnabled?;
48
+ private readonly getReader?;
26
49
  constructor(options: ToolResultReminderOptions);
27
50
  processInputStep(args: ProcessInputStepArgs): Promise<MessageList | MastraDBMessage[]>;
28
51
  private getReminderText;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-reminder.d.ts","sourceRoot":"","sources":["../../src/processors/tool-result-reminder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AA+B7E,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,MAAM,EAAE,CAAC;CACvE;AAyLD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS,CAAC,oBAAoB,CAAC;IACtE,EAAE,EAAG,oBAAoB,CAAU;IACnC,IAAI,SAAwB;IAC5B,WAAW,SAA+E;IAC1F,cAAc,SAAK;IAEnB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAA2C;gBAE3E,OAAO,EAAE,yBAAyB;IAiBxC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;IAgC5F,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,6BAA6B;IAerC,OAAO,CAAC,+BAA+B;IAyBvC,OAAO,CAAC,kBAAkB;CAwB3B"}
1
+ {"version":3,"file":"tool-result-reminder.d.ts","sourceRoot":"","sources":["../../src/processors/tool-result-reminder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AA+B7E,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,MAAM,EAAE,CAAC;IACtE;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC;IACpD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,kBAAkB,GAAG,SAAS,CAAC;CAC5E;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAyLD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS,CAAC,oBAAoB,CAAC;IACtE,EAAE,EAAG,oBAAoB,CAAU;IACnC,IAAI,SAAwB;IAC5B,WAAW,SAA+E;IAC1F,cAAc,SAAK;IAEnB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAA2C;IACvF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAiE;gBAEhF,OAAO,EAAE,yBAAyB;IAmBxC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;IAwC5F,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,+BAA+B;IAyBvC,OAAO,CAAC,kBAAkB;CAwB3B"}
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-uwYp4b74.cjs");
2
2
  const require_error = require("./error-B-e62x-A.cjs");
3
- const require_dist = require("./dist-CsR_D1uk.cjs");
3
+ const require_dist = require("./dist-ftJxyNRx.cjs");
4
4
  const require_gateway_helpers = require("./gateway-helpers-CdK-tcyA.cjs");
5
- const require_models_dev = require("./models-dev-D_X4VMSu.cjs");
6
- const require_netlify = require("./netlify-CUuCnmtd.cjs");
5
+ const require_models_dev = require("./models-dev-BUEaCBxL.cjs");
6
+ const require_netlify = require("./netlify-Db5icdAJ.cjs");
7
7
  let os = require("os");
8
8
  os = require_rolldown_runtime.__toESM(os, 1);
9
9
  let module$1 = require("module");
@@ -13069,8 +13069,8 @@ var GatewayRegistry = class GatewayRegistry {
13069
13069
  if (this.isRefreshing && !forceRefresh) return;
13070
13070
  this.isRefreshing = true;
13071
13071
  try {
13072
- const { ModelsDevGateway } = await Promise.resolve().then(() => require("./models-dev-D_X4VMSu.cjs")).then((n) => n.models_dev_exports);
13073
- const { NetlifyGateway } = await Promise.resolve().then(() => require("./netlify-CUuCnmtd.cjs")).then((n) => n.netlify_exports);
13072
+ const { ModelsDevGateway } = await Promise.resolve().then(() => require("./models-dev-BUEaCBxL.cjs")).then((n) => n.models_dev_exports);
13073
+ const { NetlifyGateway } = await Promise.resolve().then(() => require("./netlify-Db5icdAJ.cjs")).then((n) => n.netlify_exports);
13074
13074
  const { MastraGateway } = await Promise.resolve().then(() => mastra_exports);
13075
13075
  const { fetchProvidersFromGateways, writeRegistryFiles } = await Promise.resolve().then(() => require("./registry-generator-DZsB-A6S.cjs"));
13076
13076
  const { providers, models, attachmentCapabilities, temperatureCapabilities, structuredOutputCapabilities, failedGateways } = await fetchProvidersFromGateways([...[
@@ -13245,4 +13245,4 @@ Object.defineProperty(exports, "provider_registry_exports", {
13245
13245
  }
13246
13246
  });
13247
13247
 
13248
- //# sourceMappingURL=provider-registry-BFknh6Fu.cjs.map
13248
+ //# sourceMappingURL=provider-registry-DRJihW5_.cjs.map