@mastra/core 0.24.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) hide show
  1. package/CHANGELOG.md +484 -139
  2. package/README.md +2 -3
  3. package/agent/message-list.d.ts +1 -0
  4. package/dist/action/index.d.ts +0 -2
  5. package/dist/action/index.d.ts.map +1 -1
  6. package/dist/agent/__tests__/mock-model.d.ts +3 -1
  7. package/dist/agent/__tests__/mock-model.d.ts.map +1 -1
  8. package/dist/agent/agent-legacy.d.ts +176 -0
  9. package/dist/agent/agent-legacy.d.ts.map +1 -0
  10. package/dist/agent/agent.d.ts +83 -229
  11. package/dist/agent/agent.d.ts.map +1 -1
  12. package/dist/agent/agent.types.d.ts +10 -25
  13. package/dist/agent/agent.types.d.ts.map +1 -1
  14. package/dist/agent/index.cjs +10 -26
  15. package/dist/agent/index.d.ts +1 -2
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +2 -2
  18. package/dist/agent/message-list/index.cjs +16 -0
  19. package/dist/agent/message-list/index.d.ts +77 -87
  20. package/dist/agent/message-list/index.d.ts.map +1 -1
  21. package/dist/agent/message-list/index.js +3 -0
  22. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +2 -2
  23. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
  24. package/dist/agent/message-list/prompt/convert-to-mastra-v1.d.ts +2 -2
  25. package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
  26. package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
  27. package/dist/agent/message-list/prompt/invalid-content-error.d.ts.map +1 -1
  28. package/dist/agent/message-list/types.d.ts +2 -1
  29. package/dist/agent/message-list/types.d.ts.map +1 -1
  30. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -2
  31. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -1
  32. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -2
  33. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -1
  34. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +1 -1
  35. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
  36. package/dist/agent/message-list/utils/convert-messages.d.ts +4 -4
  37. package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
  38. package/dist/agent/test-utils.d.ts +2 -79
  39. package/dist/agent/test-utils.d.ts.map +1 -1
  40. package/dist/agent/trip-wire.d.ts +1 -1
  41. package/dist/agent/trip-wire.d.ts.map +1 -1
  42. package/dist/agent/types.d.ts +23 -37
  43. package/dist/agent/types.d.ts.map +1 -1
  44. package/dist/agent/utils.d.ts +15 -64
  45. package/dist/agent/utils.d.ts.map +1 -1
  46. package/dist/agent/workflows/prepare-stream/index.d.ts +16 -20
  47. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  48. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +5 -7
  49. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  50. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +14 -18
  51. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  52. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +6 -6
  53. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  54. package/dist/agent/workflows/prepare-stream/schema.d.ts +10 -12
  55. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  56. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -7
  57. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  58. package/dist/ai-sdk.types.d.ts +4705 -0
  59. package/dist/base.cjs +2 -2
  60. package/dist/base.d.ts +0 -16
  61. package/dist/base.d.ts.map +1 -1
  62. package/dist/base.js +1 -1
  63. package/dist/bundler/index.cjs +2 -2
  64. package/dist/bundler/index.d.ts +2 -1
  65. package/dist/bundler/index.d.ts.map +1 -1
  66. package/dist/bundler/index.js +1 -1
  67. package/dist/cache/index.cjs +3 -3
  68. package/dist/cache/index.js +1 -1
  69. package/dist/{chunk-7J3XX4AO.cjs → chunk-2ZVKF4HP.cjs} +199 -66
  70. package/dist/chunk-2ZVKF4HP.cjs.map +1 -0
  71. package/dist/chunk-4CDL2QJT.js +649 -0
  72. package/dist/chunk-4CDL2QJT.js.map +1 -0
  73. package/dist/chunk-5WRI5ZAA.js +29 -0
  74. package/dist/{chunk-3HXBPDKN.js.map → chunk-5WRI5ZAA.js.map} +1 -1
  75. package/dist/{chunk-KAEQISOW.js → chunk-76K3IYWM.js} +5 -5
  76. package/dist/chunk-76K3IYWM.js.map +1 -0
  77. package/dist/chunk-7AHYOMHJ.js +149 -0
  78. package/dist/chunk-7AHYOMHJ.js.map +1 -0
  79. package/dist/{chunk-UZKIGB7M.cjs → chunk-BMAFVZ2D.cjs} +5 -5
  80. package/dist/chunk-BMAFVZ2D.cjs.map +1 -0
  81. package/dist/chunk-CB575O6L.cjs +12432 -0
  82. package/dist/chunk-CB575O6L.cjs.map +1 -0
  83. package/dist/{chunk-6TEQIYXV.cjs → chunk-CBAB7GOD.cjs} +15 -15
  84. package/dist/chunk-CBAB7GOD.cjs.map +1 -0
  85. package/dist/{chunk-ROS5CMJS.cjs → chunk-CD56CXVE.cjs} +63 -50
  86. package/dist/chunk-CD56CXVE.cjs.map +1 -0
  87. package/dist/{chunk-Z4RIRDU3.js → chunk-CINNK34N.js} +45 -32
  88. package/dist/chunk-CINNK34N.js.map +1 -0
  89. package/dist/{chunk-77JHIM4E.cjs → chunk-DNEURYF3.cjs} +348 -424
  90. package/dist/chunk-DNEURYF3.cjs.map +1 -0
  91. package/dist/{chunk-A5KDVZDL.cjs → chunk-DSNPWVIG.cjs} +9 -9
  92. package/dist/chunk-DSNPWVIG.cjs.map +1 -0
  93. package/dist/chunk-DZUJEN5N.cjs +32 -0
  94. package/dist/{chunk-EBVYYC2Q.cjs.map → chunk-DZUJEN5N.cjs.map} +1 -1
  95. package/dist/chunk-E7K4FTLN.cjs +273 -0
  96. package/dist/chunk-E7K4FTLN.cjs.map +1 -0
  97. package/dist/{chunk-MJMID7LX.cjs → chunk-ECFXGXWO.cjs} +609 -644
  98. package/dist/chunk-ECFXGXWO.cjs.map +1 -0
  99. package/dist/chunk-ET6UOTTU.cjs +154 -0
  100. package/dist/chunk-ET6UOTTU.cjs.map +1 -0
  101. package/dist/chunk-GGYKYORQ.cjs +2060 -0
  102. package/dist/chunk-GGYKYORQ.cjs.map +1 -0
  103. package/dist/{chunk-HLRWYUFN.js → chunk-GRBGQ2GE.js} +5 -5
  104. package/dist/{chunk-HLRWYUFN.js.map → chunk-GRBGQ2GE.js.map} +1 -1
  105. package/dist/{chunk-3VXXCPKX.js → chunk-H6CZGPZD.js} +334 -410
  106. package/dist/chunk-H6CZGPZD.js.map +1 -0
  107. package/dist/chunk-HDJFSJCK.js +2237 -0
  108. package/dist/chunk-HDJFSJCK.js.map +1 -0
  109. package/dist/{chunk-34ZCWSUA.js → chunk-I4CXL4SR.js} +6 -9
  110. package/dist/chunk-I4CXL4SR.js.map +1 -0
  111. package/dist/{chunk-3JX2Y3WH.cjs → chunk-IQO7ANVS.cjs} +18 -21
  112. package/dist/chunk-IQO7ANVS.cjs.map +1 -0
  113. package/dist/{chunk-GPWMM745.cjs → chunk-J7O6WENZ.cjs} +5 -5
  114. package/dist/{chunk-GPWMM745.cjs.map → chunk-J7O6WENZ.cjs.map} +1 -1
  115. package/dist/{chunk-PZUZNPFM.js → chunk-JJ5O45LH.js} +3 -4
  116. package/dist/chunk-JJ5O45LH.js.map +1 -0
  117. package/dist/chunk-JPGVRWWL.js +12385 -0
  118. package/dist/chunk-JPGVRWWL.js.map +1 -0
  119. package/dist/chunk-JUBFO5J3.js +15761 -0
  120. package/dist/chunk-JUBFO5J3.js.map +1 -0
  121. package/dist/{chunk-E3PG7G6E.js → chunk-JV2KH24V.js} +599 -633
  122. package/dist/chunk-JV2KH24V.js.map +1 -0
  123. package/dist/chunk-KEXGB7FK.cjs +29 -0
  124. package/dist/chunk-KEXGB7FK.cjs.map +1 -0
  125. package/dist/chunk-KIZIOFZC.js +265 -0
  126. package/dist/chunk-KIZIOFZC.js.map +1 -0
  127. package/dist/{chunk-UXG7PYML.js → chunk-KJ2SW6VA.js} +9 -9
  128. package/dist/chunk-KJ2SW6VA.js.map +1 -0
  129. package/dist/{chunk-TTELJD4F.js → chunk-L54GIUCB.js} +2 -2
  130. package/dist/chunk-L54GIUCB.js.map +1 -0
  131. package/dist/chunk-LWBQ4P4N.cjs +2240 -0
  132. package/dist/chunk-LWBQ4P4N.cjs.map +1 -0
  133. package/dist/{chunk-ABZOBBLL.cjs → chunk-MA7TEM62.cjs} +735 -562
  134. package/dist/chunk-MA7TEM62.cjs.map +1 -0
  135. package/dist/{chunk-TSNDVBUU.cjs → chunk-MR7ZWBL6.cjs} +2 -2
  136. package/dist/chunk-MR7ZWBL6.cjs.map +1 -0
  137. package/dist/chunk-MSWTA73A.cjs +15825 -0
  138. package/dist/chunk-MSWTA73A.cjs.map +1 -0
  139. package/dist/chunk-MV7KHWUT.js +2031 -0
  140. package/dist/chunk-MV7KHWUT.js.map +1 -0
  141. package/dist/{chunk-3NTOFNIU.js → chunk-OJNJA5ZI.js} +3 -3
  142. package/dist/{chunk-3NTOFNIU.js.map → chunk-OJNJA5ZI.js.map} +1 -1
  143. package/dist/chunk-QM5SRDJX.js +9022 -0
  144. package/dist/chunk-QM5SRDJX.js.map +1 -0
  145. package/dist/{chunk-WBAXXG34.cjs → chunk-QUKUN6NR.cjs} +32 -66
  146. package/dist/chunk-QUKUN6NR.cjs.map +1 -0
  147. package/dist/chunk-S6URFGCZ.js +27 -0
  148. package/dist/chunk-S6URFGCZ.js.map +1 -0
  149. package/dist/chunk-SVLMF4UZ.cjs +9033 -0
  150. package/dist/chunk-SVLMF4UZ.cjs.map +1 -0
  151. package/dist/{chunk-ZMELUU72.js → chunk-TQTAMPSC.js} +3 -3
  152. package/dist/chunk-TQTAMPSC.js.map +1 -0
  153. package/dist/{chunk-5NTO7S5I.cjs → chunk-TWH4PTDG.cjs} +2 -4
  154. package/dist/chunk-TWH4PTDG.cjs.map +1 -0
  155. package/dist/{chunk-WCHE6FJ7.js → chunk-UIZSWUKP.js} +15 -50
  156. package/dist/chunk-UIZSWUKP.js.map +1 -0
  157. package/dist/{chunk-BWGXM3D4.js → chunk-VOQ3ULMT.js} +712 -541
  158. package/dist/chunk-VOQ3ULMT.js.map +1 -0
  159. package/dist/{chunk-MCASUJWY.cjs → chunk-VOY2RXOC.cjs} +36 -59
  160. package/dist/chunk-VOY2RXOC.cjs.map +1 -0
  161. package/dist/{chunk-FHVFGVIO.js → chunk-W7UH2PWL.js} +189 -56
  162. package/dist/chunk-W7UH2PWL.js.map +1 -0
  163. package/dist/chunk-WM6CK2F3.cjs +674 -0
  164. package/dist/chunk-WM6CK2F3.cjs.map +1 -0
  165. package/dist/{chunk-PFXXH2RP.js → chunk-X7JMA3IY.js} +15 -15
  166. package/dist/chunk-X7JMA3IY.js.map +1 -0
  167. package/dist/{chunk-NR77P3TK.js → chunk-XEVG546F.js} +14 -37
  168. package/dist/chunk-XEVG546F.js.map +1 -0
  169. package/dist/{chunk-QFF5JUKT.cjs → chunk-Y63IFHEZ.cjs} +4 -4
  170. package/dist/chunk-Y63IFHEZ.cjs.map +1 -0
  171. package/dist/{chunk-B7V6NYWH.cjs → chunk-Y6ROD72V.cjs} +4 -4
  172. package/dist/{chunk-B7V6NYWH.cjs.map → chunk-Y6ROD72V.cjs.map} +1 -1
  173. package/dist/deployer/index.cjs +8 -6
  174. package/dist/deployer/index.cjs.map +1 -1
  175. package/dist/deployer/index.js +10 -1
  176. package/dist/deployer/index.js.map +1 -1
  177. package/dist/di/index.cjs +3 -3
  178. package/dist/di/index.d.ts +1 -1
  179. package/dist/di/index.js +1 -1
  180. package/dist/error/index.cjs +6 -6
  181. package/dist/error/index.d.ts +0 -1
  182. package/dist/error/index.d.ts.map +1 -1
  183. package/dist/error/index.js +1 -1
  184. package/dist/{scores → evals}/base.d.ts +20 -18
  185. package/dist/evals/base.d.ts.map +1 -0
  186. package/dist/{scores → evals}/base.test-utils.d.ts +25 -25
  187. package/dist/evals/base.test-utils.d.ts.map +1 -0
  188. package/dist/{scores → evals}/hooks.d.ts +3 -3
  189. package/dist/evals/hooks.d.ts.map +1 -0
  190. package/dist/evals/index.cjs +37 -0
  191. package/dist/evals/index.d.ts +4 -0
  192. package/dist/evals/index.d.ts.map +1 -0
  193. package/dist/evals/index.js +4 -0
  194. package/dist/{scores/run-experiment → evals/run}/index.d.ts +18 -18
  195. package/dist/evals/run/index.d.ts.map +1 -0
  196. package/dist/evals/run/scorerAccumulator.d.ts.map +1 -0
  197. package/dist/{scores → evals}/scoreTraces/index.cjs +79 -99
  198. package/dist/evals/scoreTraces/index.cjs.map +1 -0
  199. package/dist/evals/scoreTraces/index.d.ts.map +1 -0
  200. package/dist/{scores → evals}/scoreTraces/index.js +72 -92
  201. package/dist/evals/scoreTraces/index.js.map +1 -0
  202. package/dist/{scores → evals}/scoreTraces/scoreTraces.d.ts +2 -2
  203. package/dist/evals/scoreTraces/scoreTraces.d.ts.map +1 -0
  204. package/dist/{scores → evals}/scoreTraces/scoreTracesWorkflow.d.ts +11 -11
  205. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -0
  206. package/dist/{scores → evals}/scoreTraces/utils.d.ts +7 -7
  207. package/dist/evals/scoreTraces/utils.d.ts.map +1 -0
  208. package/dist/{scores → evals}/types.d.ts +22 -22
  209. package/dist/evals/types.d.ts.map +1 -0
  210. package/dist/features/index.cjs +8 -0
  211. package/dist/features/index.cjs.map +1 -0
  212. package/dist/features/index.d.ts +17 -0
  213. package/dist/features/index.d.ts.map +1 -0
  214. package/dist/features/index.js +6 -0
  215. package/dist/features/index.js.map +1 -0
  216. package/dist/hooks/index.cjs +4 -4
  217. package/dist/hooks/index.d.ts +1 -27
  218. package/dist/hooks/index.d.ts.map +1 -1
  219. package/dist/hooks/index.js +1 -1
  220. package/dist/index.cjs +2 -340
  221. package/dist/index.cjs.map +1 -1
  222. package/dist/index.d.ts +1 -18
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +1 -113
  225. package/dist/index.js.map +1 -1
  226. package/dist/integration/index.cjs +87 -10
  227. package/dist/integration/index.cjs.map +1 -1
  228. package/dist/integration/index.js +88 -1
  229. package/dist/integration/index.js.map +1 -1
  230. package/dist/integration/integration.d.ts +3 -3
  231. package/dist/integration/integration.d.ts.map +1 -1
  232. package/dist/llm/index.cjs +7 -7
  233. package/dist/llm/index.d.ts +5 -6
  234. package/dist/llm/index.d.ts.map +1 -1
  235. package/dist/llm/index.js +1 -1
  236. package/dist/llm/model/base.types.d.ts +6 -7
  237. package/dist/llm/model/base.types.d.ts.map +1 -1
  238. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  239. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  240. package/dist/llm/model/model.d.ts +7 -7
  241. package/dist/llm/model/model.d.ts.map +1 -1
  242. package/dist/llm/model/model.loop.d.ts +1 -1
  243. package/dist/llm/model/model.loop.d.ts.map +1 -1
  244. package/dist/llm/model/model.loop.types.d.ts +3 -3
  245. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  246. package/dist/llm/model/provider-types.generated.d.ts +80 -17
  247. package/dist/llm/model/resolve-model.d.ts +8 -8
  248. package/dist/llm/model/shared.types.d.ts +2 -2
  249. package/dist/llm/model/shared.types.d.ts.map +1 -1
  250. package/dist/logger/constants.d.ts +1 -1
  251. package/dist/logger/default-logger.d.ts +2 -2
  252. package/dist/logger/default-logger.d.ts.map +1 -1
  253. package/dist/logger/index.cjs +11 -11
  254. package/dist/logger/index.js +2 -2
  255. package/dist/logger/logger.d.ts +4 -4
  256. package/dist/logger/logger.d.ts.map +1 -1
  257. package/dist/logger/multi-logger.d.ts +2 -2
  258. package/dist/logger/multi-logger.d.ts.map +1 -1
  259. package/dist/logger/transport.d.ts +3 -3
  260. package/dist/logger/transport.d.ts.map +1 -1
  261. package/dist/loop/index.cjs +2 -2
  262. package/dist/loop/index.js +1 -1
  263. package/dist/loop/loop.d.ts +1 -1
  264. package/dist/loop/loop.d.ts.map +1 -1
  265. package/dist/loop/network/index.d.ts +15 -15
  266. package/dist/loop/network/index.d.ts.map +1 -1
  267. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  268. package/dist/loop/test-utils/options.d.ts.map +1 -1
  269. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  270. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  271. package/dist/loop/types.d.ts +4 -7
  272. package/dist/loop/types.d.ts.map +1 -1
  273. package/dist/loop/workflows/agentic-execution/index.d.ts +55 -55
  274. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  275. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +38 -38
  276. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  277. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +20 -20
  278. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  279. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +2 -2
  280. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  281. package/dist/loop/workflows/agentic-loop/index.d.ts +55 -55
  282. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  283. package/dist/loop/workflows/schema.d.ts +19 -20
  284. package/dist/loop/workflows/schema.d.ts.map +1 -1
  285. package/dist/loop/workflows/stream.d.ts +1 -1
  286. package/dist/loop/workflows/stream.d.ts.map +1 -1
  287. package/dist/mastra/hooks.d.ts +2 -2
  288. package/dist/mastra/hooks.d.ts.map +1 -1
  289. package/dist/mastra/index.cjs +2 -2
  290. package/dist/mastra/index.d.ts +389 -180
  291. package/dist/mastra/index.d.ts.map +1 -1
  292. package/dist/mastra/index.js +1 -1
  293. package/dist/mcp/index.cjs +41 -4
  294. package/dist/mcp/index.cjs.map +1 -1
  295. package/dist/mcp/index.d.ts +6 -4
  296. package/dist/mcp/index.d.ts.map +1 -1
  297. package/dist/mcp/index.js +39 -2
  298. package/dist/mcp/index.js.map +1 -1
  299. package/dist/mcp/types.d.ts +0 -15
  300. package/dist/mcp/types.d.ts.map +1 -1
  301. package/dist/memory/index.cjs +327 -13
  302. package/dist/memory/index.cjs.map +1 -1
  303. package/dist/memory/index.d.ts +1 -0
  304. package/dist/memory/index.d.ts.map +1 -1
  305. package/dist/memory/index.js +327 -1
  306. package/dist/memory/index.js.map +1 -1
  307. package/dist/memory/memory.d.ts +33 -57
  308. package/dist/memory/memory.d.ts.map +1 -1
  309. package/dist/memory/mock.d.ts +61 -0
  310. package/dist/memory/mock.d.ts.map +1 -0
  311. package/dist/memory/types.d.ts +48 -45
  312. package/dist/memory/types.d.ts.map +1 -1
  313. package/dist/models-dev-DNBKXHT4.js +3 -0
  314. package/dist/{models-dev-4VGIWYS3.js.map → models-dev-DNBKXHT4.js.map} +1 -1
  315. package/dist/models-dev-YBEEQIX6.cjs +12 -0
  316. package/dist/{models-dev-AXZASLL2.cjs.map → models-dev-YBEEQIX6.cjs.map} +1 -1
  317. package/dist/netlify-7G2L5VSH.js +3 -0
  318. package/dist/{netlify-VJXBII33.js.map → netlify-7G2L5VSH.js.map} +1 -1
  319. package/dist/netlify-GWNGSIRZ.cjs +12 -0
  320. package/dist/{netlify-TX6V7SJJ.cjs.map → netlify-GWNGSIRZ.cjs.map} +1 -1
  321. package/dist/{ai-tracing → observability}/context.d.ts +5 -5
  322. package/dist/observability/context.d.ts.map +1 -0
  323. package/dist/observability/index.cjs +36 -0
  324. package/dist/observability/index.d.ts +11 -0
  325. package/dist/observability/index.d.ts.map +1 -0
  326. package/dist/observability/index.js +3 -0
  327. package/dist/observability/no-op.d.ts +22 -0
  328. package/dist/observability/no-op.d.ts.map +1 -0
  329. package/dist/observability/types/index.d.ts +2 -0
  330. package/dist/observability/types/index.d.ts.map +1 -0
  331. package/dist/{ai-tracing/types.d.ts → observability/types/tracing.d.ts} +161 -107
  332. package/dist/observability/types/tracing.d.ts.map +1 -0
  333. package/dist/observability/utils.d.ts +12 -0
  334. package/dist/observability/utils.d.ts.map +1 -0
  335. package/dist/processors/index.cjs +11 -11
  336. package/dist/processors/index.d.ts +10 -9
  337. package/dist/processors/index.d.ts.map +1 -1
  338. package/dist/processors/index.js +1 -1
  339. package/dist/processors/processors/batch-parts.d.ts +2 -1
  340. package/dist/processors/processors/batch-parts.d.ts.map +1 -1
  341. package/dist/processors/processors/language-detector.d.ts +6 -5
  342. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  343. package/dist/processors/processors/moderation.d.ts +8 -7
  344. package/dist/processors/processors/moderation.d.ts.map +1 -1
  345. package/dist/processors/processors/pii-detector.d.ts +8 -7
  346. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  347. package/dist/processors/processors/prompt-injection-detector.d.ts +6 -5
  348. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  349. package/dist/processors/processors/structured-output.d.ts +3 -2
  350. package/dist/processors/processors/structured-output.d.ts.map +1 -1
  351. package/dist/processors/processors/system-prompt-scrubber.d.ts +6 -5
  352. package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
  353. package/dist/processors/processors/token-limiter.d.ts +5 -4
  354. package/dist/processors/processors/token-limiter.d.ts.map +1 -1
  355. package/dist/processors/processors/unicode-normalizer.d.ts +5 -4
  356. package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
  357. package/dist/processors/runner.d.ts +5 -5
  358. package/dist/processors/runner.d.ts.map +1 -1
  359. package/dist/provider-registry.json +175 -42
  360. package/dist/{registry-generator-DXRSYYYT.js → registry-generator-H4YNODDH.js} +2 -2
  361. package/dist/{registry-generator-DXRSYYYT.js.map → registry-generator-H4YNODDH.js.map} +1 -1
  362. package/dist/{registry-generator-6WVOHM2L.cjs → registry-generator-MK63POJO.cjs} +2 -2
  363. package/dist/{registry-generator-6WVOHM2L.cjs.map → registry-generator-MK63POJO.cjs.map} +1 -1
  364. package/dist/relevance/index.cjs +47 -13
  365. package/dist/relevance/index.cjs.map +1 -1
  366. package/dist/relevance/index.d.ts +0 -1
  367. package/dist/relevance/index.d.ts.map +1 -1
  368. package/dist/relevance/index.js +49 -1
  369. package/dist/relevance/index.js.map +1 -1
  370. package/dist/relevance/mastra-agent/index.d.ts.map +1 -1
  371. package/dist/request-context/index.cjs +12 -0
  372. package/dist/{runtime-context → request-context}/index.d.ts +1 -1
  373. package/dist/{runtime-context → request-context}/index.d.ts.map +1 -1
  374. package/dist/request-context/index.js +3 -0
  375. package/dist/server/auth.d.ts.map +1 -1
  376. package/dist/server/index.cjs +9 -25
  377. package/dist/server/index.cjs.map +1 -1
  378. package/dist/server/index.js +4 -21
  379. package/dist/server/index.js.map +1 -1
  380. package/dist/server/types.d.ts +3 -3
  381. package/dist/server/types.d.ts.map +1 -1
  382. package/dist/storage/base.d.ts +75 -143
  383. package/dist/storage/base.d.ts.map +1 -1
  384. package/dist/storage/constants.d.ts +3 -4
  385. package/dist/storage/constants.d.ts.map +1 -1
  386. package/dist/storage/domains/index.d.ts +0 -2
  387. package/dist/storage/domains/index.d.ts.map +1 -1
  388. package/dist/storage/domains/memory/base.d.ts +19 -56
  389. package/dist/storage/domains/memory/base.d.ts.map +1 -1
  390. package/dist/storage/domains/memory/inmemory.d.ts +15 -35
  391. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  392. package/dist/storage/domains/observability/base.d.ts +24 -24
  393. package/dist/storage/domains/observability/base.d.ts.map +1 -1
  394. package/dist/storage/domains/observability/inmemory.d.ts +18 -18
  395. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  396. package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
  397. package/dist/storage/domains/scores/base.d.ts +5 -5
  398. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  399. package/dist/storage/domains/scores/inmemory.d.ts +5 -5
  400. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  401. package/dist/storage/domains/workflows/base.d.ts +4 -11
  402. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  403. package/dist/storage/domains/workflows/inmemory.d.ts +4 -11
  404. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  405. package/dist/storage/index.cjs +74 -1775
  406. package/dist/storage/index.cjs.map +1 -1
  407. package/dist/storage/index.js +1 -1744
  408. package/dist/storage/index.js.map +1 -1
  409. package/dist/storage/mock.d.ts +35 -92
  410. package/dist/storage/mock.d.ts.map +1 -1
  411. package/dist/storage/types.d.ts +77 -75
  412. package/dist/storage/types.d.ts.map +1 -1
  413. package/dist/stream/MastraAgentNetworkStream.d.ts +4 -2
  414. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  415. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  416. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  417. package/dist/stream/RunOutput.d.ts +1 -0
  418. package/dist/stream/RunOutput.d.ts.map +1 -1
  419. package/dist/stream/aisdk/v4/input.d.ts +1 -1
  420. package/dist/stream/aisdk/v4/input.d.ts.map +1 -1
  421. package/dist/stream/aisdk/v5/execute.d.ts +4 -11
  422. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  423. package/dist/stream/aisdk/v5/output.d.ts +1 -1
  424. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  425. package/dist/stream/base/output.d.ts +1 -1
  426. package/dist/stream/base/output.d.ts.map +1 -1
  427. package/dist/stream/index.cjs +11 -11
  428. package/dist/stream/index.d.ts +1 -1
  429. package/dist/stream/index.d.ts.map +1 -1
  430. package/dist/stream/index.js +2 -2
  431. package/dist/stream/types.d.ts +2 -6
  432. package/dist/stream/types.d.ts.map +1 -1
  433. package/dist/test-utils/llm-mock.cjs +8 -8
  434. package/dist/test-utils/llm-mock.cjs.map +1 -1
  435. package/dist/test-utils/llm-mock.d.ts +1 -1
  436. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  437. package/dist/test-utils/llm-mock.js +3 -3
  438. package/dist/test-utils/llm-mock.js.map +1 -1
  439. package/dist/tools/index.cjs +4 -4
  440. package/dist/tools/index.js +1 -1
  441. package/dist/tools/is-vercel-tool.cjs +2 -2
  442. package/dist/tools/is-vercel-tool.js +1 -1
  443. package/dist/tools/tool-builder/builder.d.ts +3 -71
  444. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  445. package/dist/tools/tool.d.ts +25 -25
  446. package/dist/tools/tool.d.ts.map +1 -1
  447. package/dist/tools/types.d.ts +102 -11
  448. package/dist/tools/types.d.ts.map +1 -1
  449. package/dist/tools/validation.d.ts +4 -3
  450. package/dist/tools/validation.d.ts.map +1 -1
  451. package/dist/tts/index.cjs +12 -6
  452. package/dist/tts/index.cjs.map +1 -1
  453. package/dist/tts/index.d.ts +0 -1
  454. package/dist/tts/index.d.ts.map +1 -1
  455. package/dist/tts/index.js +14 -1
  456. package/dist/tts/index.js.map +1 -1
  457. package/dist/types/dynamic-argument.d.ts +3 -3
  458. package/dist/utils/fetchWithRetry.d.ts +9 -0
  459. package/dist/utils/fetchWithRetry.d.ts.map +1 -0
  460. package/dist/utils.cjs +33 -17
  461. package/dist/utils.d.ts +39 -6
  462. package/dist/utils.d.ts.map +1 -1
  463. package/dist/utils.js +1 -1
  464. package/dist/vector/embed.d.ts +1 -1
  465. package/dist/vector/embed.d.ts.map +1 -1
  466. package/dist/vector/index.cjs +80 -8
  467. package/dist/vector/index.cjs.map +1 -1
  468. package/dist/vector/index.js +80 -1
  469. package/dist/vector/index.js.map +1 -1
  470. package/dist/vector/vector.d.ts +5 -2
  471. package/dist/vector/vector.d.ts.map +1 -1
  472. package/dist/voice/composite-voice.d.ts +1 -7
  473. package/dist/voice/composite-voice.d.ts.map +1 -1
  474. package/dist/voice/index.cjs +4 -4
  475. package/dist/voice/index.js +1 -1
  476. package/dist/voice/voice.d.ts +0 -1
  477. package/dist/voice/voice.d.ts.map +1 -1
  478. package/dist/workflows/default.d.ts +35 -43
  479. package/dist/workflows/default.d.ts.map +1 -1
  480. package/dist/workflows/evented/execution-engine.d.ts +5 -3
  481. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  482. package/dist/workflows/evented/index.cjs +10 -10
  483. package/dist/workflows/evented/index.js +1 -1
  484. package/dist/workflows/evented/step-executor.d.ts +15 -13
  485. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  486. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -5
  487. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  488. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +3 -3
  489. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  490. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  491. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  492. package/dist/workflows/evented/workflow-event-processor/utils.d.ts +2 -7
  493. package/dist/workflows/evented/workflow-event-processor/utils.d.ts.map +1 -1
  494. package/dist/workflows/evented/workflow.d.ts +11 -14
  495. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  496. package/dist/workflows/execution-engine.d.ts +6 -6
  497. package/dist/workflows/execution-engine.d.ts.map +1 -1
  498. package/dist/workflows/index.cjs +22 -14
  499. package/dist/workflows/index.js +1 -1
  500. package/dist/workflows/step.d.ts +5 -5
  501. package/dist/workflows/step.d.ts.map +1 -1
  502. package/dist/workflows/types.d.ts +21 -44
  503. package/dist/workflows/types.d.ts.map +1 -1
  504. package/dist/workflows/utils.d.ts +14 -0
  505. package/dist/workflows/utils.d.ts.map +1 -1
  506. package/dist/workflows/workflow.d.ts +74 -64
  507. package/dist/workflows/workflow.d.ts.map +1 -1
  508. package/evals/scoreTraces.d.ts +1 -0
  509. package/evals.d.ts +1 -0
  510. package/features.d.ts +1 -0
  511. package/observability.d.ts +1 -0
  512. package/package.json +49 -64
  513. package/request-context.d.ts +1 -0
  514. package/src/_types/ai-sdk.types.d.ts +4705 -0
  515. package/src/llm/model/provider-types.generated.d.ts +80 -17
  516. package/agent/input-processor/processors.d.ts +0 -1
  517. package/ai-tracing.d.ts +0 -1
  518. package/dist/agent/index.warning.d.ts +0 -13
  519. package/dist/agent/index.warning.d.ts.map +0 -1
  520. package/dist/agent/input-processor/index.cjs +0 -28
  521. package/dist/agent/input-processor/index.d.ts +0 -10
  522. package/dist/agent/input-processor/index.d.ts.map +0 -1
  523. package/dist/agent/input-processor/index.js +0 -3
  524. package/dist/agent/input-processor/processors/index.d.ts +0 -6
  525. package/dist/agent/input-processor/processors/index.d.ts.map +0 -1
  526. package/dist/agent/input-processor/processors/language-detector.d.ts +0 -18
  527. package/dist/agent/input-processor/processors/language-detector.d.ts.map +0 -1
  528. package/dist/agent/input-processor/processors/moderation.d.ts +0 -18
  529. package/dist/agent/input-processor/processors/moderation.d.ts.map +0 -1
  530. package/dist/agent/input-processor/processors/pii-detector.d.ts +0 -18
  531. package/dist/agent/input-processor/processors/pii-detector.d.ts.map +0 -1
  532. package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +0 -18
  533. package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +0 -1
  534. package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +0 -18
  535. package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +0 -1
  536. package/dist/ai-tracing/context.d.ts.map +0 -1
  537. package/dist/ai-tracing/exporters/base.d.ts +0 -111
  538. package/dist/ai-tracing/exporters/base.d.ts.map +0 -1
  539. package/dist/ai-tracing/exporters/cloud.d.ts +0 -30
  540. package/dist/ai-tracing/exporters/cloud.d.ts.map +0 -1
  541. package/dist/ai-tracing/exporters/console.d.ts +0 -10
  542. package/dist/ai-tracing/exporters/console.d.ts.map +0 -1
  543. package/dist/ai-tracing/exporters/default.d.ts +0 -98
  544. package/dist/ai-tracing/exporters/default.d.ts.map +0 -1
  545. package/dist/ai-tracing/exporters/index.d.ts +0 -9
  546. package/dist/ai-tracing/exporters/index.d.ts.map +0 -1
  547. package/dist/ai-tracing/index.cjs +0 -148
  548. package/dist/ai-tracing/index.d.ts +0 -13
  549. package/dist/ai-tracing/index.d.ts.map +0 -1
  550. package/dist/ai-tracing/index.js +0 -3
  551. package/dist/ai-tracing/model-tracing.d.ts +0 -63
  552. package/dist/ai-tracing/model-tracing.d.ts.map +0 -1
  553. package/dist/ai-tracing/registry.d.ts +0 -51
  554. package/dist/ai-tracing/registry.d.ts.map +0 -1
  555. package/dist/ai-tracing/span_processors/index.d.ts +0 -5
  556. package/dist/ai-tracing/span_processors/index.d.ts.map +0 -1
  557. package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts +0 -85
  558. package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts.map +0 -1
  559. package/dist/ai-tracing/spans/base.d.ts +0 -65
  560. package/dist/ai-tracing/spans/base.d.ts.map +0 -1
  561. package/dist/ai-tracing/spans/default.d.ts +0 -13
  562. package/dist/ai-tracing/spans/default.d.ts.map +0 -1
  563. package/dist/ai-tracing/spans/index.d.ts +0 -7
  564. package/dist/ai-tracing/spans/index.d.ts.map +0 -1
  565. package/dist/ai-tracing/spans/no-op.d.ts +0 -15
  566. package/dist/ai-tracing/spans/no-op.d.ts.map +0 -1
  567. package/dist/ai-tracing/tracers/base.d.ts +0 -105
  568. package/dist/ai-tracing/tracers/base.d.ts.map +0 -1
  569. package/dist/ai-tracing/tracers/default.d.ts +0 -7
  570. package/dist/ai-tracing/tracers/default.d.ts.map +0 -1
  571. package/dist/ai-tracing/tracers/index.d.ts +0 -6
  572. package/dist/ai-tracing/tracers/index.d.ts.map +0 -1
  573. package/dist/ai-tracing/types.d.ts.map +0 -1
  574. package/dist/ai-tracing/utils.d.ts +0 -68
  575. package/dist/ai-tracing/utils.d.ts.map +0 -1
  576. package/dist/base.warning.d.ts +0 -9
  577. package/dist/base.warning.d.ts.map +0 -1
  578. package/dist/bundler/index.warning.d.ts +0 -9
  579. package/dist/bundler/index.warning.d.ts.map +0 -1
  580. package/dist/chunk-253FBVD4.cjs +0 -1303
  581. package/dist/chunk-253FBVD4.cjs.map +0 -1
  582. package/dist/chunk-2B3VLGTH.js +0 -87
  583. package/dist/chunk-2B3VLGTH.js.map +0 -1
  584. package/dist/chunk-34ZCWSUA.js.map +0 -1
  585. package/dist/chunk-3HXBPDKN.js +0 -105
  586. package/dist/chunk-3JX2Y3WH.cjs.map +0 -1
  587. package/dist/chunk-3VXXCPKX.js.map +0 -1
  588. package/dist/chunk-4R2TBRS7.cjs +0 -191
  589. package/dist/chunk-4R2TBRS7.cjs.map +0 -1
  590. package/dist/chunk-5NTO7S5I.cjs.map +0 -1
  591. package/dist/chunk-6C7VGVK4.js +0 -267
  592. package/dist/chunk-6C7VGVK4.js.map +0 -1
  593. package/dist/chunk-6KOL2B3A.cjs +0 -75
  594. package/dist/chunk-6KOL2B3A.cjs.map +0 -1
  595. package/dist/chunk-6TEQIYXV.cjs.map +0 -1
  596. package/dist/chunk-6VOPKVYH.cjs +0 -57
  597. package/dist/chunk-6VOPKVYH.cjs.map +0 -1
  598. package/dist/chunk-77JHIM4E.cjs.map +0 -1
  599. package/dist/chunk-7J3XX4AO.cjs.map +0 -1
  600. package/dist/chunk-A5KDVZDL.cjs.map +0 -1
  601. package/dist/chunk-ABZOBBLL.cjs.map +0 -1
  602. package/dist/chunk-AQGLVU53.cjs +0 -603
  603. package/dist/chunk-AQGLVU53.cjs.map +0 -1
  604. package/dist/chunk-BLUDYAPI.js +0 -596
  605. package/dist/chunk-BLUDYAPI.js.map +0 -1
  606. package/dist/chunk-BWGXM3D4.js.map +0 -1
  607. package/dist/chunk-C7OVZMPW.cjs +0 -91
  608. package/dist/chunk-C7OVZMPW.cjs.map +0 -1
  609. package/dist/chunk-DMBN72QF.cjs +0 -39
  610. package/dist/chunk-DMBN72QF.cjs.map +0 -1
  611. package/dist/chunk-DTTOVV72.js +0 -2880
  612. package/dist/chunk-DTTOVV72.js.map +0 -1
  613. package/dist/chunk-E3PG7G6E.js.map +0 -1
  614. package/dist/chunk-EBVYYC2Q.cjs +0 -111
  615. package/dist/chunk-FHVFGVIO.js.map +0 -1
  616. package/dist/chunk-GB5BIA4V.js +0 -167
  617. package/dist/chunk-GB5BIA4V.js.map +0 -1
  618. package/dist/chunk-HEQTUMUA.cjs +0 -271
  619. package/dist/chunk-HEQTUMUA.cjs.map +0 -1
  620. package/dist/chunk-HF3GZRFP.cjs +0 -9
  621. package/dist/chunk-HF3GZRFP.cjs.map +0 -1
  622. package/dist/chunk-JVV5LREI.js +0 -431
  623. package/dist/chunk-JVV5LREI.js.map +0 -1
  624. package/dist/chunk-KAEQISOW.js.map +0 -1
  625. package/dist/chunk-KDX3ZMQ2.js +0 -12
  626. package/dist/chunk-KDX3ZMQ2.js.map +0 -1
  627. package/dist/chunk-LG5B3KIW.js +0 -1215
  628. package/dist/chunk-LG5B3KIW.js.map +0 -1
  629. package/dist/chunk-LZUSZT7R.cjs +0 -170
  630. package/dist/chunk-LZUSZT7R.cjs.map +0 -1
  631. package/dist/chunk-MCASUJWY.cjs.map +0 -1
  632. package/dist/chunk-MJMID7LX.cjs.map +0 -1
  633. package/dist/chunk-MKCC5K77.js +0 -90
  634. package/dist/chunk-MKCC5K77.js.map +0 -1
  635. package/dist/chunk-NPNGPMT2.js +0 -39
  636. package/dist/chunk-NPNGPMT2.js.map +0 -1
  637. package/dist/chunk-NR77P3TK.js.map +0 -1
  638. package/dist/chunk-NUAURT4I.cjs +0 -82
  639. package/dist/chunk-NUAURT4I.cjs.map +0 -1
  640. package/dist/chunk-OIT3PCWA.js +0 -72
  641. package/dist/chunk-OIT3PCWA.js.map +0 -1
  642. package/dist/chunk-P35FNLTQ.cjs +0 -2936
  643. package/dist/chunk-P35FNLTQ.cjs.map +0 -1
  644. package/dist/chunk-PFXXH2RP.js.map +0 -1
  645. package/dist/chunk-PZUZNPFM.js.map +0 -1
  646. package/dist/chunk-QFF5JUKT.cjs.map +0 -1
  647. package/dist/chunk-RKXWLG33.js +0 -7
  648. package/dist/chunk-RKXWLG33.js.map +0 -1
  649. package/dist/chunk-ROS5CMJS.cjs.map +0 -1
  650. package/dist/chunk-SJMKDSRF.js +0 -179
  651. package/dist/chunk-SJMKDSRF.js.map +0 -1
  652. package/dist/chunk-SSULK22X.cjs +0 -14
  653. package/dist/chunk-SSULK22X.cjs.map +0 -1
  654. package/dist/chunk-TSNDVBUU.cjs.map +0 -1
  655. package/dist/chunk-TTELJD4F.js.map +0 -1
  656. package/dist/chunk-TX4TTPYJ.cjs +0 -436
  657. package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
  658. package/dist/chunk-UXG7PYML.js.map +0 -1
  659. package/dist/chunk-UZKIGB7M.cjs.map +0 -1
  660. package/dist/chunk-VF676YCO.cjs +0 -150
  661. package/dist/chunk-VF676YCO.cjs.map +0 -1
  662. package/dist/chunk-VQASQG5D.js +0 -55
  663. package/dist/chunk-VQASQG5D.js.map +0 -1
  664. package/dist/chunk-WBAXXG34.cjs.map +0 -1
  665. package/dist/chunk-WCHE6FJ7.js.map +0 -1
  666. package/dist/chunk-WM4RO23J.js +0 -145
  667. package/dist/chunk-WM4RO23J.js.map +0 -1
  668. package/dist/chunk-Z4RIRDU3.js.map +0 -1
  669. package/dist/chunk-ZABG3SZ2.cjs +0 -93
  670. package/dist/chunk-ZABG3SZ2.cjs.map +0 -1
  671. package/dist/chunk-ZISECZZO.js +0 -72
  672. package/dist/chunk-ZISECZZO.js.map +0 -1
  673. package/dist/chunk-ZMELUU72.js.map +0 -1
  674. package/dist/deployer/index.warning.d.ts +0 -9
  675. package/dist/deployer/index.warning.d.ts.map +0 -1
  676. package/dist/eval/evaluation.d.ts +0 -14
  677. package/dist/eval/evaluation.d.ts.map +0 -1
  678. package/dist/eval/index.cjs +0 -16
  679. package/dist/eval/index.d.ts +0 -4
  680. package/dist/eval/index.d.ts.map +0 -1
  681. package/dist/eval/index.js +0 -3
  682. package/dist/eval/metric.d.ts +0 -8
  683. package/dist/eval/metric.d.ts.map +0 -1
  684. package/dist/eval/types.d.ts +0 -9
  685. package/dist/eval/types.d.ts.map +0 -1
  686. package/dist/integration/index.warning.d.ts +0 -3
  687. package/dist/integration/index.warning.d.ts.map +0 -1
  688. package/dist/integration/integration.warning.d.ts +0 -5
  689. package/dist/integration/integration.warning.d.ts.map +0 -1
  690. package/dist/integration/openapi-toolset.warning.d.ts +0 -5
  691. package/dist/integration/openapi-toolset.warning.d.ts.map +0 -1
  692. package/dist/loop/telemetry/index.d.ts +0 -36
  693. package/dist/loop/telemetry/index.d.ts.map +0 -1
  694. package/dist/loop/telemetry/noop.d.ts +0 -3
  695. package/dist/loop/telemetry/noop.d.ts.map +0 -1
  696. package/dist/loop/test-utils/mockTracer.d.ts +0 -47
  697. package/dist/loop/test-utils/mockTracer.d.ts.map +0 -1
  698. package/dist/loop/test-utils/telemetry.d.ts +0 -6
  699. package/dist/loop/test-utils/telemetry.d.ts.map +0 -1
  700. package/dist/memory/index.warning.d.ts +0 -6
  701. package/dist/memory/index.warning.d.ts.map +0 -1
  702. package/dist/models-dev-4VGIWYS3.js +0 -3
  703. package/dist/models-dev-AXZASLL2.cjs +0 -12
  704. package/dist/netlify-TX6V7SJJ.cjs +0 -12
  705. package/dist/netlify-VJXBII33.js +0 -3
  706. package/dist/relevance/cohere/index.d.ts +0 -9
  707. package/dist/relevance/cohere/index.d.ts.map +0 -1
  708. package/dist/runtime-context/index.cjs +0 -12
  709. package/dist/runtime-context/index.js +0 -3
  710. package/dist/scores/base.d.ts.map +0 -1
  711. package/dist/scores/base.test-utils.d.ts.map +0 -1
  712. package/dist/scores/hooks.d.ts.map +0 -1
  713. package/dist/scores/index.cjs +0 -37
  714. package/dist/scores/index.cjs.map +0 -1
  715. package/dist/scores/index.d.ts +0 -4
  716. package/dist/scores/index.d.ts.map +0 -1
  717. package/dist/scores/index.js +0 -4
  718. package/dist/scores/index.js.map +0 -1
  719. package/dist/scores/run-experiment/index.d.ts.map +0 -1
  720. package/dist/scores/run-experiment/scorerAccumulator.d.ts.map +0 -1
  721. package/dist/scores/scoreTraces/index.cjs.map +0 -1
  722. package/dist/scores/scoreTraces/index.d.ts.map +0 -1
  723. package/dist/scores/scoreTraces/index.js.map +0 -1
  724. package/dist/scores/scoreTraces/scoreTraces.d.ts.map +0 -1
  725. package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +0 -1
  726. package/dist/scores/scoreTraces/utils.d.ts.map +0 -1
  727. package/dist/scores/types.d.ts.map +0 -1
  728. package/dist/storage/base.warning.d.ts +0 -8
  729. package/dist/storage/base.warning.d.ts.map +0 -1
  730. package/dist/storage/domains/legacy-evals/base.d.ts +0 -13
  731. package/dist/storage/domains/legacy-evals/base.d.ts.map +0 -1
  732. package/dist/storage/domains/legacy-evals/index.d.ts +0 -2
  733. package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
  734. package/dist/storage/domains/legacy-evals/inmemory.d.ts +0 -17
  735. package/dist/storage/domains/legacy-evals/inmemory.d.ts.map +0 -1
  736. package/dist/storage/domains/traces/base.d.ts +0 -14
  737. package/dist/storage/domains/traces/base.d.ts.map +0 -1
  738. package/dist/storage/domains/traces/index.d.ts +0 -3
  739. package/dist/storage/domains/traces/index.d.ts.map +0 -1
  740. package/dist/storage/domains/traces/inmemory.d.ts +0 -22
  741. package/dist/storage/domains/traces/inmemory.d.ts.map +0 -1
  742. package/dist/storage/index.warning.d.ts +0 -3
  743. package/dist/storage/index.warning.d.ts.map +0 -1
  744. package/dist/telemetry/composite-exporter.d.ts +0 -10
  745. package/dist/telemetry/composite-exporter.d.ts.map +0 -1
  746. package/dist/telemetry/index.cjs +0 -32
  747. package/dist/telemetry/index.cjs.map +0 -1
  748. package/dist/telemetry/index.d.ts +0 -6
  749. package/dist/telemetry/index.d.ts.map +0 -1
  750. package/dist/telemetry/index.js +0 -3
  751. package/dist/telemetry/index.js.map +0 -1
  752. package/dist/telemetry/otel-vendor.cjs +0 -105
  753. package/dist/telemetry/otel-vendor.cjs.map +0 -1
  754. package/dist/telemetry/otel-vendor.d.ts +0 -11
  755. package/dist/telemetry/otel-vendor.d.ts.map +0 -1
  756. package/dist/telemetry/otel-vendor.js +0 -59
  757. package/dist/telemetry/otel-vendor.js.map +0 -1
  758. package/dist/telemetry/storage-exporter.d.ts +0 -21
  759. package/dist/telemetry/storage-exporter.d.ts.map +0 -1
  760. package/dist/telemetry/telemetry.d.ts +0 -59
  761. package/dist/telemetry/telemetry.d.ts.map +0 -1
  762. package/dist/telemetry/telemetry.decorators.d.ts +0 -15
  763. package/dist/telemetry/telemetry.decorators.d.ts.map +0 -1
  764. package/dist/telemetry/types.d.ts +0 -74
  765. package/dist/telemetry/types.d.ts.map +0 -1
  766. package/dist/telemetry/utility.d.ts +0 -15
  767. package/dist/telemetry/utility.d.ts.map +0 -1
  768. package/dist/tools/index.warning.d.ts +0 -8
  769. package/dist/tools/index.warning.d.ts.map +0 -1
  770. package/dist/tts/index.warning.d.ts +0 -7
  771. package/dist/tts/index.warning.d.ts.map +0 -1
  772. package/dist/vector/index.warning.d.ts +0 -6
  773. package/dist/vector/index.warning.d.ts.map +0 -1
  774. package/dist/workflows/index.warning.d.ts +0 -6
  775. package/dist/workflows/index.warning.d.ts.map +0 -1
  776. package/dist/workflows/legacy/index.cjs +0 -92
  777. package/dist/workflows/legacy/index.cjs.map +0 -1
  778. package/dist/workflows/legacy/index.d.ts +0 -5
  779. package/dist/workflows/legacy/index.d.ts.map +0 -1
  780. package/dist/workflows/legacy/index.js +0 -3
  781. package/dist/workflows/legacy/index.js.map +0 -1
  782. package/dist/workflows/legacy/machine.d.ts +0 -386
  783. package/dist/workflows/legacy/machine.d.ts.map +0 -1
  784. package/dist/workflows/legacy/step.d.ts +0 -15
  785. package/dist/workflows/legacy/step.d.ts.map +0 -1
  786. package/dist/workflows/legacy/types.d.ts +0 -397
  787. package/dist/workflows/legacy/types.d.ts.map +0 -1
  788. package/dist/workflows/legacy/utils.d.ts +0 -68
  789. package/dist/workflows/legacy/utils.d.ts.map +0 -1
  790. package/dist/workflows/legacy/workflow-instance.d.ts +0 -97
  791. package/dist/workflows/legacy/workflow-instance.d.ts.map +0 -1
  792. package/dist/workflows/legacy/workflow.d.ts +0 -109
  793. package/dist/workflows/legacy/workflow.d.ts.map +0 -1
  794. package/dist/workflows/workflow.warning.d.ts +0 -9
  795. package/dist/workflows/workflow.warning.d.ts.map +0 -1
  796. package/eval.d.ts +0 -1
  797. package/runtime-context.d.ts +0 -1
  798. package/scores/scoreTraces.d.ts +0 -1
  799. package/scores.d.ts +0 -1
  800. package/telemetry/otel-vendor.d.ts +0 -1
  801. package/telemetry.d.ts +0 -1
  802. package/workflows/legacy.d.ts +0 -1
  803. /package/dist/agent/{input-processor → message-list}/index.cjs.map +0 -0
  804. /package/dist/agent/{input-processor → message-list}/index.js.map +0 -0
  805. /package/dist/{ai-tracing → evals}/index.cjs.map +0 -0
  806. /package/dist/{ai-tracing → evals}/index.js.map +0 -0
  807. /package/dist/{scores/run-experiment → evals/run}/scorerAccumulator.d.ts +0 -0
  808. /package/dist/{scores → evals}/scoreTraces/index.d.ts +0 -0
  809. /package/dist/{eval → observability}/index.cjs.map +0 -0
  810. /package/dist/{eval → observability}/index.js.map +0 -0
  811. /package/dist/{runtime-context → request-context}/index.cjs.map +0 -0
  812. /package/dist/{runtime-context → request-context}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/events/event-emitter.ts","../src/mastra/hooks.ts","../src/mastra/index.ts"],"names":[],"mappings":"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","file":"chunk-VOQ3ULMT.js","sourcesContent":["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 pMap from 'p-map';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../evals';\nimport type { ScoringHookInput } from '../evals/types';\nimport type { Mastra } from '../mastra';\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 const scorerId = scorer.id;\n\n if (!scorerId) {\n mastra.getLogger()?.warn('Scorer ID not found, skipping score validation and saving');\n return;\n }\n\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorerId);\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 ${scorerId} 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 let spanId;\n let traceId;\n const currentSpan = hookData.tracingContext?.currentSpan;\n if (currentSpan && currentSpan.isValid) {\n spanId = currentSpan.id;\n traceId = currentSpan.traceId;\n }\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: scorerId,\n spanId,\n traceId,\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n await validateAndSaveScore(storage, payload);\n\n if (currentSpan && spanId && traceId) {\n await pMap(\n currentSpan.observabilityInstance.getExporters(),\n async exporter => {\n if (exporter.addScoreToTrace) {\n try {\n await exporter.addScoreToTrace({\n traceId: traceId,\n spanId: spanId,\n score: runResult.score as number,\n reason: runResult.reason as string,\n scorerName: scorerToUse.scorer.id,\n metadata: {\n ...(currentSpan.metadata ?? {}),\n },\n });\n } catch (error) {\n // Log error but don't fail the hook if exporter fails\n mastra.getLogger()?.error(`Failed to add score to trace via exporter: ${error}`);\n }\n }\n },\n { concurrency: 3 },\n );\n }\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, scorerId: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n const scorers = await mastra.getAgentById(entityId).listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerById(scorerId);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n","import { randomUUID } from 'node:crypto';\nimport type { Agent } from '../agent';\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 type { MastraScorer } from '../evals';\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 { ObservabilityEntrypoint } from '../observability';\nimport { NoOpObservability } from '../observability';\nimport type { Processor } from '../processors';\nimport type { Middleware, ServerConfig } from '../server/types';\nimport type { MastraStorage } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport type { ToolAction } from '../tools';\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 { createOnScorerHook } from './hooks';\n\n/**\n * Configuration interface for initializing a Mastra instance.\n *\n * The Config interface defines all the optional components that can be registered\n * with a Mastra instance, including agents, workflows, storage, logging, and more.\n *\n * @template TAgents - Record of agent instances keyed by their names\n * @template TWorkflows - Record of workflow instances\n * @template TVectors - Record of vector store instances\n * @template TTTS - Record of text-to-speech instances\n * @template TLogger - Logger implementation type\n * @template TVNextNetworks - Record of agent network instances\n * @template TMCPServers - Record of MCP server instances\n * @template TScorers - Record of scorer instances\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * weatherAgent: new Agent({\n * id: 'weather-agent',\n * name: 'Weather Agent',\n * instructions: 'You help with weather information',\n * model: 'openai/gpt-5'\n * })\n * },\n * storage: new LibSQLStore({ id: 'mastra-storage', url: ':memory:' }),\n * logger: new PinoLogger({ name: 'MyApp' })\n * });\n * ```\n */\nexport interface Config<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\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 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 TTools extends Record<string, ToolAction<any, any, any, any>> = Record<string, ToolAction<any, any, any, any>>,\n TProcessors extends Record<string, Processor> = Record<string, Processor>,\n> {\n /**\n * Agents are autonomous systems that can make decisions and take actions.\n */\n agents?: TAgents;\n\n /**\n * Storage provider for persisting data, conversation history, and workflow state.\n * Required for agent memory and workflow persistence.\n */\n storage?: MastraStorage;\n\n /**\n * Vector stores for semantic search and retrieval-augmented generation (RAG).\n * Used for storing and querying embeddings.\n */\n vectors?: TVectors;\n\n /**\n * Logger implementation for application logging and debugging.\n * Set to `false` to disable logging entirely.\n * @default `INFO` level in development, `WARN` in production.\n */\n logger?: TLogger | false;\n\n /**\n * Workflows provide type-safe, composable task execution with built-in error handling.\n */\n workflows?: TWorkflows;\n\n /**\n * Text-to-speech providers for voice synthesis capabilities.\n */\n tts?: TTTS;\n\n /**\n * Observability entrypoint for tracking model interactions and tracing.\n * Pass an instance of the Observability class from @mastra/observability.\n *\n * @example\n * ```typescript\n * import { Observability } from '@mastra/observability';\n *\n * new Mastra({\n * observability: new Observability({\n * default: { enabled: true }\n * })\n * })\n * ```\n */\n observability?: ObservabilityEntrypoint;\n\n /**\n * Custom ID generator function for creating unique identifiers.\n * @default `crypto.randomUUID()`\n */\n idGenerator?: MastraIdGenerator;\n\n /**\n * Deployment provider for publishing applications to cloud platforms.\n */\n deployer?: MastraDeployer;\n\n /**\n * Server configuration for HTTP endpoints and middleware.\n */\n server?: ServerConfig;\n\n /**\n * MCP servers provide tools and resources that agents can use.\n */\n mcpServers?: TMCPServers;\n\n /**\n * Bundler configuration for packaging and deployment.\n */\n bundler?: BundlerConfig;\n\n /**\n * Pub/sub system for event-driven communication between components.\n * @default EventEmitterPubSub\n */\n pubsub?: PubSub;\n\n /**\n * Scorers help assess the quality of agent responses and workflow outputs.\n */\n scorers?: TScorers;\n\n /**\n * Tools are reusable functions that agents can use to interact with external systems.\n */\n tools?: TTools;\n\n /**\n * Processors transform inputs and outputs for agents and workflows.\n */\n processors?: TProcessors;\n\n /**\n * Event handlers for custom application events.\n * Maps event topics to handler functions for event-driven architectures.\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/**\n * The central orchestrator for Mastra applications, managing agents, workflows, storage, logging, observability, and more.\n *\n * The `Mastra` class serves as the main entry point and registry for all components in a Mastra application.\n * It coordinates the interaction between agents, workflows, storage systems, and other services.\n\n * @template TAgents - Record of agent instances keyed by their names\n * @template TWorkflows - Record of modern workflow instances\n * @template TVectors - Record of vector store instances for semantic search and RAG\n * @template TTTS - Record of text-to-speech provider instances\n * @template TLogger - Logger implementation type for application logging\n * @template TVNextNetworks - Record of next-generation agent network instances\n * @template TMCPServers - Record of Model Context Protocol server instances\n * @template TScorers - Record of evaluation scorer instances for measuring AI performance\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * weatherAgent: new Agent({\n * id: 'weather-agent',\n * name: 'Weather Agent',\n * instructions: 'You provide weather information',\n * model: 'openai/gpt-5',\n * tools: [getWeatherTool]\n * })\n * },\n * workflows: { dataWorkflow },\n * storage: new LibSQLStore({ id: 'mastra-storage', url: ':memory:' }),\n * logger: new PinoLogger({ name: 'MyApp' })\n * });\n * ```\n */\nexport class Mastra<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\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 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 TTools extends Record<string, ToolAction<any, any, any, any>> = Record<string, ToolAction<any, any, any, any>>,\n TProcessors extends Record<string, Processor> = Record<string, Processor>,\n> {\n #vectors?: TVectors;\n #agents: TAgents;\n #logger: TLogger;\n #workflows: TWorkflows;\n #observability: ObservabilityEntrypoint;\n #tts?: TTTS;\n #deployer?: MastraDeployer;\n #serverMiddleware: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path: string;\n }> = [];\n\n #storage?: MastraStorage;\n #scorers?: TScorers;\n #tools?: TTools;\n #processors?: TProcessors;\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 get pubsub() {\n return this.#pubsub;\n }\n\n /**\n * Gets the currently configured ID generator function.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * idGenerator: () => `custom-${Date.now()}`\n * });\n * const generator = mastra.getIdGenerator();\n * console.log(generator?.()); // \"custom-1234567890\"\n * ```\n */\n public getIdGenerator() {\n return this.#idGenerator;\n }\n\n /**\n * Generates a unique identifier using the configured generator or defaults to `crypto.randomUUID()`.\n *\n * This method is used internally by Mastra for creating unique IDs for various entities\n * like workflow runs, agent conversations, and other resources that need unique identification.\n *\n * @throws {MastraError} When the custom ID generator returns an empty string\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const id = mastra.generateId();\n * console.log(id); // \"550e8400-e29b-41d4-a716-446655440000\"\n * ```\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 /**\n * Sets a custom ID generator function for creating unique identifiers.\n *\n * The ID generator function will be used by `generateId()` instead of the default\n * `crypto.randomUUID()`. This is useful for creating application-specific ID formats\n * or integrating with existing ID generation systems.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * mastra.setIdGenerator(() => `custom-${Date.now()}`);\n * const id = mastra.generateId();\n * console.log(id); // \"custom-1234567890\"\n * ```\n */\n public setIdGenerator(idGenerator: MastraIdGenerator) {\n this.#idGenerator = idGenerator;\n }\n\n /**\n * Creates a new Mastra instance with the provided configuration.\n *\n * The constructor initializes all the components specified in the config, sets up\n * internal systems like logging and observability, and registers components with each other.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * assistant: new Agent({\n * id: 'assistant',\n * name: 'Assistant',\n * instructions: 'You are a helpful assistant',\n * model: 'openai/gpt-5'\n * })\n * },\n * storage: new PostgresStore({\n * connectionString: process.env.DATABASE_URL\n * }),\n * logger: new PinoLogger({ name: 'MyApp' }),\n * observability: { default: { enabled: true }},\n * });\n * ```\n */\n constructor(\n config?: Config<TAgents, TWorkflows, TVectors, TTTS, TLogger, TMCPServers, TScorers, TTools, TProcessors>,\n ) {\n // This is only used internally for server handlers that require temporary persistence\n this.#serverCache = new InMemoryServerCache();\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 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 // Validate and assign observability instance\n if (config?.observability) {\n if (typeof config.observability.getDefaultInstance === 'function') {\n this.#observability = config.observability;\n // Set logger early\n this.#observability.setLogger({ logger: this.#logger });\n } else {\n this.#logger?.warn(\n 'Observability configuration error: Expected an Observability instance, but received a config object. ' +\n 'Import and instantiate: import { Observability } from \"@mastra/observability\"; ' +\n 'then pass: observability: new Observability({ default: { enabled: true } }). ' +\n 'Observability has been disabled.',\n );\n this.#observability = new NoOpObservability();\n }\n } else {\n this.#observability = new NoOpObservability();\n }\n\n this.#storage = storage;\n\n // Initialize all primitive storage objects first, we need to do this before adding primitives to avoid circular dependencies\n this.#vectors = {} as TVectors;\n this.#mcpServers = {} as TMCPServers;\n this.#tts = {} as TTTS;\n this.#agents = {} as TAgents;\n this.#scorers = {} as TScorers;\n this.#tools = {} as TTools;\n this.#processors = {} as TProcessors;\n this.#workflows = {} as TWorkflows;\n\n // Now add primitives - order matters for auto-registration\n // Tools and processors should be added before agents and MCP servers that might use them\n if (config?.tools) {\n Object.entries(config.tools).forEach(([key, tool]) => {\n this.addTool(tool, key);\n });\n }\n\n if (config?.processors) {\n Object.entries(config.processors).forEach(([key, processor]) => {\n this.addProcessor(processor, key);\n });\n }\n\n if (config?.vectors) {\n Object.entries(config.vectors).forEach(([key, vector]) => {\n this.addVector(vector, key);\n });\n }\n\n if (config?.scorers) {\n Object.entries(config.scorers).forEach(([key, scorer]) => {\n this.addScorer(scorer, key);\n });\n }\n\n if (config?.workflows) {\n Object.entries(config.workflows).forEach(([key, workflow]) => {\n this.addWorkflow(workflow, key);\n });\n }\n\n // Add MCP servers and agents last since they might reference other primitives\n if (config?.mcpServers) {\n Object.entries(config.mcpServers).forEach(([key, server]) => {\n this.addMCPServer(server, key);\n });\n }\n\n if (config?.agents) {\n Object.entries(config.agents).forEach(([key, agent]) => {\n this.addAgent(agent, key);\n });\n }\n\n if (config?.tts) {\n Object.entries(config.tts).forEach(([key, tts]) => {\n (this.#tts as Record<string, MastraTTS>)[key] = tts;\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 Initialize observability with Mastra context (after storage configured)\n */\n this.#observability.setMastraContext({ mastra: this });\n\n this.setLogger({ logger });\n }\n\n /**\n * Retrieves a registered agent by its name.\n *\n * @template TAgentName - The specific agent name type from the registered agents\n * @throws {MastraError} When the agent with the specified name is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * weatherAgent: new Agent({\n * id: 'weather-agent',\n * name: 'weather-agent',\n * instructions: 'You provide weather information',\n * model: 'openai/gpt-5'\n * })\n * }\n * });\n * const agent = mastra.getAgent('weatherAgent');\n * const response = await agent.generate('What is the weather?');\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 /**\n * Retrieves a registered agent by its unique ID.\n *\n * This method searches for an agent using its internal ID property. If no agent\n * is found with the given ID, it also attempts to find an agent using the ID as\n * a name.\n *\n * @throws {MastraError} When no agent is found with the specified ID\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * assistant: new Agent({\n * id: 'assistant',\n * name: 'assistant',\n * instructions: 'You are a helpful assistant',\n * model: 'openai/gpt-5'\n * })\n * }\n * });\n *\n * const assistant = mastra.getAgent('assistant');\n * const sameAgent = mastra.getAgentById(assistant.id);\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);\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 /**\n * Returns all registered agents as a record keyed by their names.\n *\n * This method provides access to the complete registry of agents, allowing you to\n * iterate over them, check what agents are available, or perform bulk operations.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: {\n * weatherAgent: new Agent({ id: 'weather-agent', name: 'weather', model: 'openai/gpt-4o' }),\n * supportAgent: new Agent({ id: 'support-agent', name: 'support', model: 'openai/gpt-4o' })\n * }\n * });\n *\n * const allAgents = mastra.listAgents();\n * console.log(Object.keys(allAgents)); // ['weatherAgent', 'supportAgent']\n * ```\n */\n public listAgents() {\n return this.#agents;\n }\n\n /**\n * Adds a new agent to the Mastra instance.\n *\n * This method allows dynamic registration of agents after the Mastra instance\n * has been created. The agent will be initialized with the current logger.\n *\n * @throws {MastraError} When an agent with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newAgent = new Agent({\n * id: 'chat-agent',\n * name: 'Chat Assistant',\n * model: 'openai/gpt-4o'\n * });\n * mastra.addAgent(newAgent); // Uses agent.id as key\n * // or\n * mastra.addAgent(newAgent, 'customKey'); // Uses custom key\n * ```\n */\n public addAgent<A extends Agent<any>>(agent: A, key?: string): void {\n const agentKey = key || agent.id;\n const agents = this.#agents as Record<string, Agent<any>>;\n if (agents[agentKey]) {\n const logger = this.getLogger();\n logger.debug(`Agent with key ${agentKey} already exists. Skipping addition.`);\n return;\n }\n\n // Initialize the agent\n agent.__setLogger(this.#logger);\n agent.__registerMastra(this);\n agent.__registerPrimitives({\n logger: this.getLogger(),\n storage: this.getStorage(),\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n agents[agentKey] = agent;\n }\n\n /**\n * Retrieves a registered vector store by its name.\n *\n * @template TVectorName - The specific vector store name type from the registered vectors\n * @throws {MastraError} When the vector store with the specified name is not found\n *\n * @example Using a vector store for semantic search\n * ```typescript\n * import { PineconeVector } from '@mastra/pinecone';\n * import { OpenAIEmbedder } from '@mastra/embedders';\n *\n * const mastra = new Mastra({\n * vectors: {\n * knowledge: new PineconeVector({\n * apiKey: process.env.PINECONE_API_KEY,\n * indexName: 'knowledge-base',\n * embedder: new OpenAIEmbedder({\n * apiKey: process.env.OPENAI_API_KEY,\n * model: 'text-embedding-3-small'\n * })\n * }),\n * products: new PineconeVector({\n * apiKey: process.env.PINECONE_API_KEY,\n * indexName: 'product-catalog'\n * })\n * }\n * });\n *\n * // Get a vector store and perform semantic search\n * const knowledgeBase = mastra.getVector('knowledge');\n * const results = await knowledgeBase.query({\n * query: 'How to reset password?',\n * topK: 5\n * });\n *\n * console.log('Relevant documents:', results);\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 /**\n * Retrieves a specific vector store instance by its ID.\n *\n * This method searches for a vector store by its internal ID property.\n * If not found by ID, it falls back to searching by registration key.\n *\n * @throws {MastraError} When the specified vector store is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * vectors: {\n * embeddings: chromaVector\n * }\n * });\n *\n * const vectorStore = mastra.getVectorById('chroma-123');\n * ```\n */\n public getVectorById(id: string): MastraVector {\n const allVectors = this.#vectors ?? ({} as Record<string, MastraVector>);\n\n // First try to find by internal ID\n for (const vector of Object.values(allVectors)) {\n if (vector.id === id) {\n return vector as MastraVector;\n }\n }\n\n // Fallback to searching by registration key\n const vectorByKey = allVectors[id];\n if (vectorByKey) {\n return vectorByKey;\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_VECTOR_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Vector store with id ${id} not found`,\n details: {\n status: 404,\n vectorId: String(id),\n vectors: Object.keys(allVectors).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n /**\n * Returns all registered vector stores as a record keyed by their names.\n *\n * @example Listing all vector stores\n * ```typescript\n * const mastra = new Mastra({\n * vectors: {\n * documents: new PineconeVector({ indexName: 'docs' }),\n * images: new PineconeVector({ indexName: 'images' }),\n * products: new ChromaVector({ collectionName: 'products' })\n * }\n * });\n *\n * const allVectors = mastra.getVectors();\n * console.log(Object.keys(allVectors)); // ['documents', 'images', 'products']\n *\n * // Check vector store types and configurations\n * for (const [name, vectorStore] of Object.entries(allVectors)) {\n * console.log(`Vector store ${name}:`, vectorStore.constructor.name);\n * }\n * ```\n */\n public listVectors(): TVectors | undefined {\n return this.#vectors;\n }\n\n /**\n * Adds a new vector store to the Mastra instance.\n *\n * This method allows dynamic registration of vector stores after the Mastra instance\n * has been created. The vector store will be initialized with the current logger.\n *\n * @throws {MastraError} When a vector store with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newVector = new ChromaVector({ id: 'chroma-embeddings' });\n * mastra.addVector(newVector); // Uses vector.id as key\n * // or\n * mastra.addVector(newVector, 'customKey'); // Uses custom key\n * ```\n */\n public addVector<V extends MastraVector>(vector: V, key?: string): void {\n const vectorKey = key || vector.id;\n const vectors = this.#vectors as Record<string, MastraVector>;\n if (vectors[vectorKey]) {\n const logger = this.getLogger();\n logger.debug(`Vector with key ${vectorKey} already exists. Skipping addition.`);\n return;\n }\n\n // Initialize the vector with the logger\n vector.__setLogger(this.#logger || this.getLogger());\n vectors[vectorKey] = vector;\n }\n\n /**\n * @deprecated Use listVectors() instead\n */\n public getVectors(): TVectors | undefined {\n console.warn('getVectors() is deprecated. Use listVectors() instead.');\n return this.listVectors();\n }\n\n /**\n * Gets the currently configured deployment provider.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * deployer: new VercelDeployer({\n * token: process.env.VERCEL_TOKEN,\n * projectId: process.env.VERCEL_PROJECT_ID\n * })\n * });\n *\n * const deployer = mastra.getDeployer();\n * if (deployer) {\n * await deployer.deploy({\n * name: 'my-mastra-app',\n * environment: 'production'\n * });\n * }\n * ```\n */\n public getDeployer() {\n return this.#deployer;\n }\n\n /**\n * Retrieves a registered workflow by its ID.\n *\n * @template TWorkflowId - The specific workflow ID type from the registered workflows\n * @throws {MastraError} When the workflow with the specified ID is not found\n *\n * @example Getting and executing a workflow\n * ```typescript\n * import { createWorkflow, createStep } from '@mastra/core/workflows';\n * import { z } from 'zod';\n *\n * const processDataWorkflow = createWorkflow({\n * name: 'process-data',\n * triggerSchema: z.object({ input: z.string() })\n * })\n * .then(validateStep)\n * .then(transformStep)\n * .then(saveStep)\n * .commit();\n *\n * const mastra = new Mastra({\n * workflows: {\n * dataProcessor: processDataWorkflow\n * }\n * });\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 });\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 /**\n * Retrieves a registered workflow by its unique ID.\n *\n * This method searches for a workflow using its internal ID property. If no workflow\n * is found with the given ID, it also attempts to find a workflow using the ID as\n * a name.\n *\n * @throws {MastraError} When no workflow is found with the specified ID\n *\n * @example Finding a workflow by ID\n * ```typescript\n * const mastra = new Mastra({\n * workflows: {\n * dataProcessor: createWorkflow({\n * name: 'process-data',\n * triggerSchema: z.object({ input: z.string() })\n * }).commit()\n * }\n * });\n *\n * // Get the workflow's ID\n * const workflow = mastra.getWorkflow('dataProcessor');\n * const workflowId = workflow.id;\n *\n * // Later, retrieve the workflow by ID\n * const sameWorkflow = mastra.getWorkflowById(workflowId);\n * console.log(sameWorkflow.name); // \"process-data\"\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);\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 /**\n * Returns all registered scorers as a record keyed by their IDs.\n *\n * @example Listing all scorers\n * ```typescript\n * import { HelpfulnessScorer, AccuracyScorer, RelevanceScorer } from '@mastra/scorers';\n *\n * const mastra = new Mastra({\n * scorers: {\n * helpfulness: new HelpfulnessScorer(),\n * accuracy: new AccuracyScorer(),\n * relevance: new RelevanceScorer()\n * }\n * });\n *\n * const allScorers = mastra.listScorers();\n * console.log(Object.keys(allScorers)); // ['helpfulness', 'accuracy', 'relevance']\n *\n * // Check scorer configurations\n * for (const [id, scorer] of Object.entries(allScorers)) {\n * console.log(`Scorer ${id}:`, scorer.id, scorer.name, scorer.description);\n * }\n * ```\n */\n public listScorers() {\n return this.#scorers;\n }\n\n /**\n * Adds a new scorer to the Mastra instance.\n *\n * This method allows dynamic registration of scorers after the Mastra instance\n * has been created.\n *\n * @throws {MastraError} When a scorer with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newScorer = new MastraScorer({\n * id: 'quality-scorer',\n * name: 'Quality Scorer'\n * });\n * mastra.addScorer(newScorer); // Uses scorer.id as key\n * // or\n * mastra.addScorer(newScorer, 'customKey'); // Uses custom key\n * ```\n */\n public addScorer<S extends MastraScorer<any, any, any, any>>(scorer: S, key?: string): void {\n const scorerKey = key || scorer.id;\n const scorers = this.#scorers as Record<string, MastraScorer<any, any, any, any>>;\n if (scorers[scorerKey]) {\n const logger = this.getLogger();\n logger.debug(`Scorer with key ${scorerKey} already exists. Skipping addition.`);\n return;\n }\n\n scorers[scorerKey] = scorer;\n }\n\n /**\n * Retrieves a registered scorer by its key.\n *\n * @template TScorerKey - The specific scorer key type from the registered scorers\n * @throws {MastraError} When the scorer with the specified key is not found\n *\n * @example Getting and using a scorer\n * ```typescript\n * import { HelpfulnessScorer, AccuracyScorer } from '@mastra/scorers';\n *\n * const mastra = new Mastra({\n * scorers: {\n * helpfulness: new HelpfulnessScorer({\n * model: 'openai/gpt-4o',\n * criteria: 'Rate how helpful this response is'\n * }),\n * accuracy: new AccuracyScorer({\n * model: 'openai/gpt-5'\n * })\n * }\n * });\n *\n * // Get a specific scorer\n * const helpfulnessScorer = mastra.getScorer('helpfulness');\n * const score = await helpfulnessScorer.score({\n * input: 'How do I reset my password?',\n * output: 'You can reset your password by clicking the forgot password link.',\n * expected: 'Detailed password reset instructions'\n * });\n *\n * console.log('Helpfulness score:', score);\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 /**\n * Retrieves a registered scorer by its name.\n *\n * This method searches through all registered scorers to find one with the specified name.\n * Unlike `getScorer()` which uses the registration key, this method uses the scorer's\n * internal name property.\n *\n * @throws {MastraError} When no scorer is found with the specified name\n *\n * @example Finding a scorer by name\n * ```typescript\n * import { HelpfulnessScorer } from '@mastra/scorers';\n *\n * const mastra = new Mastra({\n * scorers: {\n * myHelpfulnessScorer: new HelpfulnessScorer({\n * name: 'helpfulness-evaluator',\n * model: 'openai/gpt-5'\n * })\n * }\n * });\n *\n * // Find scorer by its internal name, not the registration key\n * const scorer = mastra.getScorerById('helpfulness-evaluator');\n * const score = await scorer.score({\n * input: 'question',\n * output: 'answer'\n * });\n * ```\n */\n public getScorerById(id: string): MastraScorer<any, any, any, any> {\n for (const [_key, value] of Object.entries(this.#scorers ?? {})) {\n if (value.id === id || value?.name === id) {\n return value;\n }\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with id ${String(id)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n /**\n * Retrieves a specific tool by registration key.\n *\n * @throws {MastraError} When the specified tool is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * tools: {\n * calculator: calculatorTool,\n * weather: weatherTool\n * }\n * });\n *\n * const tool = mastra.getTool('calculator');\n * ```\n */\n public getTool<TToolName extends keyof TTools>(name: TToolName): TTools[TToolName] {\n if (!this.#tools || !this.#tools[name]) {\n const error = new MastraError({\n id: 'MASTRA_GET_TOOL_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Tool with name ${String(name)} not found`,\n details: {\n status: 404,\n toolName: String(name),\n tools: Object.keys(this.#tools ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#tools[name];\n }\n\n /**\n * Retrieves a specific tool by its ID.\n *\n * @throws {MastraError} When the specified tool is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * tools: {\n * calculator: calculatorTool\n * }\n * });\n *\n * const tool = mastra.getToolById('calculator-tool-id');\n * ```\n */\n public getToolById(id: string): ToolAction<any, any, any, any> {\n const allTools = this.#tools;\n\n if (!allTools) {\n throw new MastraError({\n id: 'MASTRA_GET_TOOL_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Tool with id ${id} not found`,\n });\n }\n // First try to find by internal ID\n for (const tool of Object.values(allTools)) {\n if (tool.id === id) {\n return tool as ToolAction<any, any, any, any>;\n }\n }\n\n // Fallback to searching by registration key\n const toolByKey = allTools[id];\n if (toolByKey) {\n return toolByKey;\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_TOOL_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Tool with id ${id} not found`,\n details: {\n status: 404,\n toolId: String(id),\n tools: Object.keys(allTools).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n /**\n * Lists all configured tools.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * tools: {\n * calculator: calculatorTool,\n * weather: weatherTool\n * }\n * });\n *\n * const tools = mastra.listTools();\n * Object.entries(tools || {}).forEach(([name, tool]) => {\n * console.log(`Tool \"${name}\":`, tool.id);\n * });\n * ```\n */\n public listTools(): TTools | undefined {\n return this.#tools;\n }\n\n /**\n * Adds a new tool to the Mastra instance.\n *\n * This method allows dynamic registration of tools after the Mastra instance\n * has been created.\n *\n * @throws {MastraError} When a tool with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newTool = createTool({\n * id: 'calculator-tool',\n * description: 'Performs calculations'\n * });\n * mastra.addTool(newTool); // Uses tool.id as key\n * // or\n * mastra.addTool(newTool, 'customKey'); // Uses custom key\n * ```\n */\n public addTool<T extends ToolAction<any, any, any, any>>(tool: T, key?: string): void {\n const toolKey = key || tool.id;\n const tools = this.#tools as Record<string, ToolAction<any, any, any, any>>;\n if (tools[toolKey]) {\n const logger = this.getLogger();\n logger.debug(`Tool with key ${toolKey} already exists. Skipping addition.`);\n return;\n }\n\n tools[toolKey] = tool;\n }\n\n /**\n * Retrieves a specific processor by registration key.\n *\n * @throws {MastraError} When the specified processor is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * processors: {\n * validator: validatorProcessor,\n * transformer: transformerProcessor\n * }\n * });\n *\n * const processor = mastra.getProcessor('validator');\n * ```\n */\n public getProcessor<TProcessorName extends keyof TProcessors>(name: TProcessorName): TProcessors[TProcessorName] {\n if (!this.#processors || !this.#processors[name]) {\n const error = new MastraError({\n id: 'MASTRA_GET_PROCESSOR_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Processor with name ${String(name)} not found`,\n details: {\n status: 404,\n processorName: String(name),\n processors: Object.keys(this.#processors ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#processors[name];\n }\n\n /**\n * Retrieves a specific processor by its ID.\n *\n * @throws {MastraError} When the specified processor is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * processors: {\n * validator: validatorProcessor\n * }\n * });\n *\n * const processor = mastra.getProcessorById('validator-processor-id');\n * ```\n */\n public getProcessorById(id: string): Processor {\n const allProcessors = this.#processors;\n\n if (!allProcessors) {\n throw new MastraError({\n id: 'MASTRA_GET_PROCESSOR_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Processor with id ${id} not found`,\n });\n }\n\n // First try to find by internal ID\n for (const processor of Object.values(allProcessors)) {\n if (processor.id === id) {\n return processor as Processor;\n }\n }\n\n // Fallback to searching by registration key\n const processorByKey = allProcessors[id];\n if (processorByKey) {\n return processorByKey;\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_PROCESSOR_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Processor with id ${id} not found`,\n details: {\n status: 404,\n processorId: String(id),\n processors: Object.keys(allProcessors).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n /**\n * Lists all configured processors.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * processors: {\n * validator: validatorProcessor,\n * transformer: transformerProcessor\n * }\n * });\n *\n * const processors = mastra.listProcessors();\n * Object.entries(processors || {}).forEach(([name, processor]) => {\n * console.log(`Processor \"${name}\":`, processor.id);\n * });\n * ```\n */\n public listProcessors(): TProcessors | undefined {\n return this.#processors;\n }\n\n /**\n * Adds a new processor to the Mastra instance.\n *\n * This method allows dynamic registration of processors after the Mastra instance\n * has been created.\n *\n * @throws {MastraError} When a processor with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newProcessor = {\n * id: 'text-processor',\n * processInput: async (messages) => messages\n * };\n * mastra.addProcessor(newProcessor); // Uses processor.id as key\n * // or\n * mastra.addProcessor(newProcessor, 'customKey'); // Uses custom key\n * ```\n */\n public addProcessor<P extends Processor>(processor: P, key?: string): void {\n const processorKey = key || processor.id;\n const processors = this.#processors as Record<string, Processor>;\n if (processors[processorKey]) {\n const logger = this.getLogger();\n logger.debug(`Processor with key ${processorKey} already exists. Skipping addition.`);\n return;\n }\n\n processors[processorKey] = processor;\n }\n\n /**\n * Returns all registered workflows as a record keyed by their IDs.\n *\n * @example Listing all workflows\n * ```typescript\n * const mastra = new Mastra({\n * workflows: {\n * dataProcessor: createWorkflow({...}).commit(),\n * emailSender: createWorkflow({...}).commit(),\n * reportGenerator: createWorkflow({...}).commit()\n * }\n * });\n *\n * const allWorkflows = mastra.listWorkflows();\n * console.log(Object.keys(allWorkflows)); // ['dataProcessor', 'emailSender', 'reportGenerator']\n *\n * // Execute all workflows with sample data\n * for (const [id, workflow] of Object.entries(allWorkflows)) {\n * console.log(`Workflow ${id}:`, workflow.name);\n * // const result = await workflow.execute(sampleData);\n * }\n * ```\n */\n public listWorkflows(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 /**\n * Adds a new workflow to the Mastra instance.\n *\n * This method allows dynamic registration of workflows after the Mastra instance\n * has been created. The workflow will be initialized with Mastra and primitives.\n *\n * @throws {MastraError} When a workflow with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newWorkflow = createWorkflow({\n * id: 'data-pipeline',\n * name: 'Data Pipeline'\n * }).commit();\n * mastra.addWorkflow(newWorkflow); // Uses workflow.id as key\n * // or\n * mastra.addWorkflow(newWorkflow, 'customKey'); // Uses custom key\n * ```\n */\n public addWorkflow<W extends Workflow<any, any, any, any, any, any>>(workflow: W, key?: string): void {\n const workflowKey = key || workflow.id;\n const workflows = this.#workflows as Record<string, Workflow<any, any, any, any, any, any>>;\n if (workflows[workflowKey]) {\n const logger = this.getLogger();\n logger.debug(`Workflow with key ${workflowKey} already exists. Skipping addition.`);\n return;\n }\n\n // Initialize the workflow with Mastra and primitives\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n storage: this.getStorage(),\n });\n workflows[workflowKey] = workflow;\n }\n\n /**\n * Sets the storage provider for the Mastra instance.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n *\n * // Set PostgreSQL storage\n * mastra.setStorage(new PostgresStore({\n * connectionString: process.env.DATABASE_URL\n * }));\n *\n * // Now agents can use memory with the storage\n * const agent = new Agent({\n * id: 'assistant',\n * name: 'assistant',\n * memory: new Memory({ storage: mastra.getStorage() })\n * });\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.#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 this.#observability.setLogger({ logger: this.#logger });\n }\n\n /**\n * Gets all registered text-to-speech (TTS) providers.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * tts: {\n * openai: new OpenAITTS({\n * apiKey: process.env.OPENAI_API_KEY,\n * voice: 'alloy'\n * })\n * }\n * });\n *\n * const ttsProviders = mastra.getTTS();\n * const openaiTTS = ttsProviders?.openai;\n * if (openaiTTS) {\n * const audioBuffer = await openaiTTS.synthesize('Hello, world!');\n * }\n * ```\n */\n public getTTS() {\n return this.#tts;\n }\n\n /**\n * Gets the currently configured logger instance.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * logger: new PinoLogger({\n * name: 'MyApp',\n * level: 'info'\n * })\n * });\n *\n * const logger = mastra.getLogger();\n * logger.info('Application started');\n * logger.error('An error occurred', { error: 'details' });\n * ```\n */\n public getLogger() {\n return this.#logger;\n }\n\n /**\n * Gets the currently configured storage provider.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * storage: new LibSQLStore({ id: 'mastra-storage', url: 'file:./data.db' })\n * });\n *\n * // Use the storage in agent memory\n * const agent = new Agent({\n * id: 'assistant',\n * name: 'assistant',\n * memory: new Memory({\n * storage: mastra.getStorage()\n * })\n * });\n * ```\n */\n public getStorage() {\n return this.#storage;\n }\n\n get observability(): ObservabilityEntrypoint {\n return this.#observability;\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 getServer() {\n return this.#server;\n }\n\n public getBundlerConfig() {\n return this.#bundler;\n }\n\n public async listLogsByRunId({\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_LIST_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?.listLogsByRunId) {\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 listLogsByRunId operation',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return await this.#logger.listLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n });\n }\n\n public async listLogs(\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.listLogs(transportId, params);\n }\n\n /**\n * Gets all registered Model Context Protocol (MCP) server instances.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * mcpServers: {\n * filesystem: new FileSystemMCPServer({\n * rootPath: '/app/data'\n * })\n * }\n * });\n *\n * const mcpServers = mastra.getMCPServers();\n * if (mcpServers) {\n * const fsServer = mcpServers.filesystem;\n * const tools = await fsServer.listTools();\n * }\n * ```\n */\n public listMCPServers(): Record<string, MCPServerBase> | undefined {\n return this.#mcpServers;\n }\n\n /**\n * Adds a new MCP server to the Mastra instance.\n *\n * This method allows dynamic registration of MCP servers after the Mastra instance\n * has been created. The server will be initialized with ID, Mastra instance, and logger.\n *\n * @throws {MastraError} When an MCP server with the same key already exists\n *\n * @example\n * ```typescript\n * const mastra = new Mastra();\n * const newServer = new FileSystemMCPServer({\n * rootPath: '/data'\n * });\n * mastra.addMCPServer(newServer); // Uses server.id as key\n * // or\n * mastra.addMCPServer(newServer, 'customKey'); // Uses custom key\n * ```\n */\n public addMCPServer<M extends MCPServerBase>(server: M, key?: string): void {\n // If a key is provided, try to set it as the ID\n // The setId method will only update if the ID wasn't explicitly set by the user\n if (key) {\n server.setId(key);\n }\n\n // Now resolve the ID after potentially setting it\n const resolvedId = server.id;\n if (!resolvedId) {\n const error = new MastraError({\n id: 'MASTRA_ADD_MCP_SERVER_MISSING_ID',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'MCP server must expose an id or be registered under one',\n details: { status: 400 },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n const serverKey = key ?? resolvedId;\n const servers = this.#mcpServers as Record<string, MCPServerBase>;\n if (servers[serverKey]) {\n const logger = this.getLogger();\n logger.debug(`MCP server with key ${serverKey} already exists. Skipping addition.`);\n return;\n }\n\n // Initialize the server\n server.__registerMastra(this);\n server.__setLogger(this.getLogger());\n servers[serverKey] = server;\n }\n\n /**\n * Retrieves a specific MCP server instance by registration key.\n *\n * @throws {MastraError} When the specified MCP server is not found\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * mcpServers: {\n * filesystem: new FileSystemMCPServer({...})\n * }\n * });\n *\n * const fsServer = mastra.getMCPServer('filesystem');\n * const tools = await fsServer.listTools();\n * ```\n */\n public getMCPServer<TMCPServerName extends keyof TMCPServers>(\n name: TMCPServerName,\n ): TMCPServers[TMCPServerName] | undefined {\n if (!this.#mcpServers || !this.#mcpServers[name]) {\n this.#logger?.debug(`MCP server with name ${String(name)} not found`);\n return undefined as TMCPServers[TMCPServerName] | undefined;\n }\n return this.#mcpServers[name];\n }\n\n /**\n * Retrieves a specific Model Context Protocol (MCP) server instance by its logical ID.\n *\n * This method searches for an MCP server using its logical ID. If a version is specified,\n * it returns the exact version match. If no version is provided, it returns the server\n * with the most recent release date.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * mcpServers: {\n * filesystem: new FileSystemMCPServer({\n * id: 'fs-server',\n * version: '1.0.0',\n * rootPath: '/app/data'\n * })\n * }\n * });\n *\n * const fsServer = mastra.getMCPServerById('fs-server');\n * if (fsServer) {\n * const tools = await fsServer.listTools();\n * }\n * ```\n */\n public getMCPServerById(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 * Gracefully shuts down the Mastra instance and cleans up all resources.\n *\n * This method performs a clean shutdown of all Mastra components, including:\n * - tracing registry and all tracing instances\n * - Event engine and pub/sub system\n * - All registered components and their resources\n *\n * It's important to call this method when your application is shutting down\n * to ensure proper cleanup and prevent resource leaks.\n *\n * @example\n * ```typescript\n * const mastra = new Mastra({\n * agents: { myAgent },\n * workflows: { myWorkflow }\n * });\n *\n * // Graceful shutdown on SIGINT\n * process.on('SIGINT', async () => {\n * await mastra.shutdown();\n * process.exit(0);\n * });\n * ```\n */\n async shutdown(): Promise<void> {\n await this.stopEventEngine();\n // Shutdown observability registry, exporters, etc...\n await this.#observability.shutdown();\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"]}
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkP35FNLTQ_cjs = require('./chunk-P35FNLTQ.cjs');
4
- var chunk5NTO7S5I_cjs = require('./chunk-5NTO7S5I.cjs');
5
- var chunk6VOPKVYH_cjs = require('./chunk-6VOPKVYH.cjs');
3
+ var chunkSVLMF4UZ_cjs = require('./chunk-SVLMF4UZ.cjs');
4
+ var chunkWM6CK2F3_cjs = require('./chunk-WM6CK2F3.cjs');
5
+ var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
6
+ var chunkKEXGB7FK_cjs = require('./chunk-KEXGB7FK.cjs');
6
7
  var schemaCompat = require('@mastra/schema-compat');
7
8
  var zodToJson = require('@mastra/schema-compat/zod-to-json');
8
- var ai = require('ai');
9
9
  var zod = require('zod');
10
10
 
11
- var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
11
+ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
12
12
  #model;
13
13
  #mastra;
14
14
  #options;
@@ -24,9 +24,6 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
24
24
  }
25
25
  }
