@mastra/core 0.18.1-alpha.0 → 0.19.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 (281) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/dist/agent/agent.d.ts +19 -9
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +11 -11
  5. package/dist/agent/index.d.ts +1 -1
  6. package/dist/agent/index.d.ts.map +1 -1
  7. package/dist/agent/index.js +2 -2
  8. package/dist/agent/input-processor/index.cjs +6 -6
  9. package/dist/agent/input-processor/index.js +1 -1
  10. package/dist/agent/types.d.ts +13 -8
  11. package/dist/agent/types.d.ts.map +1 -1
  12. package/dist/ai-tracing/exporters/default.d.ts +2 -2
  13. package/dist/ai-tracing/exporters/default.d.ts.map +1 -1
  14. package/dist/ai-tracing/index.cjs +32 -32
  15. package/dist/ai-tracing/index.js +1 -1
  16. package/dist/ai-tracing/types.d.ts +2 -2
  17. package/dist/ai-tracing/types.d.ts.map +1 -1
  18. package/dist/{chunk-ITD7IHN5.js → chunk-2DGWSOVQ.js} +23 -5
  19. package/dist/chunk-2DGWSOVQ.js.map +1 -0
  20. package/dist/{chunk-4PK4GBYZ.cjs → chunk-2GHLV754.cjs} +5 -4
  21. package/dist/chunk-2GHLV754.cjs.map +1 -0
  22. package/dist/{chunk-LL2X7QT7.js → chunk-3WFH6YRI.js} +4 -4
  23. package/dist/{chunk-LL2X7QT7.js.map → chunk-3WFH6YRI.js.map} +1 -1
  24. package/dist/chunk-45CV4JYJ.cjs +4 -0
  25. package/dist/{chunk-VBPPPQO3.cjs.map → chunk-45CV4JYJ.cjs.map} +1 -1
  26. package/dist/{chunk-SEZBEL3U.js → chunk-4BEHJSL6.js} +4 -4
  27. package/dist/{chunk-SEZBEL3U.js.map → chunk-4BEHJSL6.js.map} +1 -1
  28. package/dist/chunk-4LSFAAZW.js +3 -0
  29. package/dist/{chunk-CE73R5W7.js.map → chunk-4LSFAAZW.js.map} +1 -1
  30. package/dist/{chunk-XUAWHRUO.cjs → chunk-4R2TBRS7.cjs} +37 -112
  31. package/dist/chunk-4R2TBRS7.cjs.map +1 -0
  32. package/dist/{chunk-ITBUHG4U.cjs → chunk-4VNAMG7K.cjs} +6 -6
  33. package/dist/{chunk-ITBUHG4U.cjs.map → chunk-4VNAMG7K.cjs.map} +1 -1
  34. package/dist/{chunk-B4REUTZB.js → chunk-5BQOHHCI.js} +5 -5
  35. package/dist/{chunk-B4REUTZB.js.map → chunk-5BQOHHCI.js.map} +1 -1
  36. package/dist/{chunk-FXLZYRV7.js → chunk-5HCVPQTD.js} +3 -3
  37. package/dist/{chunk-FXLZYRV7.js.map → chunk-5HCVPQTD.js.map} +1 -1
  38. package/dist/chunk-5M6ZTQJN.js +1374 -0
  39. package/dist/chunk-5M6ZTQJN.js.map +1 -0
  40. package/dist/{chunk-SW7WPHZ2.cjs → chunk-7E4ESNZS.cjs} +5 -5
  41. package/dist/{chunk-SW7WPHZ2.cjs.map → chunk-7E4ESNZS.cjs.map} +1 -1
  42. package/dist/{chunk-NTS6B2I2.cjs → chunk-A4RAEU6X.cjs} +2 -2
  43. package/dist/{chunk-NTS6B2I2.cjs.map → chunk-A4RAEU6X.cjs.map} +1 -1
  44. package/dist/{chunk-QUB6MWXZ.cjs → chunk-BCWRUNMS.cjs} +38 -37
  45. package/dist/chunk-BCWRUNMS.cjs.map +1 -0
  46. package/dist/{chunk-245ANI3P.js → chunk-BUY5X7DT.js} +4 -4
  47. package/dist/{chunk-245ANI3P.js.map → chunk-BUY5X7DT.js.map} +1 -1
  48. package/dist/{chunk-6ZVNL435.js → chunk-COC64XPP.js} +9 -8
  49. package/dist/chunk-COC64XPP.js.map +1 -0
  50. package/dist/{chunk-6X4FZVGT.cjs → chunk-CQ73JM2N.cjs} +10 -10
  51. package/dist/{chunk-6X4FZVGT.cjs.map → chunk-CQ73JM2N.cjs.map} +1 -1
  52. package/dist/{chunk-7UEBC5KM.cjs → chunk-DRVSEV5Y.cjs} +25 -65
  53. package/dist/chunk-DRVSEV5Y.cjs.map +1 -0
  54. package/dist/{chunk-2TQHRYRK.cjs → chunk-EPMJYNEK.cjs} +4 -4
  55. package/dist/{chunk-2TQHRYRK.cjs.map → chunk-EPMJYNEK.cjs.map} +1 -1
  56. package/dist/{chunk-TKFLL33F.cjs → chunk-F6EJEELE.cjs} +9 -9
  57. package/dist/{chunk-TKFLL33F.cjs.map → chunk-F6EJEELE.cjs.map} +1 -1
  58. package/dist/{chunk-4DNSY645.js → chunk-FV3SA5TI.js} +3 -3
  59. package/dist/{chunk-4DNSY645.js.map → chunk-FV3SA5TI.js.map} +1 -1
  60. package/dist/{chunk-EJ2FU45N.js → chunk-FV4QVXO4.js} +2 -2
  61. package/dist/{chunk-EJ2FU45N.js.map → chunk-FV4QVXO4.js.map} +1 -1
  62. package/dist/{chunk-CKZK2EPZ.cjs → chunk-HNBU4PI7.cjs} +4 -4
  63. package/dist/{chunk-CKZK2EPZ.cjs.map → chunk-HNBU4PI7.cjs.map} +1 -1
  64. package/dist/{chunk-O6PQYYT6.cjs → chunk-HQPFM22N.cjs} +63 -45
  65. package/dist/chunk-HQPFM22N.cjs.map +1 -0
  66. package/dist/{chunk-36DRWGP4.js → chunk-IAXAPVOP.js} +4 -4
  67. package/dist/{chunk-36DRWGP4.js.map → chunk-IAXAPVOP.js.map} +1 -1
  68. package/dist/{chunk-5ZMC3NEO.js → chunk-JKLLXBOY.js} +46 -39
  69. package/dist/chunk-JKLLXBOY.js.map +1 -0
  70. package/dist/{chunk-WVRSMHE5.cjs → chunk-K4AYIXVH.cjs} +4 -4
  71. package/dist/{chunk-WVRSMHE5.cjs.map → chunk-K4AYIXVH.cjs.map} +1 -1
  72. package/dist/{chunk-SALFMUAY.cjs → chunk-LZBVDMVQ.cjs} +19 -19
  73. package/dist/{chunk-SALFMUAY.cjs.map → chunk-LZBVDMVQ.cjs.map} +1 -1
  74. package/dist/{chunk-RPFJBB5X.js → chunk-N4PK4MOG.js} +4 -4
  75. package/dist/{chunk-RPFJBB5X.js.map → chunk-N4PK4MOG.js.map} +1 -1
  76. package/dist/{chunk-QBTRGHUF.cjs → chunk-NHJVMZIL.cjs} +19 -19
  77. package/dist/{chunk-QBTRGHUF.cjs.map → chunk-NHJVMZIL.cjs.map} +1 -1
  78. package/dist/{chunk-BJZWMVNW.js → chunk-OBIF7QD5.js} +3 -3
  79. package/dist/{chunk-BJZWMVNW.js.map → chunk-OBIF7QD5.js.map} +1 -1
  80. package/dist/{chunk-VZLNVGYM.cjs → chunk-PG6ZNDSR.cjs} +21 -21
  81. package/dist/{chunk-VZLNVGYM.cjs.map → chunk-PG6ZNDSR.cjs.map} +1 -1
  82. package/dist/{chunk-XWJWU5OM.js → chunk-PJ6HF3KW.js} +16 -56
  83. package/dist/chunk-PJ6HF3KW.js.map +1 -0
  84. package/dist/{chunk-NG2XDPDY.js → chunk-RAXBZZKS.js} +4 -3
  85. package/dist/chunk-RAXBZZKS.js.map +1 -0
  86. package/dist/chunk-RFGQ3EQV.js +3 -0
  87. package/dist/chunk-RFGQ3EQV.js.map +1 -0
  88. package/dist/{chunk-73S2WYSD.cjs → chunk-RNIY63FP.cjs} +85 -78
  89. package/dist/chunk-RNIY63FP.cjs.map +1 -0
  90. package/dist/{chunk-ROU7YJLG.js → chunk-RYFQKXXS.js} +3 -3
  91. package/dist/{chunk-ROU7YJLG.js.map → chunk-RYFQKXXS.js.map} +1 -1
  92. package/dist/{chunk-C73WLCY3.cjs → chunk-S7UXT3V4.cjs} +21 -3
  93. package/dist/chunk-S7UXT3V4.cjs.map +1 -0
  94. package/dist/{chunk-R5GESRGB.js → chunk-SJMKDSRF.js} +37 -112
  95. package/dist/chunk-SJMKDSRF.js.map +1 -0
  96. package/dist/{chunk-YWXSGDDO.cjs → chunk-SQQMX4VC.cjs} +6 -6
  97. package/dist/{chunk-YWXSGDDO.cjs.map → chunk-SQQMX4VC.cjs.map} +1 -1
  98. package/dist/chunk-TCHOIK53.cjs +4 -0
  99. package/dist/chunk-TCHOIK53.cjs.map +1 -0
  100. package/dist/chunk-TIBULEK6.cjs +1379 -0
  101. package/dist/chunk-TIBULEK6.cjs.map +1 -0
  102. package/dist/{chunk-WECJNCGT.cjs → chunk-UTEH2LCJ.cjs} +19 -19
  103. package/dist/{chunk-WECJNCGT.cjs.map → chunk-UTEH2LCJ.cjs.map} +1 -1
  104. package/dist/{chunk-VGU5ZYYG.js → chunk-VWO3JJXC.js} +4 -4
  105. package/dist/{chunk-VGU5ZYYG.js.map → chunk-VWO3JJXC.js.map} +1 -1
  106. package/dist/{chunk-MCOVMKIS.js → chunk-WHFNGECY.js} +21 -4
  107. package/dist/chunk-WHFNGECY.js.map +1 -0
  108. package/dist/{chunk-NTXNE4YR.js → chunk-XG3SFWOH.js} +3 -3
  109. package/dist/{chunk-NTXNE4YR.js.map → chunk-XG3SFWOH.js.map} +1 -1
  110. package/dist/error/index.cjs +5 -5
  111. package/dist/error/index.d.ts.map +1 -1
  112. package/dist/error/index.js +1 -1
  113. package/dist/error/utils.d.ts +8 -0
  114. package/dist/error/utils.d.ts.map +1 -0
  115. package/dist/eval/index.cjs +3 -3
  116. package/dist/eval/index.js +1 -1
  117. package/dist/index.cjs +84 -67
  118. package/dist/index.cjs.map +1 -1
  119. package/dist/index.js +18 -17
  120. package/dist/index.js.map +1 -1
  121. package/dist/integration/index.cjs +3 -3
  122. package/dist/integration/index.js +1 -1
  123. package/dist/llm/index.cjs +20 -0
  124. package/dist/llm/index.d.ts +3 -1
  125. package/dist/llm/index.d.ts.map +1 -1
  126. package/dist/llm/index.js +1 -1
  127. package/dist/llm/model/gateways/base.d.ts +42 -0
  128. package/dist/llm/model/gateways/base.d.ts.map +1 -0
  129. package/dist/llm/model/gateways/index.d.ts +3 -0
  130. package/dist/llm/model/gateways/index.d.ts.map +1 -0
  131. package/dist/llm/model/gateways/models-dev.d.ts +11 -0
  132. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -0
  133. package/dist/llm/model/index.d.ts +2 -0
  134. package/dist/llm/model/index.d.ts.map +1 -1
  135. package/dist/llm/model/model.loop.d.ts.map +1 -1
  136. package/dist/llm/model/openai-compatible.d.ts +32 -0
  137. package/dist/llm/model/openai-compatible.d.ts.map +1 -0
  138. package/dist/llm/model/provider-registry.generated.d.ts +462 -0
  139. package/dist/llm/model/provider-registry.generated.d.ts.map +1 -0
  140. package/dist/llm/model/shared.types.d.ts +8 -0
  141. package/dist/llm/model/shared.types.d.ts.map +1 -1
  142. package/dist/loop/index.cjs +2 -2
  143. package/dist/loop/index.js +1 -1
  144. package/dist/loop/network/index.d.ts.map +1 -1
  145. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  146. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  147. package/dist/loop/test-utils/options.d.ts.map +1 -1
  148. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  149. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  150. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  151. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  152. package/dist/loop/workflows/agentic-execution/index.d.ts +99 -0
  153. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  154. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +66 -0
  155. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  156. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +33 -0
  157. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  158. package/dist/loop/workflows/agentic-loop/index.d.ts +99 -0
  159. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  160. package/dist/loop/workflows/run-state.d.ts +5 -0
  161. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  162. package/dist/loop/workflows/schema.d.ts +38 -0
  163. package/dist/loop/workflows/schema.d.ts.map +1 -1
  164. package/dist/mastra/index.cjs +2 -2
  165. package/dist/mastra/index.d.ts.map +1 -1
  166. package/dist/mastra/index.js +1 -1
  167. package/dist/memory/index.cjs +4 -4
  168. package/dist/memory/index.js +1 -1
  169. package/dist/network/vNext/index.cjs +30 -30
  170. package/dist/network/vNext/index.cjs.map +1 -1
  171. package/dist/network/vNext/index.js +3 -3
  172. package/dist/network/vNext/index.js.map +1 -1
  173. package/dist/processors/index.cjs +10 -10
  174. package/dist/processors/index.js +1 -1
  175. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  176. package/dist/processors/processors/moderation.d.ts.map +1 -1
  177. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  178. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  179. package/dist/processors/processors/structured-output.d.ts.map +1 -1
  180. package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
  181. package/dist/relevance/index.cjs +4 -4
  182. package/dist/relevance/index.js +1 -1
  183. package/dist/scores/index.cjs +9 -9
  184. package/dist/scores/index.js +2 -2
  185. package/dist/scores/scoreTraces/index.cjs +57 -68
  186. package/dist/scores/scoreTraces/index.cjs.map +1 -1
  187. package/dist/scores/scoreTraces/index.js +48 -59
  188. package/dist/scores/scoreTraces/index.js.map +1 -1
  189. package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  190. package/dist/scores/scoreTraces/utils.d.ts +4 -8
  191. package/dist/scores/scoreTraces/utils.d.ts.map +1 -1
  192. package/dist/scores/types.d.ts +8 -4
  193. package/dist/scores/types.d.ts.map +1 -1
  194. package/dist/server/index.cjs +7 -7
  195. package/dist/server/index.js +2 -2
  196. package/dist/storage/base.d.ts +14 -5
  197. package/dist/storage/base.d.ts.map +1 -1
  198. package/dist/storage/constants.d.ts.map +1 -1
  199. package/dist/storage/domains/observability/base.d.ts +5 -5
  200. package/dist/storage/domains/observability/base.d.ts.map +1 -1
  201. package/dist/storage/domains/observability/inmemory.d.ts +7 -7
  202. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  203. package/dist/storage/domains/scores/base.d.ts +8 -0
  204. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  205. package/dist/storage/domains/scores/inmemory.d.ts +8 -0
  206. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  207. package/dist/storage/index.cjs +94 -64
  208. package/dist/storage/index.cjs.map +1 -1
  209. package/dist/storage/index.js +59 -29
  210. package/dist/storage/index.js.map +1 -1
  211. package/dist/storage/mock.d.ts +9 -0
  212. package/dist/storage/mock.d.ts.map +1 -1
  213. package/dist/storage/types.d.ts +2 -0
  214. package/dist/storage/types.d.ts.map +1 -1
  215. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  216. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  217. package/dist/stream/aisdk/v5/output.d.ts +7 -0
  218. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  219. package/dist/stream/base/output.d.ts.map +1 -1
  220. package/dist/stream/index.cjs +4 -4
  221. package/dist/stream/index.js +1 -1
  222. package/dist/stream/types.d.ts +12 -12
  223. package/dist/stream/types.d.ts.map +1 -1
  224. package/dist/telemetry/index.cjs +7 -7
  225. package/dist/telemetry/index.js +1 -1
  226. package/dist/test-utils/llm-mock.cjs +2 -2
  227. package/dist/test-utils/llm-mock.js +1 -1
  228. package/dist/tools/index.cjs +4 -4
  229. package/dist/tools/index.js +1 -1
  230. package/dist/tools/is-vercel-tool.cjs +2 -2
  231. package/dist/tools/is-vercel-tool.js +1 -1
  232. package/dist/tools/tool.d.ts +2 -4
  233. package/dist/tools/tool.d.ts.map +1 -1
  234. package/dist/tools/types.d.ts +1 -1
  235. package/dist/tools/types.d.ts.map +1 -1
  236. package/dist/tts/index.cjs +2 -2
  237. package/dist/tts/index.js +1 -1
  238. package/dist/{types.d.ts → types/dynamic-argument.d.ts} +3 -3
  239. package/dist/types/dynamic-argument.d.ts.map +1 -0
  240. package/dist/types/index.cjs +4 -0
  241. package/dist/types/index.cjs.map +1 -0
  242. package/dist/types/index.d.ts +2 -0
  243. package/dist/types/index.d.ts.map +1 -0
  244. package/dist/types/index.js +3 -0
  245. package/dist/types/index.js.map +1 -0
  246. package/dist/utils.cjs +17 -17
  247. package/dist/utils.js +1 -1
  248. package/dist/vector/index.cjs +4 -4
  249. package/dist/vector/index.js +1 -1
  250. package/dist/voice/index.cjs +4 -4
  251. package/dist/voice/index.js +1 -1
  252. package/dist/workflows/default.d.ts.map +1 -1
  253. package/dist/workflows/evented/index.cjs +10 -10
  254. package/dist/workflows/evented/index.js +1 -1
  255. package/dist/workflows/index.cjs +12 -12
  256. package/dist/workflows/index.js +1 -1
  257. package/dist/workflows/legacy/index.cjs +22 -22
  258. package/dist/workflows/legacy/index.js +1 -1
  259. package/dist/workflows/types.d.ts +11 -1
  260. package/dist/workflows/types.d.ts.map +1 -1
  261. package/dist/workflows/workflow.d.ts +6 -3
  262. package/dist/workflows/workflow.d.ts.map +1 -1
  263. package/package.json +4 -4
  264. package/types.d.ts +1 -0
  265. package/dist/chunk-4PK4GBYZ.cjs.map +0 -1
  266. package/dist/chunk-5ZMC3NEO.js.map +0 -1
  267. package/dist/chunk-6ZVNL435.js.map +0 -1
  268. package/dist/chunk-73S2WYSD.cjs.map +0 -1
  269. package/dist/chunk-7UEBC5KM.cjs.map +0 -1
  270. package/dist/chunk-C73WLCY3.cjs.map +0 -1
  271. package/dist/chunk-CE73R5W7.js +0 -3
  272. package/dist/chunk-ITD7IHN5.js.map +0 -1
  273. package/dist/chunk-MCOVMKIS.js.map +0 -1
  274. package/dist/chunk-NG2XDPDY.js.map +0 -1
  275. package/dist/chunk-O6PQYYT6.cjs.map +0 -1
  276. package/dist/chunk-QUB6MWXZ.cjs.map +0 -1
  277. package/dist/chunk-R5GESRGB.js.map +0 -1
  278. package/dist/chunk-VBPPPQO3.cjs +0 -4
  279. package/dist/chunk-XUAWHRUO.cjs.map +0 -1
  280. package/dist/chunk-XWJWU5OM.js.map +0 -1
  281. package/dist/types.d.ts.map +0 -1
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkVZLNVGYM_cjs = require('./chunk-VZLNVGYM.cjs');
4
- var chunk4PK4GBYZ_cjs = require('./chunk-4PK4GBYZ.cjs');
3
+ var chunkPG6ZNDSR_cjs = require('./chunk-PG6ZNDSR.cjs');
4
+ var chunk2GHLV754_cjs = require('./chunk-2GHLV754.cjs');
5
5
  var chunkV3VLOOSW_cjs = require('./chunk-V3VLOOSW.cjs');
