@mastra/core 0.10.8 → 0.10.9
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/dist/agent/index.cjs +4 -4
- package/dist/agent/index.d.cts +8 -8
- package/dist/agent/index.d.ts +8 -8
- package/dist/agent/index.js +2 -2
- package/dist/{base-DVVTzIQy.d.cts → base-B_y9sMg0.d.cts} +1 -1
- package/dist/{base-B_WEJuiR.d.cts → base-Bu9IeyHt.d.cts} +48 -15
- package/dist/{base-BbdvunNJ.d.ts → base-ClrXcCRx.d.ts} +1 -1
- package/dist/{base-DnSegjq5.d.ts → base-D6PagN3X.d.ts} +48 -15
- package/dist/base.d.cts +2 -2
- package/dist/base.d.ts +2 -2
- package/dist/bundler/index.d.cts +2 -2
- package/dist/bundler/index.d.ts +2 -2
- package/dist/{chunk-V73Z32LN.js → chunk-5S3K64EU.js} +1 -1
- package/dist/{chunk-2D7NOO7S.cjs → chunk-6Y4UL5Z6.cjs} +11 -0
- package/dist/{chunk-QZ3VZRUU.cjs → chunk-7H2GET5Z.cjs} +6 -2
- package/dist/{chunk-YXQF4U4L.js → chunk-7XQIPES3.js} +5 -1
- package/dist/{chunk-CHBIZNA3.cjs → chunk-CWXF3ZG4.cjs} +31 -9
- package/dist/{chunk-GKCO24Z4.cjs → chunk-CZGP56Y3.cjs} +2 -2
- package/dist/{chunk-WTTYHREJ.js → chunk-HM4AOWTY.js} +1 -1
- package/dist/{chunk-DO5R43AJ.js → chunk-JQOMTERC.js} +11 -1
- package/dist/{chunk-FBURVKXA.js → chunk-O7YOEBDC.js} +220 -41
- package/dist/{chunk-E4A4XDDG.cjs → chunk-SO4GUX3Q.cjs} +221 -42
- package/dist/{chunk-EYJXFYUH.cjs → chunk-SUF6QXSI.cjs} +70 -40
- package/dist/{chunk-QIQOR45O.js → chunk-VMIMBLH4.js} +31 -9
- package/dist/{chunk-U2LC4K7N.cjs → chunk-X73RHIY2.cjs} +2 -2
- package/dist/{chunk-WK3SHUOG.js → chunk-Y2FKASKG.js} +61 -31
- package/dist/deployer/index.d.cts +2 -2
- package/dist/deployer/index.d.ts +2 -2
- package/dist/eval/index.d.cts +6 -6
- package/dist/eval/index.d.ts +6 -6
- package/dist/index.cjs +22 -22
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +7 -7
- package/dist/integration/index.d.cts +10 -10
- package/dist/integration/index.d.ts +10 -10
- package/dist/llm/index.d.cts +6 -6
- package/dist/llm/index.d.ts +6 -6
- package/dist/logger/index.cjs +8 -4
- package/dist/logger/index.d.cts +2 -2
- package/dist/logger/index.d.ts +2 -2
- package/dist/logger/index.js +1 -1
- package/dist/{logger-CpL0z5v_.d.cts → logger-B8XXh6ya.d.cts} +2 -1
- package/dist/{logger-DtVDdb81.d.ts → logger-Bpa2oLL4.d.ts} +2 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.cts +4 -4
- package/dist/mastra/index.d.ts +4 -4
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.d.cts +8 -8
- package/dist/mcp/index.d.ts +8 -8
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.d.cts +6 -6
- package/dist/memory/index.d.ts +6 -6
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +2 -2
- package/dist/network/index.d.cts +6 -6
- package/dist/network/index.d.ts +6 -6
- package/dist/network/index.js +1 -1
- package/dist/network/vNext/index.cjs +37 -23
- package/dist/network/vNext/index.d.cts +8 -8
- package/dist/network/vNext/index.d.ts +8 -8
- package/dist/network/vNext/index.js +26 -12
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.d.cts +8 -8
- package/dist/relevance/index.d.ts +8 -8
- package/dist/relevance/index.js +1 -1
- package/dist/server/index.d.cts +7 -7
- package/dist/server/index.d.ts +7 -7
- package/dist/storage/index.cjs +2 -2
- package/dist/storage/index.d.cts +7 -7
- package/dist/storage/index.d.ts +7 -7
- package/dist/storage/index.js +1 -1
- package/dist/telemetry/index.d.cts +6 -6
- package/dist/telemetry/index.d.ts +6 -6
- package/dist/tools/index.d.cts +9 -9
- package/dist/tools/index.d.ts +9 -9
- package/dist/tts/index.d.cts +2 -2
- package/dist/tts/index.d.ts +2 -2
- package/dist/utils.d.cts +3 -3
- package/dist/utils.d.ts +3 -3
- package/dist/vector/index.d.cts +2 -2
- package/dist/vector/index.d.ts +2 -2
- package/dist/voice/index.d.cts +6 -6
- package/dist/voice/index.d.ts +6 -6
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.d.cts +34 -13
- package/dist/workflows/index.d.ts +34 -13
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.d.cts +11 -11
- package/dist/workflows/legacy/index.d.ts +11 -11
- package/dist/workflows/legacy/index.js +1 -1
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkBB6DPGIV_cjs = require('./chunk-BB6DPGIV.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkSUF6QXSI_cjs = require('./chunk-SUF6QXSI.cjs');
|
|
5
5
|
var chunk4Z3OU5RY_cjs = require('./chunk-4Z3OU5RY.cjs');
|
|
6
6
|
var chunkB6TOBUS6_cjs = require('./chunk-B6TOBUS6.cjs');
|
|
7
7
|
var chunkP3Q73CAW_cjs = require('./chunk-P3Q73CAW.cjs');
|
|
@@ -29,6 +29,30 @@ var ExecutionEngine = class extends chunkP3Q73CAW_cjs.MastraBase {
|
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
32
|
+
/**
|
|
33
|
+
* The runCounts map is used to keep track of the run count for each step.
|
|
34
|
+
* The step id is used as the key and the run count is the value.
|
|
35
|
+
*/
|
|
36
|
+
runCounts = /* @__PURE__ */ new Map();
|
|
37
|
+
/**
|
|
38
|
+
* Get or generate the run count for a step.
|
|
39
|
+
* If the step id is not in the map, it will be added and the run count will be 0.
|
|
40
|
+
* If the step id is in the map, it will return the run count.
|
|
41
|
+
*
|
|
42
|
+
* @param stepId - The id of the step.
|
|
43
|
+
* @returns The run count for the step.
|
|
44
|
+
*/
|
|
45
|
+
getOrGenerateRunCount(stepId) {
|
|
46
|
+
if (this.runCounts.has(stepId)) {
|
|
47
|
+
const currentRunCount = this.runCounts.get(stepId);
|
|
48
|
+
const nextRunCount = currentRunCount + 1;
|
|
49
|
+
this.runCounts.set(stepId, nextRunCount);
|
|
50
|
+
return nextRunCount;
|
|
51
|
+
}
|
|
52
|
+
const runCount = 0;
|
|
53
|
+
this.runCounts.set(stepId, runCount);
|
|
54
|
+
return runCount;
|
|
55
|
+
}
|
|
32
56
|
async fmtReturnValue(executionSpan, emitter, stepResults, lastOutput, error) {
|
|
33
57
|
const base = {
|
|
34
58
|
status: lastOutput.status,
|
|
@@ -133,6 +157,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
133
157
|
retryConfig: { attempts, delay },
|
|
134
158
|
executionSpan
|
|
135
159
|
},
|
|
160
|
+
abortController: params.abortController,
|
|
136
161
|
emitter: params.emitter,
|
|
137
162
|
runtimeContext: params.runtimeContext
|
|
138
163
|
});
|
|
@@ -265,14 +290,14 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
265
290
|
resume,
|
|
266
291
|
prevOutput,
|
|
267
292
|
emitter,
|
|
293
|
+
abortController,
|
|
268
294
|
runtimeContext
|
|
269
295
|
}) {
|
|
270
296
|
const startTime = resume?.steps[0] === step.id ? void 0 : Date.now();
|
|
271
297
|
const resumeTime = resume?.steps[0] === step.id ? Date.now() : void 0;
|
|
272
298
|
const stepInfo = {
|
|
273
299
|
...stepResults[step.id],
|
|
274
|
-
payload: prevOutput,
|
|
275
|
-
...resume?.steps[0] === step.id ? { resumePayload: resume?.resumePayload } : {},
|
|
300
|
+
...resume?.steps[0] === step.id ? { resumePayload: resume?.resumePayload } : { payload: prevOutput },
|
|
276
301
|
...startTime ? { startedAt: startTime } : {},
|
|
277
302
|
...resumeTime ? { resumedAt: resumeTime } : {}
|
|
278
303
|
};
|
|
@@ -302,7 +327,9 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
302
327
|
await emitter.emit("watch-v2", {
|
|
303
328
|
type: "step-start",
|
|
304
329
|
payload: {
|
|
305
|
-
id: step.id
|
|
330
|
+
id: step.id,
|
|
331
|
+
...stepInfo,
|
|
332
|
+
status: "running"
|
|
306
333
|
}
|
|
307
334
|
});
|
|
308
335
|
const _runStep = (step2, spanName, attributes) => {
|
|
@@ -335,6 +362,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
335
362
|
mastra: this.mastra,
|
|
336
363
|
runtimeContext,
|
|
337
364
|
inputData: prevOutput,
|
|
365
|
+
runCount: this.getOrGenerateRunCount(step.id),
|
|
338
366
|
resumeData: resume?.steps[0] === step.id ? resume?.resumePayload : void 0,
|
|
339
367
|
getInitData: () => stepResults?.input,
|
|
340
368
|
getStepResult: (step2) => {
|
|
@@ -354,6 +382,9 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
354
382
|
bail: (result2) => {
|
|
355
383
|
bailed = { payload: result2 };
|
|
356
384
|
},
|
|
385
|
+
abort: () => {
|
|
386
|
+
abortController?.abort();
|
|
387
|
+
},
|
|
357
388
|
resume: {
|
|
358
389
|
steps: resume?.steps?.slice(1) || [],
|
|
359
390
|
resumePayload: resume?.resumePayload,
|
|
@@ -361,7 +392,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
361
392
|
runId: stepResults[step.id]?.suspendPayload?.__workflow_meta?.runId
|
|
362
393
|
},
|
|
363
394
|
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
364
|
-
engine: {}
|
|
395
|
+
engine: {},
|
|
396
|
+
abortSignal: abortController?.signal
|
|
365
397
|
});
|
|
366
398
|
if (suspended) {
|
|
367
399
|
execResults = { status: "suspended", suspendPayload: suspended.payload, suspendedAt: Date.now() };
|
|
@@ -418,7 +450,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
418
450
|
type: "step-suspended",
|
|
419
451
|
payload: {
|
|
420
452
|
id: step.id,
|
|
421
|
-
|
|
453
|
+
...execResults
|
|
422
454
|
}
|
|
423
455
|
});
|
|
424
456
|
} else {
|
|
@@ -426,8 +458,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
426
458
|
type: "step-result",
|
|
427
459
|
payload: {
|
|
428
460
|
id: step.id,
|
|
429
|
-
|
|
430
|
-
output: execResults.output
|
|
461
|
+
...execResults
|
|
431
462
|
}
|
|
432
463
|
});
|
|
433
464
|
await emitter.emit("watch-v2", {
|
|
@@ -450,6 +481,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
450
481
|
resume,
|
|
451
482
|
executionContext,
|
|
452
483
|
emitter,
|
|
484
|
+
abortController,
|
|
453
485
|
runtimeContext
|
|
454
486
|
}) {
|
|
455
487
|
let execResults;
|
|
@@ -472,6 +504,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
472
504
|
executionSpan: executionContext.executionSpan
|
|
473
505
|
},
|
|
474
506
|
emitter,
|
|
507
|
+
abortController,
|
|
475
508
|
runtimeContext
|
|
476
509
|
})
|
|
477
510
|
)
|
|
@@ -482,6 +515,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
482
515
|
execResults = { status: "failed", error: hasFailed.result.error };
|
|
483
516
|
} else if (hasSuspended) {
|
|
484
517
|
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
518
|
+
} else if (abortController?.signal?.aborted) {
|
|
519
|
+
execResults = { status: "canceled" };
|
|
485
520
|
} else {
|
|
486
521
|
execResults = {
|
|
487
522
|
status: "success",
|
|
@@ -506,6 +541,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
506
541
|
resume,
|
|
507
542
|
executionContext,
|
|
508
543
|
emitter,
|
|
544
|
+
abortController,
|
|
509
545
|
runtimeContext
|
|
510
546
|
}) {
|
|
511
547
|
let execResults;
|
|
@@ -517,6 +553,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
517
553
|
mastra: this.mastra,
|
|
518
554
|
runtimeContext,
|
|
519
555
|
inputData: prevOutput,
|
|
556
|
+
runCount: -1,
|
|
520
557
|
getInitData: () => stepResults?.input,
|
|
521
558
|
getStepResult: (step) => {
|
|
522
559
|
if (!step?.id) {
|
|
@@ -533,8 +570,12 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
533
570
|
},
|
|
534
571
|
bail: () => {
|
|
535
572
|
},
|
|
573
|
+
abort: () => {
|
|
574
|
+
abortController?.abort();
|
|
575
|
+
},
|
|
536
576
|
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
537
|
-
engine: {}
|
|
577
|
+
engine: {},
|
|
578
|
+
abortSignal: abortController?.signal
|
|
538
579
|
});
|
|
539
580
|
return result ? index : null;
|
|
540
581
|
} catch (e) {
|
|
@@ -573,6 +614,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
573
614
|
executionSpan: executionContext.executionSpan
|
|
574
615
|
},
|
|
575
616
|
emitter,
|
|
617
|
+
abortController,
|
|
576
618
|
runtimeContext
|
|
577
619
|
})
|
|
578
620
|
)
|
|
@@ -583,6 +625,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
583
625
|
execResults = { status: "failed", error: hasFailed.result.error };
|
|
584
626
|
} else if (hasSuspended) {
|
|
585
627
|
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
628
|
+
} else if (abortController?.signal?.aborted) {
|
|
629
|
+
execResults = { status: "canceled" };
|
|
586
630
|
} else {
|
|
587
631
|
execResults = {
|
|
588
632
|
status: "success",
|
|
@@ -605,6 +649,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
605
649
|
resume,
|
|
606
650
|
executionContext,
|
|
607
651
|
emitter,
|
|
652
|
+
abortController,
|
|
608
653
|
runtimeContext
|
|
609
654
|
}) {
|
|
610
655
|
const { step, condition } = entry;
|
|
@@ -620,6 +665,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
620
665
|
resume,
|
|
621
666
|
prevOutput: result.output,
|
|
622
667
|
emitter,
|
|
668
|
+
abortController,
|
|
623
669
|
runtimeContext
|
|
624
670
|
});
|
|
625
671
|
if (result.status !== "success") {
|
|
@@ -630,6 +676,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
630
676
|
mastra: this.mastra,
|
|
631
677
|
runtimeContext,
|
|
632
678
|
inputData: result.output,
|
|
679
|
+
runCount: -1,
|
|
633
680
|
getInitData: () => stepResults?.input,
|
|
634
681
|
getStepResult: (step2) => {
|
|
635
682
|
if (!step2?.id) {
|
|
@@ -642,8 +689,12 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
642
689
|
},
|
|
643
690
|
bail: () => {
|
|
644
691
|
},
|
|
692
|
+
abort: () => {
|
|
693
|
+
abortController?.abort();
|
|
694
|
+
},
|
|
645
695
|
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
646
|
-
engine: {}
|
|
696
|
+
engine: {},
|
|
697
|
+
abortSignal: abortController?.signal
|
|
647
698
|
});
|
|
648
699
|
} while (entry.loopType === "dowhile" ? isTrue : !isTrue);
|
|
649
700
|
return result;
|
|
@@ -657,6 +708,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
657
708
|
resume,
|
|
658
709
|
executionContext,
|
|
659
710
|
emitter,
|
|
711
|
+
abortController,
|
|
660
712
|
runtimeContext
|
|
661
713
|
}) {
|
|
662
714
|
const { step, opts } = entry;
|
|
@@ -677,6 +729,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
677
729
|
resume,
|
|
678
730
|
prevOutput: item,
|
|
679
731
|
emitter,
|
|
732
|
+
abortController,
|
|
680
733
|
runtimeContext
|
|
681
734
|
});
|
|
682
735
|
})
|
|
@@ -738,6 +791,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
738
791
|
resume,
|
|
739
792
|
executionContext,
|
|
740
793
|
emitter,
|
|
794
|
+
abortController,
|
|
741
795
|
runtimeContext
|
|
742
796
|
}) {
|
|
743
797
|
const prevOutput = this.getStepOutput(stepResults, prevStep);
|
|
@@ -753,6 +807,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
753
807
|
resume,
|
|
754
808
|
prevOutput,
|
|
755
809
|
emitter,
|
|
810
|
+
abortController,
|
|
756
811
|
runtimeContext
|
|
757
812
|
});
|
|
758
813
|
} else if (resume?.resumePath?.length && (entry.type === "parallel" || entry.type === "conditional")) {
|
|
@@ -774,6 +829,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
774
829
|
executionSpan: executionContext.executionSpan
|
|
775
830
|
},
|
|
776
831
|
emitter,
|
|
832
|
+
abortController,
|
|
777
833
|
runtimeContext
|
|
778
834
|
});
|
|
779
835
|
} else if (entry.type === "parallel") {
|
|
@@ -787,6 +843,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
787
843
|
resume,
|
|
788
844
|
executionContext,
|
|
789
845
|
emitter,
|
|
846
|
+
abortController,
|
|
790
847
|
runtimeContext
|
|
791
848
|
});
|
|
792
849
|
} else if (entry.type === "conditional") {
|
|
@@ -801,6 +858,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
801
858
|
resume,
|
|
802
859
|
executionContext,
|
|
803
860
|
emitter,
|
|
861
|
+
abortController,
|
|
804
862
|
runtimeContext
|
|
805
863
|
});
|
|
806
864
|
} else if (entry.type === "loop") {
|
|
@@ -814,6 +872,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
814
872
|
resume,
|
|
815
873
|
executionContext,
|
|
816
874
|
emitter,
|
|
875
|
+
abortController,
|
|
817
876
|
runtimeContext
|
|
818
877
|
});
|
|
819
878
|
} else if (entry.type === "foreach") {
|
|
@@ -827,6 +886,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
827
886
|
resume,
|
|
828
887
|
executionContext,
|
|
829
888
|
emitter,
|
|
889
|
+
abortController,
|
|
830
890
|
runtimeContext
|
|
831
891
|
});
|
|
832
892
|
} else if (entry.type === "sleep") {
|
|
@@ -859,7 +919,10 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
859
919
|
await emitter.emit("watch-v2", {
|
|
860
920
|
type: "step-waiting",
|
|
861
921
|
payload: {
|
|
862
|
-
id: entry.id
|
|
922
|
+
id: entry.id,
|
|
923
|
+
payload: prevOutput,
|
|
924
|
+
startedAt,
|
|
925
|
+
status: "waiting"
|
|
863
926
|
}
|
|
864
927
|
});
|
|
865
928
|
await this.persistStepUpdate({
|
|
@@ -887,6 +950,41 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
887
950
|
};
|
|
888
951
|
execResults = { ...stepInfo, status: "success", output: prevOutput };
|
|
889
952
|
stepResults[entry.id] = { ...stepInfo, status: "success", output: prevOutput };
|
|
953
|
+
await emitter.emit("watch", {
|
|
954
|
+
type: "watch",
|
|
955
|
+
payload: {
|
|
956
|
+
currentStep: {
|
|
957
|
+
id: entry.id,
|
|
958
|
+
...execResults
|
|
959
|
+
},
|
|
960
|
+
workflowState: {
|
|
961
|
+
status: "running",
|
|
962
|
+
steps: {
|
|
963
|
+
...stepResults,
|
|
964
|
+
[entry.id]: {
|
|
965
|
+
...execResults
|
|
966
|
+
}
|
|
967
|
+
},
|
|
968
|
+
result: null,
|
|
969
|
+
error: null
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
eventTimestamp: Date.now()
|
|
973
|
+
});
|
|
974
|
+
await emitter.emit("watch-v2", {
|
|
975
|
+
type: "step-result",
|
|
976
|
+
payload: {
|
|
977
|
+
id: entry.id,
|
|
978
|
+
...execResults
|
|
979
|
+
}
|
|
980
|
+
});
|
|
981
|
+
await emitter.emit("watch-v2", {
|
|
982
|
+
type: "step-finish",
|
|
983
|
+
payload: {
|
|
984
|
+
id: entry.id,
|
|
985
|
+
metadata: {}
|
|
986
|
+
}
|
|
987
|
+
});
|
|
890
988
|
} else if (entry.type === "sleepUntil") {
|
|
891
989
|
const startedAt = Date.now();
|
|
892
990
|
await emitter.emit("watch", {
|
|
@@ -917,7 +1015,10 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
917
1015
|
await emitter.emit("watch-v2", {
|
|
918
1016
|
type: "step-waiting",
|
|
919
1017
|
payload: {
|
|
920
|
-
id: entry.id
|
|
1018
|
+
id: entry.id,
|
|
1019
|
+
payload: prevOutput,
|
|
1020
|
+
startedAt,
|
|
1021
|
+
status: "waiting"
|
|
921
1022
|
}
|
|
922
1023
|
});
|
|
923
1024
|
await this.persistStepUpdate({
|
|
@@ -945,6 +1046,41 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
945
1046
|
};
|
|
946
1047
|
execResults = { ...stepInfo, status: "success", output: prevOutput };
|
|
947
1048
|
stepResults[entry.id] = { ...stepInfo, status: "success", output: prevOutput };
|
|
1049
|
+
await emitter.emit("watch", {
|
|
1050
|
+
type: "watch",
|
|
1051
|
+
payload: {
|
|
1052
|
+
currentStep: {
|
|
1053
|
+
id: entry.id,
|
|
1054
|
+
...execResults
|
|
1055
|
+
},
|
|
1056
|
+
workflowState: {
|
|
1057
|
+
status: "running",
|
|
1058
|
+
steps: {
|
|
1059
|
+
...stepResults,
|
|
1060
|
+
[entry.id]: {
|
|
1061
|
+
...execResults
|
|
1062
|
+
}
|
|
1063
|
+
},
|
|
1064
|
+
result: null,
|
|
1065
|
+
error: null
|
|
1066
|
+
}
|
|
1067
|
+
},
|
|
1068
|
+
eventTimestamp: Date.now()
|
|
1069
|
+
});
|
|
1070
|
+
await emitter.emit("watch-v2", {
|
|
1071
|
+
type: "step-result",
|
|
1072
|
+
payload: {
|
|
1073
|
+
id: entry.id,
|
|
1074
|
+
...execResults
|
|
1075
|
+
}
|
|
1076
|
+
});
|
|
1077
|
+
await emitter.emit("watch-v2", {
|
|
1078
|
+
type: "step-finish",
|
|
1079
|
+
payload: {
|
|
1080
|
+
id: entry.id,
|
|
1081
|
+
metadata: {}
|
|
1082
|
+
}
|
|
1083
|
+
});
|
|
948
1084
|
} else if (entry.type === "waitForEvent") {
|
|
949
1085
|
const startedAt = Date.now();
|
|
950
1086
|
let eventData;
|
|
@@ -976,7 +1112,10 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
976
1112
|
await emitter.emit("watch-v2", {
|
|
977
1113
|
type: "step-waiting",
|
|
978
1114
|
payload: {
|
|
979
|
-
id: entry.step.id
|
|
1115
|
+
id: entry.step.id,
|
|
1116
|
+
payload: prevOutput,
|
|
1117
|
+
startedAt,
|
|
1118
|
+
status: "waiting"
|
|
980
1119
|
}
|
|
981
1120
|
});
|
|
982
1121
|
await this.persistStepUpdate({
|
|
@@ -1010,6 +1149,7 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
1010
1149
|
},
|
|
1011
1150
|
prevOutput,
|
|
1012
1151
|
emitter,
|
|
1152
|
+
abortController,
|
|
1013
1153
|
runtimeContext
|
|
1014
1154
|
});
|
|
1015
1155
|
} catch (error) {
|
|
@@ -1029,6 +1169,9 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
1029
1169
|
if (entry.type === "step" || entry.type === "waitForEvent" || entry.type === "loop" || entry.type === "foreach") {
|
|
1030
1170
|
stepResults[entry.step.id] = execResults;
|
|
1031
1171
|
}
|
|
1172
|
+
if (abortController?.signal?.aborted) {
|
|
1173
|
+
execResults = { ...execResults, status: "canceled" };
|
|
1174
|
+
}
|
|
1032
1175
|
await this.persistStepUpdate({
|
|
1033
1176
|
workflowId,
|
|
1034
1177
|
runId,
|
|
@@ -1044,7 +1187,7 @@ function mapVariable(config) {
|
|
|
1044
1187
|
return config;
|
|
1045
1188
|
}
|
|
1046
1189
|
function createStep(params) {
|
|
1047
|
-
if (params instanceof
|
|
1190
|
+
if (params instanceof chunkSUF6QXSI_cjs.Agent) {
|
|
1048
1191
|
return {
|
|
1049
1192
|
id: params.name,
|
|
1050
1193
|
// @ts-ignore
|
|
@@ -1057,7 +1200,7 @@ function createStep(params) {
|
|
|
1057
1200
|
outputSchema: zod.z.object({
|
|
1058
1201
|
text: zod.z.string()
|
|
1059
1202
|
}),
|
|
1060
|
-
execute: async ({ inputData, [chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter, runtimeContext }) => {
|
|
1203
|
+
execute: async ({ inputData, [chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter, runtimeContext, abortSignal, abort }) => {
|
|
1061
1204
|
let streamPromise = {};
|
|
1062
1205
|
streamPromise.promise = new Promise((resolve, reject) => {
|
|
1063
1206
|
streamPromise.resolve = resolve;
|
|
@@ -1077,8 +1220,12 @@ function createStep(params) {
|
|
|
1077
1220
|
runtimeContext,
|
|
1078
1221
|
onFinish: (result) => {
|
|
1079
1222
|
streamPromise.resolve(result.text);
|
|
1080
|
-
}
|
|
1223
|
+
},
|
|
1224
|
+
abortSignal
|
|
1081
1225
|
});
|
|
1226
|
+
if (abortSignal.aborted) {
|
|
1227
|
+
return abort();
|
|
1228
|
+
}
|
|
1082
1229
|
for await (const chunk of fullStream) {
|
|
1083
1230
|
switch (chunk.type) {
|
|
1084
1231
|
case "text-delta":
|
|
@@ -1585,23 +1732,26 @@ var Workflow = class extends chunkP3Q73CAW_cjs.MastraBase {
|
|
|
1585
1732
|
cleanup: () => this.#runs.delete(runIdToUse)
|
|
1586
1733
|
});
|
|
1587
1734
|
this.#runs.set(runIdToUse, run);
|
|
1588
|
-
await this.
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1735
|
+
const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse);
|
|
1736
|
+
if (!workflowSnapshotInStorage) {
|
|
1737
|
+
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
1738
|
+
workflowName: this.id,
|
|
1592
1739
|
runId: runIdToUse,
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1740
|
+
snapshot: {
|
|
1741
|
+
runId: runIdToUse,
|
|
1742
|
+
status: "pending",
|
|
1743
|
+
value: {},
|
|
1744
|
+
context: {},
|
|
1745
|
+
activePaths: [],
|
|
1746
|
+
serializedStepGraph: this.serializedStepGraph,
|
|
1747
|
+
suspendedPaths: {},
|
|
1748
|
+
result: void 0,
|
|
1749
|
+
error: void 0,
|
|
1750
|
+
// @ts-ignore
|
|
1751
|
+
timestamp: Date.now()
|
|
1752
|
+
}
|
|
1753
|
+
});
|
|
1754
|
+
}
|
|
1605
1755
|
return run;
|
|
1606
1756
|
}
|
|
1607
1757
|
async execute({
|
|
@@ -1611,12 +1761,22 @@ var Workflow = class extends chunkP3Q73CAW_cjs.MastraBase {
|
|
|
1611
1761
|
resume,
|
|
1612
1762
|
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
1613
1763
|
mastra,
|
|
1614
|
-
runtimeContext
|
|
1764
|
+
runtimeContext,
|
|
1765
|
+
abort,
|
|
1766
|
+
abortSignal
|
|
1615
1767
|
}) {
|
|
1616
1768
|
this.__registerMastra(mastra);
|
|
1617
1769
|
const run = resume?.steps?.length ? this.createRun({ runId: resume.runId }) : this.createRun();
|
|
1770
|
+
const nestedAbortCb = () => {
|
|
1771
|
+
abort();
|
|
1772
|
+
};
|
|
1773
|
+
run.abortController?.signal.addEventListener("abort", nestedAbortCb);
|
|
1774
|
+
abortSignal.addEventListener("abort", async () => {
|
|
1775
|
+
run.abortController.signal.removeEventListener("abort", nestedAbortCb);
|
|
1776
|
+
await run.cancel();
|
|
1777
|
+
});
|
|
1618
1778
|
const unwatchV2 = run.watch((event) => {
|
|
1619
|
-
emitter.emit("nested-watch-v2", event);
|
|
1779
|
+
emitter.emit("nested-watch-v2", { event, workflowId: this.id });
|
|
1620
1780
|
}, "watch-v2");
|
|
1621
1781
|
const unwatch = run.watch((event) => {
|
|
1622
1782
|
emitter.emit("nested-watch", { event, workflowId: this.id, runId: run.runId, isResume: !!resume?.steps?.length });
|
|
@@ -1688,6 +1848,7 @@ var Workflow = class extends chunkP3Q73CAW_cjs.MastraBase {
|
|
|
1688
1848
|
}
|
|
1689
1849
|
};
|
|
1690
1850
|
var Run = class {
|
|
1851
|
+
abortController;
|
|
1691
1852
|
emitter;
|
|
1692
1853
|
/**
|
|
1693
1854
|
* Unique identifier for this workflow
|
|
@@ -1731,8 +1892,15 @@ var Run = class {
|
|
|
1731
1892
|
this.emitter = new EventEmitter__default.default();
|
|
1732
1893
|
this.retryConfig = params.retryConfig;
|
|
1733
1894
|
this.cleanup = params.cleanup;
|
|
1895
|
+
this.abortController = new AbortController();
|
|
1896
|
+
}
|
|
1897
|
+
/**
|
|
1898
|
+
* Cancels the workflow execution
|
|
1899
|
+
*/
|
|
1900
|
+
async cancel() {
|
|
1901
|
+
this.abortController?.abort();
|
|
1734
1902
|
}
|
|
1735
|
-
sendEvent(event, data) {
|
|
1903
|
+
async sendEvent(event, data) {
|
|
1736
1904
|
this.emitter.emit(`user-event-${event}`, data);
|
|
1737
1905
|
}
|
|
1738
1906
|
/**
|
|
@@ -1765,9 +1933,12 @@ var Run = class {
|
|
|
1765
1933
|
}
|
|
1766
1934
|
},
|
|
1767
1935
|
retryConfig: this.retryConfig,
|
|
1768
|
-
runtimeContext: runtimeContext ?? new chunkLABUWBKX_cjs.RuntimeContext()
|
|
1936
|
+
runtimeContext: runtimeContext ?? new chunkLABUWBKX_cjs.RuntimeContext(),
|
|
1937
|
+
abortController: this.abortController
|
|
1769
1938
|
});
|
|
1770
|
-
|
|
1939
|
+
if (result.status !== "suspended") {
|
|
1940
|
+
this.cleanup?.();
|
|
1941
|
+
}
|
|
1771
1942
|
return result;
|
|
1772
1943
|
}
|
|
1773
1944
|
/**
|
|
@@ -1843,19 +2014,26 @@ var Run = class {
|
|
|
1843
2014
|
console.error(e);
|
|
1844
2015
|
}
|
|
1845
2016
|
};
|
|
2017
|
+
const nestedWatchV2Cb = ({
|
|
2018
|
+
event,
|
|
2019
|
+
workflowId
|
|
2020
|
+
}) => {
|
|
2021
|
+
this.emitter.emit("watch-v2", {
|
|
2022
|
+
...event,
|
|
2023
|
+
...event.payload?.id ? { payload: { ...event.payload, id: `${workflowId}.${event.payload.id}` } } : {}
|
|
2024
|
+
});
|
|
2025
|
+
};
|
|
1846
2026
|
if (type === "watch") {
|
|
1847
2027
|
this.emitter.on("watch", watchCb);
|
|
1848
2028
|
this.emitter.on("nested-watch", nestedWatchCb);
|
|
1849
2029
|
} else if (type === "watch-v2") {
|
|
1850
2030
|
this.emitter.on("watch-v2", cb);
|
|
1851
|
-
this.emitter.on("nested-watch-v2",
|
|
1852
|
-
this.emitter.emit("watch-v2", event);
|
|
1853
|
-
});
|
|
2031
|
+
this.emitter.on("nested-watch-v2", nestedWatchV2Cb);
|
|
1854
2032
|
}
|
|
1855
2033
|
return () => {
|
|
1856
2034
|
if (type === "watch-v2") {
|
|
1857
2035
|
this.emitter.off("watch-v2", cb);
|
|
1858
|
-
this.emitter.off("nested-watch-v2",
|
|
2036
|
+
this.emitter.off("nested-watch-v2", nestedWatchV2Cb);
|
|
1859
2037
|
} else {
|
|
1860
2038
|
this.emitter.off("watch", watchCb);
|
|
1861
2039
|
this.emitter.off("nested-watch", nestedWatchCb);
|
|
@@ -1898,7 +2076,8 @@ var Run = class {
|
|
|
1898
2076
|
this.emitter.once(event, callback);
|
|
1899
2077
|
}
|
|
1900
2078
|
},
|
|
1901
|
-
runtimeContext: params.runtimeContext ?? new chunkLABUWBKX_cjs.RuntimeContext()
|
|
2079
|
+
runtimeContext: params.runtimeContext ?? new chunkLABUWBKX_cjs.RuntimeContext(),
|
|
2080
|
+
abortController: this.abortController
|
|
1902
2081
|
}).then((result) => {
|
|
1903
2082
|
if (result.status !== "suspended") {
|
|
1904
2083
|
this.closeStreamAction?.().catch(() => {
|