@mastra/core 1.0.0-beta.1 → 1.0.0-beta.3

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 (287) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/dist/agent/agent-legacy.d.ts +2 -2
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent.d.ts +1 -1
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +3 -2
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +9 -9
  9. package/dist/agent/index.js +2 -2
  10. package/dist/agent/message-list/index.cjs +3 -3
  11. package/dist/agent/message-list/index.d.ts.map +1 -1
  12. package/dist/agent/message-list/index.js +1 -1
  13. package/dist/agent/message-list/prompt/convert-file.d.ts +1 -1
  14. package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -1
  15. package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
  16. package/dist/agent/types.d.ts +1 -0
  17. package/dist/agent/types.d.ts.map +1 -1
  18. package/dist/agent/utils.d.ts.map +1 -1
  19. package/dist/agent/workflows/prepare-stream/index.d.ts +2 -1
  20. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  21. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -1
  22. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  23. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +2 -1
  24. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  25. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +2 -1
  26. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  27. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
  28. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  29. package/dist/chunk-3PSWNGBF.js +3 -0
  30. package/dist/{chunk-ZV5CC35D.js.map → chunk-3PSWNGBF.js.map} +1 -1
  31. package/dist/{chunk-IQO7ANVS.cjs → chunk-3VOUB4ZU.cjs} +10 -9
  32. package/dist/chunk-3VOUB4ZU.cjs.map +1 -0
  33. package/dist/{chunk-H6CZGPZD.js → chunk-4DWZ4Z6H.js} +157 -24
  34. package/dist/chunk-4DWZ4Z6H.js.map +1 -0
  35. package/dist/{chunk-ET6UOTTU.cjs → chunk-4IKJAKCD.cjs} +40 -4
  36. package/dist/chunk-4IKJAKCD.cjs.map +1 -0
  37. package/dist/{chunk-MA7TEM62.cjs → chunk-4RSHBKDJ.cjs} +244 -4
  38. package/dist/chunk-4RSHBKDJ.cjs.map +1 -0
  39. package/dist/{chunk-MV7KHWUT.js → chunk-5CWWU22H.js} +25 -4
  40. package/dist/chunk-5CWWU22H.js.map +1 -0
  41. package/dist/{chunk-JV2KH24V.js → chunk-BAMR7HKO.js} +18 -13
  42. package/dist/chunk-BAMR7HKO.js.map +1 -0
  43. package/dist/{chunk-JUBFO5J3.js → chunk-CKGIPST2.js} +829 -92
  44. package/dist/chunk-CKGIPST2.js.map +1 -0
  45. package/dist/{chunk-4CDL2QJT.js → chunk-D6EDHNGV.js} +53 -16
  46. package/dist/chunk-D6EDHNGV.js.map +1 -0
  47. package/dist/{chunk-CD56CXVE.cjs → chunk-EZVRSZMK.cjs} +13 -12
  48. package/dist/chunk-EZVRSZMK.cjs.map +1 -0
  49. package/dist/{chunk-ECFXGXWO.cjs → chunk-G36A2JRR.cjs} +18 -13
  50. package/dist/chunk-G36A2JRR.cjs.map +1 -0
  51. package/dist/{chunk-VOQ3ULMT.js → chunk-G3OOCXAI.js} +243 -3
  52. package/dist/chunk-G3OOCXAI.js.map +1 -0
  53. package/dist/{chunk-I4CXL4SR.js → chunk-GRGPQ32U.js} +5 -4
  54. package/dist/chunk-GRGPQ32U.js.map +1 -0
  55. package/dist/{chunk-WM6CK2F3.cjs → chunk-HBJPYQRN.cjs} +57 -19
  56. package/dist/chunk-HBJPYQRN.cjs.map +1 -0
  57. package/dist/{chunk-GGYKYORQ.cjs → chunk-JTXVR2RA.cjs} +27 -6
  58. package/dist/chunk-JTXVR2RA.cjs.map +1 -0
  59. package/dist/{chunk-XEVG546F.js → chunk-JXESKY4A.js} +3 -3
  60. package/dist/{chunk-XEVG546F.js.map → chunk-JXESKY4A.js.map} +1 -1
  61. package/dist/{chunk-7AHYOMHJ.js → chunk-KEURQGCQ.js} +40 -5
  62. package/dist/chunk-KEURQGCQ.js.map +1 -0
  63. package/dist/{chunk-JPGVRWWL.js → chunk-KOSW5PP5.js} +8 -2
  64. package/dist/chunk-KOSW5PP5.js.map +1 -0
  65. package/dist/chunk-MCUX2D5Q.js +420 -0
  66. package/dist/chunk-MCUX2D5Q.js.map +1 -0
  67. package/dist/chunk-N4SJ4YX7.cjs +424 -0
  68. package/dist/chunk-N4SJ4YX7.cjs.map +1 -0
  69. package/dist/{chunk-VOY2RXOC.cjs → chunk-O6NA3Z43.cjs} +6 -6
  70. package/dist/{chunk-VOY2RXOC.cjs.map → chunk-O6NA3Z43.cjs.map} +1 -1
  71. package/dist/{chunk-CINNK34N.js → chunk-OQF4H5Y2.js} +6 -5
  72. package/dist/chunk-OQF4H5Y2.js.map +1 -0
  73. package/dist/{chunk-MSWTA73A.cjs → chunk-OWX2PUFH.cjs} +866 -126
  74. package/dist/chunk-OWX2PUFH.cjs.map +1 -0
  75. package/dist/chunk-PE3V7GUL.cjs +4 -0
  76. package/dist/{chunk-LJFJTTZQ.cjs.map → chunk-PE3V7GUL.cjs.map} +1 -1
  77. package/dist/{chunk-HDJFSJCK.js → chunk-T3WZCEC4.js} +4 -3
  78. package/dist/chunk-T3WZCEC4.js.map +1 -0
  79. package/dist/{chunk-W7UH2PWL.js → chunk-VU6DVS7J.js} +179 -282
  80. package/dist/chunk-VU6DVS7J.js.map +1 -0
  81. package/dist/{chunk-DNEURYF3.cjs → chunk-VZGBVYXA.cjs} +175 -42
  82. package/dist/chunk-VZGBVYXA.cjs.map +1 -0
  83. package/dist/{chunk-2ZVKF4HP.cjs → chunk-XRIVPHXV.cjs} +184 -285
  84. package/dist/chunk-XRIVPHXV.cjs.map +1 -0
  85. package/dist/{chunk-LWBQ4P4N.cjs → chunk-YQ7NLZZ3.cjs} +54 -53
  86. package/dist/chunk-YQ7NLZZ3.cjs.map +1 -0
  87. package/dist/{chunk-CB575O6L.cjs → chunk-ZPMFINU2.cjs} +8 -2
  88. package/dist/chunk-ZPMFINU2.cjs.map +1 -0
  89. package/dist/evals/base.d.ts.map +1 -1
  90. package/dist/evals/index.cjs +4 -4
  91. package/dist/evals/index.js +1 -1
  92. package/dist/evals/scoreTraces/index.cjs +5 -4
  93. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  94. package/dist/evals/scoreTraces/index.js +3 -2
  95. package/dist/evals/scoreTraces/index.js.map +1 -1
  96. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  97. package/dist/index.cjs +2 -2
  98. package/dist/index.js +1 -1
  99. package/dist/integration/index.cjs +2 -2
  100. package/dist/integration/index.js +1 -1
  101. package/dist/llm/index.cjs +26 -10
  102. package/dist/llm/index.d.ts +1 -0
  103. package/dist/llm/index.d.ts.map +1 -1
  104. package/dist/llm/index.js +5 -1
  105. package/dist/llm/model/aisdk/v5/model.d.ts +47 -0
  106. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -0
  107. package/dist/llm/model/gateways/base.d.ts +8 -0
  108. package/dist/llm/model/gateways/base.d.ts.map +1 -1
  109. package/dist/llm/model/gateways/models-dev.d.ts +1 -0
  110. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  111. package/dist/llm/model/gateways/netlify.d.ts +2 -1
  112. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  113. package/dist/llm/model/is-v2-model.d.ts +3 -0
  114. package/dist/llm/model/is-v2-model.d.ts.map +1 -0
  115. package/dist/llm/model/model-method-from-agent.d.ts +4 -0
  116. package/dist/llm/model/model-method-from-agent.d.ts.map +1 -0
  117. package/dist/llm/model/model.loop.d.ts +2 -2
  118. package/dist/llm/model/model.loop.d.ts.map +1 -1
  119. package/dist/llm/model/model.loop.types.d.ts +2 -0
  120. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  121. package/dist/llm/model/provider-registry.d.ts +11 -1
  122. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  123. package/dist/llm/model/provider-types.generated.d.ts +56 -7
  124. package/dist/llm/model/registry-generator.d.ts.map +1 -1
  125. package/dist/llm/model/resolve-model.d.ts +1 -1
  126. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  127. package/dist/llm/model/router.d.ts +12 -5
  128. package/dist/llm/model/router.d.ts.map +1 -1
  129. package/dist/llm/model/shared.types.d.ts +10 -4
  130. package/dist/llm/model/shared.types.d.ts.map +1 -1
  131. package/dist/loop/index.cjs +2 -2
  132. package/dist/loop/index.js +1 -1
  133. package/dist/loop/network/index.d.ts.map +1 -1
  134. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +37 -0
  135. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -0
  136. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  137. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  138. package/dist/loop/test-utils/options.d.ts.map +1 -1
  139. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  140. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  141. package/dist/loop/test-utils/textStream.d.ts.map +1 -1
  142. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  143. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  144. package/dist/loop/test-utils/utils.d.ts +1 -1
  145. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  146. package/dist/loop/types.d.ts +8 -3
  147. package/dist/loop/types.d.ts.map +1 -1
  148. package/dist/loop/workflows/agentic-execution/index.d.ts +12 -12
  149. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  150. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +9 -9
  151. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  152. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +4 -4
  153. package/dist/loop/workflows/agentic-loop/index.d.ts +13 -12
  154. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  155. package/dist/loop/workflows/run-state.d.ts +2 -2
  156. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  157. package/dist/loop/workflows/schema.d.ts +4 -4
  158. package/dist/loop/workflows/stream.d.ts.map +1 -1
  159. package/dist/mastra/index.cjs +2 -2
  160. package/dist/mastra/index.d.ts +127 -3
  161. package/dist/mastra/index.d.ts.map +1 -1
  162. package/dist/mastra/index.js +1 -1
  163. package/dist/memory/index.cjs +8 -8
  164. package/dist/memory/index.js +4 -4
  165. package/dist/models-dev-GCVENVWA.js +3 -0
  166. package/dist/{models-dev-DNBKXHT4.js.map → models-dev-GCVENVWA.js.map} +1 -1
  167. package/dist/models-dev-TIBJR6IG.cjs +12 -0
  168. package/dist/{models-dev-YBEEQIX6.cjs.map → models-dev-TIBJR6IG.cjs.map} +1 -1
  169. package/dist/netlify-NTSNNT6F.cjs +12 -0
  170. package/dist/{netlify-GWNGSIRZ.cjs.map → netlify-NTSNNT6F.cjs.map} +1 -1
  171. package/dist/netlify-O5NJW7CF.js +3 -0
  172. package/dist/{netlify-7G2L5VSH.js.map → netlify-O5NJW7CF.js.map} +1 -1
  173. package/dist/processors/index.cjs +11 -11
  174. package/dist/processors/index.js +1 -1
  175. package/dist/provider-registry-74GMFZKT.js +3 -0
  176. package/dist/provider-registry-74GMFZKT.js.map +1 -0
  177. package/dist/provider-registry-BZP3DIIV.cjs +40 -0
  178. package/dist/provider-registry-BZP3DIIV.cjs.map +1 -0
  179. package/dist/provider-registry.json +140 -18
  180. package/dist/{registry-generator-MK63POJO.cjs → registry-generator-JPCV47SC.cjs} +6 -4
  181. package/dist/registry-generator-JPCV47SC.cjs.map +1 -0
  182. package/dist/{registry-generator-H4YNODDH.js → registry-generator-XD4FPZTU.js} +6 -4
  183. package/dist/registry-generator-XD4FPZTU.js.map +1 -0
  184. package/dist/relevance/index.cjs +2 -2
  185. package/dist/relevance/index.js +1 -1
  186. package/dist/server/index.cjs +2 -1
  187. package/dist/server/index.cjs.map +1 -1
  188. package/dist/server/index.d.ts +4 -0
  189. package/dist/server/index.d.ts.map +1 -1
  190. package/dist/server/index.js +2 -1
  191. package/dist/server/index.js.map +1 -1
  192. package/dist/storage/domains/workflows/inmemory.d.ts +1 -1
  193. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  194. package/dist/storage/index.cjs +29 -29
  195. package/dist/storage/index.js +1 -1
  196. package/dist/storage/types.d.ts +2 -1
  197. package/dist/storage/types.d.ts.map +1 -1
  198. package/dist/stream/RunOutput.d.ts +1 -1
  199. package/dist/stream/RunOutput.d.ts.map +1 -1
  200. package/dist/stream/aisdk/v5/execute.d.ts +6 -3
  201. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  202. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  203. package/dist/stream/base/input.d.ts +1 -1
  204. package/dist/stream/base/output.d.ts.map +1 -1
  205. package/dist/stream/index.cjs +11 -11
  206. package/dist/stream/index.js +2 -2
  207. package/dist/stream/types.d.ts +4 -3
  208. package/dist/stream/types.d.ts.map +1 -1
  209. package/dist/test-utils/llm-mock.cjs +2 -2
  210. package/dist/test-utils/llm-mock.js +1 -1
  211. package/dist/tools/index.cjs +4 -4
  212. package/dist/tools/index.js +1 -1
  213. package/dist/tools/is-vercel-tool.cjs +2 -2
  214. package/dist/tools/is-vercel-tool.js +1 -1
  215. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  216. package/dist/tools/tool.d.ts.map +1 -1
  217. package/dist/tools/types.d.ts +1 -0
  218. package/dist/tools/types.d.ts.map +1 -1
  219. package/dist/tools/validation.d.ts +12 -0
  220. package/dist/tools/validation.d.ts.map +1 -1
  221. package/dist/utils.cjs +25 -21
  222. package/dist/utils.d.ts +4 -1
  223. package/dist/utils.d.ts.map +1 -1
  224. package/dist/utils.js +1 -1
  225. package/dist/workflows/default.d.ts +24 -8
  226. package/dist/workflows/default.d.ts.map +1 -1
  227. package/dist/workflows/evented/execution-engine.d.ts +3 -1
  228. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  229. package/dist/workflows/evented/index.cjs +10 -10
  230. package/dist/workflows/evented/index.js +1 -1
  231. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  232. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
  233. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  234. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
  235. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  236. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  237. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
  238. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  239. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
  240. package/dist/workflows/evented/workflow.d.ts +2 -1
  241. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  242. package/dist/workflows/execution-engine.d.ts +4 -2
  243. package/dist/workflows/execution-engine.d.ts.map +1 -1
  244. package/dist/workflows/index.cjs +28 -16
  245. package/dist/workflows/index.js +1 -1
  246. package/dist/workflows/step.d.ts +2 -1
  247. package/dist/workflows/step.d.ts.map +1 -1
  248. package/dist/workflows/types.d.ts +64 -7
  249. package/dist/workflows/types.d.ts.map +1 -1
  250. package/dist/workflows/utils.d.ts +20 -0
  251. package/dist/workflows/utils.d.ts.map +1 -1
  252. package/dist/workflows/workflow.d.ts +109 -40
  253. package/dist/workflows/workflow.d.ts.map +1 -1
  254. package/package.json +12 -20
  255. package/src/llm/model/provider-types.generated.d.ts +56 -7
  256. package/dist/chunk-2ZVKF4HP.cjs.map +0 -1
  257. package/dist/chunk-4CDL2QJT.js.map +0 -1
  258. package/dist/chunk-7AHYOMHJ.js.map +0 -1
  259. package/dist/chunk-CB575O6L.cjs.map +0 -1
  260. package/dist/chunk-CD56CXVE.cjs.map +0 -1
  261. package/dist/chunk-CINNK34N.js.map +0 -1
  262. package/dist/chunk-DNEURYF3.cjs.map +0 -1
  263. package/dist/chunk-ECFXGXWO.cjs.map +0 -1
  264. package/dist/chunk-ET6UOTTU.cjs.map +0 -1
  265. package/dist/chunk-GGYKYORQ.cjs.map +0 -1
  266. package/dist/chunk-H6CZGPZD.js.map +0 -1
  267. package/dist/chunk-HDJFSJCK.js.map +0 -1
  268. package/dist/chunk-I4CXL4SR.js.map +0 -1
  269. package/dist/chunk-IQO7ANVS.cjs.map +0 -1
  270. package/dist/chunk-JPGVRWWL.js.map +0 -1
  271. package/dist/chunk-JUBFO5J3.js.map +0 -1
  272. package/dist/chunk-JV2KH24V.js.map +0 -1
  273. package/dist/chunk-LJFJTTZQ.cjs +0 -4
  274. package/dist/chunk-LWBQ4P4N.cjs.map +0 -1
  275. package/dist/chunk-MA7TEM62.cjs.map +0 -1
  276. package/dist/chunk-MSWTA73A.cjs.map +0 -1
  277. package/dist/chunk-MV7KHWUT.js.map +0 -1
  278. package/dist/chunk-VOQ3ULMT.js.map +0 -1
  279. package/dist/chunk-W7UH2PWL.js.map +0 -1
  280. package/dist/chunk-WM6CK2F3.cjs.map +0 -1
  281. package/dist/chunk-ZV5CC35D.js +0 -3
  282. package/dist/models-dev-DNBKXHT4.js +0 -3
  283. package/dist/models-dev-YBEEQIX6.cjs +0 -12
  284. package/dist/netlify-7G2L5VSH.js +0 -3
  285. package/dist/netlify-GWNGSIRZ.cjs +0 -12
  286. package/dist/registry-generator-H4YNODDH.js.map +0 -1
  287. package/dist/registry-generator-MK63POJO.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