6
6
  var chunkKTCBGNCZ_cjs = require('./chunk-KTCBGNCZ.cjs');
7
7
  var chunk4D4KB75Y_cjs = require('./chunk-4D4KB75Y.cjs');
8
- var chunkTKFLL33F_cjs = require('./chunk-TKFLL33F.cjs');
8
+ var chunkF6EJEELE_cjs = require('./chunk-F6EJEELE.cjs');
9
9
  var chunkTSNDVBUU_cjs = require('./chunk-TSNDVBUU.cjs');
10
- var chunk7UEBC5KM_cjs = require('./chunk-7UEBC5KM.cjs');
10
+ var chunkDRVSEV5Y_cjs = require('./chunk-DRVSEV5Y.cjs');
11
11
  var chunk6TEQIYXV_cjs = require('./chunk-6TEQIYXV.cjs');
12
- var chunkC73WLCY3_cjs = require('./chunk-C73WLCY3.cjs');
12
+ var chunkS7UXT3V4_cjs = require('./chunk-S7UXT3V4.cjs');
13
13
  var chunkWVCEJBDR_cjs = require('./chunk-WVCEJBDR.cjs');
14
14
  var chunkEBVYYC2Q_cjs = require('./chunk-EBVYYC2Q.cjs');
15
15
  var crypto$1 = require('crypto');
