@mastra/core 0.24.6 → 0.24.7-alpha.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 (180) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/agent/index.cjs +13 -13
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/input-processor/index.cjs +6 -6
  5. package/dist/agent/input-processor/index.js +1 -1
  6. package/dist/agent/message-list/index.d.ts.map +1 -1
  7. package/dist/ai-tracing/index.cjs +36 -36
  8. package/dist/ai-tracing/index.js +1 -1
  9. package/dist/{chunk-XWGHD4C7.cjs → chunk-22DLIF7L.cjs} +5 -5
  10. package/dist/{chunk-XWGHD4C7.cjs.map → chunk-22DLIF7L.cjs.map} +1 -1
  11. package/dist/{chunk-PAOBGBU7.cjs → chunk-3IDFSGG3.cjs} +4 -4
  12. package/dist/{chunk-PAOBGBU7.cjs.map → chunk-3IDFSGG3.cjs.map} +1 -1
  13. package/dist/{chunk-42RUESSD.cjs → chunk-4YYPQOP7.cjs} +9 -4
  14. package/dist/{chunk-42RUESSD.cjs.map → chunk-4YYPQOP7.cjs.map} +1 -1
  15. package/dist/{chunk-AQGLVU53.cjs → chunk-5PSD3IKG.cjs} +19 -6
  16. package/dist/chunk-5PSD3IKG.cjs.map +1 -0
  17. package/dist/{chunk-LAQQETGP.js → chunk-5UWR4YYL.js} +33 -28
  18. package/dist/chunk-5UWR4YYL.js.map +1 -0
  19. package/dist/{chunk-RJOVFHWN.cjs → chunk-6DFSLVVY.cjs} +34 -7
  20. package/dist/chunk-6DFSLVVY.cjs.map +1 -0
  21. package/dist/{chunk-6D2K2CAA.js → chunk-6VB52TJV.js} +3 -3
  22. package/dist/{chunk-6D2K2CAA.js.map → chunk-6VB52TJV.js.map} +1 -1
  23. package/dist/{chunk-VXHOOZSK.js → chunk-72F4RGK7.js} +3 -3
  24. package/dist/{chunk-VXHOOZSK.js.map → chunk-72F4RGK7.js.map} +1 -1
  25. package/dist/{chunk-XDMQQZNX.cjs → chunk-AHQOJZT2.cjs} +74 -66
  26. package/dist/chunk-AHQOJZT2.cjs.map +1 -0
  27. package/dist/{chunk-JVV5LREI.js → chunk-BKBVQTOH.js} +2 -2
  28. package/dist/chunk-BKBVQTOH.js.map +1 -0
  29. package/dist/{chunk-DMBN72QF.cjs → chunk-DISETAP2.cjs} +4 -4
  30. package/dist/{chunk-DMBN72QF.cjs.map → chunk-DISETAP2.cjs.map} +1 -1
  31. package/dist/{chunk-BLUDYAPI.js → chunk-DSUKMFZY.js} +19 -6
  32. package/dist/chunk-DSUKMFZY.js.map +1 -0
  33. package/dist/{chunk-NRQC7DQW.js → chunk-DYJA57WK.js} +55 -7
  34. package/dist/chunk-DYJA57WK.js.map +1 -0
  35. package/dist/{chunk-Q6LWNLAJ.js → chunk-GIK7MM2K.js} +8 -3
  36. package/dist/{chunk-Q6LWNLAJ.js.map → chunk-GIK7MM2K.js.map} +1 -1
  37. package/dist/{chunk-DHLW4AP7.js → chunk-GOEAJJED.js} +3 -3
  38. package/dist/{chunk-DHLW4AP7.js.map → chunk-GOEAJJED.js.map} +1 -1
  39. package/dist/{chunk-GZDIHQDK.cjs → chunk-GWA56ELO.cjs} +4 -4
  40. package/dist/{chunk-GZDIHQDK.cjs.map → chunk-GWA56ELO.cjs.map} +1 -1
  41. package/dist/{chunk-CT2DMHGC.cjs → chunk-ICICKWAG.cjs} +8 -8
  42. package/dist/{chunk-CT2DMHGC.cjs.map → chunk-ICICKWAG.cjs.map} +1 -1
  43. package/dist/{chunk-Z6QCWTTO.js → chunk-KQGP7VMN.js} +145 -19
  44. package/dist/chunk-KQGP7VMN.js.map +1 -0
  45. package/dist/{chunk-INOOZ2A2.js → chunk-PHSTPDWR.js} +33 -6
  46. package/dist/chunk-PHSTPDWR.js.map +1 -0
  47. package/dist/{chunk-WIMFJ2BA.js → chunk-PPAIPZ6C.js} +51 -13
  48. package/dist/chunk-PPAIPZ6C.js.map +1 -0
  49. package/dist/{chunk-UWTYVVVZ.js → chunk-RLYWCJQ6.js} +3 -3
  50. package/dist/{chunk-UWTYVVVZ.js.map → chunk-RLYWCJQ6.js.map} +1 -1
  51. package/dist/{chunk-HCCXJ5YJ.js → chunk-RP4YCZP7.js} +3 -3
  52. package/dist/{chunk-HCCXJ5YJ.js.map → chunk-RP4YCZP7.js.map} +1 -1
  53. package/dist/{chunk-CYEQK4PM.cjs → chunk-RQPGIUUA.cjs} +6 -6
  54. package/dist/{chunk-CYEQK4PM.cjs.map → chunk-RQPGIUUA.cjs.map} +1 -1
  55. package/dist/{chunk-46XGIEXM.cjs → chunk-RWPKCFZT.cjs} +4 -4
  56. package/dist/{chunk-46XGIEXM.cjs.map → chunk-RWPKCFZT.cjs.map} +1 -1
  57. package/dist/{chunk-KWF3J2Q4.cjs → chunk-SJ3PJ5D6.cjs} +11 -11
  58. package/dist/{chunk-KWF3J2Q4.cjs.map → chunk-SJ3PJ5D6.cjs.map} +1 -1
  59. package/dist/{chunk-ICF3MCIN.cjs → chunk-TR5CDVHO.cjs} +65 -17
  60. package/dist/chunk-TR5CDVHO.cjs.map +1 -0
  61. package/dist/{chunk-PIH5FBNQ.cjs → chunk-U57JN7JY.cjs} +154 -28
  62. package/dist/chunk-U57JN7JY.cjs.map +1 -0
  63. package/dist/{chunk-NPNGPMT2.js → chunk-V2IMZSNO.js} +3 -3
  64. package/dist/{chunk-NPNGPMT2.js.map → chunk-V2IMZSNO.js.map} +1 -1
  65. package/dist/{chunk-IAJHRFO4.cjs → chunk-YPYLWTZI.cjs} +60 -21
  66. package/dist/chunk-YPYLWTZI.cjs.map +1 -0
  67. package/dist/{chunk-ZIWN73GQ.js → chunk-Z6ZIJYKK.js} +5 -5
  68. package/dist/{chunk-ZIWN73GQ.js.map → chunk-Z6ZIJYKK.js.map} +1 -1
  69. package/dist/{chunk-MRSBLBQ5.js → chunk-ZOQ6Q5Q3.js} +4 -4
  70. package/dist/{chunk-MRSBLBQ5.js.map → chunk-ZOQ6Q5Q3.js.map} +1 -1
  71. package/dist/{chunk-TX4TTPYJ.cjs → chunk-ZZ2DSE2G.cjs} +2 -2
  72. package/dist/chunk-ZZ2DSE2G.cjs.map +1 -0
  73. package/dist/index.cjs +96 -64
  74. package/dist/index.js +13 -13
  75. package/dist/llm/index.cjs +8 -8
  76. package/dist/llm/index.js +2 -2
  77. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  78. package/dist/loop/index.cjs +2 -2
  79. package/dist/loop/index.js +1 -1
  80. package/dist/loop/workflows/stream.d.ts +1 -1
  81. package/dist/loop/workflows/stream.d.ts.map +1 -1
  82. package/dist/mastra/index.cjs +2 -2
  83. package/dist/mastra/index.d.ts +3 -1
  84. package/dist/mastra/index.d.ts.map +1 -1
  85. package/dist/mastra/index.js +1 -1
  86. package/dist/memory/index.cjs +4 -4
  87. package/dist/memory/index.js +1 -1
  88. package/dist/processors/index.cjs +11 -11
  89. package/dist/processors/index.js +1 -1
  90. package/dist/provider-registry-254GJGUL.cjs +40 -0
  91. package/dist/{provider-registry-RUDYHG7J.cjs.map → provider-registry-254GJGUL.cjs.map} +1 -1
  92. package/dist/provider-registry-7BUYRBGO.js +3 -0
  93. package/dist/{provider-registry-THITZUJ7.js.map → provider-registry-7BUYRBGO.js.map} +1 -1
  94. package/dist/relevance/index.cjs +4 -4
  95. package/dist/relevance/index.js +1 -1
  96. package/dist/scores/index.cjs +9 -9
  97. package/dist/scores/index.js +2 -2
  98. package/dist/scores/scoreTraces/index.cjs +8 -8
  99. package/dist/scores/scoreTraces/index.js +3 -3
  100. package/dist/server/index.cjs +25 -36
  101. package/dist/server/index.cjs.map +1 -1
  102. package/dist/server/index.js +24 -35
  103. package/dist/server/index.js.map +1 -1
  104. package/dist/server/simple-auth.d.ts +13 -18
  105. package/dist/server/simple-auth.d.ts.map +1 -1
  106. package/dist/storage/base.d.ts +2 -9
  107. package/dist/storage/base.d.ts.map +1 -1
  108. package/dist/storage/domains/workflows/base.d.ts +2 -9
  109. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  110. package/dist/storage/domains/workflows/inmemory.d.ts +2 -9
  111. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  112. package/dist/storage/index.cjs +31 -10
  113. package/dist/storage/index.cjs.map +1 -1
  114. package/dist/storage/index.js +25 -4
  115. package/dist/storage/index.js.map +1 -1
  116. package/dist/storage/types.d.ts +10 -1
  117. package/dist/storage/types.d.ts.map +1 -1
  118. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  119. package/dist/stream/index.cjs +11 -11
  120. package/dist/stream/index.js +2 -2
  121. package/dist/telemetry/index.cjs +7 -7
  122. package/dist/telemetry/index.js +1 -1
  123. package/dist/telemetry/telemetry.decorators.d.ts.map +1 -1
  124. package/dist/test-utils/llm-mock.cjs +2 -2
  125. package/dist/test-utils/llm-mock.js +1 -1
  126. package/dist/tts/index.cjs +2 -2
  127. package/dist/tts/index.js +1 -1
  128. package/dist/utils.cjs +37 -17
  129. package/dist/utils.d.ts +32 -0
  130. package/dist/utils.d.ts.map +1 -1
  131. package/dist/utils.js +1 -1
  132. package/dist/voice/index.cjs +6 -6
  133. package/dist/voice/index.js +1 -1
  134. package/dist/workflows/default.d.ts +26 -8
  135. package/dist/workflows/default.d.ts.map +1 -1
  136. package/dist/workflows/evented/execution-engine.d.ts +5 -1
  137. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  138. package/dist/workflows/evented/index.cjs +10 -10
  139. package/dist/workflows/evented/index.js +1 -1
  140. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
  141. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  142. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
  143. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  144. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  145. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
  146. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  147. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
  148. package/dist/workflows/evented/workflow.d.ts +2 -1
  149. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  150. package/dist/workflows/execution-engine.d.ts +5 -3
  151. package/dist/workflows/execution-engine.d.ts.map +1 -1
  152. package/dist/workflows/index.cjs +26 -14
  153. package/dist/workflows/index.js +1 -1
  154. package/dist/workflows/legacy/index.cjs +22 -22
  155. package/dist/workflows/legacy/index.js +1 -1
  156. package/dist/workflows/step.d.ts +1 -0
  157. package/dist/workflows/step.d.ts.map +1 -1
  158. package/dist/workflows/types.d.ts +51 -1
  159. package/dist/workflows/types.d.ts.map +1 -1
  160. package/dist/workflows/utils.d.ts +20 -0
  161. package/dist/workflows/utils.d.ts.map +1 -1
  162. package/dist/workflows/workflow.d.ts +98 -12
  163. package/dist/workflows/workflow.d.ts.map +1 -1
  164. package/package.json +5 -5
  165. package/dist/chunk-AQGLVU53.cjs.map +0 -1
  166. package/dist/chunk-BLUDYAPI.js.map +0 -1
  167. package/dist/chunk-IAJHRFO4.cjs.map +0 -1
  168. package/dist/chunk-ICF3MCIN.cjs.map +0 -1
  169. package/dist/chunk-INOOZ2A2.js.map +0 -1
  170. package/dist/chunk-JVV5LREI.js.map +0 -1
  171. package/dist/chunk-LAQQETGP.js.map +0 -1
  172. package/dist/chunk-NRQC7DQW.js.map +0 -1
  173. package/dist/chunk-PIH5FBNQ.cjs.map +0 -1
  174. package/dist/chunk-RJOVFHWN.cjs.map +0 -1
  175. package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
  176. package/dist/chunk-WIMFJ2BA.js.map +0 -1
  177. package/dist/chunk-XDMQQZNX.cjs.map +0 -1
  178. package/dist/chunk-Z6QCWTTO.js.map +0 -1
  179. package/dist/provider-registry-RUDYHG7J.cjs +0 -40
  180. package/dist/provider-registry-THITZUJ7.js +0 -3
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXDMQQZNX_cjs = require('./chunk-XDMQQZNX.cjs');
3
+ var chunkAHQOJZT2_cjs = require('./chunk-AHQOJZT2.cjs');
4
4
  var chunkABJOUEVA_cjs = require('./chunk-ABJOUEVA.cjs');
