@mastra/core 1.0.0-beta.11 → 1.0.0-beta.14

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 (447) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
  3. package/dist/_types/@internal_ai-sdk-v4/dist/test.d.ts +65 -0
  4. package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +8396 -0
  5. package/dist/_types/@internal_ai-sdk-v5/dist/test.d.ts +1708 -0
  6. package/dist/_types/@internal_external-types/dist/index.d.ts +858 -0
  7. package/dist/agent/agent-legacy.d.ts +1 -1
  8. package/dist/agent/agent.d.ts +3 -3
  9. package/dist/agent/agent.d.ts.map +1 -1
  10. package/dist/agent/agent.types.d.ts +11 -8
  11. package/dist/agent/agent.types.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +17 -9
  13. package/dist/agent/index.d.ts +1 -1
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/index.js +2 -2
  16. package/dist/agent/message-list/index.cjs +3 -3
  17. package/dist/agent/message-list/index.d.ts +4 -3
  18. package/dist/agent/message-list/index.d.ts.map +1 -1
  19. package/dist/agent/message-list/index.js +1 -1
  20. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +1 -1
  21. package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
  22. package/dist/agent/message-list/types.d.ts +3 -3
  23. package/dist/agent/message-list/types.d.ts.map +1 -1
  24. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +1 -1
  25. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +1 -1
  26. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +2 -2
  27. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
  28. package/dist/agent/message-list/utils/convert-messages.d.ts +2 -2
  29. package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
  30. package/dist/agent/trip-wire.d.ts +2 -2
  31. package/dist/agent/trip-wire.d.ts.map +1 -1
  32. package/dist/agent/types.d.ts +3 -3
  33. package/dist/agent/utils.d.ts +7 -4
  34. package/dist/agent/utils.d.ts.map +1 -1
  35. package/dist/agent/workflows/prepare-stream/index.d.ts +4 -3
  36. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  37. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
  38. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  39. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +3 -3
  40. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  41. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +3 -3
  42. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  43. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
  44. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  45. package/dist/bundler/types.d.ts +15 -1
  46. package/dist/bundler/types.d.ts.map +1 -1
  47. package/dist/chunk-2AU5ZHBL.js +79 -0
  48. package/dist/chunk-2AU5ZHBL.js.map +1 -0
  49. package/dist/chunk-2SQB3WBT.js +4574 -0
  50. package/dist/chunk-2SQB3WBT.js.map +1 -0
  51. package/dist/{chunk-THZTRBFS.js → chunk-373OC54J.js} +8 -8
  52. package/dist/chunk-373OC54J.js.map +1 -0
  53. package/dist/{chunk-US2U7ECW.js → chunk-3IP3DZ7G.js} +234 -101
  54. package/dist/chunk-3IP3DZ7G.js.map +1 -0
  55. package/dist/{chunk-SXNQRJQD.js → chunk-4AT6YQKZ.js} +26 -20
  56. package/dist/chunk-4AT6YQKZ.js.map +1 -0
  57. package/dist/{chunk-C36YRTZ6.js → chunk-4CMIJQF6.js} +117 -114
  58. package/dist/chunk-4CMIJQF6.js.map +1 -0
  59. package/dist/chunk-53SZJCBX.cjs +4888 -0
  60. package/dist/chunk-53SZJCBX.cjs.map +1 -0
  61. package/dist/chunk-55VPMN3N.js +250 -0
  62. package/dist/chunk-55VPMN3N.js.map +1 -0
  63. package/dist/{chunk-QM5SRDJX.js → chunk-5PTZG26U.js} +66 -84
  64. package/dist/chunk-5PTZG26U.js.map +1 -0
  65. package/dist/{chunk-U3XOLEPX.js → chunk-5UQ5TB6J.js} +6 -32
  66. package/dist/chunk-5UQ5TB6J.js.map +1 -0
  67. package/dist/{chunk-O2BJW7YA.js → chunk-67LM2UCT.js} +9 -9
  68. package/dist/chunk-67LM2UCT.js.map +1 -0
  69. package/dist/{chunk-YC6PJEPH.cjs → chunk-6CG7IY57.cjs} +266 -133
  70. package/dist/chunk-6CG7IY57.cjs.map +1 -0
  71. package/dist/chunk-6PMMP3FR.js +7 -0
  72. package/dist/chunk-6PMMP3FR.js.map +1 -0
  73. package/dist/{chunk-DZUJEN5N.cjs → chunk-6SZKM6EC.cjs} +10 -3
  74. package/dist/{chunk-DZUJEN5N.cjs.map → chunk-6SZKM6EC.cjs.map} +1 -1
  75. package/dist/{chunk-5Q6WAYEY.cjs → chunk-72E3YF6A.cjs} +35 -49
  76. package/dist/chunk-72E3YF6A.cjs.map +1 -0
  77. package/dist/{chunk-5WRI5ZAA.js → chunk-7D4SUZUM.js} +10 -4
  78. package/dist/{chunk-5WRI5ZAA.js.map → chunk-7D4SUZUM.js.map} +1 -1
  79. package/dist/{chunk-7P6BNIJH.js → chunk-AYBJ5GAD.js} +281 -35
  80. package/dist/chunk-AYBJ5GAD.js.map +1 -0
  81. package/dist/chunk-D22XABFZ.js +79 -0
  82. package/dist/chunk-D22XABFZ.js.map +1 -0
  83. package/dist/{chunk-SCUWP4II.cjs → chunk-DBW6S25C.cjs} +47 -74
  84. package/dist/chunk-DBW6S25C.cjs.map +1 -0
  85. package/dist/{chunk-MRFUISXC.cjs → chunk-EGHGFLL3.cjs} +2631 -179
  86. package/dist/chunk-EGHGFLL3.cjs.map +1 -0
  87. package/dist/{chunk-BJXKH4LG.cjs → chunk-ETWAR2YE.cjs} +43 -78
  88. package/dist/chunk-ETWAR2YE.cjs.map +1 -0
  89. package/dist/{chunk-CZEJQSWB.cjs → chunk-F75EQ574.cjs} +65 -6
  90. package/dist/chunk-F75EQ574.cjs.map +1 -0
  91. package/dist/{chunk-BUKY6CTR.cjs → chunk-FPDJ4XN6.cjs} +282 -36
  92. package/dist/chunk-FPDJ4XN6.cjs.map +1 -0
  93. package/dist/chunk-FST2G2FQ.cjs +84 -0
  94. package/dist/chunk-FST2G2FQ.cjs.map +1 -0
  95. package/dist/chunk-FVQTJUBD.cjs +2120 -0
  96. package/dist/chunk-FVQTJUBD.cjs.map +1 -0
  97. package/dist/chunk-G6E6V2Z4.js +2070 -0
  98. package/dist/chunk-G6E6V2Z4.js.map +1 -0
  99. package/dist/{chunk-JIGDJK2O.js → chunk-GBQXIVL6.js} +4 -39
  100. package/dist/chunk-GBQXIVL6.js.map +1 -0
  101. package/dist/{chunk-F2GAJSBI.js → chunk-GELVUDUY.js} +11 -8
  102. package/dist/chunk-GELVUDUY.js.map +1 -0
  103. package/dist/chunk-GVAPYQRO.cjs +252 -0
  104. package/dist/chunk-GVAPYQRO.cjs.map +1 -0
  105. package/dist/{chunk-TWH4PTDG.cjs → chunk-HWMMIRIF.cjs} +32 -27
  106. package/dist/chunk-HWMMIRIF.cjs.map +1 -0
  107. package/dist/{chunk-52RSUALV.cjs → chunk-JAGQZZ43.cjs} +1660 -1196
  108. package/dist/chunk-JAGQZZ43.cjs.map +1 -0
  109. package/dist/{chunk-PK2A5WBG.js → chunk-K66U47VL.js} +54 -7
  110. package/dist/chunk-K66U47VL.js.map +1 -0
  111. package/dist/chunk-L3NKIMF5.cjs +10 -0
  112. package/dist/chunk-L3NKIMF5.cjs.map +1 -0
  113. package/dist/chunk-L4JCRWDY.cjs +252 -0
  114. package/dist/chunk-L4JCRWDY.cjs.map +1 -0
  115. package/dist/{chunk-IVV5TOMD.js → chunk-LDXKZYOV.js} +31 -11
  116. package/dist/chunk-LDXKZYOV.js.map +1 -0
  117. package/dist/chunk-NESKUIRE.cjs +4586 -0
  118. package/dist/chunk-NESKUIRE.cjs.map +1 -0
  119. package/dist/{chunk-SVLMF4UZ.cjs → chunk-NIOEY3N3.cjs} +66 -85
  120. package/dist/chunk-NIOEY3N3.cjs.map +1 -0
  121. package/dist/{chunk-PG5H6QIO.cjs → chunk-O3ULBGV6.cjs} +40 -20
  122. package/dist/chunk-O3ULBGV6.cjs.map +1 -0
  123. package/dist/{chunk-WTSZBHIZ.cjs → chunk-O5BQBZEF.cjs} +28 -28
  124. package/dist/chunk-O5BQBZEF.cjs.map +1 -0
  125. package/dist/{chunk-4JKEUSCC.cjs → chunk-OOUFPYSX.cjs} +25 -22
  126. package/dist/chunk-OOUFPYSX.cjs.map +1 -0
  127. package/dist/chunk-QDVYP2T7.js +4883 -0
  128. package/dist/chunk-QDVYP2T7.js.map +1 -0
  129. package/dist/{chunk-2ULLRN4Y.js → chunk-QF4MHFSU.js} +1294 -834
  130. package/dist/chunk-QF4MHFSU.js.map +1 -0
  131. package/dist/{chunk-Z57R5WS4.js → chunk-SLBWA2F3.js} +4 -4
  132. package/dist/{chunk-Z57R5WS4.js.map → chunk-SLBWA2F3.js.map} +1 -1
  133. package/dist/chunk-ST7NBF4H.cjs +84 -0
  134. package/dist/chunk-ST7NBF4H.cjs.map +1 -0
  135. package/dist/{chunk-YWMMBIOM.cjs → chunk-TDM43G4I.cjs} +15 -15
  136. package/dist/{chunk-YWMMBIOM.cjs.map → chunk-TDM43G4I.cjs.map} +1 -1
  137. package/dist/{chunk-S73Z3PBJ.cjs → chunk-TRUNX3AX.cjs} +138 -134
  138. package/dist/chunk-TRUNX3AX.cjs.map +1 -0
  139. package/dist/chunk-VE6HQ7H6.js +250 -0
  140. package/dist/chunk-VE6HQ7H6.js.map +1 -0
  141. package/dist/{chunk-OEIVMCWX.js → chunk-VZJOEGQA.js} +2536 -84
  142. package/dist/chunk-VZJOEGQA.js.map +1 -0
  143. package/dist/{chunk-JJ5O45LH.js → chunk-YPLZDWG7.js} +32 -27
  144. package/dist/chunk-YPLZDWG7.js.map +1 -0
  145. package/dist/{chunk-MGCGWPQJ.cjs → chunk-Z55SJVEC.cjs} +8 -8
  146. package/dist/chunk-Z55SJVEC.cjs.map +1 -0
  147. package/dist/error/index.cjs +6 -6
  148. package/dist/error/index.d.ts +26 -20
  149. package/dist/error/index.d.ts.map +1 -1
  150. package/dist/error/index.js +1 -1
  151. package/dist/error/utils.d.ts +19 -5
  152. package/dist/error/utils.d.ts.map +1 -1
  153. package/dist/evals/index.cjs +4 -4
  154. package/dist/evals/index.js +1 -1
  155. package/dist/evals/run/index.d.ts +1 -1
  156. package/dist/evals/run/index.d.ts.map +1 -1
  157. package/dist/evals/scoreTraces/index.cjs +8 -8
  158. package/dist/evals/scoreTraces/index.js +2 -2
  159. package/dist/evals/types.d.ts +1 -1
  160. package/dist/events/event-emitter.d.ts +6 -1
  161. package/dist/events/event-emitter.d.ts.map +1 -1
  162. package/dist/index.cjs +2 -2
  163. package/dist/index.js +1 -1
  164. package/dist/integration/index.cjs +2 -2
  165. package/dist/integration/index.js +1 -1
  166. package/dist/llm/index.cjs +15 -15
  167. package/dist/llm/index.d.ts +2 -2
  168. package/dist/llm/index.d.ts.map +1 -1
  169. package/dist/llm/index.js +5 -5
  170. package/dist/llm/model/aisdk/generate-to-stream.d.ts +20 -0
  171. package/dist/llm/model/aisdk/generate-to-stream.d.ts.map +1 -0
  172. package/dist/llm/model/aisdk/v5/model.d.ts +5 -1
  173. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
  174. package/dist/llm/model/aisdk/v6/model.d.ts +51 -0
  175. package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -0
  176. package/dist/llm/model/base.types.d.ts +2 -2
  177. package/dist/llm/model/model.d.ts +1 -1
  178. package/dist/llm/model/model.d.ts.map +1 -1
  179. package/dist/llm/model/model.loop.d.ts +3 -3
  180. package/dist/llm/model/model.loop.d.ts.map +1 -1
  181. package/dist/llm/model/model.loop.types.d.ts +1 -1
  182. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  183. package/dist/llm/model/provider-types.generated.d.ts +135 -11
  184. package/dist/llm/model/resolve-model.d.ts +2 -2
  185. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  186. package/dist/llm/model/shared.types.d.ts +19 -8
  187. package/dist/llm/model/shared.types.d.ts.map +1 -1
  188. package/dist/loop/index.cjs +2 -2
  189. package/dist/loop/index.js +1 -1
  190. package/dist/loop/loop.d.ts +2 -2
  191. package/dist/loop/loop.d.ts.map +1 -1
  192. package/dist/loop/network/index.d.ts +2 -2
  193. package/dist/loop/network/index.d.ts.map +1 -1
  194. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +2 -2
  195. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
  196. package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +37 -0
  197. package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -0
  198. package/dist/loop/test-utils/fullStream.d.ts +2 -1
  199. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  200. package/dist/loop/test-utils/options.d.ts.map +1 -1
  201. package/dist/loop/test-utils/resultObject.d.ts +2 -1
  202. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  203. package/dist/loop/test-utils/streamObject.d.ts +1 -1
  204. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  205. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  206. package/dist/loop/test-utils/utils-v3.d.ts +55 -0
  207. package/dist/loop/test-utils/utils-v3.d.ts.map +1 -0
  208. package/dist/loop/types.d.ts +8 -7
  209. package/dist/loop/types.d.ts.map +1 -1
  210. package/dist/loop/workflows/agentic-execution/index.d.ts +49 -49
  211. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  212. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +34 -34
  213. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  214. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +17 -17
  215. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  216. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +22 -21
  217. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  218. package/dist/loop/workflows/agentic-loop/index.d.ts +49 -49
  219. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  220. package/dist/loop/workflows/run-state.d.ts +2 -2
  221. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  222. package/dist/loop/workflows/schema.d.ts +18 -18
  223. package/dist/loop/workflows/schema.d.ts.map +1 -1
  224. package/dist/loop/workflows/stream.d.ts +2 -2
  225. package/dist/loop/workflows/stream.d.ts.map +1 -1
  226. package/dist/mastra/index.cjs +2 -2
  227. package/dist/mastra/index.js +1 -1
  228. package/dist/mcp/index.cjs +4 -4
  229. package/dist/mcp/index.js +1 -1
  230. package/dist/memory/index.cjs +6 -6
  231. package/dist/memory/index.js +1 -1
  232. package/dist/memory/memory.d.ts +1 -1
  233. package/dist/memory/types.d.ts +3 -3
  234. package/dist/memory/types.d.ts.map +1 -1
  235. package/dist/models-dev-E3WWI7VA.js +3 -0
  236. package/dist/{models-dev-23RN2WHG.js.map → models-dev-E3WWI7VA.js.map} +1 -1
  237. package/dist/models-dev-PPS7X4JM.cjs +12 -0
  238. package/dist/{models-dev-EO3SUIY2.cjs.map → models-dev-PPS7X4JM.cjs.map} +1 -1
  239. package/dist/netlify-TY656UYF.js +3 -0
  240. package/dist/{netlify-GXJ5D5DD.js.map → netlify-TY656UYF.js.map} +1 -1
  241. package/dist/netlify-VZFM5UH3.cjs +12 -0
  242. package/dist/{netlify-KJLY3GFS.cjs.map → netlify-VZFM5UH3.cjs.map} +1 -1
  243. package/dist/processors/index.cjs +37 -37
  244. package/dist/processors/index.d.ts +9 -9
  245. package/dist/processors/index.d.ts.map +1 -1
  246. package/dist/processors/index.js +1 -1
  247. package/dist/processors/runner.d.ts.map +1 -1
  248. package/dist/processors/step-schema.d.ts +1293 -1293
  249. package/dist/processors/step-schema.d.ts.map +1 -1
  250. package/dist/provider-registry-NXVD764B.js +3 -0
  251. package/dist/{provider-registry-F67Y6OF2.js.map → provider-registry-NXVD764B.js.map} +1 -1
  252. package/dist/provider-registry-ZIWSEUQE.cjs +40 -0
  253. package/dist/{provider-registry-3TG2KUD2.cjs.map → provider-registry-ZIWSEUQE.cjs.map} +1 -1
  254. package/dist/provider-registry.json +276 -30
  255. package/dist/{registry-generator-UMTNPBJX.js → registry-generator-AVQXI3GX.js} +2 -2
  256. package/dist/{registry-generator-UMTNPBJX.js.map → registry-generator-AVQXI3GX.js.map} +1 -1
  257. package/dist/{registry-generator-34SC4TAU.cjs → registry-generator-KOFNIIWJ.cjs} +2 -2
  258. package/dist/{registry-generator-34SC4TAU.cjs.map → registry-generator-KOFNIIWJ.cjs.map} +1 -1
  259. package/dist/relevance/index.cjs +3 -3
  260. package/dist/relevance/index.cjs.map +1 -1
  261. package/dist/relevance/index.js +2 -2
  262. package/dist/relevance/index.js.map +1 -1
  263. package/dist/server/index.cjs +5 -5
  264. package/dist/server/index.js +1 -1
  265. package/dist/storage/base.d.ts +2 -10
  266. package/dist/storage/base.d.ts.map +1 -1
  267. package/dist/storage/domains/workflows/base.d.ts +2 -8
  268. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  269. package/dist/storage/domains/workflows/inmemory.d.ts +2 -8
  270. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  271. package/dist/storage/index.cjs +38 -38
  272. package/dist/storage/index.js +1 -1
  273. package/dist/storage/mock.d.ts +2 -8
  274. package/dist/storage/mock.d.ts.map +1 -1
  275. package/dist/storage/types.d.ts +9 -1
  276. package/dist/storage/types.d.ts.map +1 -1
  277. package/dist/stream/RunOutput.d.ts +1 -1
  278. package/dist/stream/aisdk/v4/input.d.ts +1 -1
  279. package/dist/stream/aisdk/v5/compat/content.d.ts +1 -1
  280. package/dist/stream/aisdk/v5/compat/content.d.ts.map +1 -1
  281. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts +1 -1
  282. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  283. package/dist/stream/aisdk/v5/compat/ui-message.d.ts +1 -1
  284. package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -1
  285. package/dist/stream/aisdk/v5/compat/validation.d.ts +1 -1
  286. package/dist/stream/aisdk/v5/compat/validation.d.ts.map +1 -1
  287. package/dist/stream/aisdk/v5/execute.d.ts +6 -6
  288. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  289. package/dist/stream/aisdk/v5/input.d.ts +1 -1
  290. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  291. package/dist/stream/aisdk/v5/output-helpers.d.ts +12 -27
  292. package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -1
  293. package/dist/stream/aisdk/v5/output.d.ts +41 -91
  294. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  295. package/dist/stream/aisdk/v5/transform.d.ts +1 -1
  296. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  297. package/dist/stream/base/input.d.ts +1 -1
  298. package/dist/stream/base/output.d.ts +16 -36
  299. package/dist/stream/base/output.d.ts.map +1 -1
  300. package/dist/stream/base/schema.d.ts +2 -2
  301. package/dist/stream/base/schema.d.ts.map +1 -1
  302. package/dist/stream/index.cjs +12 -12
  303. package/dist/stream/index.js +2 -2
  304. package/dist/stream/types.d.ts +32 -23
  305. package/dist/stream/types.d.ts.map +1 -1
  306. package/dist/test-utils/llm-mock.cjs +14587 -14
  307. package/dist/test-utils/llm-mock.cjs.map +1 -1
  308. package/dist/test-utils/llm-mock.d.ts +3 -3
  309. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  310. package/dist/test-utils/llm-mock.js +14577 -4
  311. package/dist/test-utils/llm-mock.js.map +1 -1
  312. package/dist/token-6GSAFR2W-LTZ7QQUP.js +61 -0
  313. package/dist/token-6GSAFR2W-LTZ7QQUP.js.map +1 -0
  314. package/dist/token-6GSAFR2W-SGVIXFCP.cjs +63 -0
  315. package/dist/token-6GSAFR2W-SGVIXFCP.cjs.map +1 -0
  316. package/dist/token-6GSAFR2W-SPYPLMBM.js +61 -0
  317. package/dist/token-6GSAFR2W-SPYPLMBM.js.map +1 -0
  318. package/dist/token-6GSAFR2W-UEEINYAN.cjs +63 -0
  319. package/dist/token-6GSAFR2W-UEEINYAN.cjs.map +1 -0
  320. package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs +10 -0
  321. package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs.map +1 -0
  322. package/dist/token-util-NEHG7TUY-JRJTGTAB.js +8 -0
  323. package/dist/token-util-NEHG7TUY-JRJTGTAB.js.map +1 -0
  324. package/dist/token-util-NEHG7TUY-QTFZ26EN.js +8 -0
  325. package/dist/token-util-NEHG7TUY-QTFZ26EN.js.map +1 -0
  326. package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs +10 -0
  327. package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs.map +1 -0
  328. package/dist/tools/index.cjs +4 -4
  329. package/dist/tools/index.js +1 -1
  330. package/dist/tools/is-vercel-tool.cjs +2 -2
  331. package/dist/tools/is-vercel-tool.js +1 -1
  332. package/dist/tools/tool-builder/builder.d.ts +2 -1
  333. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  334. package/dist/tools/tool.d.ts.map +1 -1
  335. package/dist/tools/types.d.ts +5 -5
  336. package/dist/tools/types.d.ts.map +1 -1
  337. package/dist/utils.cjs +22 -22
  338. package/dist/utils.d.ts +5 -5
  339. package/dist/utils.d.ts.map +1 -1
  340. package/dist/utils.js +1 -1
  341. package/dist/vector/embed.d.ts +3 -2
  342. package/dist/vector/embed.d.ts.map +1 -1
  343. package/dist/vector/index.cjs +5316 -16
  344. package/dist/vector/index.cjs.map +1 -1
  345. package/dist/vector/index.js +5282 -4
  346. package/dist/vector/index.js.map +1 -1
  347. package/dist/vector/vector.d.ts +15 -2
  348. package/dist/vector/vector.d.ts.map +1 -1
  349. package/dist/voice/aisdk/speech.d.ts +1 -1
  350. package/dist/voice/aisdk/speech.d.ts.map +1 -1
  351. package/dist/voice/aisdk/transcription.d.ts +1 -1
  352. package/dist/voice/aisdk/transcription.d.ts.map +1 -1
  353. package/dist/voice/composite-voice.d.ts +1 -1
  354. package/dist/voice/composite-voice.d.ts.map +1 -1
  355. package/dist/voice/index.cjs +6 -6
  356. package/dist/voice/index.js +1 -1
  357. package/dist/workflows/constants.cjs +4 -4
  358. package/dist/workflows/constants.d.ts +1 -1
  359. package/dist/workflows/constants.d.ts.map +1 -1
  360. package/dist/workflows/constants.js +1 -1
  361. package/dist/workflows/default.d.ts +9 -16
  362. package/dist/workflows/default.d.ts.map +1 -1
  363. package/dist/workflows/evented/execution-engine.d.ts +3 -2
  364. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  365. package/dist/workflows/evented/index.cjs +10 -10
  366. package/dist/workflows/evented/index.js +1 -1
  367. package/dist/workflows/evented/step-executor.d.ts +5 -1
  368. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  369. package/dist/workflows/evented/workflow-event-processor/index.d.ts +16 -1
  370. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  371. package/dist/workflows/evented/workflow.d.ts +20 -0
  372. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  373. package/dist/workflows/execution-engine.d.ts +25 -2
  374. package/dist/workflows/execution-engine.d.ts.map +1 -1
  375. package/dist/workflows/handlers/control-flow.d.ts +6 -5
  376. package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
  377. package/dist/workflows/handlers/entry.d.ts +5 -3
  378. package/dist/workflows/handlers/entry.d.ts.map +1 -1
  379. package/dist/workflows/handlers/sleep.d.ts +4 -3
  380. package/dist/workflows/handlers/sleep.d.ts.map +1 -1
  381. package/dist/workflows/handlers/step.d.ts +5 -3
  382. package/dist/workflows/handlers/step.d.ts.map +1 -1
  383. package/dist/workflows/index.cjs +26 -22
  384. package/dist/workflows/index.js +1 -1
  385. package/dist/workflows/step.d.ts +5 -4
  386. package/dist/workflows/step.d.ts.map +1 -1
  387. package/dist/workflows/types.d.ts +66 -14
  388. package/dist/workflows/types.d.ts.map +1 -1
  389. package/dist/workflows/utils.d.ts +11 -0
  390. package/dist/workflows/utils.d.ts.map +1 -1
  391. package/dist/workflows/workflow.d.ts +30 -9
  392. package/dist/workflows/workflow.d.ts.map +1 -1
  393. package/package.json +13 -14
  394. package/src/llm/model/provider-types.generated.d.ts +135 -11
  395. package/dist/agent/__tests__/mock-model.d.ts +0 -8
  396. package/dist/agent/__tests__/mock-model.d.ts.map +0 -1
  397. package/dist/agent/agent-types.test-d.d.ts +0 -2
  398. package/dist/agent/agent-types.test-d.d.ts.map +0 -1
  399. package/dist/ai-sdk.types.d.ts +0 -4705
  400. package/dist/chunk-2ULLRN4Y.js.map +0 -1
  401. package/dist/chunk-3E3ILV6T.cjs +0 -518
  402. package/dist/chunk-3E3ILV6T.cjs.map +0 -1
  403. package/dist/chunk-4JKEUSCC.cjs.map +0 -1
  404. package/dist/chunk-52RSUALV.cjs.map +0 -1
  405. package/dist/chunk-5PAEYE3Q.js +0 -513
  406. package/dist/chunk-5PAEYE3Q.js.map +0 -1
  407. package/dist/chunk-5Q6WAYEY.cjs.map +0 -1
  408. package/dist/chunk-7P6BNIJH.js.map +0 -1
  409. package/dist/chunk-ABJOUEVA.cjs +0 -10
  410. package/dist/chunk-ABJOUEVA.cjs.map +0 -1
  411. package/dist/chunk-BJXKH4LG.cjs.map +0 -1
  412. package/dist/chunk-BUKY6CTR.cjs.map +0 -1
  413. package/dist/chunk-C36YRTZ6.js.map +0 -1
  414. package/dist/chunk-CZEJQSWB.cjs.map +0 -1
  415. package/dist/chunk-F2GAJSBI.js.map +0 -1
  416. package/dist/chunk-IVV5TOMD.js.map +0 -1
  417. package/dist/chunk-JIGDJK2O.js.map +0 -1
  418. package/dist/chunk-JJ5O45LH.js.map +0 -1
  419. package/dist/chunk-MGCGWPQJ.cjs.map +0 -1
  420. package/dist/chunk-MRFUISXC.cjs.map +0 -1
  421. package/dist/chunk-NLNKQD2T.js +0 -7
  422. package/dist/chunk-NLNKQD2T.js.map +0 -1
  423. package/dist/chunk-O2BJW7YA.js.map +0 -1
  424. package/dist/chunk-OEIVMCWX.js.map +0 -1
  425. package/dist/chunk-PG5H6QIO.cjs.map +0 -1
  426. package/dist/chunk-PK2A5WBG.js.map +0 -1
  427. package/dist/chunk-QM5SRDJX.js.map +0 -1
  428. package/dist/chunk-S73Z3PBJ.cjs.map +0 -1
  429. package/dist/chunk-SCUWP4II.cjs.map +0 -1
  430. package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
  431. package/dist/chunk-SXNQRJQD.js.map +0 -1
  432. package/dist/chunk-THZTRBFS.js.map +0 -1
  433. package/dist/chunk-TWH4PTDG.cjs.map +0 -1
  434. package/dist/chunk-U3XOLEPX.js.map +0 -1
  435. package/dist/chunk-US2U7ECW.js.map +0 -1
  436. package/dist/chunk-WTSZBHIZ.cjs.map +0 -1
  437. package/dist/chunk-YC6PJEPH.cjs.map +0 -1
  438. package/dist/llm/model/is-v2-model.d.ts +0 -3
  439. package/dist/llm/model/is-v2-model.d.ts.map +0 -1
  440. package/dist/models-dev-23RN2WHG.js +0 -3
  441. package/dist/models-dev-EO3SUIY2.cjs +0 -12
  442. package/dist/netlify-GXJ5D5DD.js +0 -3
  443. package/dist/netlify-KJLY3GFS.cjs +0 -12
  444. package/dist/provider-registry-3TG2KUD2.cjs +0 -40
  445. package/dist/provider-registry-F67Y6OF2.js +0 -3
  446. package/dist/tools/tool-stream-types.test-d.d.ts +0 -2
  447. package/dist/tools/tool-stream-types.test-d.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { validateStepInput, createDeprecationProxy, getStepResult, validateStepSuspendData, runCountDeprecationMessage, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine } from './chunk-2ULLRN4Y.js';
