@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.
Files changed (213) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +521 -172
  3. package/dist/agent/index.cjs +8 -8
  4. package/dist/agent/index.js +1 -1
  5. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  6. package/dist/{chunk-4K2NKQGN.cjs → chunk-2OZQLYLM.cjs} +196 -194
  7. package/dist/chunk-2OZQLYLM.cjs.map +1 -0
  8. package/dist/{chunk-VVR3SFKH.cjs → chunk-2RGBP3A3.cjs} +70 -70
  9. package/dist/{chunk-VVR3SFKH.cjs.map → chunk-2RGBP3A3.cjs.map} +1 -1
  10. package/dist/{chunk-GVHBM6VU.cjs → chunk-4LDFFARO.cjs} +29 -11
  11. package/dist/chunk-4LDFFARO.cjs.map +1 -0
  12. package/dist/{chunk-T5XU5TAV.cjs → chunk-4QLIPOI7.cjs} +82 -82
  13. package/dist/{chunk-T5XU5TAV.cjs.map → chunk-4QLIPOI7.cjs.map} +1 -1
  14. package/dist/{chunk-ZFZ6HQFT.cjs → chunk-5M3CKUAS.cjs} +210 -187
  15. package/dist/chunk-5M3CKUAS.cjs.map +1 -0
  16. package/dist/{chunk-D5VCCQ4L.js → chunk-6DDSP6ZE.js} +5 -5
  17. package/dist/{chunk-D5VCCQ4L.js.map → chunk-6DDSP6ZE.js.map} +1 -1
  18. package/dist/{chunk-5IZ346TV.cjs → chunk-A2FSD2KN.cjs} +7 -7
  19. package/dist/{chunk-5IZ346TV.cjs.map → chunk-A2FSD2KN.cjs.map} +1 -1
  20. package/dist/{chunk-64565EZF.cjs → chunk-ATKRXBCX.cjs} +22 -22
  21. package/dist/{chunk-64565EZF.cjs.map → chunk-ATKRXBCX.cjs.map} +1 -1
  22. package/dist/{chunk-K4NN2KQQ.cjs → chunk-AV4YSAZL.cjs} +6 -2
  23. package/dist/chunk-AV4YSAZL.cjs.map +1 -0
  24. package/dist/{chunk-7USX5P3I.js → chunk-B5LIMU4I.js} +28 -5
  25. package/dist/chunk-B5LIMU4I.js.map +1 -0
  26. package/dist/{chunk-BFRUEBG3.js → chunk-CEWIMGYP.js} +4 -4
  27. package/dist/{chunk-BFRUEBG3.js.map → chunk-CEWIMGYP.js.map} +1 -1
  28. package/dist/{chunk-X36INADV.cjs → chunk-CGDV5YUS.cjs} +131 -48
  29. package/dist/chunk-CGDV5YUS.cjs.map +1 -0
  30. package/dist/{chunk-HDPQ3LEE.js → chunk-DJ2RXLO3.js} +4 -4
  31. package/dist/{chunk-HDPQ3LEE.js.map → chunk-DJ2RXLO3.js.map} +1 -1
  32. package/dist/{chunk-OKKJRRSS.cjs → chunk-E7LJ7F56.cjs} +32 -14
  33. package/dist/chunk-E7LJ7F56.cjs.map +1 -0
  34. package/dist/{chunk-W2QYKEBN.js → chunk-ERAZTMF6.js} +113 -30
  35. package/dist/chunk-ERAZTMF6.js.map +1 -0
  36. package/dist/{chunk-IR4WRS3N.js → chunk-F77BL7Z7.js} +31 -13
  37. package/dist/chunk-F77BL7Z7.js.map +1 -0
  38. package/dist/{chunk-GRMC2OYN.js → chunk-FA4PTEBK.js} +6 -3
  39. package/dist/chunk-FA4PTEBK.js.map +1 -0
  40. package/dist/{chunk-YBVRBNRY.js → chunk-GIBIKVUG.js} +7 -7
  41. package/dist/{chunk-YBVRBNRY.js.map → chunk-GIBIKVUG.js.map} +1 -1
  42. package/dist/{chunk-QVVWKMFM.cjs → chunk-GXXNF6NF.cjs} +25 -25
  43. package/dist/{chunk-QVVWKMFM.cjs.map → chunk-GXXNF6NF.cjs.map} +1 -1
  44. package/dist/{chunk-OYAHOEQP.js → chunk-HJVPOP5S.js} +27 -9
  45. package/dist/chunk-HJVPOP5S.js.map +1 -0
  46. package/dist/{chunk-ABA3KD3X.js → chunk-HRT662B6.js} +3 -3
  47. package/dist/{chunk-ABA3KD3X.js.map → chunk-HRT662B6.js.map} +1 -1
  48. package/dist/chunk-IHVB4C5U.cjs +4 -0
  49. package/dist/{chunk-ROOVGRNA.cjs.map → chunk-IHVB4C5U.cjs.map} +1 -1
  50. package/dist/{chunk-OVWOD5GI.cjs → chunk-IKYWIQB2.cjs} +20 -20
  51. package/dist/{chunk-OVWOD5GI.cjs.map → chunk-IKYWIQB2.cjs.map} +1 -1
  52. package/dist/{chunk-UORUVXKY.js → chunk-JYVH24UY.js} +6 -6
  53. package/dist/{chunk-UORUVXKY.js.map → chunk-JYVH24UY.js.map} +1 -1
  54. package/dist/{chunk-AHFHYQS6.js → chunk-LQHNR4L7.js} +4 -4
  55. package/dist/{chunk-AHFHYQS6.js.map → chunk-LQHNR4L7.js.map} +1 -1
  56. package/dist/{chunk-OXS5X7PW.cjs → chunk-OJQCLQK7.cjs} +13 -13
  57. package/dist/{chunk-OXS5X7PW.cjs.map → chunk-OJQCLQK7.cjs.map} +1 -1
  58. package/dist/{chunk-CX5I6VS4.js → chunk-QE7OKYS3.js} +111 -38
  59. package/dist/chunk-QE7OKYS3.js.map +1 -0
  60. package/dist/{chunk-FB6O7FNK.js → chunk-QOFOOVPM.js} +9 -9
  61. package/dist/{chunk-FB6O7FNK.js.map → chunk-QOFOOVPM.js.map} +1 -1
  62. package/dist/{chunk-SLHDZJ4B.js → chunk-RHQHBU6R.js} +5 -4
  63. package/dist/chunk-RHQHBU6R.js.map +1 -0
  64. package/dist/{chunk-3UM5VCQ5.cjs → chunk-RIUDLIP3.cjs} +3 -3
  65. package/dist/{chunk-3UM5VCQ5.cjs.map → chunk-RIUDLIP3.cjs.map} +1 -1
  66. package/dist/chunk-S43VACTO.js +3 -0
  67. package/dist/{chunk-DMX7MC4N.js.map → chunk-S43VACTO.js.map} +1 -1
  68. package/dist/{chunk-PYNUWPGW.cjs → chunk-SMWXSQXP.cjs} +19 -19
  69. package/dist/{chunk-PYNUWPGW.cjs.map → chunk-SMWXSQXP.cjs.map} +1 -1
  70. package/dist/{chunk-32NEFSTI.js → chunk-T3TFXXGP.js} +12 -10
  71. package/dist/chunk-T3TFXXGP.js.map +1 -0
  72. package/dist/{chunk-6LHF5UDX.cjs → chunk-ULPWI6DN.cjs} +9 -9
  73. package/dist/{chunk-6LHF5UDX.cjs.map → chunk-ULPWI6DN.cjs.map} +1 -1
  74. package/dist/{chunk-QXPUTX3W.cjs → chunk-UZ426KMJ.cjs} +33 -32
  75. package/dist/chunk-UZ426KMJ.cjs.map +1 -0
  76. package/dist/{chunk-B6D4D2CY.cjs → chunk-VYVPUH6H.cjs} +112 -37
  77. package/dist/chunk-VYVPUH6H.cjs.map +1 -0
  78. package/dist/{chunk-MP2VGF73.js → chunk-WINCOFML.js} +3 -3
  79. package/dist/{chunk-MP2VGF73.js.map → chunk-WINCOFML.js.map} +1 -1
  80. package/dist/{chunk-ZFH5KWHO.js → chunk-Z5FE6LBA.js} +3 -3
  81. package/dist/{chunk-ZFH5KWHO.js.map → chunk-Z5FE6LBA.js.map} +1 -1
  82. package/dist/datasets/dataset.d.ts +1 -0
  83. package/dist/datasets/dataset.d.ts.map +1 -1
  84. package/dist/datasets/experiment/index.d.ts.map +1 -1
  85. package/dist/datasets/index.cjs +17 -17
  86. package/dist/datasets/index.js +2 -2
  87. package/dist/datasets/manager.d.ts +1 -0
  88. package/dist/datasets/manager.d.ts.map +1 -1
  89. package/dist/docs/SKILL.md +1 -1
  90. package/dist/docs/assets/SOURCE_MAP.json +534 -521
  91. package/dist/docs/references/reference-configuration.md +24 -0
  92. package/dist/docs/references/reference-core-mastra-model-gateway.md +2 -0
  93. package/dist/evals/index.cjs +23 -23
  94. package/dist/evals/index.js +3 -3
  95. package/dist/evals/scoreTraces/index.cjs +7 -7
  96. package/dist/evals/scoreTraces/index.js +3 -3
  97. package/dist/harness/index.cjs +17 -17
  98. package/dist/harness/index.js +7 -7
  99. package/dist/index.cjs +2 -2
  100. package/dist/index.js +1 -1
  101. package/dist/integration/index.cjs +2 -2
  102. package/dist/integration/index.js +1 -1
  103. package/dist/llm/index.cjs +16 -16
  104. package/dist/llm/index.js +5 -5
  105. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  106. package/dist/llm/model/provider-types.generated.d.ts +11 -2
  107. package/dist/loop/index.cjs +14 -14
  108. package/dist/loop/index.js +1 -1
  109. package/dist/mastra/index.cjs +2 -2
  110. package/dist/mastra/index.js +1 -1
  111. package/dist/memory/index.cjs +14 -14
  112. package/dist/memory/index.js +1 -1
  113. package/dist/models-dev-JGKQCSEN.js +3 -0
  114. package/dist/{models-dev-VDZIOMAC.js.map → models-dev-JGKQCSEN.js.map} +1 -1
  115. package/dist/models-dev-THY3NOPF.cjs +12 -0
  116. package/dist/{models-dev-MIC2CW43.cjs.map → models-dev-THY3NOPF.cjs.map} +1 -1
  117. package/dist/netlify-6TILQFDV.js +3 -0
  118. package/dist/{netlify-2CGMKEKT.js.map → netlify-6TILQFDV.js.map} +1 -1
  119. package/dist/netlify-NL6O2R7M.cjs +12 -0
  120. package/dist/{netlify-KZ4HQR5N.cjs.map → netlify-NL6O2R7M.cjs.map} +1 -1
  121. package/dist/observability/index.cjs +18 -18
  122. package/dist/observability/index.js +1 -1
  123. package/dist/observability/no-op.d.ts +14 -1
  124. package/dist/observability/no-op.d.ts.map +1 -1
  125. package/dist/observability/types/core.d.ts +35 -4
  126. package/dist/observability/types/core.d.ts.map +1 -1
  127. package/dist/observability/types/feedback.d.ts +42 -11
  128. package/dist/observability/types/feedback.d.ts.map +1 -1
  129. package/dist/observability/types/logging.d.ts +6 -9
  130. package/dist/observability/types/logging.d.ts.map +1 -1
  131. package/dist/observability/types/metrics.d.ts +6 -4
  132. package/dist/observability/types/metrics.d.ts.map +1 -1
  133. package/dist/observability/types/scores.d.ts +25 -10
  134. package/dist/observability/types/scores.d.ts.map +1 -1
  135. package/dist/observability/types/tracing.d.ts +12 -5
  136. package/dist/observability/types/tracing.d.ts.map +1 -1
  137. package/dist/processor-provider/index.cjs +10 -10
  138. package/dist/processor-provider/index.js +1 -1
  139. package/dist/processors/index.cjs +44 -44
  140. package/dist/processors/index.js +1 -1
  141. package/dist/processors/runner.d.ts.map +1 -1
  142. package/dist/provider-registry-CRD5YYZY.js +3 -0
  143. package/dist/{provider-registry-QRWUBN5N.js.map → provider-registry-CRD5YYZY.js.map} +1 -1
  144. package/dist/provider-registry-KXOHTVQF.cjs +40 -0
  145. package/dist/{provider-registry-HGWTTWCL.cjs.map → provider-registry-KXOHTVQF.cjs.map} +1 -1
  146. package/dist/provider-registry.json +27 -9
  147. package/dist/relevance/index.cjs +3 -3
  148. package/dist/relevance/index.js +1 -1
  149. package/dist/server/types.d.ts +16 -0
  150. package/dist/server/types.d.ts.map +1 -1
  151. package/dist/storage/constants.cjs +56 -56
  152. package/dist/storage/constants.d.ts.map +1 -1
  153. package/dist/storage/constants.js +1 -1
  154. package/dist/storage/domains/datasets/inmemory.d.ts.map +1 -1
  155. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  156. package/dist/storage/domains/observability/record-builders.d.ts.map +1 -1
  157. package/dist/storage/domains/observability/tracing.d.ts +8 -8
  158. package/dist/storage/domains/shared.d.ts +1 -1
  159. package/dist/storage/domains/shared.d.ts.map +1 -1
  160. package/dist/storage/index.cjs +276 -268
  161. package/dist/storage/index.js +3 -3
  162. package/dist/storage/types.d.ts +3 -0
  163. package/dist/storage/types.d.ts.map +1 -1
  164. package/dist/stream/index.cjs +8 -8
  165. package/dist/stream/index.js +1 -1
  166. package/dist/test-utils/llm-mock.cjs +4 -4
  167. package/dist/test-utils/llm-mock.js +1 -1
  168. package/dist/tool-loop-agent/index.cjs +4 -4
  169. package/dist/tool-loop-agent/index.js +1 -1
  170. package/dist/tools/index.cjs +11 -7
  171. package/dist/tools/index.d.ts +1 -1
  172. package/dist/tools/index.d.ts.map +1 -1
  173. package/dist/tools/index.js +1 -1
  174. package/dist/tools/is-vercel-tool.cjs +2 -2
  175. package/dist/tools/is-vercel-tool.js +1 -1
  176. package/dist/tools/validation.d.ts +1 -0
  177. package/dist/tools/validation.d.ts.map +1 -1
  178. package/dist/utils.cjs +23 -23
  179. package/dist/utils.js +1 -1
  180. package/dist/vector/index.cjs +7 -7
  181. package/dist/vector/index.js +1 -1
  182. package/dist/workflows/evented/index.cjs +10 -10
  183. package/dist/workflows/evented/index.js +1 -1
  184. package/dist/workflows/index.cjs +24 -24
  185. package/dist/workflows/index.js +1 -1
  186. package/dist/workspace/index.cjs +68 -68
  187. package/dist/workspace/index.js +1 -1
  188. package/package.json +3 -3
  189. package/src/llm/model/provider-types.generated.d.ts +11 -2
  190. package/dist/chunk-32NEFSTI.js.map +0 -1
  191. package/dist/chunk-4K2NKQGN.cjs.map +0 -1
  192. package/dist/chunk-7USX5P3I.js.map +0 -1
  193. package/dist/chunk-B6D4D2CY.cjs.map +0 -1
  194. package/dist/chunk-CX5I6VS4.js.map +0 -1
  195. package/dist/chunk-DMX7MC4N.js +0 -3
  196. package/dist/chunk-GRMC2OYN.js.map +0 -1
  197. package/dist/chunk-GVHBM6VU.cjs.map +0 -1
  198. package/dist/chunk-IR4WRS3N.js.map +0 -1
  199. package/dist/chunk-K4NN2KQQ.cjs.map +0 -1
  200. package/dist/chunk-OKKJRRSS.cjs.map +0 -1
  201. package/dist/chunk-OYAHOEQP.js.map +0 -1
  202. package/dist/chunk-QXPUTX3W.cjs.map +0 -1
  203. package/dist/chunk-ROOVGRNA.cjs +0 -4
  204. package/dist/chunk-SLHDZJ4B.js.map +0 -1
  205. package/dist/chunk-W2QYKEBN.js.map +0 -1
  206. package/dist/chunk-X36INADV.cjs.map +0 -1
  207. package/dist/chunk-ZFZ6HQFT.cjs.map +0 -1
  208. package/dist/models-dev-MIC2CW43.cjs +0 -12
  209. package/dist/models-dev-VDZIOMAC.js +0 -3
  210. package/dist/netlify-2CGMKEKT.js +0 -3
  211. package/dist/netlify-KZ4HQR5N.cjs +0 -12
  212. package/dist/provider-registry-HGWTTWCL.cjs +0 -40
  213. package/dist/provider-registry-QRWUBN5N.js +0 -3
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunk3UM5VCQ5_cjs = require('./chunk-3UM5VCQ5.cjs');
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 chunk3UM5VCQ5_cjs.MastraModelGateway {
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": chunk3UM5VCQ5_cjs.MASTRA_USER_AGENT, ...headers };
131
+ const mastraHeaders = { "User-Agent": chunkRIUDLIP3_cjs.MASTRA_USER_AGENT, ...headers };
132
132
  switch (providerId) {
133
133
  case "openai":
134
- return chunk3UM5VCQ5_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
134
+ return chunkRIUDLIP3_cjs.createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);
135
135
  case "gemini":
136
- return chunk3UM5VCQ5_cjs.createGoogleGenerativeAI({
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 chunk3UM5VCQ5_cjs.createAnthropic({
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 chunk3UM5VCQ5_cjs.createOpenAICompatible({
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-6LHF5UDX.cjs.map
167
- //# sourceMappingURL=chunk-6LHF5UDX.cjs.map
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":";;;;;;;AAqCO,IAAM,cAAA,GAAN,cAA6BA,oCAAA,CAAmB;AAAA,EAC5C,EAAA,GAAK,SAAA;AAAA,EACL,IAAA,GAAO,oBAAA;AAAA,EACR,UAAA,GAAa,IAAIC,qCAAA,EAAoB;AAAA,EAE7C,MAAM,cAAA,GAA0D;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,qDAAqD,CAAA;AAClF,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,QAAA,CAAS,UAAU,CAAA,CAAE,CAAA;AAAA,IACxE;AACA,IAAA,MAAM,IAAA,GAAQ,MAAM,QAAA,CAAS,IAAA,EAAK;AAClC,IAAA,MAAM,MAAA,GAAyB;AAAA,MAC7B,YAAA,EAAc,CAAC,eAAA,EAAiB,iBAAiB,CAAA;AAAA,MACjD,YAAA,EAAc,eAAA;AAAA,MACd,IAAA,EAAM,CAAA,OAAA,CAAA;AAAA,MACN,OAAA,EAAS,CAAA,OAAA,CAAA;AAAA,MACT,QAAQ,EAAC;AAAA,MACT,MAAA,EAAQ;AAAA,KACV;AAEA,IAAA,KAAA,MAAW,CAAC,YAAY,QAAQ,CAAA,IAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,EAAG;AACnE,MAAA,KAAA,MAAW,KAAA,IAAS,SAAS,MAAA,EAAQ;AACnC,QAAA,MAAA,CAAO,OAAO,IAAA,CAAK,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,MAC7C;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,SAAS,MAAA,EAAO;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAA,CAAS,QAAA,EAAkB,OAAA,EAA+C;AAE9E,IAAA,MAAM,SAAS,OAAA,GAAU,iBAAiB,CAAA,IAAK,OAAA,CAAQ,IAAI,iBAAiB,CAAA;AAC5E,IAAA,MAAM,eAAe,OAAA,GAAU,eAAe,CAAA,IAAK,OAAA,CAAQ,IAAI,eAAe,CAAA;AAE9E,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAIC,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,0BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,kEAAkE,QAAQ,CAAA;AAAA,OACjF,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIA,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,4BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,oEAAoE,QAAQ,CAAA;AAAA,OACnF,CAAA;AAAA,IACH;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,eAAA,CAAgB,QAAQ,YAAY,CAAA;AACjE,MAAA,OAAO,SAAA,CAAU,GAAA,CAAI,QAAA,CAAS,CAAA,CAAA,CAAG,IAAI,SAAA,CAAU,GAAA,CAAI,SAAA,CAAU,CAAA,EAAG,SAAA,CAAU,GAAA,CAAI,MAAA,GAAS,CAAC,IAAI,SAAA,CAAU,GAAA;AAAA,IACxG,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAIA,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,6BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,CAAA,iDAAA,EAAoD,QAAQ,CAAA,EAAA,EAAK,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,OAC9H,CAAA;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,eAAA,CAAgB,MAAA,EAAgB,YAAA,EAA0C;AACtF,IAAA,MAAM,QAAA,GAAW,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AAGxD,IAAA,MAAM,MAAA,GAAU,MAAM,IAAA,CAAK,UAAA,CAAW,IAAI,QAAQ,CAAA;AAClD,IAAA,IAAI,UAAU,MAAA,CAAO,SAAA,GAAY,KAAK,GAAA,EAAI,GAAI,MAAO,EAAA,EAAI;AAEvD,MAAA,OAAO,EAAE,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,GAAA,EAAK,OAAO,GAAA,EAAI;AAAA,IAChD;AAGA,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,qCAAA,EAAwC,MAAM,CAAA,iBAAA,CAAA,EAAqB;AAAA,MAC9F,MAAA,EAAQ,KAAA;AAAA,MACR,OAAA,EAAS;AAAA,QACP,aAAA,EAAe,UAAU,YAAY,CAAA;AAAA;AACvC,KACD,CAAA;AAED,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,CAAS,IAAA,EAAK;AAClC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wCAAA,EAA2C,SAAS,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,IACvF;AAEA,IAAA,MAAM,aAAA,GAAiB,MAAM,QAAA,CAAS,IAAA,EAAK;AAG3C,IAAA,MAAM,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,QAAA,EAAU;AAAA,MAClC,OAAO,aAAA,CAAc,KAAA;AAAA,MACrB,KAAK,aAAA,CAAc,GAAA;AAAA,MACnB,WAAW,aAAA,CAAc;AAAA,KAC1B,CAAA;AAED,IAAA,OAAO,EAAE,KAAA,EAAO,aAAA,CAAc,KAAA,EAAO,GAAA,EAAK,cAAc,GAAA,EAAI;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,OAAA,EAAkC;AAChD,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,GAAA,CAAI,iBAAiB,CAAA;AAC5C,IAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,GAAA,CAAI,eAAe,CAAA;AAEhD,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAIA,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,0BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,kEAAkE,OAAO,CAAA;AAAA,OAChF,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIA,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,4BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,oEAAoE,OAAO,CAAA;AAAA,OAClF,CAAA;AAAA,IACH;AAEA,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,MAAM,IAAA,CAAK,eAAA,CAAgB,MAAA,EAAQ,YAAY,CAAA,EAAG,KAAA;AAAA,IAC5D,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,IAAIA,6BAAA,CAAY;AAAA,QACpB,EAAA,EAAI,6BAAA;AAAA,QACJ,MAAA,EAAQ,KAAA;AAAA,QACR,QAAA,EAAU,SAAA;AAAA,QACV,IAAA,EAAM,CAAA,iDAAA,EAAoD,OAAO,CAAA,EAAA,EAAK,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,OAC7H,CAAA;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,oBAAA,CAAqB;AAAA,IACzB,OAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF,EAK6B;AAC3B,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,QAAA,CAAS,GAAG,UAAU,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAA;AAE9D,IAAA,MAAM,aAAA,GAAgB,EAAE,YAAA,EAAcC,mCAAA,EAAmB,GAAG,OAAA,EAAQ;AAEpE,IAAA,QAAQ,UAAA;AAAY,MAClB,KAAK,QAAA;AACH,QAAA,OAAOC,8BAAA,CAAa,EAAE,MAAA,EAAQ,OAAA,EAAS,SAAS,aAAA,EAAe,CAAA,CAAE,SAAA,CAAU,OAAO,CAAA;AAAA,MACpF,KAAK,QAAA;AACH,QAAA,OAAOC,0CAAA,CAAyB;AAAA,UAC9B,OAAA,EAAS,GAAG,OAAO,CAAA,QAAA,CAAA;AAAA,UACnB,MAAA;AAAA,UACA,OAAA,EAAS;AAAA,YACP,YAAA,EAAc,mBAAA;AAAA,YACd,GAAG;AAAA;AACL,SACD,CAAA,CAAE,IAAA,CAAK,OAAO,CAAA;AAAA,MACjB,KAAK,WAAA;AACH,QAAA,OAAOC,iCAAA,CAAgB;AAAA,UACrB,MAAA;AAAA,UACA,OAAA,EAAS,GAAG,OAAO,CAAA,IAAA,CAAA;AAAA,UACnB,OAAA,EAAS;AAAA,YACP,mBAAA,EAAqB,YAAA;AAAA,YACrB,GAAG;AAAA;AACL,SACD,EAAE,OAAO,CAAA;AAAA,MACZ;AACE,QAAA,OAAOC,wCAAA,CAAuB;AAAA,UAC5B,IAAA,EAAM,UAAA;AAAA,UACN,MAAA;AAAA,UACA,OAAA;AAAA,UACA,OAAA,EAAS,aAAA;AAAA,UACT,yBAAA,EAA2B;AAAA,SAC5B,CAAA,CAAE,SAAA,CAAU,OAAO,CAAA;AAAA;AACxB,EACF;AACF","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 chunkB6D4D2CY_cjs = require('./chunk-B6D4D2CY.cjs');
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(chunkB6D4D2CY_cjs.SpanType)]);
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
- ...chunkB6D4D2CY_cjs.dbTimestamps
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: chunkB6D4D2CY_cjs.paginationInfoSchema,
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(chunkB6D4D2CY_cjs.SpanType).describe("Span type (e.g., WORKFLOW_RUN, AGENT_RUN, TOOL_CALL, etc.)");
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
- ...chunkB6D4D2CY_cjs.contextFields,
338
- metadata: chunkB6D4D2CY_cjs.metadataField.nullish(),
339
- tags: chunkB6D4D2CY_cjs.tagsField.nullish()
337
+ ...chunkVYVPUH6H_cjs.spanContextFields,
338
+ metadata: chunkVYVPUH6H_cjs.metadataField.nullish(),
339
+ tags: chunkVYVPUH6H_cjs.tagsField.nullish()
340
340
  };
341
341
  var spanIds = {
342
- traceId: chunkB6D4D2CY_cjs.traceIdField,
343
- spanId: chunkB6D4D2CY_cjs.spanIdField
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(chunkB6D4D2CY_cjs.dbTimestamps);
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
- ...chunkB6D4D2CY_cjs.dbTimestamps
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: chunkB6D4D2CY_cjs.traceIdField.min(1),
399
- spanId: chunkB6D4D2CY_cjs.spanIdField.min(1)
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: chunkB6D4D2CY_cjs.traceIdField.min(1)
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: chunkB6D4D2CY_cjs.traceIdField.min(1)
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: chunkB6D4D2CY_cjs.traceIdField,
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: chunkB6D4D2CY_cjs.dateRangeSchema.optional().describe("Filter by span start time range"),
420
- endedAt: chunkB6D4D2CY_cjs.dateRangeSchema.optional().describe("Filter by span end time range"),
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: chunkB6D4D2CY_cjs.sortDirectionSchema.default("DESC").describe("Sort 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: chunkB6D4D2CY_cjs.paginationArgsSchema.default({ page: 0, perPage: 10 }).describe("Pagination settings"),
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: chunkB6D4D2CY_cjs.paginationInfoSchema,
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: chunkB6D4D2CY_cjs.spanIdField,
446
- traceId: chunkB6D4D2CY_cjs.traceIdField,
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: chunkB6D4D2CY_cjs.traceIdField,
453
- spanId: chunkB6D4D2CY_cjs.spanIdField,
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(chunkB6D4D2CY_cjs.traceIdField)
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: chunkB6D4D2CY_cjs.paginationInfoSchema,
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: chunkB6D4D2CY_cjs.traceIdField,
470
- spanId: chunkB6D4D2CY_cjs.spanIdField.optional()
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-QXPUTX3W.cjs.map
1195
- //# sourceMappingURL=chunk-QXPUTX3W.cjs.map
1195
+ //# sourceMappingURL=chunk-UZ426KMJ.cjs.map
1196
+ //# sourceMappingURL=chunk-UZ426KMJ.cjs.map