- import { validateStepInput, createDeprecationProxy, getStepResult, runCountDeprecationMessage, Workflow, Run, ExecutionEngine } from './chunk-JUBFO5J3.js';
1
+ import { validateStepInput, createDeprecationProxy, getStepResult, runCountDeprecationMessage, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine } from './chunk-CKGIPST2.js';
2
2
  import { STREAM_FORMAT_SYMBOL, EMITTER_SYMBOL } from './chunk-NLNKQD2T.js';
3
3
  import { getErrorFromUnknown, MastraError } from './chunk-JJ5O45LH.js';
4
- import { Tool } from './chunk-7AHYOMHJ.js';
4
+ import { Tool } from './chunk-KEURQGCQ.js';
5
5
  import { RequestContext } from './chunk-GRBGQ2GE.js';
6
6
  import { MastraBase } from './chunk-S6URFGCZ.js';
7
7
  import { RegisteredLogger } from './chunk-KJ2SW6VA.js';
@@ -27,7 +27,7 @@ var StepExecutor = class extends MastraBase {
27
27
  const { inputData, validationError } = await validateStepInput({
28
28
  prevOutput: typeof params.foreachIdx === "number" ? params.input?.[params.foreachIdx] : params.input,
29
29
  step,
30
- validateInputs: params.validateInputs ?? false
30
+ validateInputs: params.validateInputs ?? true
31
31
  });
32
32
  let stepInfo = {
33
33
  ...stepResults[step.id],
@@ -92,7 +92,8 @@ var StepExecutor = class extends MastraBase {
92
92
  finalResult = {
93
93
  ...stepInfo,
94
94
  status: "suspended",
95
- suspendedAt: endedAt
95
+ suspendedAt: endedAt,
96
+ ...stepResult ? { suspendOutput: stepResult } : {}
96
97
  };
97
98
  if (suspended.payload) {
98
99
  finalResult.suspendPayload = suspended.payload;
@@ -472,6 +473,7 @@ async function processWorkflowForEach({
472
473
  stepResults,
473
474
  activeSteps,
474
475
  resumeSteps,
476
+ timeTravel,
475
477
  resumeData,
476
478
  parentWorkflow,
477
479
  requestContext
@@ -494,6 +496,7 @@ async function processWorkflowForEach({
494
496
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
495
497
  resumeSteps,
496
498
  stepResults,
499
+ timeTravel,
497
500
  prevResult: currentResult,
498
501
  resumeData,
499
502
  activeSteps,
@@ -530,6 +533,7 @@ async function processWorkflowForEach({
530
533
  executionPath: [executionPath[0], i],
531
534
  resumeSteps,
532
535
  stepResults,
536
+ timeTravel,
533
537
  prevResult,
534
538
  resumeData,
535
539
  activeSteps,
@@ -561,6 +565,7 @@ async function processWorkflowForEach({
561
565
  runId,
562
566
  executionPath: [executionPath[0], idx],
563
567
  resumeSteps,
568
+ timeTravel,
564
569
  stepResults,
565
570
  prevResult,
566
571
  resumeData,
@@ -576,6 +581,7 @@ async function processWorkflowParallel({
576
581
  stepResults,
577
582
  activeSteps,
578
583
  resumeSteps,
584
+ timeTravel,
579
585
  prevResult,
580
586
  resumeData,
581
587
  parentWorkflow,
@@ -603,6 +609,7 @@ async function processWorkflowParallel({
603
609
  stepResults,
604
610
  prevResult,
605
611
  resumeData,
612
+ timeTravel,
606
613
  parentWorkflow,
607
614
  activeSteps,
608
615
  requestContext
@@ -618,6 +625,7 @@ async function processWorkflowConditional({
618
625
  stepResults,
619
626
  activeSteps,
620
627
  resumeSteps,
628
+ timeTravel,
621
629
  prevResult,
622
630
  resumeData,
623
631
  parentWorkflow,
@@ -660,6 +668,7 @@ async function processWorkflowConditional({
660
668
  executionPath: executionPath.concat([idx]),
661
669
  resumeSteps,
662
670
  stepResults,
671
+ timeTravel,
663
672
  prevResult,
664
673
  resumeData,
665
674
  parentWorkflow,
@@ -726,6 +735,7 @@ async function processWorkflowSleep({
726
735
  stepResults,
727
736
  activeSteps,
728
737
  resumeSteps,
738
+ timeTravel,
729
739
  prevResult,
730
740
  resumeData,
731
741
  parentWorkflow,
@@ -797,6 +807,7 @@ async function processWorkflowSleep({
797
807
  runId,
798
808
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
799
809
  resumeSteps,
810
+ timeTravel,
800
811
  stepResults,
801
812
  prevResult,
802
813
  resumeData,
@@ -816,6 +827,7 @@ async function processWorkflowSleepUntil({
816
827
  stepResults,
817
828
  activeSteps,
818
829
  resumeSteps,
830
+ timeTravel,
819
831
  prevResult,
820
832
  resumeData,
821
833
  parentWorkflow,
@@ -887,6 +899,7 @@ async function processWorkflowSleepUntil({
887
899
  runId,
888
900
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
889
901
  resumeSteps,
902
+ timeTravel,
890
903
  stepResults,
891
904
  prevResult,
892
905
  resumeData,
@@ -967,6 +980,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
967
980
  resumeSteps,
968
981
  prevResult,
969
982
  resumeData,
983
+ timeTravel,
970
984
  executionPath,
971
985
  stepResults,
972
986
  requestContext
@@ -979,13 +993,14 @@ var WorkflowEventProcessor = class extends EventProcessor {
979
993
  suspendedPaths: {},
980
994
  resumeLabels: {},
981
995
  waitingPaths: {},
996
+ activeStepsPath: {},
982
997
  serializedStepGraph: workflow.serializedStepGraph,
983
998
  timestamp: Date.now(),
984
999
  runId,
985
- status: "running",
986
1000
  context: stepResults ?? {
987
1001
  input: prevResult?.status === "success" ? prevResult.output : void 0
988
1002
  },
1003
+ status: "running",
989
1004
  value: {}
990
1005
  }
991
1006
  });
@@ -1002,6 +1017,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1002
1017
  input: prevResult?.status === "success" ? prevResult.output : void 0
1003
1018
  },
1004
1019
  prevResult,
1020
+ timeTravel,
1005
1021
  requestContext,
1006
1022
  resumeData,
1007
1023
  activeSteps: {}
@@ -1035,7 +1051,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1035
1051
  });
1036
1052
  }
1037
1053
  async processWorkflowEnd(args) {
1038
- const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, requestContext, runId } = args;
1054
+ const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, requestContext, runId, timeTravel } = args;
1039
1055
  if (parentWorkflow) {
1040
1056
  await this.mastra.pubsub.publish("workflows", {
1041
1057
  type: "workflow.step.end",
@@ -1051,7 +1067,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1051
1067
  activeSteps,
1052
1068
  parentWorkflow: parentWorkflow.parentWorkflow,
1053
1069
  parentContext: parentWorkflow,
1054
- requestContext
1070
+ requestContext,
1071
+ timeTravel
1055
1072
  }
1056
1073
  });
1057
1074
  }
@@ -1062,7 +1079,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1062
1079
  });
1063
1080
  }
1064
1081
  async processWorkflowSuspend(args) {
1065
- const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, requestContext } = args;
1082
+ const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, requestContext, timeTravel } = args;
1066
1083
  if (parentWorkflow) {
1067
1084
  await this.mastra.pubsub.publish("workflows", {
1068
1085
  type: "workflow.step.end",
@@ -1083,6 +1100,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1083
1100
  }
1084
1101
  }
1085
1102
  },
1103
+ timeTravel,
1086
1104
  resumeData,
1087
1105
  activeSteps,
1088
1106
  requestContext,
@@ -1098,7 +1116,17 @@ var WorkflowEventProcessor = class extends EventProcessor {
1098
1116
  });
1099
1117
  }
1100
1118
  async processWorkflowFail(args) {
1101
- const { workflowId, runId, resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, requestContext } = args;
1119
+ const {
1120
+ workflowId,
1121
+ runId,
1122
+ resumeSteps,
1123
+ prevResult,
1124
+ resumeData,
1125
+ parentWorkflow,
1126
+ activeSteps,
1127
+ requestContext,
1128
+ timeTravel
1129
+ } = args;
1102
1130
  await this.mastra.getStorage()?.updateWorkflowState({
1103
1131
  workflowName: workflowId,
1104
1132
  runId,
@@ -1118,6 +1146,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1118
1146
  resumeSteps,
1119
1147
  stepResults: parentWorkflow.stepResults,
1120
1148
  prevResult,
1149
+ timeTravel,
1121
1150
  resumeData,
1122
1151
  activeSteps,
1123
1152
  requestContext,
@@ -1140,6 +1169,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1140
1169
  stepResults,
1141
1170
  activeSteps,
1142
1171
  resumeSteps,
1172
+ timeTravel,
1143
1173
  prevResult,
1144
1174
  resumeData,
1145
1175
  parentWorkflow,
@@ -1203,6 +1233,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1203
1233
  stepResults,
1204
1234
  activeSteps,
1205
1235
  resumeSteps,
1236
+ timeTravel,
1206
1237
  prevResult,
1207
1238
  resumeData,
1208
1239
  parentWorkflow,
@@ -1222,6 +1253,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1222
1253
  stepResults,
1223
1254
  activeSteps,
1224
1255
  resumeSteps,
1256
+ timeTravel,
1225
1257
  prevResult,
1226
1258
  resumeData,
1227
1259
  parentWorkflow,
@@ -1242,6 +1274,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1242
1274
  stepResults,
1243
1275
  activeSteps,
1244
1276
  resumeSteps,
1277
+ timeTravel,
1245
1278
  prevResult,
1246
1279
  resumeData,
1247
1280
  parentWorkflow,
@@ -1262,6 +1295,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1262
1295
  stepResults,
1263
1296
  activeSteps,
1264
1297
  resumeSteps,
1298
+ timeTravel,
1265
1299
  prevResult,
1266
1300
  resumeData,
1267
1301
  parentWorkflow,
@@ -1282,6 +1316,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1282
1316
  stepResults,
1283
1317
  activeSteps,
1284
1318
  resumeSteps,
1319
+ timeTravel,
1285
1320
  prevResult,
1286
1321
  resumeData,
1287
1322
  parentWorkflow,
@@ -1374,6 +1409,47 @@ var WorkflowEventProcessor = class extends EventProcessor {
1374
1409
  requestContext
1375
1410
  }
1376
1411
  });
1412
+ } else if (timeTravel && timeTravel.steps?.length > 1 && timeTravel.steps[0] === step.step.id) {
1413
+ const snapshot = await this.mastra?.getStorage()?.loadWorkflowSnapshot({
1414
+ workflowName: step.step.id,
1415
+ runId
1416
+ }) ?? { context: {} };
1417
+ const timeTravelParams = createTimeTravelExecutionParams({
1418
+ steps: timeTravel.steps.slice(1),
1419
+ inputData: timeTravel.inputData,
1420
+ resumeData: timeTravel.resumeData,
1421
+ context: timeTravel.nestedStepResults?.[step.step.id] ?? {},
1422
+ nestedStepsContext: timeTravel.nestedStepResults ?? {},
1423
+ snapshot,
1424
+ graph: step.step.buildExecutionGraph()
1425
+ });
1426
+ const nestedPrevStep = getStep(step.step, timeTravelParams.executionPath);
1427
+ const nestedPrevResult = timeTravelParams.stepResults[nestedPrevStep?.id ?? "input"];
1428
+ await this.mastra.pubsub.publish("workflows", {
1429
+ type: "workflow.start",
1430
+ runId,
1431
+ data: {
1432
+ workflowId: step.step.id,
1433
+ parentWorkflow: {
1434
+ stepId: step.step.id,
1435
+ workflowId,
1436
+ runId,
1437
+ executionPath,
1438
+ resumeSteps,
1439
+ stepResults,
1440
+ timeTravel,
1441
+ input: prevResult,
1442
+ parentWorkflow
1443
+ },
1444
+ executionPath: timeTravelParams.executionPath,
1445
+ runId: randomUUID(),
1446
+ stepResults: timeTravelParams.stepResults,
1447
+ prevResult: { status: "success", output: nestedPrevResult?.payload },
1448
+ timeTravel: timeTravelParams,
1449
+ activeSteps,
1450
+ requestContext
1451
+ }
1452
+ });
1377
1453
  } else {
1378
1454
  await this.mastra.pubsub.publish("workflows", {
1379
1455
  type: "workflow.start",
@@ -1429,6 +1505,21 @@ var WorkflowEventProcessor = class extends EventProcessor {
1429
1505
  for (const [key, value] of Object.entries(requestContext)) {
1430
1506
  rc.set(key, value);
1431
1507
  }
1508
+ const { resumeData: timeTravelResumeData, validationError: timeTravelResumeValidationError } = await validateStepResumeData({
1509
+ resumeData: timeTravel?.stepResults[step.step.id]?.status === "suspended" ? timeTravel?.resumeData : void 0,
1510
+ step: step.step
1511
+ });
1512
+ let resumeDataToUse;
1513
+ if (timeTravelResumeData && !timeTravelResumeValidationError) {
1514
+ resumeDataToUse = timeTravelResumeData;
1515
+ } else if (timeTravelResumeData && timeTravelResumeValidationError) {
1516
+ this.mastra.getLogger()?.warn("Time travel resume data validation failed", {
1517
+ stepId: step.step.id,
1518
+ error: timeTravelResumeValidationError.message
1519
+ });
1520
+ } else if (resumeSteps?.length > 0 && resumeSteps?.[0] === step.step.id) {
1521
+ resumeDataToUse = resumeData;
1522
+ }
1432
1523
  const stepResult = await this.stepExecutor.execute({
1433
1524
  workflowId,
1434
1525
  step: step.step,
@@ -1439,7 +1530,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1439
1530
  emitter: ee,
1440
1531
  requestContext: rc,
1441
1532
  input: prevResult?.output,
1442
- resumeData: resumeSteps?.length === 1 && resumeSteps?.[0] === step.step.id ? resumeData : void 0,
1533
+ resumeData: resumeDataToUse,
1443
1534
  retryCount,
1444
1535
  foreachIdx: step.type === "foreach" ? executionPath[1] : void 0,
1445
1536
  validateInputs: workflow.options.validateInputs
@@ -1493,6 +1584,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1493
1584
  executionPath,
1494
1585
  resumeSteps,
1495
1586
  stepResults,
1587
+ timeTravel,
1496
1588
  prevResult,
1497
1589
  activeSteps,
1498
1590
  requestContext,
@@ -1533,6 +1625,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1533
1625
  runId,
1534
1626
  executionPath,
1535
1627
  resumeSteps,
1628
+ timeTravel,
1629
+ //timeTravel is passed in as workflow.step.end ends the step, not the workflow, the timeTravel info is passed to the next step to run.
1536
1630
  stepResults,
1537
1631
  prevResult: stepResult,
1538
1632
  activeSteps,
@@ -1547,6 +1641,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1547
1641
  runId,
1548
1642
  executionPath,
1549
1643
  resumeSteps,
1644
+ timeTravel,
1550
1645
  prevResult,
1551
1646
  parentWorkflow,
1552
1647
  stepResults,
@@ -1636,6 +1731,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1636
1731
  resumeSteps,
1637
1732
  parentWorkflow,
1638
1733
  stepResults,
1734
+ timeTravel,
1639
1735
  prevResult,
1640
1736
  activeSteps,
1641
1737
  requestContext
@@ -1669,7 +1765,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1669
1765
  stepResults,
1670
1766
  prevResult,
1671
1767
  activeSteps,
1672
- requestContext
1768
+ requestContext,
1769
+ timeTravel
1673
1770
  }
1674
1771
  });
1675
1772
  await this.mastra.pubsub.publish(`workflow.events.v2.${runId}`, {
@@ -1746,7 +1843,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1746
1843
  stepResults,
1747
1844
  prevResult: { status: "success", output: allResults },
1748
1845
  activeSteps,
1749
- requestContext
1846
+ requestContext,
1847
+ timeTravel
1750
1848
  }
1751
1849
  });
1752
1850
  } else if (step?.type === "foreach") {
@@ -1762,7 +1860,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1762
1860
  stepResults,
1763
1861
  prevResult: { ...prevResult, output: prevResult?.payload },
1764
1862
  activeSteps,
1765
- requestContext
1863
+ requestContext,
1864
+ timeTravel
1766
1865
  }
1767
1866
  });
1768
1867
  } else if (executionPath[0] >= workflow.stepGraph.length - 1) {
@@ -1791,7 +1890,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1791
1890
  stepResults,
1792
1891
  prevResult,
1793
1892
  activeSteps,
1794
- requestContext
1893
+ requestContext,
1894
+ timeTravel
1795
1895
  }
1796
1896
  });
1797
1897
  }
@@ -1927,7 +2027,8 @@ function cloneWorkflow(workflow, opts) {
1927
2027
  inputSchema: workflow.inputSchema,
1928
2028
  outputSchema: workflow.outputSchema,
1929
2029
  steps: workflow.stepDefs,
1930
- mastra: workflow.mastra
2030
+ mastra: workflow.mastra,
2031
+ options: workflow.options
1931
2032
  });
1932
2033
  wf.setStepFlow(workflow.stepGraph);
1933
2034
  wf.commit();
@@ -1939,7 +2040,12 @@ function cloneStep(step, opts) {
1939
2040
  description: step.description,
1940
2041
  inputSchema: step.inputSchema,
1941
2042
  outputSchema: step.outputSchema,
2043
+ suspendSchema: step.suspendSchema,
2044
+ resumeSchema: step.resumeSchema,
2045
+ stateSchema: step.stateSchema,
1942
2046
  execute: step.execute,
2047
+ retries: step.retries,
2048
+ scorers: step.scorers,
1943
2049
  component: step.component
1944
2050
  };
1945
2051
  }
@@ -2070,7 +2176,7 @@ function createWorkflow(params) {
2070
2176
  mastra: params.mastra,
2071
2177
  eventProcessor,
2072
2178
  options: {
2073
- validateInputs: params.options?.validateInputs ?? false,
2179
+ validateInputs: params.options?.validateInputs ?? true,
2074
2180
  shouldPersistSnapshot: params.options?.shouldPersistSnapshot ?? (() => true),
2075
2181
  tracingPolicy: params.options?.tracingPolicy
2076
2182
  }
@@ -2083,6 +2189,7 @@ function createWorkflow(params) {
2083
2189
  var EventedWorkflow = class extends Workflow {
2084
2190
  constructor(params) {
2085
2191
  super(params);
2192
+ this.engineType = "evented";
2086
2193
  }
2087
2194
  __registerMastra(mastra) {
2088
2195
  super.__registerMastra(mastra);
@@ -2099,7 +2206,9 @@ var EventedWorkflow = class extends Workflow {
2099
2206
  mastra: this.mastra,
2100
2207
  retryConfig: this.retryConfig,
2101
2208
  cleanup: () => this.runs.delete(runIdToUse),
2102
- workflowSteps: this.steps
2209
+ workflowSteps: this.steps,
2210
+ validateInputs: this.options?.validateInputs,
2211
+ workflowEngineType: this.engineType
2103
2212
  });
2104
2213
  this.runs.set(runIdToUse, run);
2105
2214
  const shouldPersistSnapshot = this.options?.shouldPersistSnapshot?.({
@@ -2118,6 +2227,7 @@ var EventedWorkflow = class extends Workflow {
2118
2227
  context: {},
2119
2228
  activePaths: [],
2120
2229
  serializedStepGraph: this.serializedStepGraph,
2230
+ activeStepsPath: {},
2121
2231
  suspendedPaths: {},
2122
2232
  resumeLabels: {},
2123
2233
  waitingPaths: {},
@@ -2156,15 +2266,16 @@ var EventedRun = class extends Run {
2156
2266
  snapshot: {
2157
2267
  runId: this.runId,
2158
2268
  serializedStepGraph: this.serializedStepGraph,
2269
+ status: "running",
2159
2270
  value: {},
2160
2271
  context: {},
2161
2272
  requestContext: Object.fromEntries(requestContext.entries()),
2162
2273
  activePaths: [],
2274
+ activeStepsPath: {},
2163
2275
  suspendedPaths: {},
2164
2276
  resumeLabels: {},
2165
2277
  waitingPaths: {},
2166
- timestamp: Date.now(),
2167
- status: "running"
2278
+ timestamp: Date.now()
2168
2279
  }
2169
2280
  });
2170
2281
  const inputDataToUse = await this._validateInput(inputData);
@@ -2202,9 +2313,14 @@ var EventedRun = class extends Run {
2202
2313
  }
2203
2314
  // TODO: stream
2204
2315
  async resume(params) {
2205
- const steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
2206
- (step) => typeof step === "string" ? step : step?.id
2207
- );
2316
+ let steps = [];
2317
+ if (typeof params.step === "string") {
2318
+ steps = params.step.split(".");
2319
+ } else {
2320
+ steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
2321
+ (step) => typeof step === "string" ? step : step?.id
2322
+ );
2323
+ }
2208
2324
  if (steps.length === 0) {
2209
2325
  throw new Error("No steps provided to resume");
2210
2326
  }
@@ -2402,6 +2518,23 @@ var EventedExecutionEngine = class extends ExecutionEngine {
2402
2518
  format: params.format
2403
2519
  }
2404
2520
  });
2521
+ } else if (params.timeTravel) {
2522
+ const prevStep = getStep(this.mastra.getWorkflow(params.workflowId), params.timeTravel.executionPath);
2523
+ const prevResult = params.timeTravel.stepResults[prevStep?.id ?? "input"];
2524
+ await pubsub.publish("workflows", {
2525
+ type: "workflow.start",
2526
+ runId: params.runId,
2527
+ data: {
2528
+ workflowId: params.workflowId,
2529
+ runId: params.runId,
2530
+ executionPath: params.timeTravel.executionPath,
2531
+ stepResults: params.timeTravel.stepResults,
2532
+ timeTravel: params.timeTravel,
2533
+ prevResult: { status: "success", output: prevResult?.payload },
2534
+ requestContext: Object.fromEntries(params.requestContext.entries()),
2535
+ format: params.format
2536
+ }
2537
+ });
2405
2538
  } else {
2406
2539
  await pubsub.publish("workflows", {
2407
2540
  type: "workflow.start",
@@ -2460,5 +2593,5 @@ var EventedExecutionEngine = class extends ExecutionEngine {
2460
2593
  };
2461
2594
 
2462
2595
  export { EventedExecutionEngine, EventedRun, EventedWorkflow, StepExecutor, WorkflowEventProcessor, cloneStep, cloneWorkflow, createStep, createWorkflow };
2463
- //# sourceMappingURL=chunk-H6CZGPZD.js.map
2464
- //# sourceMappingURL=chunk-H6CZGPZD.js.map
2596
+ //# sourceMappingURL=chunk-4DWZ4Z6H.js.map
2597
+ //# sourceMappingURL=chunk-4DWZ4Z6H.js.map