2
- import { STREAM_FORMAT_SYMBOL, EMITTER_SYMBOL } from './chunk-NLNKQD2T.js';
3
- import { getErrorFromUnknown, MastraError } from './chunk-JJ5O45LH.js';
4
- import { Tool } from './chunk-THZTRBFS.js';
1
+ import { validateStepInput, createDeprecationProxy, EventEmitterPubSub, getStepResult, validateStepSuspendData, runCountDeprecationMessage, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine, hydrateSerializedStepErrors } from './chunk-QF4MHFSU.js';
2
+ import { STREAM_FORMAT_SYMBOL, PUBSUB_SYMBOL } from './chunk-6PMMP3FR.js';
3
+ import { getErrorFromUnknown, MastraError } from './chunk-YPLZDWG7.js';
4
+ import { Tool } from './chunk-373OC54J.js';
5
5
  import { RequestContext } from './chunk-6TBWJV35.js';
6
6
  import { MastraBase } from './chunk-LSHPJWM5.js';
7
7
  import { RegisteredLogger } from './chunk-NRUZYMHE.js';
@@ -20,7 +20,7 @@ var StepExecutor = class extends MastraBase {
20
20
  }
21
21
  async execute(params) {
22
22
  const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
23
- const abortController = new AbortController();
23
+ const abortController = params.abortController ?? new AbortController();
24
24
  let suspended;
25
25
  let bailed;
26
26
  const startedAt = Date.now();
@@ -84,8 +84,7 @@ var StepExecutor = class extends MastraBase {
84
84
  abort: () => {
85
85
  abortController?.abort();
86
86
  },
87
- [EMITTER_SYMBOL]: params.emitter,
88
- // TODO: refactor this to use our PubSub actually
87
+ [PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(params.emitter),
89
88
  [STREAM_FORMAT_SYMBOL]: void 0,
90
89
  // TODO
91
90
  engine: {},
@@ -132,20 +131,20 @@ var StepExecutor = class extends MastraBase {
132
131
  } catch (error) {
133
132
  const endedAt = Date.now();
134
133
  const errorInstance = getErrorFromUnknown(error, {
135
- includeStack: false,
134
+ serializeStack: false,
136
135
  fallbackMessage: "Unknown step execution error"
137
136
  });
138
137
  return {
139
138
  ...stepInfo,
140
139
  status: "failed",
141
140
  endedAt,
142
- error: `Error: ${errorInstance.message}`
141
+ error: errorInstance
143
142
  };
144
143
  }
145
144
  }
146
145
  async evaluateConditions(params) {
147
146
  const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
148
- const abortController = new AbortController();
147
+ const abortController = params.abortController ?? new AbortController();
149
148
  const ee = new EventEmitter();
150
149
  const results = await Promise.all(
151
150
  step.conditions.map((condition) => {
@@ -213,8 +212,7 @@ var StepExecutor = class extends MastraBase {
213
212
  abort: () => {
214
213
  abortController?.abort();
215
214
  },
216
- [EMITTER_SYMBOL]: emitter,
217
- // TODO: refactor this to use our PubSub actually
215
+ [PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(emitter),
218
216
  [STREAM_FORMAT_SYMBOL]: void 0,
219
217
  // TODO
220
218
  engine: {},
@@ -233,7 +231,7 @@ var StepExecutor = class extends MastraBase {
233
231
  }
234
232
  async resolveSleep(params) {
235
233
  const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
236
- const abortController = new AbortController();
234
+ const abortController = params.abortController ?? new AbortController();
237
235
  const ee = new EventEmitter();
238
236
  if (step.duration) {
239
237
  return step.duration;
@@ -269,8 +267,7 @@ var StepExecutor = class extends MastraBase {
269
267
  },
270
268
  // TODO
271
269
  writer: void 0,
272
- [EMITTER_SYMBOL]: ee,
273
- // TODO: refactor this to use our PubSub actually
270
+ [PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(ee),
274
271
  [STREAM_FORMAT_SYMBOL]: void 0,
275
272
  // TODO
276
273
  engine: {},
@@ -292,7 +289,7 @@ var StepExecutor = class extends MastraBase {
292
289
  }
293
290
  async resolveSleepUntil(params) {
294
291
  const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
295
- const abortController = new AbortController();
292
+ const abortController = params.abortController ?? new AbortController();
296
293
  const ee = new EventEmitter();
297
294
  if (step.date) {
298
295
  return step.date.getTime() - Date.now();
@@ -328,8 +325,7 @@ var StepExecutor = class extends MastraBase {
328
325
  },
329
326
  // TODO
330
327
  writer: void 0,
331
- [EMITTER_SYMBOL]: ee,
332
- // TODO: refactor this to use our PubSub actually
328
+ [PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(ee),
333
329
  [STREAM_FORMAT_SYMBOL]: void 0,
334
330
  // TODO
335
331
  engine: {},
@@ -925,10 +921,52 @@ async function processWorkflowSleepUntil({
925
921
  // src/workflows/evented/workflow-event-processor/index.ts
926
922
  var WorkflowEventProcessor = class extends EventProcessor {
927
923
  stepExecutor;
924
+ // Map of runId -> AbortController for active workflow runs
925
+ abortControllers = /* @__PURE__ */ new Map();
926
+ // Map of child runId -> parent runId for tracking nested workflows
927
+ parentChildRelationships = /* @__PURE__ */ new Map();
928
928
  constructor({ mastra }) {
929
929
  super({ mastra });
930
930
  this.stepExecutor = new StepExecutor({ mastra });
931
931
  }
932
+ /**
933
+ * Get or create an AbortController for a workflow run
934
+ */
935
+ getOrCreateAbortController(runId) {
936
+ let controller = this.abortControllers.get(runId);
937
+ if (!controller) {
938
+ controller = new AbortController();
939
+ this.abortControllers.set(runId, controller);
940
+ }
941
+ return controller;
942
+ }
943
+ /**
944
+ * Cancel a workflow run and all its nested child workflows
945
+ */
946
+ cancelRunAndChildren(runId) {
947
+ const controller = this.abortControllers.get(runId);
948
+ if (controller) {
949
+ controller.abort();
950
+ }
951
+ for (const [childRunId, parentRunId] of this.parentChildRelationships.entries()) {
952
+ if (parentRunId === runId) {
953
+ this.cancelRunAndChildren(childRunId);
954
+ }
955
+ }
956
+ }
957
+ /**
958
+ * Clean up abort controller and relationships when a workflow completes.
959
+ * Also cleans up any orphaned child entries that reference this run as parent.
960
+ */
961
+ cleanupRun(runId) {
962
+ this.abortControllers.delete(runId);
963
+ this.parentChildRelationships.delete(runId);
964
+ for (const [childRunId, parentRunId] of this.parentChildRelationships.entries()) {
965
+ if (parentRunId === runId) {
966
+ this.parentChildRelationships.delete(childRunId);
967
+ }
968
+ }
969
+ }
932
970
  __registerMastra(mastra) {
933
971
  super.__registerMastra(mastra);
934
972
  this.stepExecutor.__registerMastra(mastra);
@@ -951,7 +989,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
951
989
  executionPath: [],
952
990
  resumeSteps,
953
991
  stepResults,
954
- prevResult: { status: "failed", error: e.stack ?? e.message },
992
+ prevResult: { status: "failed", error: getErrorFromUnknown(e).toJSON() },
955
993
  requestContext,
956
994
  resumeData,
957
995
  activeSteps: {},
@@ -960,26 +998,28 @@ var WorkflowEventProcessor = class extends EventProcessor {
960
998
  });
961
999
  }
962
1000
  async processWorkflowCancel({ workflowId, runId }) {
963
- const currentState = await this.mastra.getStorage()?.updateWorkflowState({
1001
+ this.cancelRunAndChildren(runId);
1002
+ const storage = this.mastra.getStorage();
1003
+ const currentState = await storage?.loadWorkflowSnapshot({
964
1004
  workflowName: workflowId,
965
- runId,
966
- opts: {
967
- status: "canceled"
968
- }
969
- });
970
- await this.endWorkflow({
971
- workflow: void 0,
972
- workflowId,
973
- runId,
974
- stepResults: currentState?.context,
975
- prevResult: { status: "canceled" },
976
- requestContext: currentState?.requestContext,
977
- executionPath: [],
978
- activeSteps: {},
979
- resumeSteps: [],
980
- resumeData: void 0,
981
- parentWorkflow: void 0
1005
+ runId
982
1006
  });
1007
+ await this.endWorkflow(
1008
+ {
1009
+ workflow: void 0,
1010
+ workflowId,
1011
+ runId,
1012
+ stepResults: currentState?.context ?? {},
1013
+ prevResult: { status: "canceled" },
1014
+ requestContext: currentState?.requestContext ?? {},
1015
+ executionPath: [],
1016
+ activeSteps: {},
1017
+ resumeSteps: [],
1018
+ resumeData: void 0,
1019
+ parentWorkflow: void 0
1020
+ },
1021
+ "canceled"
1022
+ );
983
1023
  }
984
1024
  async processWorkflowStart({
985
1025
  workflow,
@@ -994,9 +1034,16 @@ var WorkflowEventProcessor = class extends EventProcessor {
994
1034
  stepResults,
995
1035
  requestContext
996
1036
  }) {
1037
+ this.getOrCreateAbortController(runId);
1038
+ if (parentWorkflow?.runId) {
1039
+ this.parentChildRelationships.set(runId, parentWorkflow.runId);
1040
+ }
1041
+ const existingRun = await this.mastra.getStorage()?.getWorkflowRunById({ runId, workflowName: workflow.id });
1042
+ const resourceId = existingRun?.resourceId;
997
1043
  await this.mastra.getStorage()?.persistWorkflowSnapshot({
998
1044
  workflowName: workflow.id,
999
1045
  runId,
1046
+ resourceId,
1000
1047
  snapshot: {
1001
1048
  activePaths: [],
1002
1049
  suspendedPaths: {},
@@ -1033,13 +1080,13 @@ var WorkflowEventProcessor = class extends EventProcessor {
1033
1080
  }
1034
1081
  });
1035
1082
  }
1036
- async endWorkflow(args) {
1083
+ async endWorkflow(args, status = "success") {
1037
1084
  const { workflowId, runId, prevResult } = args;
1038
1085
  await this.mastra.getStorage()?.updateWorkflowState({
1039
1086
  workflowName: workflowId,
1040
1087
  runId,
1041
1088
  opts: {
1042
- status: "success",
1089
+ status,
1043
1090
  result: prevResult
1044
1091
  }
1045
1092
  });
@@ -1061,6 +1108,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1061
1108
  }
1062
1109
  async processWorkflowEnd(args) {
1063
1110
  const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, requestContext, runId, timeTravel } = args;
1111
+ this.cleanupRun(runId);
1064
1112
  if (parentWorkflow) {
1065
1113
  await this.mastra.pubsub.publish("workflows", {
1066
1114
  type: "workflow.step.end",
@@ -1136,6 +1184,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1136
1184
  requestContext,
1137
1185
  timeTravel
1138
1186
  } = args;
1187
+ this.cleanupRun(runId);
1139
1188
  await this.mastra.getStorage()?.updateWorkflowState({
1140
1189
  workflowName: workflowId,
1141
1190
  runId,
@@ -1529,6 +1578,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1529
1578
  } else if (resumeSteps?.length > 0 && resumeSteps?.[0] === step.step.id) {
1530
1579
  resumeDataToUse = resumeData;
1531
1580
  }
1581
+ const abortController = this.getOrCreateAbortController(runId);
1532
1582
  const stepResult = await this.stepExecutor.execute({
1533
1583
  workflowId,
1534
1584
  step: step.step,
@@ -1542,7 +1592,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1542
1592
  resumeData: resumeDataToUse,
1543
1593
  retryCount,
1544
1594
  foreachIdx: step.type === "foreach" ? executionPath[1] : void 0,
1545
- validateInputs: workflow.options.validateInputs
1595
+ validateInputs: workflow.options.validateInputs,
1596
+ abortController
1546
1597
  });
1547
1598
  requestContext = Object.fromEntries(rc.entries());
1548
1599
  if (stepResult.status === "bailed") {
@@ -1922,7 +1973,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1922
1973
  workflowId: workflowData.workflowId,
1923
1974
  runId: workflowData.runId
1924
1975
  });
1925
- if (currentState?.status === "canceled" && type !== "workflow.end") {
1976
+ if (currentState?.status === "canceled" && type !== "workflow.end" && type !== "workflow.cancel") {
1926
1977
  return;
1927
1978
  }
1928
1979
  if (type.startsWith("workflow.user-event.")) {
@@ -2079,7 +2130,7 @@ function createStep(params) {
2079
2130
  outputSchema: z.object({
2080
2131
  text: z.string()
2081
2132
  }),
2082
- execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, requestContext, abortSignal, abort }) => {
2133
+ execute: async ({ inputData, runId, [PUBSUB_SYMBOL]: pubsub, requestContext, abortSignal, abort }) => {
2083
2134
  let streamPromise = {};
2084
2135
  streamPromise.promise = new Promise((resolve, reject) => {
2085
2136
  streamPromise.resolve = resolve;
@@ -2101,22 +2152,24 @@ function createStep(params) {
2101
2152
  name: params.name,
2102
2153
  args: inputData
2103
2154
  };
2104
- await emitter.emit("watch", {
2105
- type: "tool-call-streaming-start",
2106
- ...toolData ?? {}
2155
+ await pubsub.publish(`workflow.events.v2.${runId}`, {
2156
+ type: "watch",
2157
+ runId,
2158
+ data: { type: "tool-call-streaming-start", ...toolData ?? {} }
2107
2159
  });
2108
2160
  for await (const chunk of fullStream) {
2109
2161
  if (chunk.type === "text-delta") {
2110
- await emitter.emit("watch", {
2111
- type: "tool-call-delta",
2112
- ...toolData ?? {},
2113
- argsTextDelta: chunk.textDelta
2162
+ await pubsub.publish(`workflow.events.v2.${runId}`, {
2163
+ type: "watch",
2164
+ runId,
2165
+ data: { type: "tool-call-delta", ...toolData ?? {}, argsTextDelta: chunk.textDelta }
2114
2166
  });
2115
2167
  }
2116
2168
  }
2117
- await emitter.emit("watch", {
2118
- type: "tool-call-streaming-finish",
2119
- ...toolData ?? {}
2169
+ await pubsub.publish(`workflow.events.v2.${runId}`, {
2170
+ type: "watch",
2171
+ runId,
2172
+ data: { type: "tool-call-streaming-finish", ...toolData ?? {} }
2120
2173
  });
2121
2174
  return {
2122
2175
  text: await streamPromise.promise
@@ -2187,7 +2240,9 @@ function createWorkflow(params) {
2187
2240
  options: {
2188
2241
  validateInputs: params.options?.validateInputs ?? true,
2189
2242
  shouldPersistSnapshot: params.options?.shouldPersistSnapshot ?? (() => true),
2190
- tracingPolicy: params.options?.tracingPolicy
2243
+ tracingPolicy: params.options?.tracingPolicy,
2244
+ onFinish: params.options?.onFinish,
2245
+ onError: params.options?.onError
2191
2246
  }
2192
2247
  });
2193
2248
  return new EventedWorkflow({
@@ -2209,6 +2264,7 @@ var EventedWorkflow = class extends Workflow {
2209
2264
  const run = this.runs.get(runIdToUse) ?? new EventedRun({
2210
2265
  workflowId: this.id,
2211
2266
  runId: runIdToUse,
2267
+ resourceId: options?.resourceId,
2212
2268
  executionEngine: this.executionEngine,
2213
2269
  executionGraph: this.executionGraph,
2214
2270
  serializedStepGraph: this.serializedStepGraph,
@@ -2224,11 +2280,14 @@ var EventedWorkflow = class extends Workflow {
2224
2280
  workflowStatus: run.workflowRunStatus,
2225
2281
  stepResults: {}
2226
2282
  });
2227
- const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse, false);
2283
+ const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse, {
2284
+ withNestedWorkflows: false
2285
+ });
2228
2286
  if (!workflowSnapshotInStorage && shouldPersistSnapshot) {
2229
2287
  await this.mastra?.getStorage()?.persistWorkflowSnapshot({
2230
2288
  workflowName: this.id,
2231
2289
  runId: runIdToUse,
2290
+ resourceId: options?.resourceId,
2232
2291
  snapshot: {
2233
2292
  runId: runIdToUse,
2234
2293
  status: "pending",
@@ -2255,6 +2314,25 @@ var EventedRun = class extends Run {
2255
2314
  super(params);
2256
2315
  this.serializedStepGraph = params.serializedStepGraph;
2257
2316
  }
2317
+ /**
2318
+ * Set up abort signal handler to publish workflow.cancel event when abortController.abort() is called.
2319
+ * This ensures consistent cancellation behavior whether abort() is called directly or via cancel().
2320
+ */
2321
+ setupAbortHandler() {
2322
+ const abortHandler = () => {
2323
+ this.mastra?.pubsub.publish("workflows", {
2324
+ type: "workflow.cancel",
2325
+ runId: this.runId,
2326
+ data: {
2327
+ workflowId: this.workflowId,
2328
+ runId: this.runId
2329
+ }
2330
+ }).catch((err) => {
2331
+ console.error(`Failed to publish workflow.cancel for runId ${this.runId}:`, err);
2332
+ });
2333
+ };
2334
+ this.abortController.signal.addEventListener("abort", abortHandler, { once: true });
2335
+ }
2258
2336
  async start({
2259
2337
  inputData,
2260
2338
  initialState,
@@ -2272,6 +2350,7 @@ var EventedRun = class extends Run {
2272
2350
  await this.mastra?.getStorage()?.persistWorkflowSnapshot({
2273
2351
  workflowName: this.workflowId,
2274
2352
  runId: this.runId,
2353
+ resourceId: this.resourceId,
2275
2354
  snapshot: {
2276
2355
  runId: this.runId,
2277
2356
  serializedStepGraph: this.serializedStepGraph,
@@ -2289,6 +2368,10 @@ var EventedRun = class extends Run {
2289
2368
  });
2290
2369
  const inputDataToUse = await this._validateInput(inputData);
2291
2370
  const initialStateToUse = await this._validateInitialState(initialState ?? {});
2371
+ if (!this.mastra?.pubsub) {
2372
+ throw new Error("Mastra instance with pubsub is required for workflow execution");
2373
+ }
2374
+ this.setupAbortHandler();
2292
2375
  const result = await this.executionEngine.execute({
2293
2376
  workflowId: this.workflowId,
2294
2377
  runId: this.runId,
@@ -2296,20 +2379,7 @@ var EventedRun = class extends Run {
2296
2379
  serializedStepGraph: this.serializedStepGraph,
2297
2380
  input: inputDataToUse,
2298
2381
  initialState: initialStateToUse,
2299
- emitter: {
2300
- emit: async (event, data) => {
2301
- this.emitter.emit(event, data);
2302
- },
2303
- on: (event, callback) => {
2304
- this.emitter.on(event, callback);
2305
- },
2306
- off: (event, callback) => {
2307
- this.emitter.off(event, callback);
2308
- },
2309
- once: (event, callback) => {
2310
- this.emitter.once(event, callback);
2311
- }
2312
- },
2382
+ pubsub: this.mastra.pubsub,
2313
2383
  retryConfig: this.retryConfig,
2314
2384
  requestContext,
2315
2385
  abortController: this.abortController
@@ -2319,6 +2389,62 @@ var EventedRun = class extends Run {
2319
2389
  }
2320
2390
  return result;
2321
2391
  }
2392
+ /**
2393
+ * Starts the workflow execution without waiting for completion (fire-and-forget).
2394
+ * Returns immediately with the runId. The workflow executes in the background via pubsub.
2395
+ * Use this when you don't need to wait for the result or want to avoid polling failures.
2396
+ */
2397
+ async startAsync({
2398
+ inputData,
2399
+ initialState,
2400
+ requestContext
2401
+ }) {
2402
+ if (this.serializedStepGraph.length === 0) {
2403
+ throw new Error(
2404
+ "Execution flow of workflow is not defined. Add steps to the workflow via .then(), .branch(), etc."
2405
+ );
2406
+ }
2407
+ if (!this.executionGraph.steps) {
2408
+ throw new Error("Uncommitted step flow changes detected. Call .commit() to register the steps.");
2409
+ }
2410
+ requestContext = requestContext ?? new RequestContext();
2411
+ await this.mastra?.getStorage()?.persistWorkflowSnapshot({
2412
+ workflowName: this.workflowId,
2413
+ runId: this.runId,
2414
+ resourceId: this.resourceId,
2415
+ snapshot: {
2416
+ runId: this.runId,
2417
+ serializedStepGraph: this.serializedStepGraph,
2418
+ status: "running",
2419
+ value: {},
2420
+ context: {},
2421
+ requestContext: Object.fromEntries(requestContext.entries()),
2422
+ activePaths: [],
2423
+ activeStepsPath: {},
2424
+ suspendedPaths: {},
2425
+ resumeLabels: {},
2426
+ waitingPaths: {},
2427
+ timestamp: Date.now()
2428
+ }
2429
+ });
2430
+ const inputDataToUse = await this._validateInput(inputData);
2431
+ const initialStateToUse = await this._validateInitialState(initialState ?? {});
2432
+ if (!this.mastra?.pubsub) {
2433
+ throw new Error("Mastra instance with pubsub is required for workflow execution");
2434
+ }
2435
+ await this.mastra.pubsub.publish("workflows", {
2436
+ type: "workflow.start",
2437
+ runId: this.runId,
2438
+ data: {
2439
+ workflowId: this.workflowId,
2440
+ runId: this.runId,
2441
+ prevResult: { status: "success", output: inputDataToUse },
2442
+ requestContext: Object.fromEntries(requestContext.entries()),
2443
+ initialState: initialStateToUse
2444
+ }
2445
+ });
2446
+ return { runId: this.runId };
2447
+ }
2322
2448
  // TODO: stream
2323
2449
  async resume(params) {
2324
2450
  let steps = [];
@@ -2358,6 +2484,10 @@ var EventedRun = class extends Run {
2358
2484
  }
2359
2485
  const suspendedStep = this.workflowSteps[steps?.[0] ?? ""];
2360
2486
  const resumeDataToUse = await this._validateResumeData(params.resumeData, suspendedStep);
2487
+ if (!this.mastra?.pubsub) {
2488
+ throw new Error("Mastra instance with pubsub is required for workflow execution");
2489
+ }
2490
+ this.setupAbortHandler();
2361
2491
  const executionResultPromise = this.executionEngine.execute({
2362
2492
  workflowId: this.workflowId,
2363
2493
  runId: this.runId,
@@ -2370,21 +2500,7 @@ var EventedRun = class extends Run {
2370
2500
  resumePayload: resumeDataToUse,
2371
2501
  resumePath
2372
2502
  },
2373
- emitter: {
2374
- emit: (event, data) => {
2375
- this.emitter.emit(event, data);
2376
- return Promise.resolve();
2377
- },
2378
- on: (event, callback) => {
2379
- this.emitter.on(event, callback);
2380
- },
2381
- off: (event, callback) => {
2382
- this.emitter.off(event, callback);
2383
- },
2384
- once: (event, callback) => {
2385
- this.emitter.once(event, callback);
2386
- }
2387
- },
2503
+ pubsub: this.mastra.pubsub,
2388
2504
  requestContext,
2389
2505
  abortController: this.abortController
2390
2506
  }).then((result) => {
@@ -2428,14 +2544,14 @@ var EventedRun = class extends Run {
2428
2544
  };
2429
2545
  }
2430
2546
  async cancel() {
2431
- await this.mastra?.pubsub.publish("workflows", {
2432
- type: "workflow.cancel",
2547
+ await this.mastra?.getStorage()?.updateWorkflowState({
2548
+ workflowName: this.workflowId,
2433
2549
  runId: this.runId,
2434
- data: {
2435
- workflowId: this.workflowId,
2436
- runId: this.runId
2550
+ opts: {
2551
+ status: "canceled"
2437
2552
  }
2438
2553
  });
2554
+ this.abortController.abort();
2439
2555
  }
2440
2556
  };
2441
2557
 
@@ -2556,7 +2672,7 @@ var EventedExecutionEngine = class extends ExecutionEngine {
2556
2672
  }
2557
2673
  });
2558
2674
  }
2559
- const resultData = await new Promise((resolve) => {
2675
+ const resultData = await new Promise((resolve, reject) => {
2560
2676
  const finishCb = async (event, ack) => {
2561
2677
  if (event.runId !== params.runId) {
2562
2678
  await ack?.();
@@ -2565,41 +2681,58 @@ var EventedExecutionEngine = class extends ExecutionEngine {
2565
2681
  if (["workflow.end", "workflow.fail", "workflow.suspend"].includes(event.type)) {
2566
2682
  await ack?.();
2567
2683
  await pubsub.unsubscribe("workflows-finish", finishCb);
2684
+ if (event.type === "workflow.fail" && event.data.stepResults) {
2685
+ event.data.stepResults = hydrateSerializedStepErrors(event.data.stepResults);
2686
+ }
2568
2687
  resolve(event.data);
2569
2688
  return;
2570
2689
  }
2571
2690
  await ack?.();
2572
2691
  };
2573
- pubsub.subscribe("workflows-finish", finishCb).catch(() => {
2692
+ pubsub.subscribe("workflows-finish", finishCb).catch((err) => {
2693
+ console.error("Failed to subscribe to workflows-finish:", err);
2694
+ reject(err);
2574
2695
  });
2575
2696
  });
2697
+ let callbackArg;
2576
2698
  if (resultData.prevResult.status === "failed") {
2577
- return {
2699
+ callbackArg = {
2578
2700
  status: "failed",
2579
2701
  error: resultData.prevResult.error,
2580
2702
  steps: resultData.stepResults
2581
2703
  };
2582
2704
  } else if (resultData.prevResult.status === "suspended") {
2705
+ callbackArg = {
2706
+ status: "suspended",
2707
+ steps: resultData.stepResults
2708
+ };
2709
+ } else {
2710
+ callbackArg = {
2711
+ status: resultData.prevResult.status,
2712
+ result: resultData.prevResult?.output,
2713
+ steps: resultData.stepResults
2714
+ };
2715
+ }
2716
+ await this.invokeLifecycleCallbacks(callbackArg);
2717
+ let result;
2718
+ if (resultData.prevResult.status === "suspended") {
2583
2719
  const suspendedSteps = Object.entries(resultData.stepResults).map(([_stepId, stepResult]) => {
2584
2720
  if (stepResult.status === "suspended") {
2585
2721
  return stepResult.suspendPayload?.__workflow_meta?.path ?? [];
2586
2722
  }
2587
2723
  return null;
2588
2724
  }).filter(Boolean);
2589
- return {
2590
- status: "suspended",
2591
- steps: resultData.stepResults,
2725
+ result = {
2726
+ ...callbackArg,
2592
2727
  suspended: suspendedSteps
2593
2728
  };
2729
+ } else {
2730
+ result = callbackArg;
2594
2731
  }
2595
- return {
2596
- status: resultData.prevResult.status,
2597
- result: resultData.prevResult?.output,
2598
- steps: resultData.stepResults
2599
- };
2732
+ return result;
2600
2733
  }
2601
2734
  };
2602
2735
 
2603
2736
  export { EventedExecutionEngine, EventedRun, EventedWorkflow, StepExecutor, WorkflowEventProcessor, cloneStep, cloneWorkflow, createStep, createWorkflow };
2604
- //# sourceMappingURL=chunk-US2U7ECW.js.map
2605
- //# sourceMappingURL=chunk-US2U7ECW.js.map
2737
+ //# sourceMappingURL=chunk-3IP3DZ7G.js.map
2738
+ //# sourceMappingURL=chunk-3IP3DZ7G.js.map