26
26
  __registerPrimitives(p) {
27
- if (p.telemetry) {
28
- this.__setTelemetry(p.telemetry);
29
- }
30
27
  if (p.logger) {
31
28
  this.__setLogger(p.logger);
32
29
  }
@@ -76,10 +73,9 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
76
73
  toolChoice = "auto",
77
74
  onStepFinish,
78
75
  experimental_output,
79
- telemetry,
80
76
  threadId,
81
77
  resourceId,
82
- runtimeContext,
78
+ requestContext,
83
79
  tracingContext,
84
80
  ...rest
85
81
  }) {
@@ -97,16 +93,16 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
97
93
  this.logger.debug("[LLM] - Using experimental output", {
98
94
  runId
99
95
  });
100
- if (chunkP35FNLTQ_cjs.isZodType(experimental_output)) {
96
+ if (chunkWM6CK2F3_cjs.isZodType(experimental_output)) {
101
97
  schema = experimental_output;
102
98
  if (schema instanceof zod.z.ZodArray) {
103
99
  schema = schema._def.type;
104
100
  }
105
101
  let jsonSchemaToUse;
106
102
  jsonSchemaToUse = zodToJson.zodToJsonSchema(schema, "jsonSchema7");
107
- schema = ai.jsonSchema(jsonSchemaToUse);
103
+ schema = schemaCompat.jsonSchema(jsonSchemaToUse);
108
104
  } else {
109
- schema = ai.jsonSchema(experimental_output);
105
+ schema = schemaCompat.jsonSchema(experimental_output);
110
106
  }
111
107
  }
112
108
  const llmSpan = tracingContext.currentSpan?.createChildSpan({
@@ -149,7 +145,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
149
145
  try {
150
146
  await onStepFinish?.({ ...props, runId });
151
147
  } catch (e) {
152
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
148
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
153
149
  {
154
150
  id: "LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED",
155
151
  domain: "LLM" /* LLM */,
@@ -180,19 +176,15 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
180
176
  });
181
177
  if (props?.response?.headers?.["x-ratelimit-remaining-tokens"] && parseInt(props?.response?.headers?.["x-ratelimit-remaining-tokens"], 10) < 2e3) {
182
178
  this.logger.warn("Rate limit approaching, waiting 10 seconds", { runId });
183
- await chunkP35FNLTQ_cjs.delay(10 * 1e3);
179
+ await chunkWM6CK2F3_cjs.delay(10 * 1e3);
184
180
  }
185
181
  },
186
- experimental_telemetry: {
187
- ...this.experimental_telemetry,
188
- ...telemetry
189
- },
190
- experimental_output: schema ? ai.Output.object({
182
+ experimental_output: schema ? chunkSVLMF4UZ_cjs.output_exports.object({
191
183
  schema
192
184
  }) : void 0
193
185
  };
194
186
  try {
195
- const result = await ai.generateText(argsForExecute);
187
+ const result = await chunkSVLMF4UZ_cjs.generateText(argsForExecute);
196
188
  if (schema && result.finishReason === "stop") {
197
189
  result.object = result.experimental_output;
198
190
  }
@@ -213,7 +205,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
213
205
  });
214
206
  return result;
215
207
  } catch (e) {
216
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
208
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
217
209
  {
218
210
  id: "LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED",
219
211
  domain: "LLM" /* LLM */,
@@ -236,10 +228,9 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
236
228
  messages,
237
229
  structuredOutput,
238
230
  runId,
239
- telemetry,
240
231
  threadId,
241
232
  resourceId,
242
- runtimeContext,
233
+ requestContext,
243
234
  tracingContext,
244
235
  ...rest
245
236
  }) {
@@ -289,14 +280,10 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
289
280
  model,
290
281
  // @ts-expect-error - output in our implementation can only be object or array
291
282
  output,
292
- schema: processedSchema,
293
- experimental_telemetry: {
294
- ...this.experimental_telemetry,
295
- ...telemetry
296
- }
283
+ schema: processedSchema
297
284
  };
298
285
  try {
299
- const result = await ai.generateObject(argsForExecute);
286
+ const result = await chunkSVLMF4UZ_cjs.generateObject(argsForExecute);
300
287
  llmSpan?.end({
301
288
  output: {
302
289
  object: result.object,
@@ -309,7 +296,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
309
296
  });
310
297
  return result;
311
298
  } catch (e) {
312
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
299
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
313
300
  {
314
301
  id: "LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED",
315
302
  domain: "LLM" /* LLM */,
@@ -328,10 +315,10 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
328
315
  throw mastraError;
329
316
  }
330
317
  } catch (e) {
331
- if (e instanceof chunk5NTO7S5I_cjs.MastraError) {
318
+ if (e instanceof chunkTWH4PTDG_cjs.MastraError) {
332
319
  throw e;
333
320
  }
334
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
321
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
335
322
  {
336
323
  id: "LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED",
337
324
  domain: "LLM" /* LLM */,
@@ -360,10 +347,9 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
360
347
  temperature,
361
348
  toolChoice = "auto",
362
349
  experimental_output,
363
- telemetry,
364
350
  threadId,
365
351
  resourceId,
366
- runtimeContext,
352
+ requestContext,
367
353
  tracingContext,
368
354
  ...rest
369
355
  }) {
@@ -387,7 +373,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
387
373
  schema = schema._def.type;
388
374
  }
389
375
  } else {
390
- schema = ai.jsonSchema(experimental_output);
376
+ schema = schemaCompat.jsonSchema(experimental_output);
391
377
  }
392
378
  }
393
379
  const llmSpan = tracingContext.currentSpan?.createChildSpan({
@@ -427,7 +413,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
427
413
  try {
428
414
  await onStepFinish?.({ ...props, runId });
429
415
  } catch (e) {
430
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
416
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
431
417
  {
432
418
  id: "LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED",
433
419
  domain: "LLM" /* LLM */,
@@ -460,7 +446,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
460
446
  });
461
447
  if (props?.response?.headers?.["x-ratelimit-remaining-tokens"] && parseInt(props?.response?.headers?.["x-ratelimit-remaining-tokens"], 10) < 2e3) {
462
448
  this.logger.warn("Rate limit approaching, waiting 10 seconds", { runId });
463
- await chunkP35FNLTQ_cjs.delay(10 * 1e3);
449
+ await chunkWM6CK2F3_cjs.delay(10 * 1e3);
464
450
  }
465
451
  },
466
452
  onFinish: async (props) => {
@@ -481,7 +467,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
481
467
  try {
482
468
  await onFinish?.({ ...props, runId });
483
469
  } catch (e) {
484
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
470
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
485
471
  {
486
472
  id: "LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED",
487
473
  domain: "LLM" /* LLM */,
@@ -517,18 +503,14 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
517
503
  },
518
504
  ...rest,
519
505
  messages,
520
- experimental_telemetry: {
521
- ...this.experimental_telemetry,
522
- ...telemetry
523
- },
524
- experimental_output: schema ? ai.Output.object({
506
+ experimental_output: schema ? chunkSVLMF4UZ_cjs.output_exports.object({
525
507
  schema
526
508
  }) : void 0
527
509
  };
528
510
  try {
529
- return ai.streamText(argsForExecute);
511
+ return chunkSVLMF4UZ_cjs.streamText(argsForExecute);
530
512
  } catch (e) {
531
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
513
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
532
514
  {
533
515
  id: "LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED",
534
516
  domain: "LLM" /* LLM */,
@@ -550,12 +532,11 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
550
532
  __streamObject({
551
533
  messages,
552
534
  runId,
553
- runtimeContext,
535
+ requestContext,
554
536
  threadId,
555
537
  resourceId,
556
538
  onFinish,
557
539
  structuredOutput,
558
- telemetry,
559
540
  tracingContext,
560
541
  ...rest
561
542
  }) {
@@ -624,7 +605,7 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
624
605
  try {
625
606
  await onFinish?.({ ...props, runId });
626
607
  } catch (e) {
627
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
608
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
628
609
  {
629
610
  id: "LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED",
630
611
  domain: "LLM" /* LLM */,
@@ -657,16 +638,12 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
657
638
  messages,
658
639
  // @ts-expect-error - output in our implementation can only be object or array
659
640
  output,
660
- experimental_telemetry: {
661
- ...this.experimental_telemetry,
662
- ...telemetry
663
- },
664
641
  schema: processedSchema
665
642
  };
666
643
  try {
667
- return ai.streamObject(argsForExecute);
644
+ return chunkSVLMF4UZ_cjs.streamObject(argsForExecute);
668
645
  } catch (e) {
669
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
646
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
670
647
  {
671
648
  id: "LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED",
672
649
  domain: "LLM" /* LLM */,
@@ -685,11 +662,11 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
685
662
  throw mastraError;
686
663
  }
687
664
  } catch (e) {
688
- if (e instanceof chunk5NTO7S5I_cjs.MastraError) {
665
+ if (e instanceof chunkTWH4PTDG_cjs.MastraError) {
689
666
  llmSpan?.error({ error: e });
690
667
  throw e;
691
668
  }
692
- const mastraError = new chunk5NTO7S5I_cjs.MastraError(
669
+ const mastraError = new chunkTWH4PTDG_cjs.MastraError(
693
670
  {
694
671
  id: "LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED",
695
672
  domain: "LLM" /* LLM */,
@@ -772,5 +749,5 @@ var MastraLLMV1 = class extends chunk6VOPKVYH_cjs.MastraBase {
772
749
  };
773
750
 
774
751
  exports.MastraLLMV1 = MastraLLMV1;
775
- //# sourceMappingURL=chunk-MCASUJWY.cjs.map
776
- //# sourceMappingURL=chunk-MCASUJWY.cjs.map
752
+ //# sourceMappingURL=chunk-VOY2RXOC.cjs.map
753
+ //# sourceMappingURL=chunk-VOY2RXOC.cjs.map