@mastra/core 0.24.7-alpha.0 → 0.24.7-alpha.2
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.
- package/CHANGELOG.md +56 -0
- package/dist/agent/index.cjs +13 -13
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +36 -36
- package/dist/ai-tracing/index.js +1 -1
- package/dist/{chunk-H6SCQEQZ.js → chunk-2BY7C6Y7.js} +145 -19
- package/dist/chunk-2BY7C6Y7.js.map +1 -0
- package/dist/{chunk-TMGNLNND.cjs → chunk-2YE6RNCZ.cjs} +4 -4
- package/dist/{chunk-TMGNLNND.cjs.map → chunk-2YE6RNCZ.cjs.map} +1 -1
- package/dist/{chunk-MQOYPEDP.js → chunk-2YN6HGEH.js} +3 -3
- package/dist/{chunk-MQOYPEDP.js.map → chunk-2YN6HGEH.js.map} +1 -1
- package/dist/{chunk-PAOBGBU7.cjs → chunk-3IDFSGG3.cjs} +4 -4
- package/dist/{chunk-PAOBGBU7.cjs.map → chunk-3IDFSGG3.cjs.map} +1 -1
- package/dist/{chunk-42RUESSD.cjs → chunk-4YYPQOP7.cjs} +9 -4
- package/dist/{chunk-42RUESSD.cjs.map → chunk-4YYPQOP7.cjs.map} +1 -1
- package/dist/{chunk-AQGLVU53.cjs → chunk-5PSD3IKG.cjs} +19 -6
- package/dist/chunk-5PSD3IKG.cjs.map +1 -0
- package/dist/{chunk-6D2K2CAA.js → chunk-6VB52TJV.js} +3 -3
- package/dist/{chunk-6D2K2CAA.js.map → chunk-6VB52TJV.js.map} +1 -1
- package/dist/{chunk-JVV5LREI.js → chunk-BKBVQTOH.js} +2 -2
- package/dist/chunk-BKBVQTOH.js.map +1 -0
- package/dist/{chunk-XFEAV36D.cjs → chunk-CNIM7N4E.cjs} +64 -16
- package/dist/chunk-CNIM7N4E.cjs.map +1 -0
- package/dist/{chunk-DMBN72QF.cjs → chunk-DISETAP2.cjs} +4 -4
- package/dist/{chunk-DMBN72QF.cjs.map → chunk-DISETAP2.cjs.map} +1 -1
- package/dist/{chunk-BLUDYAPI.js → chunk-DSUKMFZY.js} +19 -6
- package/dist/chunk-DSUKMFZY.js.map +1 -0
- package/dist/{chunk-NP7A4CAN.js → chunk-E5NCEJEJ.js} +3 -3
- package/dist/{chunk-NP7A4CAN.js.map → chunk-E5NCEJEJ.js.map} +1 -1
- package/dist/{chunk-VATR2Z2C.cjs → chunk-FQTJPLCW.cjs} +154 -28
- package/dist/chunk-FQTJPLCW.cjs.map +1 -0
- package/dist/{chunk-Q6LWNLAJ.js → chunk-GIK7MM2K.js} +8 -3
- package/dist/{chunk-Q6LWNLAJ.js.map → chunk-GIK7MM2K.js.map} +1 -1
- package/dist/{chunk-GSFQAR6S.cjs → chunk-ICICKWAG.cjs} +6 -6
- package/dist/{chunk-GSFQAR6S.cjs.map → chunk-ICICKWAG.cjs.map} +1 -1
- package/dist/{chunk-7YGCP2UZ.js → chunk-N6P5GJRO.js} +54 -6
- package/dist/chunk-N6P5GJRO.js.map +1 -0
- package/dist/{chunk-WIMFJ2BA.js → chunk-PPAIPZ6C.js} +51 -13
- package/dist/chunk-PPAIPZ6C.js.map +1 -0
- package/dist/{chunk-UWTYVVVZ.js → chunk-RLYWCJQ6.js} +3 -3
- package/dist/{chunk-UWTYVVVZ.js.map → chunk-RLYWCJQ6.js.map} +1 -1
- package/dist/{chunk-HCCXJ5YJ.js → chunk-RP4YCZP7.js} +3 -3
- package/dist/{chunk-HCCXJ5YJ.js.map → chunk-RP4YCZP7.js.map} +1 -1
- package/dist/{chunk-CYEQK4PM.cjs → chunk-RQPGIUUA.cjs} +6 -6
- package/dist/{chunk-CYEQK4PM.cjs.map → chunk-RQPGIUUA.cjs.map} +1 -1
- package/dist/{chunk-46XGIEXM.cjs → chunk-RWPKCFZT.cjs} +4 -4
- package/dist/{chunk-46XGIEXM.cjs.map → chunk-RWPKCFZT.cjs.map} +1 -1
- package/dist/{chunk-NPNGPMT2.js → chunk-V2IMZSNO.js} +3 -3
- package/dist/{chunk-NPNGPMT2.js.map → chunk-V2IMZSNO.js.map} +1 -1
- package/dist/{chunk-LGKZOO44.cjs → chunk-X5JTTWMF.cjs} +9 -9
- package/dist/{chunk-LGKZOO44.cjs.map → chunk-X5JTTWMF.cjs.map} +1 -1
- package/dist/{chunk-BMJ6HNP4.js → chunk-Y2BH2LUD.js} +32 -27
- package/dist/chunk-Y2BH2LUD.js.map +1 -0
- package/dist/{chunk-IAJHRFO4.cjs → chunk-YPYLWTZI.cjs} +60 -21
- package/dist/chunk-YPYLWTZI.cjs.map +1 -0
- package/dist/{chunk-HJOAX5IQ.cjs → chunk-YYKN3NDZ.cjs} +72 -64
- package/dist/chunk-YYKN3NDZ.cjs.map +1 -0
- package/dist/{chunk-MHNE743G.js → chunk-Z6ZIJYKK.js} +4 -4
- package/dist/{chunk-MHNE743G.js.map → chunk-Z6ZIJYKK.js.map} +1 -1
- package/dist/{chunk-TX4TTPYJ.cjs → chunk-ZZ2DSE2G.cjs} +2 -2
- package/dist/chunk-ZZ2DSE2G.cjs.map +1 -0
- package/dist/index.cjs +88 -56
- package/dist/index.js +11 -11
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/workflows/stream.d.ts +1 -1
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +3 -1
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/processors/index.cjs +11 -11
- package/dist/processors/index.js +1 -1
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +9 -9
- package/dist/scores/index.js +2 -2
- package/dist/scores/scoreTraces/index.cjs +8 -8
- package/dist/scores/scoreTraces/index.js +3 -3
- package/dist/server/index.cjs +25 -36
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +24 -35
- package/dist/server/index.js.map +1 -1
- package/dist/server/simple-auth.d.ts +13 -18
- package/dist/server/simple-auth.d.ts.map +1 -1
- package/dist/storage/base.d.ts +2 -9
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +2 -9
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +2 -9
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +31 -10
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +25 -4
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/types.d.ts +10 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.js +2 -2
- package/dist/telemetry/index.cjs +7 -7
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/telemetry.decorators.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/utils.cjs +37 -17
- package/dist/utils.d.ts +32 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/voice/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts +26 -8
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +5 -1
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +2 -1
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +5 -3
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +26 -14
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/dist/workflows/step.d.ts +1 -0
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +51 -1
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +20 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +98 -12
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-7YGCP2UZ.js.map +0 -1
- package/dist/chunk-AQGLVU53.cjs.map +0 -1
- package/dist/chunk-BLUDYAPI.js.map +0 -1
- package/dist/chunk-BMJ6HNP4.js.map +0 -1
- package/dist/chunk-H6SCQEQZ.js.map +0 -1
- package/dist/chunk-HJOAX5IQ.cjs.map +0 -1
- package/dist/chunk-IAJHRFO4.cjs.map +0 -1
- package/dist/chunk-JVV5LREI.js.map +0 -1
- package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
- package/dist/chunk-VATR2Z2C.cjs.map +0 -1
- package/dist/chunk-WIMFJ2BA.js.map +0 -1
- package/dist/chunk-XFEAV36D.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateStepInput, getStepResult, Workflow, Run, ExecutionEngine } from './chunk-
|
|
1
|
+
import { validateStepInput, getStepResult, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine } from './chunk-Y2BH2LUD.js';
|
|
2
2
|
import { STREAM_FORMAT_SYMBOL, EMITTER_SYMBOL } from './chunk-NLNKQD2T.js';
|
|
3
3
|
import { RuntimeContext } from './chunk-HLRWYUFN.js';
|
|
4
4
|
import { MastraError } from './chunk-PZUZNPFM.js';
|
|
@@ -432,6 +432,7 @@ async function processWorkflowForEach({
|
|
|
432
432
|
stepResults,
|
|
433
433
|
activeSteps,
|
|
434
434
|
resumeSteps,
|
|
435
|
+
timeTravel,
|
|
435
436
|
resumeData,
|
|
436
437
|
parentWorkflow,
|
|
437
438
|
runtimeContext
|
|
@@ -454,6 +455,7 @@ async function processWorkflowForEach({
|
|
|
454
455
|
executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
|
|
455
456
|
resumeSteps,
|
|
456
457
|
stepResults,
|
|
458
|
+
timeTravel,
|
|
457
459
|
prevResult: currentResult,
|
|
458
460
|
resumeData,
|
|
459
461
|
activeSteps,
|
|
@@ -490,6 +492,7 @@ async function processWorkflowForEach({
|
|
|
490
492
|
executionPath: [executionPath[0], i],
|
|
491
493
|
resumeSteps,
|
|
492
494
|
stepResults,
|
|
495
|
+
timeTravel,
|
|
493
496
|
prevResult,
|
|
494
497
|
resumeData,
|
|
495
498
|
activeSteps,
|
|
@@ -521,6 +524,7 @@ async function processWorkflowForEach({
|
|
|
521
524
|
runId,
|
|
522
525
|
executionPath: [executionPath[0], idx],
|
|
523
526
|
resumeSteps,
|
|
527
|
+
timeTravel,
|
|
524
528
|
stepResults,
|
|
525
529
|
prevResult,
|
|
526
530
|
resumeData,
|
|
@@ -536,6 +540,7 @@ async function processWorkflowParallel({
|
|
|
536
540
|
stepResults,
|
|
537
541
|
activeSteps,
|
|
538
542
|
resumeSteps,
|
|
543
|
+
timeTravel,
|
|
539
544
|
prevResult,
|
|
540
545
|
resumeData,
|
|
541
546
|
parentWorkflow,
|
|
@@ -563,6 +568,7 @@ async function processWorkflowParallel({
|
|
|
563
568
|
stepResults,
|
|
564
569
|
prevResult,
|
|
565
570
|
resumeData,
|
|
571
|
+
timeTravel,
|
|
566
572
|
parentWorkflow,
|
|
567
573
|
activeSteps,
|
|
568
574
|
runtimeContext
|
|
@@ -578,6 +584,7 @@ async function processWorkflowConditional({
|
|
|
578
584
|
stepResults,
|
|
579
585
|
activeSteps,
|
|
580
586
|
resumeSteps,
|
|
587
|
+
timeTravel,
|
|
581
588
|
prevResult,
|
|
582
589
|
resumeData,
|
|
583
590
|
parentWorkflow,
|
|
@@ -620,6 +627,7 @@ async function processWorkflowConditional({
|
|
|
620
627
|
executionPath: executionPath.concat([idx]),
|
|
621
628
|
resumeSteps,
|
|
622
629
|
stepResults,
|
|
630
|
+
timeTravel,
|
|
623
631
|
prevResult,
|
|
624
632
|
resumeData,
|
|
625
633
|
parentWorkflow,
|
|
@@ -686,6 +694,7 @@ async function processWorkflowSleep({
|
|
|
686
694
|
stepResults,
|
|
687
695
|
activeSteps,
|
|
688
696
|
resumeSteps,
|
|
697
|
+
timeTravel,
|
|
689
698
|
prevResult,
|
|
690
699
|
resumeData,
|
|
691
700
|
parentWorkflow,
|
|
@@ -757,6 +766,7 @@ async function processWorkflowSleep({
|
|
|
757
766
|
runId,
|
|
758
767
|
executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
|
|
759
768
|
resumeSteps,
|
|
769
|
+
timeTravel,
|
|
760
770
|
stepResults,
|
|
761
771
|
prevResult,
|
|
762
772
|
resumeData,
|
|
@@ -776,6 +786,7 @@ async function processWorkflowSleepUntil({
|
|
|
776
786
|
stepResults,
|
|
777
787
|
activeSteps,
|
|
778
788
|
resumeSteps,
|
|
789
|
+
timeTravel,
|
|
779
790
|
prevResult,
|
|
780
791
|
resumeData,
|
|
781
792
|
parentWorkflow,
|
|
@@ -847,6 +858,7 @@ async function processWorkflowSleepUntil({
|
|
|
847
858
|
runId,
|
|
848
859
|
executionPath: executionPath.slice(0, -1).concat([executionPath[executionPath.length - 1] + 1]),
|
|
849
860
|
resumeSteps,
|
|
861
|
+
timeTravel,
|
|
850
862
|
stepResults,
|
|
851
863
|
prevResult,
|
|
852
864
|
resumeData,
|
|
@@ -927,6 +939,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
927
939
|
resumeSteps,
|
|
928
940
|
prevResult,
|
|
929
941
|
resumeData,
|
|
942
|
+
timeTravel,
|
|
930
943
|
executionPath,
|
|
931
944
|
stepResults,
|
|
932
945
|
runtimeContext
|
|
@@ -939,13 +952,14 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
939
952
|
suspendedPaths: {},
|
|
940
953
|
resumeLabels: {},
|
|
941
954
|
waitingPaths: {},
|
|
955
|
+
activeStepsPath: {},
|
|
942
956
|
serializedStepGraph: workflow.serializedStepGraph,
|
|
943
957
|
timestamp: Date.now(),
|
|
944
958
|
runId,
|
|
945
|
-
status: "running",
|
|
946
959
|
context: stepResults ?? {
|
|
947
960
|
input: prevResult?.status === "success" ? prevResult.output : void 0
|
|
948
961
|
},
|
|
962
|
+
status: "running",
|
|
949
963
|
value: {}
|
|
950
964
|
}
|
|
951
965
|
});
|
|
@@ -962,6 +976,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
962
976
|
input: prevResult?.status === "success" ? prevResult.output : void 0
|
|
963
977
|
},
|
|
964
978
|
prevResult,
|
|
979
|
+
timeTravel,
|
|
965
980
|
runtimeContext,
|
|
966
981
|
resumeData,
|
|
967
982
|
activeSteps: {}
|
|
@@ -1012,7 +1027,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1012
1027
|
});
|
|
1013
1028
|
}
|
|
1014
1029
|
async processWorkflowEnd(args) {
|
|
1015
|
-
const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runtimeContext, runId } = args;
|
|
1030
|
+
const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runtimeContext, runId, timeTravel } = args;
|
|
1016
1031
|
if (parentWorkflow) {
|
|
1017
1032
|
await this.mastra.pubsub.publish("workflows", {
|
|
1018
1033
|
type: "workflow.step.end",
|
|
@@ -1028,7 +1043,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1028
1043
|
activeSteps,
|
|
1029
1044
|
parentWorkflow: parentWorkflow.parentWorkflow,
|
|
1030
1045
|
parentContext: parentWorkflow,
|
|
1031
|
-
runtimeContext
|
|
1046
|
+
runtimeContext,
|
|
1047
|
+
timeTravel
|
|
1032
1048
|
}
|
|
1033
1049
|
});
|
|
1034
1050
|
}
|
|
@@ -1039,7 +1055,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1039
1055
|
});
|
|
1040
1056
|
}
|
|
1041
1057
|
async processWorkflowSuspend(args) {
|
|
1042
|
-
const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, runtimeContext } = args;
|
|
1058
|
+
const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, runId, runtimeContext, timeTravel } = args;
|
|
1043
1059
|
if (parentWorkflow) {
|
|
1044
1060
|
await this.mastra.pubsub.publish("workflows", {
|
|
1045
1061
|
type: "workflow.step.end",
|
|
@@ -1060,6 +1076,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1060
1076
|
}
|
|
1061
1077
|
}
|
|
1062
1078
|
},
|
|
1079
|
+
timeTravel,
|
|
1063
1080
|
resumeData,
|
|
1064
1081
|
activeSteps,
|
|
1065
1082
|
runtimeContext,
|
|
@@ -1075,7 +1092,17 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1075
1092
|
});
|
|
1076
1093
|
}
|
|
1077
1094
|
async processWorkflowFail(args) {
|
|
1078
|
-
const {
|
|
1095
|
+
const {
|
|
1096
|
+
workflowId,
|
|
1097
|
+
runId,
|
|
1098
|
+
resumeSteps,
|
|
1099
|
+
prevResult,
|
|
1100
|
+
resumeData,
|
|
1101
|
+
parentWorkflow,
|
|
1102
|
+
activeSteps,
|
|
1103
|
+
runtimeContext,
|
|
1104
|
+
timeTravel
|
|
1105
|
+
} = args;
|
|
1079
1106
|
await this.mastra.getStorage()?.updateWorkflowState({
|
|
1080
1107
|
workflowName: workflowId,
|
|
1081
1108
|
runId,
|
|
@@ -1095,6 +1122,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1095
1122
|
resumeSteps,
|
|
1096
1123
|
stepResults: parentWorkflow.stepResults,
|
|
1097
1124
|
prevResult,
|
|
1125
|
+
timeTravel,
|
|
1098
1126
|
resumeData,
|
|
1099
1127
|
activeSteps,
|
|
1100
1128
|
runtimeContext,
|
|
@@ -1117,6 +1145,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1117
1145
|
stepResults,
|
|
1118
1146
|
activeSteps,
|
|
1119
1147
|
resumeSteps,
|
|
1148
|
+
timeTravel,
|
|
1120
1149
|
prevResult,
|
|
1121
1150
|
resumeData,
|
|
1122
1151
|
parentWorkflow,
|
|
@@ -1180,6 +1209,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1180
1209
|
stepResults,
|
|
1181
1210
|
activeSteps,
|
|
1182
1211
|
resumeSteps,
|
|
1212
|
+
timeTravel,
|
|
1183
1213
|
prevResult,
|
|
1184
1214
|
resumeData,
|
|
1185
1215
|
parentWorkflow,
|
|
@@ -1199,6 +1229,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1199
1229
|
stepResults,
|
|
1200
1230
|
activeSteps,
|
|
1201
1231
|
resumeSteps,
|
|
1232
|
+
timeTravel,
|
|
1202
1233
|
prevResult,
|
|
1203
1234
|
resumeData,
|
|
1204
1235
|
parentWorkflow,
|
|
@@ -1219,6 +1250,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1219
1250
|
stepResults,
|
|
1220
1251
|
activeSteps,
|
|
1221
1252
|
resumeSteps,
|
|
1253
|
+
timeTravel,
|
|
1222
1254
|
prevResult,
|
|
1223
1255
|
resumeData,
|
|
1224
1256
|
parentWorkflow,
|
|
@@ -1239,6 +1271,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1239
1271
|
stepResults,
|
|
1240
1272
|
activeSteps,
|
|
1241
1273
|
resumeSteps,
|
|
1274
|
+
timeTravel,
|
|
1242
1275
|
prevResult,
|
|
1243
1276
|
resumeData,
|
|
1244
1277
|
parentWorkflow,
|
|
@@ -1295,6 +1328,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1295
1328
|
stepResults,
|
|
1296
1329
|
activeSteps,
|
|
1297
1330
|
resumeSteps,
|
|
1331
|
+
timeTravel,
|
|
1298
1332
|
prevResult,
|
|
1299
1333
|
resumeData,
|
|
1300
1334
|
parentWorkflow,
|
|
@@ -1387,6 +1421,47 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1387
1421
|
runtimeContext
|
|
1388
1422
|
}
|
|
1389
1423
|
});
|
|
1424
|
+
} else if (timeTravel && timeTravel.steps?.length > 1 && timeTravel.steps[0] === step.step.id) {
|
|
1425
|
+
const snapshot = await this.mastra?.getStorage()?.loadWorkflowSnapshot({
|
|
1426
|
+
workflowName: step.step.id,
|
|
1427
|
+
runId
|
|
1428
|
+
}) ?? { context: {} };
|
|
1429
|
+
const timeTravelParams = createTimeTravelExecutionParams({
|
|
1430
|
+
steps: timeTravel.steps.slice(1),
|
|
1431
|
+
inputData: timeTravel.inputData,
|
|
1432
|
+
resumeData: timeTravel.resumeData,
|
|
1433
|
+
context: timeTravel.nestedStepResults?.[step.step.id] ?? {},
|
|
1434
|
+
nestedStepsContext: timeTravel.nestedStepResults ?? {},
|
|
1435
|
+
snapshot,
|
|
1436
|
+
graph: step.step.buildExecutionGraph()
|
|
1437
|
+
});
|
|
1438
|
+
const nestedPrevStep = getStep(step.step, timeTravelParams.executionPath);
|
|
1439
|
+
const nestedPrevResult = timeTravelParams.stepResults[nestedPrevStep?.id ?? "input"];
|
|
1440
|
+
await this.mastra.pubsub.publish("workflows", {
|
|
1441
|
+
type: "workflow.start",
|
|
1442
|
+
runId,
|
|
1443
|
+
data: {
|
|
1444
|
+
workflowId: step.step.id,
|
|
1445
|
+
parentWorkflow: {
|
|
1446
|
+
stepId: step.step.id,
|
|
1447
|
+
workflowId,
|
|
1448
|
+
runId,
|
|
1449
|
+
executionPath,
|
|
1450
|
+
resumeSteps,
|
|
1451
|
+
stepResults,
|
|
1452
|
+
timeTravel,
|
|
1453
|
+
input: prevResult,
|
|
1454
|
+
parentWorkflow
|
|
1455
|
+
},
|
|
1456
|
+
executionPath: timeTravelParams.executionPath,
|
|
1457
|
+
runId: randomUUID(),
|
|
1458
|
+
stepResults: timeTravelParams.stepResults,
|
|
1459
|
+
prevResult: { status: "success", output: nestedPrevResult?.payload },
|
|
1460
|
+
timeTravel: timeTravelParams,
|
|
1461
|
+
activeSteps,
|
|
1462
|
+
runtimeContext
|
|
1463
|
+
}
|
|
1464
|
+
});
|
|
1390
1465
|
} else {
|
|
1391
1466
|
await this.mastra.pubsub.publish("workflows", {
|
|
1392
1467
|
type: "workflow.start",
|
|
@@ -1459,6 +1534,21 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1459
1534
|
for (const [key, value] of Object.entries(runtimeContext)) {
|
|
1460
1535
|
rc.set(key, value);
|
|
1461
1536
|
}
|
|
1537
|
+
const { resumeData: timeTravelResumeData, validationError: timeTravelResumeValidationError } = await validateStepResumeData({
|
|
1538
|
+
resumeData: timeTravel?.stepResults[step.step.id]?.status === "suspended" ? timeTravel?.resumeData : void 0,
|
|
1539
|
+
step: step.step
|
|
1540
|
+
});
|
|
1541
|
+
let resumeDataToUse;
|
|
1542
|
+
if (timeTravelResumeData && !timeTravelResumeValidationError) {
|
|
1543
|
+
resumeDataToUse = timeTravelResumeData;
|
|
1544
|
+
} else if (timeTravelResumeData && timeTravelResumeValidationError) {
|
|
1545
|
+
this.mastra.getLogger()?.warn("Time travel resume data validation failed", {
|
|
1546
|
+
stepId: step.step.id,
|
|
1547
|
+
error: timeTravelResumeValidationError.message
|
|
1548
|
+
});
|
|
1549
|
+
} else if (resumeSteps?.length > 0 && resumeSteps?.[0] === step.step.id || step.type === "waitForEvent") {
|
|
1550
|
+
resumeDataToUse = resumeData;
|
|
1551
|
+
}
|
|
1462
1552
|
const stepResult = await this.stepExecutor.execute({
|
|
1463
1553
|
workflowId,
|
|
1464
1554
|
step: step.step,
|
|
@@ -1469,7 +1559,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1469
1559
|
emitter: ee,
|
|
1470
1560
|
runtimeContext: rc,
|
|
1471
1561
|
input: prevResult?.output,
|
|
1472
|
-
resumeData:
|
|
1562
|
+
resumeData: resumeDataToUse,
|
|
1473
1563
|
runCount,
|
|
1474
1564
|
foreachIdx: step.type === "foreach" ? executionPath[1] : void 0,
|
|
1475
1565
|
validateInputs: workflow.options.validateInputs
|
|
@@ -1523,6 +1613,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1523
1613
|
executionPath,
|
|
1524
1614
|
resumeSteps,
|
|
1525
1615
|
stepResults,
|
|
1616
|
+
timeTravel,
|
|
1526
1617
|
prevResult,
|
|
1527
1618
|
activeSteps,
|
|
1528
1619
|
runtimeContext,
|
|
@@ -1563,6 +1654,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1563
1654
|
runId,
|
|
1564
1655
|
executionPath,
|
|
1565
1656
|
resumeSteps,
|
|
1657
|
+
timeTravel,
|
|
1658
|
+
//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.
|
|
1566
1659
|
stepResults,
|
|
1567
1660
|
prevResult: stepResult,
|
|
1568
1661
|
activeSteps,
|
|
@@ -1577,6 +1670,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1577
1670
|
runId,
|
|
1578
1671
|
executionPath,
|
|
1579
1672
|
resumeSteps,
|
|
1673
|
+
timeTravel,
|
|
1580
1674
|
prevResult,
|
|
1581
1675
|
parentWorkflow,
|
|
1582
1676
|
stepResults,
|
|
@@ -1666,6 +1760,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1666
1760
|
resumeSteps,
|
|
1667
1761
|
parentWorkflow,
|
|
1668
1762
|
stepResults,
|
|
1763
|
+
timeTravel,
|
|
1669
1764
|
prevResult,
|
|
1670
1765
|
activeSteps,
|
|
1671
1766
|
runtimeContext
|
|
@@ -1699,7 +1794,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1699
1794
|
stepResults,
|
|
1700
1795
|
prevResult,
|
|
1701
1796
|
activeSteps,
|
|
1702
|
-
runtimeContext
|
|
1797
|
+
runtimeContext,
|
|
1798
|
+
timeTravel
|
|
1703
1799
|
}
|
|
1704
1800
|
});
|
|
1705
1801
|
await this.mastra.pubsub.publish(`workflow.events.${runId}`, {
|
|
@@ -1808,7 +1904,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1808
1904
|
stepResults,
|
|
1809
1905
|
prevResult: { status: "success", output: allResults },
|
|
1810
1906
|
activeSteps,
|
|
1811
|
-
runtimeContext
|
|
1907
|
+
runtimeContext,
|
|
1908
|
+
timeTravel
|
|
1812
1909
|
}
|
|
1813
1910
|
});
|
|
1814
1911
|
} else if (step?.type === "foreach") {
|
|
@@ -1824,7 +1921,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1824
1921
|
stepResults,
|
|
1825
1922
|
prevResult: { ...prevResult, output: prevResult?.payload },
|
|
1826
1923
|
activeSteps,
|
|
1827
|
-
runtimeContext
|
|
1924
|
+
runtimeContext,
|
|
1925
|
+
timeTravel
|
|
1828
1926
|
}
|
|
1829
1927
|
});
|
|
1830
1928
|
} else if (executionPath[0] >= workflow.stepGraph.length - 1) {
|
|
@@ -1853,7 +1951,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1853
1951
|
stepResults,
|
|
1854
1952
|
prevResult,
|
|
1855
1953
|
activeSteps,
|
|
1856
|
-
runtimeContext
|
|
1954
|
+
runtimeContext,
|
|
1955
|
+
timeTravel
|
|
1857
1956
|
}
|
|
1858
1957
|
});
|
|
1859
1958
|
}
|
|
@@ -2128,6 +2227,7 @@ function createWorkflow(params) {
|
|
|
2128
2227
|
var EventedWorkflow = class extends Workflow {
|
|
2129
2228
|
constructor(params) {
|
|
2130
2229
|
super(params);
|
|
2230
|
+
this.engineType = "evented";
|
|
2131
2231
|
}
|
|
2132
2232
|
__registerMastra(mastra) {
|
|
2133
2233
|
super.__registerMastra(mastra);
|
|
@@ -2144,7 +2244,9 @@ var EventedWorkflow = class extends Workflow {
|
|
|
2144
2244
|
mastra: this.mastra,
|
|
2145
2245
|
retryConfig: this.retryConfig,
|
|
2146
2246
|
cleanup: () => this.runs.delete(runIdToUse),
|
|
2147
|
-
workflowSteps: this.steps
|
|
2247
|
+
workflowSteps: this.steps,
|
|
2248
|
+
validateInputs: this.options?.validateInputs,
|
|
2249
|
+
workflowEngineType: this.engineType
|
|
2148
2250
|
});
|
|
2149
2251
|
this.runs.set(runIdToUse, run);
|
|
2150
2252
|
const shouldPersistSnapshot = this.options?.shouldPersistSnapshot?.({
|
|
@@ -2163,6 +2265,7 @@ var EventedWorkflow = class extends Workflow {
|
|
|
2163
2265
|
context: {},
|
|
2164
2266
|
activePaths: [],
|
|
2165
2267
|
serializedStepGraph: this.serializedStepGraph,
|
|
2268
|
+
activeStepsPath: {},
|
|
2166
2269
|
suspendedPaths: {},
|
|
2167
2270
|
resumeLabels: {},
|
|
2168
2271
|
waitingPaths: {},
|
|
@@ -2201,15 +2304,16 @@ var EventedRun = class extends Run {
|
|
|
2201
2304
|
snapshot: {
|
|
2202
2305
|
runId: this.runId,
|
|
2203
2306
|
serializedStepGraph: this.serializedStepGraph,
|
|
2307
|
+
status: "running",
|
|
2204
2308
|
value: {},
|
|
2205
2309
|
context: {},
|
|
2206
2310
|
runtimeContext: Object.fromEntries(runtimeContext.entries()),
|
|
2207
2311
|
activePaths: [],
|
|
2312
|
+
activeStepsPath: {},
|
|
2208
2313
|
suspendedPaths: {},
|
|
2209
2314
|
resumeLabels: {},
|
|
2210
2315
|
waitingPaths: {},
|
|
2211
|
-
timestamp: Date.now()
|
|
2212
|
-
status: "running"
|
|
2316
|
+
timestamp: Date.now()
|
|
2213
2317
|
}
|
|
2214
2318
|
});
|
|
2215
2319
|
const inputDataToUse = await this._validateInput(inputData);
|
|
@@ -2246,9 +2350,14 @@ var EventedRun = class extends Run {
|
|
|
2246
2350
|
}
|
|
2247
2351
|
// TODO: stream
|
|
2248
2352
|
async resume(params) {
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2353
|
+
let steps = [];
|
|
2354
|
+
if (typeof params.step === "string") {
|
|
2355
|
+
steps = params.step.split(".");
|
|
2356
|
+
} else {
|
|
2357
|
+
steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
|
|
2358
|
+
(step) => typeof step === "string" ? step : step?.id
|
|
2359
|
+
);
|
|
2360
|
+
}
|
|
2252
2361
|
if (steps.length === 0) {
|
|
2253
2362
|
throw new Error("No steps provided to resume");
|
|
2254
2363
|
}
|
|
@@ -2477,6 +2586,23 @@ var EventedExecutionEngine = class extends ExecutionEngine {
|
|
|
2477
2586
|
format: params.format
|
|
2478
2587
|
}
|
|
2479
2588
|
});
|
|
2589
|
+
} else if (params.timeTravel) {
|
|
2590
|
+
const prevStep = getStep(this.mastra.getWorkflow(params.workflowId), params.timeTravel.executionPath);
|
|
2591
|
+
const prevResult = params.timeTravel.stepResults[prevStep?.id ?? "input"];
|
|
2592
|
+
await pubsub.publish("workflows", {
|
|
2593
|
+
type: "workflow.start",
|
|
2594
|
+
runId: params.runId,
|
|
2595
|
+
data: {
|
|
2596
|
+
workflowId: params.workflowId,
|
|
2597
|
+
runId: params.runId,
|
|
2598
|
+
executionPath: params.timeTravel.executionPath,
|
|
2599
|
+
stepResults: params.timeTravel.stepResults,
|
|
2600
|
+
timeTravel: params.timeTravel,
|
|
2601
|
+
prevResult: { status: "success", output: prevResult?.payload },
|
|
2602
|
+
runtimeContext: Object.fromEntries(params.runtimeContext.entries()),
|
|
2603
|
+
format: params.format
|
|
2604
|
+
}
|
|
2605
|
+
});
|
|
2480
2606
|
} else {
|
|
2481
2607
|
await pubsub.publish("workflows", {
|
|
2482
2608
|
type: "workflow.start",
|
|
@@ -2535,5 +2661,5 @@ var EventedExecutionEngine = class extends ExecutionEngine {
|
|
|
2535
2661
|
};
|
|
2536
2662
|
|
|
2537
2663
|
export { EventedExecutionEngine, EventedRun, EventedWorkflow, StepExecutor, WorkflowEventProcessor, cloneStep, cloneWorkflow, createStep, createWorkflow };
|
|
2538
|
-
//# sourceMappingURL=chunk-
|
|
2539
|
-
//# sourceMappingURL=chunk-
|
|
2664
|
+
//# sourceMappingURL=chunk-2BY7C6Y7.js.map
|
|
2665
|
+
//# sourceMappingURL=chunk-2BY7C6Y7.js.map
|