5
5
  var chunkGPWMM745_cjs = require('./chunk-GPWMM745.cjs');
6
6
  var chunk5NTO7S5I_cjs = require('./chunk-5NTO7S5I.cjs');
@@ -31,7 +31,7 @@ var StepExecutor = class extends chunk6VOPKVYH_cjs.MastraBase {
31
31
  let suspended;
32
32
  let bailed;
33
33
  const startedAt = Date.now();
34
- const { inputData, validationError } = await chunkXDMQQZNX_cjs.validateStepInput({
34
+ const { inputData, validationError } = await chunkAHQOJZT2_cjs.validateStepInput({
35
35
  prevOutput: typeof params.foreachIdx === "number" ? params.input?.[params.foreachIdx] : params.input,
36
36
  step,
37
37
  validateInputs: params.validateInputs ?? false
@@ -63,7 +63,7 @@ var StepExecutor = class extends chunk6VOPKVYH_cjs.MastraBase {
63
63
  runCount,
64
64
  resumeData: params.resumeData,
65
65
  getInitData: () => stepResults?.input,
66
- getStepResult: chunkXDMQQZNX_cjs.getStepResult.bind(this, stepResults),
66
+ getStepResult: chunkAHQOJZT2_cjs.getStepResult.bind(this, stepResults),
67
67
  suspend: async (suspendPayload) => {
68
68
  suspended = { payload: { ...suspendPayload, __workflow_meta: { runId, path: [step.id] } } };
69
69
  },
@@ -183,7 +183,7 @@ var StepExecutor = class extends chunk6VOPKVYH_cjs.MastraBase {
183
183
  runCount,
184
184
  resumeData,
185
185
  getInitData: () => stepResults?.input,
186
- getStepResult: chunkXDMQQZNX_cjs.getStepResult.bind(this, stepResults),
186
+ getStepResult: chunkAHQOJZT2_cjs.getStepResult.bind(this, stepResults),
187
187
  suspend: async (_suspendPayload) => {
188
188
  throw new Error("Not implemented");
189
189
  },
@@ -230,7 +230,7 @@ var StepExecutor = class extends chunk6VOPKVYH_cjs.MastraBase {
230
230
  runCount,
231
231
  resumeData: params.resumeData,
232
232
  getInitData: () => stepResults?.input,
233
- getStepResult: chunkXDMQQZNX_cjs.getStepResult.bind(this, stepResults),
233
+ getStepResult: chunkAHQOJZT2_cjs.getStepResult.bind(this, stepResults),
234
234
  suspend: async (_suspendPayload) => {
235
235
  throw new Error("Not implemented");
236
236
  },
@@ -280,7 +280,7 @@ var StepExecutor = class extends chunk6VOPKVYH_cjs.MastraBase {
280
280
  runCount,
281
281
  resumeData: params.resumeData,
282
282
  getInitData: () => stepResults?.input,
283
- getStepResult: chunkXDMQQZNX_cjs.getStepResult.bind(this, stepResults),
283
+ getStepResult: chunkAHQOJZT2_cjs.getStepResult.bind(this, stepResults),
284
284
  suspend: async (_suspendPayload) => {
285
285
  throw new Error("Not implemented");
286
286
  },
@@ -439,6 +439,7 @@ async function processWorkflowForEach({
439
439
  stepResults,
440
440
  activeSteps,
441
441
  resumeSteps,
442
+ timeTravel,
442
443
  resumeData,
443
444
  parentWorkflow,
444
445
  runtimeContext
@@ -461,6 +462,7 @@ async function processWorkflowForEach({
461
462
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
462
463
  resumeSteps,
463
464
  stepResults,
465
+ timeTravel,
464
466
  prevResult: currentResult,
465
467
  resumeData,
466
468
  activeSteps,
@@ -497,6 +499,7 @@ async function processWorkflowForEach({
497
499
  executionPath: [executionPath[0], i],
498
500
  resumeSteps,
499
501
  stepResults,
502
+ timeTravel,
500
503
  prevResult,
501
504
  resumeData,
502
505
  activeSteps,
@@ -528,6 +531,7 @@ async function processWorkflowForEach({
528
531
  runId,
529
532
  executionPath: [executionPath[0], idx],
530
533
  resumeSteps,
534
+ timeTravel,
531
535
  stepResults,
532
536
  prevResult,
533
537
  resumeData,
@@ -543,6 +547,7 @@ async function processWorkflowParallel({
543
547
  stepResults,
544
548
  activeSteps,
545
549
  resumeSteps,
550
+ timeTravel,
546
551
  prevResult,
547
552
  resumeData,
548
553
  parentWorkflow,
@@ -570,6 +575,7 @@ async function processWorkflowParallel({
570
575
  stepResults,
571
576
  prevResult,
572
577
  resumeData,
578
+ timeTravel,
573
579
  parentWorkflow,
574
580
  activeSteps,
575
581
  runtimeContext
@@ -585,6 +591,7 @@ async function processWorkflowConditional({
585
591
  stepResults,
586
592
  activeSteps,
587
593
  resumeSteps,
594
+ timeTravel,
588
595
  prevResult,
589
596
  resumeData,
590
597
  parentWorkflow,
@@ -627,6 +634,7 @@ async function processWorkflowConditional({
627
634
  executionPath: executionPath.concat([idx]),
628
635
  resumeSteps,
629
636
  stepResults,
637
+ timeTravel,
630
638
  prevResult,
631
639
  resumeData,
632
640
  parentWorkflow,
@@ -693,6 +701,7 @@ async function processWorkflowSleep({
693
701
  stepResults,
694
702
  activeSteps,
695
703
  resumeSteps,
704
+ timeTravel,
696
705
  prevResult,
697
706
  resumeData,
698
707
  parentWorkflow,
@@ -764,6 +773,7 @@ async function processWorkflowSleep({
764
773
  runId,
765
774
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
766
775
  resumeSteps,
776
+ timeTravel,
767
777
  stepResults,
768
778
  prevResult,
769
779
  resumeData,
@@ -783,6 +793,7 @@ async function processWorkflowSleepUntil({
783
793
  stepResults,
784
794
  activeSteps,
785
795
  resumeSteps,
796
+ timeTravel,
786
797
  prevResult,
787
798
  resumeData,
788
799
  parentWorkflow,
@@ -854,6 +865,7 @@ async function processWorkflowSleepUntil({
854
865
  runId,
855
866
  executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
856
867
  resumeSteps,
868
+ timeTravel,
857
869
  stepResults,
858
870
  prevResult,
859
871
  resumeData,
@@ -934,6 +946,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
934
946
  resumeSteps,
935
947
  prevResult,
936
948
  resumeData,
949
+ timeTravel,
937
950
  executionPath,
938
951
  stepResults,
939
952
  runtimeContext
@@ -946,13 +959,14 @@ var WorkflowEventProcessor = class extends EventProcessor {
946
959
  suspendedPaths: {},
947
960
  resumeLabels: {},
948
961
  waitingPaths: {},
962
+ activeStepsPath: {},
949
963
  serializedStepGraph: workflow.serializedStepGraph,
950
964
  timestamp: Date.now(),
951
965
  runId,
952
- status: "running",
953
966
  context: stepResults ?? {
954
967
  input: prevResult?.status === "success" ? prevResult.output : void 0
955
968
  },
969
+ status: "running",
956
970
  value: {}
957
971
  }
958
972
  });
@@ -969,6 +983,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
969
983
  input: prevResult?.status === "success" ? prevResult.output : void 0
970
984
  },
971
985
  prevResult,
986
+ timeTravel,
972
987
  runtimeContext,
973
988
  resumeData,
974
989
  activeSteps: {}
@@ -1019,7 +1034,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1019
1034
  });
1020
1035
  }
1021
1036
  async processWorkflowEnd(args) {
1022
- const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runtimeContext, runId } = args;
1037
+ const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runtimeContext, runId, timeTravel } = args;
1023
1038
  if (parentWorkflow) {
1024
1039
  await this.mastra.pubsub.publish("workflows", {
1025
1040
  type: "workflow.step.end",
@@ -1035,7 +1050,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1035
1050
  activeSteps,
1036
1051
  parentWorkflow: parentWorkflow.parentWorkflow,
1037
1052
  parentContext: parentWorkflow,
1038
- runtimeContext
1053
+ runtimeContext,
1054
+ timeTravel
1039
1055
  }
1040
1056
  });
1041
1057
  }
@@ -1046,7 +1062,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1046
1062
  });
1047
1063
  }
1048
1064
  async processWorkflowSuspend(args) {
1049
- const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, runtimeContext } = args;
1065
+ const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, runtimeContext, timeTravel } = args;
1050
1066
  if (parentWorkflow) {
1051
1067
  await this.mastra.pubsub.publish("workflows", {
1052
1068
  type: "workflow.step.end",
@@ -1067,6 +1083,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1067
1083
  }
1068
1084
  }
1069
1085
  },
1086
+ timeTravel,
1070
1087
  resumeData,
1071
1088
  activeSteps,
1072
1089
  runtimeContext,
@@ -1082,7 +1099,17 @@ var WorkflowEventProcessor = class extends EventProcessor {
1082
1099
  });
1083
1100
  }
1084
1101
  async processWorkflowFail(args) {
1085
- const { workflowId, runId, resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runtimeContext } = args;
1102
+ const {
1103
+ workflowId,
1104
+ runId,
1105
+ resumeSteps,
1106
+ prevResult,
1107
+ resumeData,
1108
+ parentWorkflow,
1109
+ activeSteps,
1110
+ runtimeContext,
1111
+ timeTravel
1112
+ } = args;
1086
1113
  await this.mastra.getStorage()?.updateWorkflowState({
1087
1114
  workflowName: workflowId,
1088
1115
  runId,
@@ -1102,6 +1129,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1102
1129
  resumeSteps,
1103
1130
  stepResults: parentWorkflow.stepResults,
1104
1131
  prevResult,
1132
+ timeTravel,
1105
1133
  resumeData,
1106
1134
  activeSteps,
1107
1135
  runtimeContext,
@@ -1124,6 +1152,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1124
1152
  stepResults,
1125
1153
  activeSteps,
1126
1154
  resumeSteps,
1155
+ timeTravel,
1127
1156
  prevResult,
1128
1157
  resumeData,
1129
1158
  parentWorkflow,
@@ -1187,6 +1216,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1187
1216
  stepResults,
1188
1217
  activeSteps,
1189
1218
  resumeSteps,
1219
+ timeTravel,
1190
1220
  prevResult,
1191
1221
  resumeData,
1192
1222
  parentWorkflow,
@@ -1206,6 +1236,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1206
1236
  stepResults,
1207
1237
  activeSteps,
1208
1238
  resumeSteps,
1239
+ timeTravel,
1209
1240
  prevResult,
1210
1241
  resumeData,
1211
1242
  parentWorkflow,
@@ -1226,6 +1257,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1226
1257
  stepResults,
1227
1258
  activeSteps,
1228
1259
  resumeSteps,
1260
+ timeTravel,
1229
1261
  prevResult,
1230
1262
  resumeData,
1231
1263
  parentWorkflow,
@@ -1246,6 +1278,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1246
1278
  stepResults,
1247
1279
  activeSteps,
1248
1280
  resumeSteps,
1281
+ timeTravel,
1249
1282
  prevResult,
1250
1283
  resumeData,
1251
1284
  parentWorkflow,
@@ -1302,6 +1335,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1302
1335
  stepResults,
1303
1336
  activeSteps,
1304
1337
  resumeSteps,
1338
+ timeTravel,
1305
1339
  prevResult,
1306
1340
  resumeData,
1307
1341
  parentWorkflow,
@@ -1394,6 +1428,47 @@ var WorkflowEventProcessor = class extends EventProcessor {
1394
1428
  runtimeContext
1395
1429
  }
1396
1430
  });
1431
+ } else if (timeTravel && timeTravel.steps?.length > 1 && timeTravel.steps[0] === step.step.id) {
1432
+ const snapshot = await this.mastra?.getStorage()?.loadWorkflowSnapshot({
1433
+ workflowName: step.step.id,
1434
+ runId
1435
+ }) ?? { context: {} };
1436
+ const timeTravelParams = chunkAHQOJZT2_cjs.createTimeTravelExecutionParams({
1437
+ steps: timeTravel.steps.slice(1),
1438
+ inputData: timeTravel.inputData,
1439
+ resumeData: timeTravel.resumeData,
1440
+ context: timeTravel.nestedStepResults?.[step.step.id] ?? {},
1441
+ nestedStepsContext: timeTravel.nestedStepResults ?? {},
1442
+ snapshot,
1443
+ graph: step.step.buildExecutionGraph()
1444
+ });
1445
+ const nestedPrevStep = getStep(step.step, timeTravelParams.executionPath);
1446
+ const nestedPrevResult = timeTravelParams.stepResults[nestedPrevStep?.id ?? "input"];
1447
+ await this.mastra.pubsub.publish("workflows", {
1448
+ type: "workflow.start",
1449
+ runId,
1450
+ data: {
1451
+ workflowId: step.step.id,
1452
+ parentWorkflow: {
1453
+ stepId: step.step.id,
1454
+ workflowId,
1455
+ runId,
1456
+ executionPath,
1457
+ resumeSteps,
1458
+ stepResults,
1459
+ timeTravel,
1460
+ input: prevResult,
1461
+ parentWorkflow
1462
+ },
1463
+ executionPath: timeTravelParams.executionPath,
1464
+ runId: crypto.randomUUID(),
1465
+ stepResults: timeTravelParams.stepResults,
1466
+ prevResult: { status: "success", output: nestedPrevResult?.payload },
1467
+ timeTravel: timeTravelParams,
1468
+ activeSteps,
1469
+ runtimeContext
1470
+ }
1471
+ });
1397
1472
  } else {
1398
1473
  await this.mastra.pubsub.publish("workflows", {
1399
1474
  type: "workflow.start",
@@ -1466,6 +1541,21 @@ var WorkflowEventProcessor = class extends EventProcessor {
1466
1541
  for (const [key, value] of Object.entries(runtimeContext)) {
1467
1542
  rc.set(key, value);
1468
1543
  }
1544
+ const { resumeData: timeTravelResumeData, validationError: timeTravelResumeValidationError } = await chunkAHQOJZT2_cjs.validateStepResumeData({
1545
+ resumeData: timeTravel?.stepResults[step.step.id]?.status === "suspended" ? timeTravel?.resumeData : void 0,
1546
+ step: step.step
1547
+ });
1548
+ let resumeDataToUse;
1549
+ if (timeTravelResumeData && !timeTravelResumeValidationError) {
1550
+ resumeDataToUse = timeTravelResumeData;
1551
+ } else if (timeTravelResumeData && timeTravelResumeValidationError) {
1552
+ this.mastra.getLogger()?.warn("Time travel resume data validation failed", {
1553
+ stepId: step.step.id,
1554
+ error: timeTravelResumeValidationError.message
1555
+ });
1556
+ } else if (resumeSteps?.length > 0 && resumeSteps?.[0] === step.step.id || step.type === "waitForEvent") {
1557
+ resumeDataToUse = resumeData;
1558
+ }
1469
1559
  const stepResult = await this.stepExecutor.execute({
1470
1560
  workflowId,
1471
1561
  step: step.step,
@@ -1476,7 +1566,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1476
1566
  emitter: ee,
1477
1567
  runtimeContext: rc,
1478
1568
  input: prevResult?.output,
1479
- resumeData: step.type === "waitForEvent" || resumeSteps?.length === 1 && resumeSteps?.[0] === step.step.id ? resumeData : void 0,
1569
+ resumeData: resumeDataToUse,
1480
1570
  runCount,
1481
1571
  foreachIdx: step.type === "foreach" ? executionPath[1] : void 0,
1482
1572
  validateInputs: workflow.options.validateInputs
@@ -1530,6 +1620,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1530
1620
  executionPath,
1531
1621
  resumeSteps,
1532
1622
  stepResults,
1623
+ timeTravel,
1533
1624
  prevResult,
1534
1625
  activeSteps,
1535
1626
  runtimeContext,
@@ -1570,6 +1661,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1570
1661
  runId,
1571
1662
  executionPath,
1572
1663
  resumeSteps,
1664
+ timeTravel,
1665
+ //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.
1573
1666
  stepResults,
1574
1667
  prevResult: stepResult,
1575
1668
  activeSteps,
@@ -1584,6 +1677,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1584
1677
  runId,
1585
1678
  executionPath,
1586
1679
  resumeSteps,
1680
+ timeTravel,
1587
1681
  prevResult,
1588
1682
  parentWorkflow,
1589
1683
  stepResults,
@@ -1673,6 +1767,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1673
1767
  resumeSteps,
1674
1768
  parentWorkflow,
1675
1769
  stepResults,
1770
+ timeTravel,
1676
1771
  prevResult,
1677
1772
  activeSteps,
1678
1773
  runtimeContext
@@ -1706,7 +1801,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1706
1801
  stepResults,
1707
1802
  prevResult,
1708
1803
  activeSteps,
1709
- runtimeContext
1804
+ runtimeContext,
1805
+ timeTravel
1710
1806
  }
1711
1807
  });
1712
1808
  await this.mastra.pubsub.publish(`workflow.events.${runId}`, {
@@ -1815,7 +1911,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1815
1911
  stepResults,
1816
1912
  prevResult: { status: "success", output: allResults },
1817
1913
  activeSteps,
1818
- runtimeContext
1914
+ runtimeContext,
1915
+ timeTravel
1819
1916
  }
1820
1917
  });
1821
1918
  } else if (step?.type === "foreach") {
@@ -1831,7 +1928,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1831
1928
  stepResults,
1832
1929
  prevResult: { ...prevResult, output: prevResult?.payload },
1833
1930
  activeSteps,
1834
- runtimeContext
1931
+ runtimeContext,
1932
+ timeTravel
1835
1933
  }
1836
1934
  });
1837
1935
  } else if (executionPath[0] >= workflow.stepGraph.length - 1) {
@@ -1860,7 +1958,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
1860
1958
  stepResults,
1861
1959
  prevResult,
1862
1960
  activeSteps,
1863
- runtimeContext
1961
+ runtimeContext,
1962
+ timeTravel
1864
1963
  }
1865
1964
  });
1866
1965
  }
@@ -1991,7 +2090,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
1991
2090
 
1992
2091
  // src/workflows/evented/workflow.ts
1993
2092
  function cloneWorkflow(workflow, opts) {
1994
- const wf = new chunkXDMQQZNX_cjs.Workflow({
2093
+ const wf = new chunkAHQOJZT2_cjs.Workflow({
1995
2094
  id: opts.id,
1996
2095
  inputSchema: workflow.inputSchema,
1997
2096
  outputSchema: workflow.outputSchema,
@@ -2132,9 +2231,10 @@ function createWorkflow(params) {
2132
2231
  executionEngine
2133
2232
  });
2134
2233
  }
2135
- var EventedWorkflow = class extends chunkXDMQQZNX_cjs.Workflow {
2234
+ var EventedWorkflow = class extends chunkAHQOJZT2_cjs.Workflow {
2136
2235
  constructor(params) {
2137
2236
  super(params);
2237
+ this.engineType = "evented";
2138
2238
  }
2139
2239
  __registerMastra(mastra) {
2140
2240
  super.__registerMastra(mastra);
@@ -2151,7 +2251,9 @@ var EventedWorkflow = class extends chunkXDMQQZNX_cjs.Workflow {
2151
2251
  mastra: this.mastra,
2152
2252
  retryConfig: this.retryConfig,
2153
2253
  cleanup: () => this.runs.delete(runIdToUse),
2154
- workflowSteps: this.steps
2254
+ workflowSteps: this.steps,
2255
+ validateInputs: this.options?.validateInputs,
2256
+ workflowEngineType: this.engineType
2155
2257
  });
2156
2258
  this.runs.set(runIdToUse, run);
2157
2259
  const shouldPersistSnapshot = this.options?.shouldPersistSnapshot?.({
@@ -2170,6 +2272,7 @@ var EventedWorkflow = class extends chunkXDMQQZNX_cjs.Workflow {
2170
2272
  context: {},
2171
2273
  activePaths: [],
2172
2274
  serializedStepGraph: this.serializedStepGraph,
2275
+ activeStepsPath: {},
2173
2276
  suspendedPaths: {},
2174
2277
  resumeLabels: {},
2175
2278
  waitingPaths: {},
@@ -2183,7 +2286,7 @@ var EventedWorkflow = class extends chunkXDMQQZNX_cjs.Workflow {
2183
2286
  return run;
2184
2287
  }
2185
2288
  };
2186
- var EventedRun = class extends chunkXDMQQZNX_cjs.Run {
2289
+ var EventedRun = class extends chunkAHQOJZT2_cjs.Run {
2187
2290
  constructor(params) {
2188
2291
  super(params);
2189
2292
  this.serializedStepGraph = params.serializedStepGraph;
@@ -2208,15 +2311,16 @@ var EventedRun = class extends chunkXDMQQZNX_cjs.Run {
2208
2311
  snapshot: {
2209
2312
  runId: this.runId,
2210
2313
  serializedStepGraph: this.serializedStepGraph,
2314
+ status: "running",
2211
2315
  value: {},
2212
2316
  context: {},
2213
2317
  runtimeContext: Object.fromEntries(runtimeContext.entries()),
2214
2318
  activePaths: [],
2319
+ activeStepsPath: {},
2215
2320
  suspendedPaths: {},
2216
2321
  resumeLabels: {},
2217
2322
  waitingPaths: {},
2218
- timestamp: Date.now(),
2219
- status: "running"
2323
+ timestamp: Date.now()
2220
2324
  }
2221
2325
  });
2222
2326
  const inputDataToUse = await this._validateInput(inputData);
@@ -2253,9 +2357,14 @@ var EventedRun = class extends chunkXDMQQZNX_cjs.Run {
2253
2357
  }
2254
2358
  // TODO: stream
2255
2359
  async resume(params) {
2256
- const steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
2257
- (step) => typeof step === "string" ? step : step?.id
2258
- );
2360
+ let steps = [];
2361
+ if (typeof params.step === "string") {
2362
+ steps = params.step.split(".");
2363
+ } else {
2364
+ steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
2365
+ (step) => typeof step === "string" ? step : step?.id
2366
+ );
2367
+ }
2259
2368
  if (steps.length === 0) {
2260
2369
  throw new Error("No steps provided to resume");
2261
2370
  }
@@ -2441,7 +2550,7 @@ function isExecutableStep(step) {
2441
2550
  }
2442
2551
 
2443
2552
  // src/workflows/evented/execution-engine.ts
2444
- var EventedExecutionEngine = class extends chunkXDMQQZNX_cjs.ExecutionEngine {
2553
+ var EventedExecutionEngine = class extends chunkAHQOJZT2_cjs.ExecutionEngine {
2445
2554
  eventProcessor;
2446
2555
  constructor({
2447
2556
  mastra,
@@ -2484,6 +2593,23 @@ var EventedExecutionEngine = class extends chunkXDMQQZNX_cjs.ExecutionEngine {
2484
2593
  format: params.format
2485
2594
  }
2486
2595
  });
2596
+ } else if (params.timeTravel) {
2597
+ const prevStep = getStep(this.mastra.getWorkflow(params.workflowId), params.timeTravel.executionPath);
2598
+ const prevResult = params.timeTravel.stepResults[prevStep?.id ?? "input"];
2599
+ await pubsub.publish("workflows", {
2600
+ type: "workflow.start",
2601
+ runId: params.runId,
2602
+ data: {
2603
+ workflowId: params.workflowId,
2604
+ runId: params.runId,
2605
+ executionPath: params.timeTravel.executionPath,
2606
+ stepResults: params.timeTravel.stepResults,
2607
+ timeTravel: params.timeTravel,
2608
+ prevResult: { status: "success", output: prevResult?.payload },
2609
+ runtimeContext: Object.fromEntries(params.runtimeContext.entries()),
2610
+ format: params.format
2611
+ }
2612
+ });
2487
2613
  } else {
2488
2614
  await pubsub.publish("workflows", {
2489
2615
  type: "workflow.start",
@@ -2550,5 +2676,5 @@ exports.cloneStep = cloneStep;
2550
2676
  exports.cloneWorkflow = cloneWorkflow;
2551
2677
  exports.createStep = createStep;
2552
2678
  exports.createWorkflow = createWorkflow;
2553
- //# sourceMappingURL=chunk-PIH5FBNQ.cjs.map
2554
- //# sourceMappingURL=chunk-PIH5FBNQ.cjs.map
2679
+ //# sourceMappingURL=chunk-U57JN7JY.cjs.map
2680
+ //# sourceMappingURL=chunk-U57JN7JY.cjs.map