@@ -57,7 +57,7 @@ function createOnScorerHook(mastra) {
57
57
  try {
58
58
  const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.name);
59
59
  if (!scorerToUse) {
60
- throw new chunkC73WLCY3_cjs.MastraError({
60
+ throw new chunkS7UXT3V4_cjs.MastraError({
61
61
  id: "MASTRA_SCORER_NOT_FOUND",
62
62
  domain: "MASTRA" /* MASTRA */,
63
63
  category: "USER" /* USER */,
@@ -86,7 +86,7 @@ function createOnScorerHook(mastra) {
86
86
  };
87
87
  await validateAndSaveScore(storage, payload);
88
88
  } catch (error) {
89
- const mastraError = new chunkC73WLCY3_cjs.MastraError({
89
+ const mastraError = new chunkS7UXT3V4_cjs.MastraError({
90
90
  id: "MASTRA_SCORER_FAILED_TO_RUN_HOOK",
91
91
  domain: "SCORER" /* SCORER */,
92
92
  category: "USER" /* USER */,
@@ -102,7 +102,7 @@ function createOnScorerHook(mastra) {
102
102
  };
103
103
  }
104
104
  async function validateAndSaveScore(storage, payload) {
105
- const payloadToSave = chunk4PK4GBYZ_cjs.saveScorePayloadSchema.parse(payload);
105
+ const payloadToSave = chunk2GHLV754_cjs.saveScorePayloadSchema.parse(payload);
106
106
  await storage?.saveScore(payloadToSave);
107
107
  }
108
108
  async function findScorer(mastra, entityId, entityType, scorerName) {
@@ -135,7 +135,7 @@ async function findScorer(mastra, entityId, entityType, scorerName) {
135
135
 
136
136
  // src/mastra/index.ts
137
137
  var _Mastra_decorators, _init;
138
- _Mastra_decorators = [chunkTKFLL33F_cjs.InstrumentClass({
138
+ _Mastra_decorators = [chunkF6EJEELE_cjs.InstrumentClass({
139
139
  prefix: "mastra",
140
140
  excludeMethods: ["getLogger", "getTelemetry"]
141
141
  })];
@@ -194,7 +194,7 @@ exports.Mastra = class Mastra {
194
194
  if (this.#idGenerator) {
195
195
  const id = this.#idGenerator();
196
196
  if (!id) {
197
- const error = new chunkC73WLCY3_cjs.MastraError({
197
+ const error = new chunkS7UXT3V4_cjs.MastraError({
198
198
  id: "MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING",
199
199
  domain: "MASTRA" /* MASTRA */,
200
200
  category: "USER" /* USER */,
@@ -231,7 +231,7 @@ exports.Mastra = class Mastra {
231
231
  this.#events[topic] = config?.events?.[topic] ?? [];
232
232
  }
233
233
  }
234
- const workflowEventProcessor = new chunkVZLNVGYM_cjs.WorkflowEventProcessor({
234
+ const workflowEventProcessor = new chunkPG6ZNDSR_cjs.WorkflowEventProcessor({
235
235
  mastra: this
236
236
  });
237
237
  const workflowEventCb = async (event, cb) => {
@@ -266,12 +266,12 @@ exports.Mastra = class Mastra {
266
266
  if (storage) {
267
267
  storage = chunkV3VLOOSW_cjs.augmentWithInit(storage);
268
268
  }
269
- this.#telemetry = chunkTKFLL33F_cjs.Telemetry.init(config?.telemetry);
269
+ this.#telemetry = chunkF6EJEELE_cjs.Telemetry.init(config?.telemetry);
270
270
  if (config?.telemetry?.enabled !== false && typeof globalThis !== "undefined" && globalThis.___MASTRA_TELEMETRY___ !== true) {
271
271
  this.#logger?.warn(`Mastra telemetry is enabled, but the required instrumentation file was not loaded. If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`, `If you are using a custom instrumentation file or want to disable this warning, set the globalThis.___MASTRA_TELEMETRY___ variable to true in your instrumentation file.`);
272
272
  }
273
273
  if (config?.observability) {
274
- chunk7UEBC5KM_cjs.setupAITracing(config.observability);
274
+ chunkDRVSEV5Y_cjs.setupAITracing(config.observability);
275
275
  }
276
276
  if (this.#telemetry && storage) {
277
277
  this.#storage = this.#telemetry.traceClass(storage, {
@@ -310,7 +310,7 @@ exports.Mastra = class Mastra {
310
310
  });
311
311
  }
312
312
  if (config && `memory` in config) {
313
- const error = new chunkC73WLCY3_cjs.MastraError({
313
+ const error = new chunkS7UXT3V4_cjs.MastraError({
314
314
  id: "MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG",
315
315
  domain: "MASTRA" /* MASTRA */,
316
316
  category: "USER" /* USER */,
@@ -344,7 +344,7 @@ do:
344
344
  if (config?.agents) {
345
345
  Object.entries(config.agents).forEach(([key, agent]) => {
346
346
  if (agents[key]) {
347
- const error = new chunkC73WLCY3_cjs.MastraError({
347
+ const error = new chunkS7UXT3V4_cjs.MastraError({
348
348
  id: "MASTRA_AGENT_REGISTRATION_DUPLICATE_ID",
349
349
  domain: "MASTRA" /* MASTRA */,
350
350
  category: "USER" /* USER */,
@@ -438,7 +438,7 @@ do:
438
438
  * Register this Mastra instance with AI tracing exporters that need it
439
439
  */
440
440
  registerAITracingExporters() {
441
- const allTracingInstances = chunk7UEBC5KM_cjs.getAllAITracing();
441
+ const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
442
442
  allTracingInstances.forEach(tracing => {
443
443
  const exporters = tracing.getExporters();
444
444
  exporters.forEach(exporter => {
@@ -452,13 +452,14 @@ do:
452
452
  * Initialize all AI tracing exporters after registration is complete
453
453
  */
454
454
  initAITracingExporters() {
455
- const allTracingInstances = chunk7UEBC5KM_cjs.getAllAITracing();
455
+ const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
456
456
  allTracingInstances.forEach(tracing => {
457
+ const config = tracing.getConfig();
457
458
  const exporters = tracing.getExporters();
458
459
  exporters.forEach(exporter => {
459
460
  if ("init" in exporter && typeof exporter.init === "function") {
460
461
  try {
461
- exporter.init();
462
+ exporter.init(config);
462
463
  } catch (error) {
463
464
  this.#logger?.warn("Failed to initialize AI tracing exporter", {
464
465
  exporterName: exporter.name,
@@ -472,7 +473,7 @@ do:
472
473
  getAgent(name) {
473
474
  const agent = this.#agents?.[name];
474
475
  if (!agent) {
475
- const error = new chunkC73WLCY3_cjs.MastraError({
476
+ const error = new chunkS7UXT3V4_cjs.MastraError({
476
477
  id: "MASTRA_GET_AGENT_BY_NAME_NOT_FOUND",
477
478
  domain: "MASTRA" /* MASTRA */,
478
479
  category: "USER" /* USER */,
@@ -496,7 +497,7 @@ do:
496
497
  } catch {}
497
498
  }
498
499
  if (!agent) {
499
- const error = new chunkC73WLCY3_cjs.MastraError({
500
+ const error = new chunkS7UXT3V4_cjs.MastraError({
500
501
  id: "MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND",
501
502
  domain: "MASTRA" /* MASTRA */,
502
503
  category: "USER" /* USER */,
@@ -518,7 +519,7 @@ do:
518
519
  getVector(name) {
519
520
  const vector = this.#vectors?.[name];
520
521
  if (!vector) {
521
- const error = new chunkC73WLCY3_cjs.MastraError({
522
+ const error = new chunkS7UXT3V4_cjs.MastraError({
522
523
  id: "MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND",
523
524
  domain: "MASTRA" /* MASTRA */,
524
525
  category: "USER" /* USER */,
@@ -545,7 +546,7 @@ do:
545
546
  } = {}) {
546
547
  const workflow = this.#legacy_workflows?.[id];
547
548
  if (!workflow) {
548
- const error = new chunkC73WLCY3_cjs.MastraError({
549
+ const error = new chunkS7UXT3V4_cjs.MastraError({
549
550
  id: "MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND",
550
551
  domain: "MASTRA" /* MASTRA */,
551
552
  category: "USER" /* USER */,
@@ -571,7 +572,7 @@ do:
571
572
  } = {}) {
572
573
  const workflow = this.#workflows?.[id];
573
574
  if (!workflow) {
574
- const error = new chunkC73WLCY3_cjs.MastraError({
575
+ const error = new chunkS7UXT3V4_cjs.MastraError({
575
576
  id: "MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND",
576
577
  domain: "MASTRA" /* MASTRA */,
577
578
  category: "USER" /* USER */,
@@ -606,7 +607,7 @@ do:
606
607
  __getInternalWorkflow(id) {
607
608
  const workflow = Object.values(this.#internalMastraWorkflows).find(a => a.id === id);
608
609
  if (!workflow) {
609
- throw new chunkC73WLCY3_cjs.MastraError({
610
+ throw new chunkS7UXT3V4_cjs.MastraError({
610
611
  id: "MASTRA_GET_INTERNAL_WORKFLOW_BY_ID_NOT_FOUND",
611
612
  domain: "MASTRA" /* MASTRA */,
612
613
  category: "SYSTEM" /* SYSTEM */,
@@ -627,7 +628,7 @@ do:
627
628
  } catch {}
628
629
  }
629
630
  if (!workflow) {
630
- const error = new chunkC73WLCY3_cjs.MastraError({
631
+ const error = new chunkS7UXT3V4_cjs.MastraError({
631
632
  id: "MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND",
632
633
  domain: "MASTRA" /* MASTRA */,
633
634
  category: "USER" /* USER */,
@@ -662,7 +663,7 @@ do:
662
663
  getScorer(key) {
663
664
  const scorer = this.#scorers?.[key];
664
665
  if (!scorer) {
665
- const error = new chunkC73WLCY3_cjs.MastraError({
666
+ const error = new chunkS7UXT3V4_cjs.MastraError({
666
667
  id: "MASTRA_GET_SCORER_NOT_FOUND",
667
668
  domain: "MASTRA" /* MASTRA */,
668
669
  category: "USER" /* USER */,
@@ -679,7 +680,7 @@ do:
679
680
  return value;
680
681
  }
681
682
  }
682
- const error = new chunkC73WLCY3_cjs.MastraError({
683
+ const error = new chunkS7UXT3V4_cjs.MastraError({
683
684
  id: "MASTRA_GET_SCORER_BY_NAME_NOT_FOUND",
684
685
  domain: "MASTRA" /* MASTRA */,
685
686
  category: "USER" /* USER */,
@@ -737,13 +738,13 @@ do:
737
738
  this.#mcpServers?.[key]?.__setLogger(this.#logger);
738
739
  });
739
740
  }
740
- const allTracingInstances = chunk7UEBC5KM_cjs.getAllAITracing();
741
+ const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
741
742
  allTracingInstances.forEach(instance => {
742
743
  instance.__setLogger(this.#logger);
743
744
  });
744
745
  }
745
746
  setTelemetry(telemetry) {
746
- this.#telemetry = chunkTKFLL33F_cjs.Telemetry.init(telemetry);
747
+ this.#telemetry = chunkF6EJEELE_cjs.Telemetry.init(telemetry);
747
748
  if (this.#agents) {
748
749
  Object.keys(this.#agents).forEach(key => {
749
750
  if (this.#telemetry) {
@@ -824,7 +825,7 @@ do:
824
825
  return;
825
826
  }
826
827
  if (!Array.isArray(serverMiddleware)) {
827
- const error = new chunkC73WLCY3_cjs.MastraError({
828
+ const error = new chunkS7UXT3V4_cjs.MastraError({
828
829
  id: "MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE",
829
830
  domain: "MASTRA" /* MASTRA */,
830
831
  category: "USER" /* USER */,
@@ -870,7 +871,7 @@ do:
870
871
  perPage
871
872
  }) {
872
873
  if (!transportId) {
873
- const error = new chunkC73WLCY3_cjs.MastraError({
874
+ const error = new chunkS7UXT3V4_cjs.MastraError({
874
875
  id: "MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT",
875
876
  domain: "MASTRA" /* MASTRA */,
876
877
  category: "USER" /* USER */,
@@ -884,7 +885,7 @@ do:
884
885
  throw error;
885
886
  }
886
887
  if (!this.#logger?.getLogsByRunId) {
887
- const error = new chunkC73WLCY3_cjs.MastraError({
888
+ const error = new chunkS7UXT3V4_cjs.MastraError({
888
889
  id: "MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED",
889
890
  domain: "MASTRA" /* MASTRA */,
890
891
  category: "SYSTEM" /* SYSTEM */,
@@ -910,7 +911,7 @@ do:
910
911
  }
911
912
  async getLogs(transportId, params) {
912
913
  if (!transportId) {
913
- const error = new chunkC73WLCY3_cjs.MastraError({
914
+ const error = new chunkS7UXT3V4_cjs.MastraError({
914
915
  id: "MASTRA_GET_LOGS_MISSING_TRANSPORT",
915
916
  domain: "MASTRA" /* MASTRA */,
916
917
  category: "USER" /* USER */,
@@ -923,7 +924,7 @@ do:
923
924
  throw error;
924
925
  }
925
926
  if (!this.#logger) {
926
- const error = new chunkC73WLCY3_cjs.MastraError({
927
+ const error = new chunkS7UXT3V4_cjs.MastraError({
927
928
  id: "MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED",
928
929
  domain: "MASTRA" /* MASTRA */,
929
930
  category: "SYSTEM" /* SYSTEM */,
@@ -1023,7 +1024,7 @@ do:
1023
1024
  * Shutdown Mastra and clean up all resources
1024
1025
  */
1025
1026
  async shutdown() {
1026
- await chunk7UEBC5KM_cjs.shutdownAITracingRegistry();
1027
+ await chunkDRVSEV5Y_cjs.shutdownAITracingRegistry();
1027
1028
  await this.stopEventEngine();
1028
1029
  this.#logger?.info("Mastra shutdown completed");
1029
1030
  }
@@ -1038,5 +1039,5 @@ exports.Mastra = /*@__PURE__*/(_ => {
1038
1039
  chunkEBVYYC2Q_cjs.__runInitializers(_init, 1, exports.Mastra);
1039
1040
  return exports.Mastra;
1040
1041
  })();
1041
- //# sourceMappingURL=chunk-QUB6MWXZ.cjs.map
1042
- //# sourceMappingURL=chunk-QUB6MWXZ.cjs.map
1042
+ //# sourceMappingURL=chunk-BCWRUNMS.cjs.map
1043
+ //# sourceMappingURL=chunk-BCWRUNMS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mastra/index.ts","../src/events/event-emitter.ts","../src/mastra/hooks.ts"],"names":["MastraError","saveScorePayloadSchema","InstrumentClass","Mastra","randomUUID","InMemoryServerCache","WorkflowEventProcessor","LogLevel","ConsoleLogger","augmentWithInit","Telemetry","setupAITracing","registerHook","getAllAITracing","shutdownAITracingRegistry","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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","file":"chunk-BCWRUNMS.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { Agent } from '../agent';\nimport { getAllAITracing, setupAITracing, shutdownAITracingRegistry } from '../ai-tracing';\nimport type { ObservabilityRegistryConfig } from '../ai-tracing';\nimport type { BundlerConfig } from '../bundler/types';\nimport { InMemoryServerCache } from '../cache';\nimport type { MastraServerCache } from '../cache';\nimport type { MastraDeployer } from '../deployer';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport { EventEmitterPubSub } from '../events/event-emitter';\nimport type { PubSub } from '../events/pubsub';\nimport type { Event } from '../events/types';\nimport { AvailableHooks, registerHook } from '../hooks';\nimport { LogLevel, noopLogger, ConsoleLogger } from '../logger';\nimport type { IMastraLogger } from '../logger';\nimport type { MCPServerBase } from '../mcp';\nimport type { MastraMemory } from '../memory/memory';\nimport type { NewAgentNetwork } from '../network/vNext';\nimport type { MastraScorer } from '../scores';\nimport type { Middleware, ServerConfig } from '../server/types';\nimport type { MastraStorage } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport { InstrumentClass, Telemetry } from '../telemetry';\nimport type { OtelConfig } from '../telemetry';\nimport type { MastraTTS } from '../tts';\nimport type { MastraIdGenerator } from '../types';\nimport type { MastraVector } from '../vector';\nimport type { Workflow } from '../workflows';\nimport { WorkflowEventProcessor } from '../workflows/evented/workflow-event-processor';\nimport type { LegacyWorkflow } from '../workflows/legacy';\nimport { createOnScorerHook } from './hooks';\n\nexport interface Config<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow<any, any, any, any, any, any>> = Record<\n string,\n Workflow<any, any, any, any, any, any>\n >,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n agents?: TAgents;\n vnext_networks?: TVNextNetworks;\n storage?: MastraStorage;\n vectors?: TVectors;\n logger?: TLogger | false;\n legacy_workflows?: TLegacyWorkflows;\n workflows?: TWorkflows;\n tts?: TTTS;\n telemetry?: OtelConfig;\n observability?: ObservabilityRegistryConfig;\n idGenerator?: MastraIdGenerator;\n deployer?: MastraDeployer;\n server?: ServerConfig;\n mcpServers?: TMCPServers;\n bundler?: BundlerConfig;\n pubsub?: PubSub;\n scorers?: TScorers;\n\n /**\n * Server middleware functions to be applied to API routes\n * Each middleware can specify a path pattern (defaults to '/api/*')\n * @deprecated use server.middleware instead\n */\n serverMiddleware?: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path?: string;\n }>;\n\n // @deprecated add memory to your Agent directly instead\n memory?: never;\n\n events?: {\n [topic: string]: (\n event: Event,\n cb?: () => Promise<void>,\n ) => Promise<void> | ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n };\n}\n\n@InstrumentClass({\n prefix: 'mastra',\n excludeMethods: ['getLogger', 'getTelemetry'],\n})\nexport class Mastra<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow<any, any, any, any, any, any>> = Record<\n string,\n Workflow<any, any, any, any, any, any>\n >,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n #vectors?: TVectors;\n #agents: TAgents;\n #logger: TLogger;\n #legacy_workflows: TLegacyWorkflows;\n #workflows: TWorkflows;\n #tts?: TTTS;\n #deployer?: MastraDeployer;\n #serverMiddleware: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path: string;\n }> = [];\n #telemetry?: Telemetry;\n #storage?: MastraStorage;\n #memory?: MastraMemory;\n #vnext_networks?: TVNextNetworks;\n #scorers?: TScorers;\n #server?: ServerConfig;\n #mcpServers?: TMCPServers;\n #bundler?: BundlerConfig;\n #idGenerator?: MastraIdGenerator;\n #pubsub: PubSub;\n #events: {\n [topic: string]: ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n } = {};\n #internalMastraWorkflows: Record<string, Workflow> = {};\n // This is only used internally for server handlers that require temporary persistence\n #serverCache: MastraServerCache;\n\n /**\n * @deprecated use getTelemetry() instead\n */\n get telemetry() {\n return this.#telemetry;\n }\n\n /**\n * @deprecated use getStorage() instead\n */\n get storage() {\n return this.#storage;\n }\n\n /**\n * @deprecated use getMemory() instead\n */\n get memory() {\n return this.#memory;\n }\n\n get pubsub() {\n return this.#pubsub;\n }\n\n public getIdGenerator() {\n return this.#idGenerator;\n }\n\n /**\n * Generate a unique identifier using the configured generator or default to crypto.randomUUID()\n * @returns A unique string ID\n */\n public generateId(): string {\n if (this.#idGenerator) {\n const id = this.#idGenerator();\n if (!id) {\n const error = new MastraError({\n id: 'MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'ID generator returned an empty string, which is not allowed',\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return id;\n }\n return randomUUID();\n }\n\n public setIdGenerator(idGenerator: MastraIdGenerator) {\n this.#idGenerator = idGenerator;\n }\n\n constructor(\n config?: Config<\n TAgents,\n TLegacyWorkflows,\n TWorkflows,\n TVectors,\n TTTS,\n TLogger,\n TVNextNetworks,\n TMCPServers,\n TScorers\n >,\n ) {\n // Store server middleware with default path\n if (config?.serverMiddleware) {\n this.#serverMiddleware = config.serverMiddleware.map(m => ({\n handler: m.handler,\n path: m.path || '/api/*',\n }));\n }\n\n /*\n Server Cache\n */\n\n // This is only used internally for server handlers that require temporary persistence\n this.#serverCache = new InMemoryServerCache();\n\n /*\n Events\n */\n if (config?.pubsub) {\n this.#pubsub = config.pubsub;\n } else {\n this.#pubsub = new EventEmitterPubSub();\n }\n\n this.#events = {};\n for (const topic in config?.events ?? {}) {\n if (!Array.isArray(config?.events?.[topic])) {\n this.#events[topic] = [config?.events?.[topic] as any];\n } else {\n this.#events[topic] = config?.events?.[topic] ?? [];\n }\n }\n\n const workflowEventProcessor = new WorkflowEventProcessor({ mastra: this });\n const workflowEventCb = async (event: Event, cb?: () => Promise<void>): Promise<void> => {\n try {\n await workflowEventProcessor.process(event, cb);\n } catch (e) {\n console.error('Error processing event', e);\n }\n };\n if (this.#events.workflows) {\n this.#events.workflows.push(workflowEventCb);\n } else {\n this.#events.workflows = [workflowEventCb];\n }\n\n /*\n Logger\n */\n\n let logger: TLogger;\n if (config?.logger === false) {\n logger = noopLogger as unknown as TLogger;\n } else {\n if (config?.logger) {\n logger = config.logger;\n } else {\n const levelOnEnv =\n process.env.NODE_ENV === 'production' && process.env.MASTRA_DEV !== 'true' ? LogLevel.WARN : LogLevel.INFO;\n logger = new ConsoleLogger({ name: 'Mastra', level: levelOnEnv }) as unknown as TLogger;\n }\n }\n this.#logger = logger;\n\n this.#idGenerator = config?.idGenerator;\n\n let storage = config?.storage;\n\n if (storage) {\n storage = augmentWithInit(storage);\n }\n\n /*\n Telemetry\n */\n\n this.#telemetry = Telemetry.init(config?.telemetry);\n\n // Warn if telemetry is enabled but the instrumentation global is not set\n if (\n config?.telemetry?.enabled !== false &&\n typeof globalThis !== 'undefined' &&\n (globalThis as any).___MASTRA_TELEMETRY___ !== true\n ) {\n this.#logger?.warn(\n `Mastra telemetry is enabled, but the required instrumentation file was not loaded. ` +\n `If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`,\n `If you are using a custom instrumentation file or want to disable this warning, set the globalThis.___MASTRA_TELEMETRY___ variable to true in your instrumentation file.`,\n );\n }\n\n /*\n AI Tracing\n */\n\n if (config?.observability) {\n setupAITracing(config.observability);\n }\n\n /*\n Storage\n */\n if (this.#telemetry && storage) {\n this.#storage = this.#telemetry.traceClass(storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry', 'batchTraceInsert', 'getTraces', 'getEvalsByAgentName'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n } else {\n this.#storage = storage;\n }\n\n /*\n Vectors\n */\n if (config?.vectors) {\n let vectors: Record<string, MastraVector> = {};\n Object.entries(config.vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n } else {\n vectors[key] = vector;\n }\n });\n\n this.#vectors = vectors as TVectors;\n }\n\n if (config?.vnext_networks) {\n this.#vnext_networks = config.vnext_networks;\n }\n\n if (config?.mcpServers) {\n this.#mcpServers = config.mcpServers;\n\n // Set logger/telemetry/Mastra instance/id for MCP servers\n Object.entries(this.#mcpServers).forEach(([key, server]) => {\n server.setId(key);\n if (this.#telemetry) {\n server.__setTelemetry(this.#telemetry);\n }\n\n server.__registerMastra(this);\n server.__setLogger(this.getLogger());\n });\n }\n\n if (config && `memory` in config) {\n const error = new MastraError({\n id: 'MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `\n Memory should be added to Agents, not to Mastra.\n\nInstead of:\n new Mastra({ memory: new Memory() })\n\ndo:\n new Agent({ memory: new Memory() })\n`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (config?.tts) {\n this.#tts = config.tts;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#tts?.[key]) {\n if (this.#telemetry) {\n // @ts-ignore\n this.#tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#tts[key].__setTelemetry(this.#telemetry);\n }\n }\n });\n }\n\n /*\n Agents\n */\n const agents: Record<string, Agent> = {};\n if (config?.agents) {\n Object.entries(config.agents).forEach(([key, agent]) => {\n if (agents[key]) {\n const error = new MastraError({\n id: 'MASTRA_AGENT_REGISTRATION_DUPLICATE_ID',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ID:${key} already exists`,\n details: {\n agentId: key,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n agent.__registerMastra(this);\n\n agent.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n\n agents[key] = agent;\n });\n }\n\n this.#agents = agents as TAgents;\n\n /*\n Networks\n */\n this.#vnext_networks = {} as TVNextNetworks;\n\n if (config?.vnext_networks) {\n Object.entries(config.vnext_networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#vnext_networks[key] = network;\n });\n }\n\n /**\n * Scorers\n */\n\n const scorers = {} as Record<string, MastraScorer<any, any, any, any>>;\n if (config?.scorers) {\n Object.entries(config.scorers).forEach(([key, scorer]) => {\n scorers[key] = scorer;\n });\n }\n this.#scorers = scorers as TScorers;\n\n /*\n Legacy Workflows\n */\n this.#legacy_workflows = {} as TLegacyWorkflows;\n\n if (config?.legacy_workflows) {\n Object.entries(config.legacy_workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#legacy_workflows[key] = workflow;\n\n const workflowSteps = Object.values(workflow.steps).filter(step => !!step.workflowId && !!step.workflow);\n if (workflowSteps.length > 0) {\n workflowSteps.forEach(step => {\n // @ts-ignore\n this.#legacy_workflows[step.workflowId] = step.workflow;\n });\n }\n });\n }\n\n this.#workflows = {} as TWorkflows;\n if (config?.workflows) {\n Object.entries(config.workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#workflows[key] = workflow;\n });\n }\n\n if (config?.server) {\n this.#server = config.server;\n }\n\n registerHook(AvailableHooks.ON_SCORER_RUN, createOnScorerHook(this));\n\n /*\n Register Mastra instance with AI tracing exporters and initialize them\n */\n if (config?.observability) {\n this.registerAITracingExporters();\n this.initAITracingExporters();\n }\n\n this.setLogger({ logger });\n }\n\n /**\n * Register this Mastra instance with AI tracing exporters that need it\n */\n private registerAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Check if exporter has __registerMastra method\n if ('__registerMastra' in exporter && typeof (exporter as any).__registerMastra === 'function') {\n (exporter as any).__registerMastra(this);\n }\n });\n });\n }\n\n /**\n * Initialize all AI tracing exporters after registration is complete\n */\n private initAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n\n allTracingInstances.forEach(tracing => {\n const config = tracing.getConfig();\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Initialize exporter if it has an init method\n if ('init' in exporter && typeof exporter.init === 'function') {\n try {\n exporter.init(config);\n } catch (error) {\n this.#logger?.warn('Failed to initialize AI tracing exporter', {\n exporterName: exporter.name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n });\n });\n }\n\n public getAgent<TAgentName extends keyof TAgents>(name: TAgentName): TAgents[TAgentName] {\n const agent = this.#agents?.[name];\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ${String(name)} not found`,\n details: {\n status: 404,\n agentName: String(name),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#agents[name];\n }\n\n public getAgentById(id: string): Agent {\n let agent = Object.values(this.#agents).find(a => a.id === id);\n\n if (!agent) {\n try {\n agent = this.getAgent(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with id ${String(id)} not found`,\n details: {\n status: 404,\n agentId: String(id),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return agent;\n }\n\n public getAgents() {\n return this.#agents;\n }\n\n public getVector<TVectorName extends keyof TVectors>(name: TVectorName): TVectors[TVectorName] {\n const vector = this.#vectors?.[name];\n if (!vector) {\n const error = new MastraError({\n id: 'MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Vector with name ${String(name)} not found`,\n details: {\n status: 404,\n vectorName: String(name),\n vectors: Object.keys(this.#vectors ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return vector;\n }\n\n public getVectors() {\n return this.#vectors;\n }\n\n public getDeployer() {\n return this.#deployer;\n }\n\n public legacy_getWorkflow<TWorkflowId extends keyof TLegacyWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TLegacyWorkflows[TWorkflowId] {\n const workflow = this.#legacy_workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#legacy_workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TLegacyWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflow<TWorkflowId extends keyof TWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TWorkflows[TWorkflowId] {\n const workflow = this.#workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n __registerInternalWorkflow(workflow: Workflow) {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n storage: this.storage,\n });\n this.#internalMastraWorkflows[workflow.id] = workflow;\n }\n\n __hasInternalWorkflow(id: string): boolean {\n return Object.values(this.#internalMastraWorkflows).some(workflow => workflow.id === id);\n }\n\n __getInternalWorkflow(id: string): Workflow {\n const workflow = Object.values(this.#internalMastraWorkflows).find(a => a.id === id);\n if (!workflow) {\n throw new MastraError({\n id: 'MASTRA_GET_INTERNAL_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n },\n });\n }\n\n return workflow;\n }\n\n public getWorkflowById(id: string): Workflow {\n let workflow = Object.values(this.#workflows).find(a => a.id === id);\n\n if (!workflow) {\n try {\n workflow = this.getWorkflow(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return workflow;\n }\n\n public legacy_getWorkflows(props: { serialized?: boolean } = {}): Record<string, LegacyWorkflow> {\n if (props.serialized) {\n return Object.entries(this.#legacy_workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#legacy_workflows;\n }\n\n public getScorers() {\n return this.#scorers;\n }\n\n public getScorer<TScorerKey extends keyof TScorers>(key: TScorerKey): TScorers[TScorerKey] {\n const scorer = this.#scorers?.[key];\n if (!scorer) {\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ${String(key)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return scorer;\n }\n\n public getScorerByName(name: string): MastraScorer<any, any, any, any> {\n for (const [_key, value] of Object.entries(this.#scorers ?? {})) {\n if (value.name === name) {\n return value;\n }\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with name ${String(name)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n public getWorkflows(props: { serialized?: boolean } = {}): Record<string, Workflow> {\n if (props.serialized) {\n return Object.entries(this.#workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#workflows;\n }\n\n public setStorage(storage: MastraStorage) {\n this.#storage = augmentWithInit(storage);\n }\n\n public setLogger({ logger }: { logger: TLogger }) {\n this.#logger = logger;\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n this.#agents?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#memory) {\n this.#memory.__setLogger(this.#logger);\n }\n\n if (this.#deployer) {\n this.#deployer.__setLogger(this.#logger);\n }\n\n if (this.#tts) {\n Object.keys(this.#tts).forEach(key => {\n this.#tts?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#storage) {\n this.#storage.__setLogger(this.#logger);\n }\n\n if (this.#vectors) {\n Object.keys(this.#vectors).forEach(key => {\n this.#vectors?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#mcpServers) {\n Object.keys(this.#mcpServers).forEach(key => {\n this.#mcpServers?.[key]?.__setLogger(this.#logger);\n });\n }\n\n // Set logger for AI tracing instances\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(instance => {\n instance.__setLogger(this.#logger);\n });\n }\n\n public setTelemetry(telemetry: OtelConfig) {\n this.#telemetry = Telemetry.init(telemetry);\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n if (this.#telemetry) {\n this.#agents?.[key]?.__setTelemetry(this.#telemetry);\n }\n });\n }\n\n if (this.#memory) {\n this.#memory = this.#telemetry.traceClass(this.#memory, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#memory.__setTelemetry(this.#telemetry);\n }\n\n if (this.#deployer) {\n this.#deployer = this.#telemetry.traceClass(this.#deployer, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#deployer.__setTelemetry(this.#telemetry);\n }\n\n if (this.#tts) {\n let tts = {} as Record<string, MastraTTS>;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#telemetry) {\n tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n tts[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#tts = tts as TTTS;\n }\n\n if (this.#storage) {\n this.#storage = this.#telemetry.traceClass(this.#storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n }\n\n if (this.#vectors) {\n let vectors = {} as Record<string, MastraVector>;\n Object.entries(this.#vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#vectors = vectors as TVectors;\n }\n }\n\n public getTTS() {\n return this.#tts;\n }\n\n public getLogger() {\n return this.#logger;\n }\n\n public getTelemetry() {\n return this.#telemetry;\n }\n\n public getMemory() {\n return this.#memory;\n }\n\n public getStorage() {\n return this.#storage;\n }\n\n public getServerMiddleware() {\n return this.#serverMiddleware;\n }\n\n public getServerCache() {\n return this.#serverCache;\n }\n\n public setServerMiddleware(serverMiddleware: Middleware | Middleware[]) {\n if (typeof serverMiddleware === 'function') {\n this.#serverMiddleware = [\n {\n handler: serverMiddleware,\n path: '/api/*',\n },\n ];\n return;\n }\n\n if (!Array.isArray(serverMiddleware)) {\n const error = new MastraError({\n id: 'MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Invalid middleware: expected a function or array, received ${typeof serverMiddleware}`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n this.#serverMiddleware = serverMiddleware.map(m => {\n if (typeof m === 'function') {\n return {\n handler: m,\n path: '/api/*',\n };\n }\n return {\n handler: m.handler,\n path: m.path || '/api/*',\n };\n });\n }\n\n public vnext_getNetworks() {\n return Object.values(this.#vnext_networks || {});\n }\n\n public getServer() {\n return this.#server;\n }\n\n public getBundlerConfig() {\n return this.#bundler;\n }\n\n public vnext_getNetwork(networkId: string): NewAgentNetwork | undefined {\n const networks = this.vnext_getNetworks();\n return networks.find(network => network.id === networkId);\n }\n\n public async getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n runId: string;\n transportId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger?.getLogsByRunId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not configured or does not support getLogsByRunId operation',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return await this.#logger.getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n });\n }\n\n public async getLogs(\n transportId: string,\n params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not set',\n details: {\n transportId,\n },\n });\n throw error;\n }\n\n return await this.#logger.getLogs(transportId, params);\n }\n\n /**\n * Get all registered MCP server instances.\n * @returns A record of MCP server ID to MCPServerBase instance, or undefined if none are registered.\n */\n public getMCPServers(): Record<string, MCPServerBase> | undefined {\n return this.#mcpServers;\n }\n\n /**\n * Get a specific MCP server instance.\n * If a version is provided, it attempts to find the server with that exact logical ID and version.\n * If no version is provided, it returns the server with the specified logical ID that has the most recent releaseDate.\n * The logical ID should match the `id` property of the MCPServer instance (typically set via MCPServerConfig.id).\n * @param serverId - The logical ID of the MCP server to retrieve.\n * @param version - Optional specific version of the MCP server to retrieve.\n * @returns The MCP server instance, or undefined if not found or if the specific version is not found.\n */\n public getMCPServer(serverId: string, version?: string): MCPServerBase | undefined {\n if (!this.#mcpServers) {\n return undefined;\n }\n\n const allRegisteredServers = Object.values(this.#mcpServers || {});\n\n const matchingLogicalIdServers = allRegisteredServers.filter(server => server.id === serverId);\n\n if (matchingLogicalIdServers.length === 0) {\n this.#logger?.debug(`No MCP servers found with logical ID: ${serverId}`);\n return undefined;\n }\n\n if (version) {\n const specificVersionServer = matchingLogicalIdServers.find(server => server.version === version);\n if (!specificVersionServer) {\n this.#logger?.debug(`MCP server with logical ID '${serverId}' found, but not version '${version}'.`);\n }\n return specificVersionServer;\n } else {\n // No version specified, find the one with the most recent releaseDate\n if (matchingLogicalIdServers.length === 1) {\n return matchingLogicalIdServers[0];\n }\n\n matchingLogicalIdServers.sort((a, b) => {\n // Ensure releaseDate exists and is a string before creating a Date object\n const dateAVal = a.releaseDate && typeof a.releaseDate === 'string' ? new Date(a.releaseDate).getTime() : NaN;\n const dateBVal = b.releaseDate && typeof b.releaseDate === 'string' ? new Date(b.releaseDate).getTime() : NaN;\n\n if (isNaN(dateAVal) && isNaN(dateBVal)) return 0;\n if (isNaN(dateAVal)) return 1; // Treat invalid/missing dates as older\n if (isNaN(dateBVal)) return -1; // Treat invalid/missing dates as older\n\n return dateBVal - dateAVal; // Sorts in descending order of time (latest first)\n });\n\n // After sorting, the first element should be the latest if its date is valid\n if (matchingLogicalIdServers.length > 0) {\n const latestServer = matchingLogicalIdServers[0];\n if (\n latestServer &&\n latestServer.releaseDate &&\n typeof latestServer.releaseDate === 'string' &&\n !isNaN(new Date(latestServer.releaseDate).getTime())\n ) {\n return latestServer;\n }\n }\n this.#logger?.warn(\n `Could not determine the latest server for logical ID '${serverId}' due to invalid or missing release dates, or no servers left after filtering.`,\n );\n return undefined;\n }\n }\n\n public async addTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.subscribe(topic, listener);\n }\n\n public async removeTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n\n public async startEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.subscribe(topic, listener);\n }\n }\n }\n\n public async stopEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n }\n\n await this.#pubsub.flush();\n }\n\n /**\n * Shutdown Mastra and clean up all resources\n */\n async shutdown(): Promise<void> {\n // Shutdown AI tracing registry and all instances\n await shutdownAITracingRegistry();\n await this.stopEventEngine();\n\n this.#logger?.info('Mastra shutdown completed');\n }\n\n // This method is only used internally for server hnadlers that require temporary persistence\n public get serverCache() {\n return this.#serverCache;\n }\n}\n","import EventEmitter from 'events';\nimport { PubSub } from './pubsub';\nimport type { Event } from './types';\n\nexport class EventEmitterPubSub extends PubSub {\n private emitter: EventEmitter;\n\n constructor() {\n super();\n this.emitter = new EventEmitter();\n }\n\n async publish(topic: string, event: Omit<Event, 'id' | 'createdAt'>): Promise<void> {\n const id = crypto.randomUUID();\n const createdAt = new Date();\n this.emitter.emit(topic, {\n ...event,\n id,\n createdAt,\n });\n }\n\n async subscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.on(topic, cb);\n }\n\n async unsubscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.off(topic, cb);\n }\n\n async flush(): Promise<void> {\n // no-op\n }\n}\n","import type { Mastra } from '..';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../scores';\nimport type { ScoringHookInput } from '../scores/types';\nimport type { MastraStorage } from '../storage';\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.name);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${hookData.scorer.id} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n const { structuredOutput, ...rest } = hookData;\n\n const runResult = await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n });\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: hookData.scorer.name,\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId: scorer.id,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n mastra.getLogger()?.error(mastraError.toString());\n }\n };\n}\n\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await storage?.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerName: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n const scorers = await mastra.getAgentById(entityId).getScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.name === scorerName) {\n scorerToUse = scorer;\n break;\n }\n }\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).getScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.name === scorerName) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerByName(scorerName);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { fetchWithRetry } from './chunk-XWJWU5OM.js';
2
- import { MastraError } from './chunk-MCOVMKIS.js';
1
+ import { fetchWithRetry } from './chunk-PJ6HF3KW.js';
2
+ import { MastraError } from './chunk-WHFNGECY.js';
3
3
  import { randomUUID } from 'crypto';
4
4
  import * as AIV4 from 'ai';
5
5
  import * as AIV5 from 'ai-v5';
@@ -2956,5 +2956,5 @@ function convertMessages(messages) {
2956
2956
  }
2957
2957
 
2958
2958
  export { DefaultGeneratedFile, DefaultGeneratedFileWithType, MessageList, convertMessages };
2959
- //# sourceMappingURL=chunk-245ANI3P.js.map
2960
- //# sourceMappingURL=chunk-245ANI3P.js.map
2959
+ //# sourceMappingURL=chunk-BUY5X7DT.js.map
2960
+ //# sourceMappingURL=chunk-BUY5X7DT.js.map