@mastra/core 0.10.4 → 0.10.6-alpha.0
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 +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/{base-icHjkcs-.d.ts → base-DF29Fhcx.d.ts} +75 -41
- package/dist/{base-Bdc5hWla.d.cts → base-vDxe4rcD.d.cts} +75 -41
- package/dist/chunk-2RZXEVWT.js +68 -0
- package/dist/{chunk-TRJIWZKM.js → chunk-3SY7GRSA.js} +1 -1
- package/dist/{chunk-PUG7THT5.cjs → chunk-6EMFDXAQ.cjs} +4 -4
- package/dist/{chunk-36UICULV.js → chunk-6PQRSQZF.js} +35 -5
- package/dist/{chunk-62ZSDIUK.js → chunk-BMED2N3R.js} +1 -1
- package/dist/{chunk-I2KL5KMY.js → chunk-CMEK3A3W.js} +2 -2
- package/dist/{chunk-HGPLTKJA.cjs → chunk-D2ULEJL3.cjs} +2 -2
- package/dist/{chunk-IZGRJXUQ.js → chunk-DNK4SXPA.js} +2 -1
- package/dist/{chunk-AX6IHSGY.js → chunk-DPKEVI6Q.js} +1 -1
- package/dist/{chunk-ZKUUYDOQ.cjs → chunk-EFJIVMMM.cjs} +21 -21
- package/dist/{chunk-VB4S54R3.cjs → chunk-EXOTT52R.cjs} +198 -30
- package/dist/{chunk-SI2ENZ3O.js → chunk-F2DBWJK3.js} +1 -1
- package/dist/{chunk-GV6P24NY.cjs → chunk-F5XU7FFR.cjs} +5 -4
- package/dist/{chunk-Z37B4W7B.js → chunk-HIQ3FPBN.js} +1 -1
- package/dist/{chunk-RO5VPM3P.cjs → chunk-HVI3SKIH.cjs} +278 -55
- package/dist/{chunk-QVROTSA5.cjs → chunk-J7MLMW6O.cjs} +2 -2
- package/dist/{chunk-PVGSY24V.js → chunk-LDNCERLU.js} +7 -0
- package/dist/{chunk-S6WRT7GI.cjs → chunk-LRMKKZ6M.cjs} +2 -2
- package/dist/{chunk-BBAQW23O.cjs → chunk-OLSQRA2V.cjs} +7 -0
- package/dist/chunk-Q65UGFQK.cjs +70 -0
- package/dist/{chunk-ZAXPU6F2.cjs → chunk-QQ3KHYKE.cjs} +35 -5
- package/dist/{chunk-ZWYZGIV3.cjs → chunk-QQT4XTOG.cjs} +279 -73
- package/dist/{chunk-XUODQRSL.cjs → chunk-TGK6JO2D.cjs} +3 -3
- package/dist/{chunk-UFQERGWG.js → chunk-U3F3AQJP.js} +197 -29
- package/dist/{chunk-JYLH5IY3.cjs → chunk-VRDDTY4O.cjs} +87 -16
- package/dist/{chunk-SWJKOFCU.js → chunk-VZDPK54I.js} +262 -56
- package/dist/{chunk-HFEELWJO.js → chunk-YDGX5LRI.js} +274 -51
- package/dist/{chunk-7UNDRBOU.js → chunk-YLCFUSJ4.js} +86 -15
- package/dist/error/index.cjs +5 -5
- package/dist/error/index.d.cts +7 -0
- package/dist/error/index.d.ts +7 -0
- package/dist/error/index.js +1 -1
- package/dist/eval/index.d.cts +1 -1
- package/dist/eval/index.d.ts +1 -1
- package/dist/index.cjs +48 -48
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +12 -12
- package/dist/integration/index.d.cts +1 -1
- package/dist/integration/index.d.ts +1 -1
- package/dist/llm/index.d.cts +1 -1
- package/dist/llm/index.d.ts +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.cts +1 -1
- package/dist/mastra/index.d.ts +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.d.cts +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.d.cts +1 -1
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +11 -5
- package/dist/network/index.d.cts +1 -1
- package/dist/network/index.d.ts +1 -1
- package/dist/network/index.js +10 -4
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.d.cts +1 -1
- package/dist/relevance/index.d.ts +1 -1
- package/dist/relevance/index.js +1 -1
- package/dist/server/index.cjs +9 -3
- package/dist/server/index.d.cts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +8 -2
- package/dist/storage/index.cjs +12 -12
- package/dist/storage/index.d.cts +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +4 -4
- package/dist/telemetry/index.cjs +7 -7
- package/dist/telemetry/index.d.cts +1 -1
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/tools/index.d.cts +2 -2
- package/dist/tools/index.d.ts +2 -2
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/utils.cjs +14 -14
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +2 -2
- package/dist/vector/index.js +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.d.cts +1 -1
- package/dist/voice/index.d.ts +1 -1
- package/dist/voice/index.js +1 -1
- package/dist/workflows/index.cjs +9 -9
- package/dist/workflows/index.d.cts +18 -7
- package/dist/workflows/index.d.ts +18 -7
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.d.cts +2 -2
- package/dist/workflows/legacy/index.d.ts +2 -2
- package/dist/workflows/legacy/index.js +1 -1
- package/package.json +24 -24
- package/dist/chunk-IM7CLVLZ.js +0 -43
- package/dist/chunk-LEK3J7YN.cjs +0 -45
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EMITTER_SYMBOL } from './chunk-Y7D2JLKS.js';
|
|
2
|
-
import { Agent } from './chunk-
|
|
2
|
+
import { Agent } from './chunk-VZDPK54I.js';
|
|
3
3
|
import { Tool } from './chunk-C4LMN2IR.js';
|
|
4
|
+
import { MastraError } from './chunk-LDNCERLU.js';
|
|
4
5
|
import { MastraBase } from './chunk-5IEKR756.js';
|
|
5
6
|
import { RegisteredLogger } from './chunk-5YDTZN2X.js';
|
|
6
7
|
import { RuntimeContext } from './chunk-SGGPJWRQ.js';
|
|
@@ -91,7 +92,12 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
91
92
|
const { attempts = 0, delay = 0 } = retryConfig ?? {};
|
|
92
93
|
const steps = graph.steps;
|
|
93
94
|
if (steps.length === 0) {
|
|
94
|
-
throw new
|
|
95
|
+
throw new MastraError({
|
|
96
|
+
id: "WORKFLOW_EXECUTE_EMPTY_GRAPH",
|
|
97
|
+
text: "Workflow must have at least one step",
|
|
98
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
99
|
+
category: "USER" /* USER */
|
|
100
|
+
});
|
|
95
101
|
}
|
|
96
102
|
const executionSpan = this.mastra?.getTelemetry()?.tracer.startSpan(`workflow.${workflowId}.execute`, {
|
|
97
103
|
attributes: { componentName: workflowId, runId }
|
|
@@ -125,21 +131,77 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
125
131
|
emitter: params.emitter,
|
|
126
132
|
runtimeContext: params.runtimeContext
|
|
127
133
|
});
|
|
128
|
-
if (lastOutput.status !== "success") {
|
|
129
|
-
|
|
134
|
+
if (lastOutput.result.status !== "success") {
|
|
135
|
+
const result2 = await this.fmtReturnValue(
|
|
136
|
+
executionSpan,
|
|
137
|
+
params.emitter,
|
|
138
|
+
stepResults,
|
|
139
|
+
lastOutput.result
|
|
140
|
+
);
|
|
141
|
+
await this.persistStepUpdate({
|
|
142
|
+
workflowId,
|
|
143
|
+
runId,
|
|
144
|
+
stepResults: lastOutput.stepResults,
|
|
145
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
146
|
+
executionContext: lastOutput.executionContext,
|
|
147
|
+
workflowStatus: result2.status,
|
|
148
|
+
result: result2.result,
|
|
149
|
+
error: result2.error
|
|
150
|
+
});
|
|
151
|
+
return result2;
|
|
130
152
|
}
|
|
131
153
|
} catch (e) {
|
|
132
|
-
|
|
133
|
-
|
|
154
|
+
const error = e instanceof MastraError ? e : new MastraError(
|
|
155
|
+
{
|
|
156
|
+
id: "WORKFLOW_ENGINE_STEP_EXECUTION_FAILED",
|
|
157
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
158
|
+
category: "USER" /* USER */,
|
|
159
|
+
details: { workflowId, runId }
|
|
160
|
+
},
|
|
161
|
+
e
|
|
162
|
+
);
|
|
163
|
+
this.logger?.trackException(error);
|
|
164
|
+
this.logger?.error(`Error executing step: ${error?.stack}`);
|
|
165
|
+
const result2 = await this.fmtReturnValue(
|
|
166
|
+
executionSpan,
|
|
167
|
+
params.emitter,
|
|
168
|
+
stepResults,
|
|
169
|
+
lastOutput.result,
|
|
170
|
+
e
|
|
171
|
+
);
|
|
172
|
+
await this.persistStepUpdate({
|
|
173
|
+
workflowId,
|
|
174
|
+
runId,
|
|
175
|
+
stepResults: lastOutput.stepResults,
|
|
176
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
177
|
+
executionContext: lastOutput.executionContext,
|
|
178
|
+
workflowStatus: result2.status,
|
|
179
|
+
result: result2.result,
|
|
180
|
+
error: result2.error
|
|
181
|
+
});
|
|
182
|
+
return result2;
|
|
134
183
|
}
|
|
135
184
|
}
|
|
136
|
-
|
|
185
|
+
const result = await this.fmtReturnValue(executionSpan, params.emitter, stepResults, lastOutput.result);
|
|
186
|
+
await this.persistStepUpdate({
|
|
187
|
+
workflowId,
|
|
188
|
+
runId,
|
|
189
|
+
stepResults: lastOutput.stepResults,
|
|
190
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
191
|
+
executionContext: lastOutput.executionContext,
|
|
192
|
+
workflowStatus: result.status,
|
|
193
|
+
result: result.result,
|
|
194
|
+
error: result.error
|
|
195
|
+
});
|
|
196
|
+
return result;
|
|
137
197
|
}
|
|
138
198
|
getStepOutput(stepResults, step) {
|
|
139
199
|
if (!step) {
|
|
140
200
|
return stepResults.input;
|
|
141
201
|
} else if (step.type === "step") {
|
|
142
202
|
return stepResults[step.step.id]?.output;
|
|
203
|
+
} else if (step.type === "sleep" || step.type === "sleepUntil") {
|
|
204
|
+
return stepResults[step.id]?.output;
|
|
143
205
|
} else if (step.type === "parallel" || step.type === "conditional") {
|
|
144
206
|
return step.steps.reduce(
|
|
145
207
|
(acc, entry) => {
|
|
@@ -152,6 +214,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
152
214
|
acc[entry.step.id] = stepResults[entry.step.id]?.output;
|
|
153
215
|
} else if (entry.type === "foreach") {
|
|
154
216
|
acc[entry.step.id] = stepResults[entry.step.id]?.output;
|
|
217
|
+
} else if (entry.type === "sleep" || entry.type === "sleepUntil") {
|
|
218
|
+
acc[entry.id] = stepResults[entry.id]?.output;
|
|
155
219
|
}
|
|
156
220
|
return acc;
|
|
157
221
|
},
|
|
@@ -163,6 +227,9 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
163
227
|
return stepResults[step.step.id]?.output;
|
|
164
228
|
}
|
|
165
229
|
}
|
|
230
|
+
async executeSleep({ duration }) {
|
|
231
|
+
await new Promise((resolve) => setTimeout(resolve, duration));
|
|
232
|
+
}
|
|
166
233
|
async executeStep({
|
|
167
234
|
workflowId,
|
|
168
235
|
runId,
|
|
@@ -263,7 +330,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
263
330
|
// @ts-ignore
|
|
264
331
|
runId: stepResults[step.id]?.suspendPayload?.__workflow_meta?.runId
|
|
265
332
|
},
|
|
266
|
-
[EMITTER_SYMBOL]: emitter
|
|
333
|
+
[EMITTER_SYMBOL]: emitter,
|
|
334
|
+
engine: {}
|
|
267
335
|
});
|
|
268
336
|
if (suspended) {
|
|
269
337
|
execResults = { status: "suspended", suspendPayload: suspended.payload, suspendedAt: Date.now() };
|
|
@@ -272,10 +340,20 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
272
340
|
}
|
|
273
341
|
break;
|
|
274
342
|
} catch (e) {
|
|
275
|
-
|
|
343
|
+
const error = e instanceof MastraError ? e : new MastraError(
|
|
344
|
+
{
|
|
345
|
+
id: "WORKFLOW_STEP_INVOKE_FAILED",
|
|
346
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
347
|
+
category: "USER" /* USER */,
|
|
348
|
+
details: { workflowId, runId, stepId: step.id }
|
|
349
|
+
},
|
|
350
|
+
e
|
|
351
|
+
);
|
|
352
|
+
this.logger.trackException(error);
|
|
353
|
+
this.logger.error("Error executing step: " + error?.stack);
|
|
276
354
|
execResults = {
|
|
277
355
|
status: "failed",
|
|
278
|
-
error:
|
|
356
|
+
error: error?.stack,
|
|
279
357
|
endedAt: Date.now()
|
|
280
358
|
};
|
|
281
359
|
}
|
|
@@ -366,18 +444,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
366
444
|
})
|
|
367
445
|
)
|
|
368
446
|
);
|
|
369
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
370
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
447
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
448
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
371
449
|
if (hasFailed) {
|
|
372
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
450
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
373
451
|
} else if (hasSuspended) {
|
|
374
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
452
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
375
453
|
} else {
|
|
376
454
|
execResults = {
|
|
377
455
|
status: "success",
|
|
378
456
|
output: results.reduce((acc, result, index) => {
|
|
379
|
-
if (result.status === "success") {
|
|
380
|
-
acc[entry.steps[index].step.id] = result.output;
|
|
457
|
+
if (result.result.status === "success") {
|
|
458
|
+
acc[entry.steps[index].step.id] = result.result.output;
|
|
381
459
|
}
|
|
382
460
|
return acc;
|
|
383
461
|
}, {})
|
|
@@ -421,11 +499,22 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
421
499
|
// TODO: this function shouldn't have suspend probably?
|
|
422
500
|
suspend: async (_suspendPayload) => {
|
|
423
501
|
},
|
|
424
|
-
[EMITTER_SYMBOL]: emitter
|
|
502
|
+
[EMITTER_SYMBOL]: emitter,
|
|
503
|
+
engine: {}
|
|
425
504
|
});
|
|
426
505
|
return result ? index : null;
|
|
427
506
|
} catch (e) {
|
|
428
|
-
|
|
507
|
+
const error = e instanceof MastraError ? e : new MastraError(
|
|
508
|
+
{
|
|
509
|
+
id: "WORKFLOW_CONDITION_EVALUATION_FAILED",
|
|
510
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
511
|
+
category: "USER" /* USER */,
|
|
512
|
+
details: { workflowId, runId }
|
|
513
|
+
},
|
|
514
|
+
e
|
|
515
|
+
);
|
|
516
|
+
this.logger.trackException(error);
|
|
517
|
+
this.logger.error("Error evaluating condition: " + error?.stack);
|
|
429
518
|
return null;
|
|
430
519
|
}
|
|
431
520
|
})
|
|
@@ -454,18 +543,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
454
543
|
})
|
|
455
544
|
)
|
|
456
545
|
);
|
|
457
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
458
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
546
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
547
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
459
548
|
if (hasFailed) {
|
|
460
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
549
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
461
550
|
} else if (hasSuspended) {
|
|
462
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
551
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
463
552
|
} else {
|
|
464
553
|
execResults = {
|
|
465
554
|
status: "success",
|
|
466
555
|
output: results.reduce((acc, result, index) => {
|
|
467
|
-
if (result.status === "success") {
|
|
468
|
-
acc[stepsToRun[index].step.id] = result.output;
|
|
556
|
+
if (result.result.status === "success") {
|
|
557
|
+
acc[stepsToRun[index].step.id] = result.result.output;
|
|
469
558
|
}
|
|
470
559
|
return acc;
|
|
471
560
|
}, {})
|
|
@@ -517,7 +606,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
517
606
|
},
|
|
518
607
|
suspend: async (_suspendPayload) => {
|
|
519
608
|
},
|
|
520
|
-
[EMITTER_SYMBOL]: emitter
|
|
609
|
+
[EMITTER_SYMBOL]: emitter,
|
|
610
|
+
engine: {}
|
|
521
611
|
});
|
|
522
612
|
} while (entry.loopType === "dowhile" ? isTrue : !isTrue);
|
|
523
613
|
return result;
|
|
@@ -579,18 +669,24 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
579
669
|
runId,
|
|
580
670
|
stepResults,
|
|
581
671
|
serializedStepGraph,
|
|
582
|
-
executionContext
|
|
672
|
+
executionContext,
|
|
673
|
+
workflowStatus,
|
|
674
|
+
result,
|
|
675
|
+
error
|
|
583
676
|
}) {
|
|
584
677
|
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
585
678
|
workflowName: workflowId,
|
|
586
679
|
runId,
|
|
587
680
|
snapshot: {
|
|
588
681
|
runId,
|
|
682
|
+
status: workflowStatus,
|
|
589
683
|
value: {},
|
|
590
684
|
context: stepResults,
|
|
591
685
|
activePaths: [],
|
|
592
686
|
serializedStepGraph,
|
|
593
687
|
suspendedPaths: executionContext.suspendedPaths,
|
|
688
|
+
result,
|
|
689
|
+
error,
|
|
594
690
|
// @ts-ignore
|
|
595
691
|
timestamp: Date.now()
|
|
596
692
|
}
|
|
@@ -697,6 +793,28 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
697
793
|
emitter,
|
|
698
794
|
runtimeContext
|
|
699
795
|
});
|
|
796
|
+
} else if (entry.type === "sleep") {
|
|
797
|
+
const startedAt = Date.now();
|
|
798
|
+
await this.executeSleep({ id: entry.id, duration: entry.duration });
|
|
799
|
+
const endedAt = Date.now();
|
|
800
|
+
const stepInfo = {
|
|
801
|
+
payload: prevOutput,
|
|
802
|
+
startedAt,
|
|
803
|
+
endedAt
|
|
804
|
+
};
|
|
805
|
+
execResults = { ...stepInfo, status: "success", output: prevOutput };
|
|
806
|
+
stepResults[entry.id] = { ...stepInfo, status: "success", output: prevOutput };
|
|
807
|
+
} else if (entry.type === "sleepUntil") {
|
|
808
|
+
const startedAt = Date.now();
|
|
809
|
+
await this.executeSleep({ id: entry.id, duration: entry.date.getTime() - Date.now() });
|
|
810
|
+
const endedAt = Date.now();
|
|
811
|
+
const stepInfo = {
|
|
812
|
+
payload: prevOutput,
|
|
813
|
+
startedAt,
|
|
814
|
+
endedAt
|
|
815
|
+
};
|
|
816
|
+
execResults = { ...stepInfo, status: "success", output: prevOutput };
|
|
817
|
+
stepResults[entry.id] = { ...stepInfo, status: "success", output: prevOutput };
|
|
700
818
|
}
|
|
701
819
|
if (entry.type === "step" || entry.type === "loop" || entry.type === "foreach") {
|
|
702
820
|
stepResults[entry.step.id] = execResults;
|
|
@@ -706,9 +824,10 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
706
824
|
runId,
|
|
707
825
|
serializedStepGraph,
|
|
708
826
|
stepResults,
|
|
709
|
-
executionContext
|
|
827
|
+
executionContext,
|
|
828
|
+
workflowStatus: "running"
|
|
710
829
|
});
|
|
711
|
-
return execResults;
|
|
830
|
+
return { result: execResults, stepResults, executionContext };
|
|
712
831
|
}
|
|
713
832
|
};
|
|
714
833
|
|
|
@@ -915,6 +1034,52 @@ var Workflow = class extends MastraBase {
|
|
|
915
1034
|
this.steps[step.id] = step;
|
|
916
1035
|
return this;
|
|
917
1036
|
}
|
|
1037
|
+
/**
|
|
1038
|
+
* Adds a sleep step to the workflow
|
|
1039
|
+
* @param duration The duration to sleep for
|
|
1040
|
+
* @returns The workflow instance for chaining
|
|
1041
|
+
*/
|
|
1042
|
+
sleep(duration) {
|
|
1043
|
+
const id = `sleep_${randomUUID()}`;
|
|
1044
|
+
this.stepFlow.push({ type: "sleep", id, duration });
|
|
1045
|
+
this.serializedStepFlow.push({
|
|
1046
|
+
type: "sleep",
|
|
1047
|
+
id,
|
|
1048
|
+
duration
|
|
1049
|
+
});
|
|
1050
|
+
this.steps[id] = createStep({
|
|
1051
|
+
id,
|
|
1052
|
+
inputSchema: z.object({}),
|
|
1053
|
+
outputSchema: z.object({}),
|
|
1054
|
+
execute: async () => {
|
|
1055
|
+
return {};
|
|
1056
|
+
}
|
|
1057
|
+
});
|
|
1058
|
+
return this;
|
|
1059
|
+
}
|
|
1060
|
+
/**
|
|
1061
|
+
* Adds a sleep until step to the workflow
|
|
1062
|
+
* @param date The date to sleep until
|
|
1063
|
+
* @returns The workflow instance for chaining
|
|
1064
|
+
*/
|
|
1065
|
+
sleepUntil(date) {
|
|
1066
|
+
const id = `sleep_${randomUUID()}`;
|
|
1067
|
+
this.stepFlow.push({ type: "sleepUntil", id, date });
|
|
1068
|
+
this.serializedStepFlow.push({
|
|
1069
|
+
type: "sleepUntil",
|
|
1070
|
+
id,
|
|
1071
|
+
date
|
|
1072
|
+
});
|
|
1073
|
+
this.steps[id] = createStep({
|
|
1074
|
+
id,
|
|
1075
|
+
inputSchema: z.object({}),
|
|
1076
|
+
outputSchema: z.object({}),
|
|
1077
|
+
execute: async () => {
|
|
1078
|
+
return {};
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
return this;
|
|
1082
|
+
}
|
|
918
1083
|
map(mappingConfig) {
|
|
919
1084
|
if (typeof mappingConfig === "function") {
|
|
920
1085
|
const mappingStep2 = createStep({
|
|
@@ -1030,6 +1195,7 @@ var Workflow = class extends MastraBase {
|
|
|
1030
1195
|
this.stepFlow.push({
|
|
1031
1196
|
type: "conditional",
|
|
1032
1197
|
steps: steps.map(([_cond, step]) => ({ type: "step", step })),
|
|
1198
|
+
// @ts-ignore
|
|
1033
1199
|
conditions: steps.map(([cond]) => cond),
|
|
1034
1200
|
serializedConditions: steps.map(([cond, _step]) => ({ id: `${_step.id}-condition`, fn: cond.toString() }))
|
|
1035
1201
|
});
|
|
@@ -1055,6 +1221,7 @@ var Workflow = class extends MastraBase {
|
|
|
1055
1221
|
this.stepFlow.push({
|
|
1056
1222
|
type: "loop",
|
|
1057
1223
|
step,
|
|
1224
|
+
// @ts-ignore
|
|
1058
1225
|
condition,
|
|
1059
1226
|
loopType: "dowhile",
|
|
1060
1227
|
serializedCondition: { id: `${step.id}-condition`, fn: condition.toString() }
|
|
@@ -1077,6 +1244,7 @@ var Workflow = class extends MastraBase {
|
|
|
1077
1244
|
this.stepFlow.push({
|
|
1078
1245
|
type: "loop",
|
|
1079
1246
|
step,
|
|
1247
|
+
// @ts-ignore
|
|
1080
1248
|
condition,
|
|
1081
1249
|
loopType: "dountil",
|
|
1082
1250
|
serializedCondition: { id: `${step.id}-condition`, fn: condition.toString() }
|
|
@@ -1378,7 +1546,7 @@ var Run = class {
|
|
|
1378
1546
|
const steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
|
|
1379
1547
|
(step) => typeof step === "string" ? step : step?.id
|
|
1380
1548
|
);
|
|
1381
|
-
const snapshot = await this.#mastra?.
|
|
1549
|
+
const snapshot = await this.#mastra?.getStorage()?.loadWorkflowSnapshot({
|
|
1382
1550
|
workflowName: this.workflowId,
|
|
1383
1551
|
runId: this.runId
|
|
1384
1552
|
});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkQQ3KHYKE_cjs = require('./chunk-QQ3KHYKE.cjs');
|
|
4
|
+
var chunkOLSQRA2V_cjs = require('./chunk-OLSQRA2V.cjs');
|
|
4
5
|
var chunkP3Q73CAW_cjs = require('./chunk-P3Q73CAW.cjs');
|
|
5
6
|
var chunkRWTSGWWL_cjs = require('./chunk-RWTSGWWL.cjs');
|
|
6
7
|
|
|
7
8
|
// src/voice/voice.ts
|
|
8
9
|
var _MastraVoice_decorators, _init, _a;
|
|
9
|
-
_MastraVoice_decorators = [
|
|
10
|
+
_MastraVoice_decorators = [chunkQQ3KHYKE_cjs.InstrumentClass({
|
|
10
11
|
prefix: "voice",
|
|
11
12
|
excludeMethods: ["__setTools", "__setLogger", "__setTelemetry", "#log"]
|
|
12
13
|
})];
|
|
@@ -154,7 +155,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
154
155
|
} else if (this.speakProvider) {
|
|
155
156
|
return this.speakProvider.speak(input, options);
|
|
156
157
|
}
|
|
157
|
-
throw new
|
|
158
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
159
|
+
id: "VOICE_COMPOSITE_NO_SPEAK_PROVIDER",
|
|
160
|
+
text: "No speak provider or realtime provider configured",
|
|
161
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
162
|
+
category: "USER" /* USER */
|
|
163
|
+
});
|
|
158
164
|
}
|
|
159
165
|
async listen(audioStream, options) {
|
|
160
166
|
if (this.realtimeProvider) {
|
|
@@ -162,7 +168,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
162
168
|
} else if (this.listenProvider) {
|
|
163
169
|
return await this.listenProvider.listen(audioStream, options);
|
|
164
170
|
}
|
|
165
|
-
throw new
|
|
171
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
172
|
+
id: "VOICE_COMPOSITE_NO_LISTEN_PROVIDER",
|
|
173
|
+
text: "No listen provider or realtime provider configured",
|
|
174
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
175
|
+
category: "USER" /* USER */
|
|
176
|
+
});
|
|
166
177
|
}
|
|
167
178
|
async getSpeakers() {
|
|
168
179
|
if (this.realtimeProvider) {
|
|
@@ -170,7 +181,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
170
181
|
} else if (this.speakProvider) {
|
|
171
182
|
return this.speakProvider.getSpeakers();
|
|
172
183
|
}
|
|
173
|
-
throw new
|
|
184
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
185
|
+
id: "VOICE_COMPOSITE_NO_SPEAKERS_PROVIDER",
|
|
186
|
+
text: "No speak provider or realtime provider configured",
|
|
187
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
188
|
+
category: "USER" /* USER */
|
|
189
|
+
});
|
|
174
190
|
}
|
|
175
191
|
async getListener() {
|
|
176
192
|
if (this.realtimeProvider) {
|
|
@@ -178,7 +194,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
178
194
|
} else if (this.listenProvider) {
|
|
179
195
|
return this.listenProvider.getListener();
|
|
180
196
|
}
|
|
181
|
-
throw new
|
|
197
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
198
|
+
id: "VOICE_COMPOSITE_NO_LISTENER_PROVIDER",
|
|
199
|
+
text: "No listener provider or realtime provider configured",
|
|
200
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
201
|
+
category: "USER" /* USER */
|
|
202
|
+
});
|
|
182
203
|
}
|
|
183
204
|
updateConfig(options) {
|
|
184
205
|
if (!this.realtimeProvider) {
|
|
@@ -192,7 +213,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
192
213
|
*/
|
|
193
214
|
connect(options) {
|
|
194
215
|
if (!this.realtimeProvider) {
|
|
195
|
-
throw new
|
|
216
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
217
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_CONNECT",
|
|
218
|
+
text: "No realtime provider configured",
|
|
219
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
220
|
+
category: "USER" /* USER */
|
|
221
|
+
});
|
|
196
222
|
}
|
|
197
223
|
return this.realtimeProvider.connect(options);
|
|
198
224
|
}
|
|
@@ -202,7 +228,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
202
228
|
*/
|
|
203
229
|
send(audioData) {
|
|
204
230
|
if (!this.realtimeProvider) {
|
|
205
|
-
throw new
|
|
231
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
232
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_SEND",
|
|
233
|
+
text: "No realtime provider configured",
|
|
234
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
235
|
+
category: "USER" /* USER */
|
|
236
|
+
});
|
|
206
237
|
}
|
|
207
238
|
return this.realtimeProvider.send(audioData);
|
|
208
239
|
}
|
|
@@ -211,7 +242,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
211
242
|
*/
|
|
212
243
|
answer(options) {
|
|
213
244
|
if (!this.realtimeProvider) {
|
|
214
|
-
throw new
|
|
245
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
246
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_ANSWER",
|
|
247
|
+
text: "No realtime provider configured",
|
|
248
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
249
|
+
category: "USER" /* USER */
|
|
250
|
+
});
|
|
215
251
|
}
|
|
216
252
|
return this.realtimeProvider.answer(options);
|
|
217
253
|
}
|
|
@@ -240,7 +276,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
240
276
|
*/
|
|
241
277
|
close() {
|
|
242
278
|
if (!this.realtimeProvider) {
|
|
243
|
-
throw new
|
|
279
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
280
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_CLOSE",
|
|
281
|
+
text: "No realtime provider configured",
|
|
282
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
283
|
+
category: "USER" /* USER */
|
|
284
|
+
});
|
|
244
285
|
}
|
|
245
286
|
this.realtimeProvider.close();
|
|
246
287
|
}
|
|
@@ -251,7 +292,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
251
292
|
*/
|
|
252
293
|
on(event, callback) {
|
|
253
294
|
if (!this.realtimeProvider) {
|
|
254
|
-
throw new
|
|
295
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
296
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_ON",
|
|
297
|
+
text: "No realtime provider configured",
|
|
298
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
299
|
+
category: "USER" /* USER */
|
|
300
|
+
});
|
|
255
301
|
}
|
|
256
302
|
this.realtimeProvider.on(event, callback);
|
|
257
303
|
}
|
|
@@ -262,7 +308,12 @@ var CompositeVoice = class extends exports.MastraVoice {
|
|
|
262
308
|
*/
|
|
263
309
|
off(event, callback) {
|
|
264
310
|
if (!this.realtimeProvider) {
|
|
265
|
-
throw new
|
|
311
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
312
|
+
id: "VOICE_COMPOSITE_NO_REALTIME_PROVIDER_OFF",
|
|
313
|
+
text: "No realtime provider configured",
|
|
314
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
315
|
+
category: "USER" /* USER */
|
|
316
|
+
});
|
|
266
317
|
}
|
|
267
318
|
this.realtimeProvider.off(event, callback);
|
|
268
319
|
}
|
|
@@ -274,16 +325,36 @@ var DefaultVoice = class extends exports.MastraVoice {
|
|
|
274
325
|
super();
|
|
275
326
|
}
|
|
276
327
|
async speak(_input) {
|
|
277
|
-
throw new
|
|
328
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
329
|
+
id: "VOICE_DEFAULT_NO_SPEAK_PROVIDER",
|
|
330
|
+
text: "No voice provider configured",
|
|
331
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
332
|
+
category: "USER" /* USER */
|
|
333
|
+
});
|
|
278
334
|
}
|
|
279
335
|
async listen(_input) {
|
|
280
|
-
throw new
|
|
336
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
337
|
+
id: "VOICE_DEFAULT_NO_LISTEN_PROVIDER",
|
|
338
|
+
text: "No voice provider configured",
|
|
339
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
340
|
+
category: "USER" /* USER */
|
|
341
|
+
});
|
|
281
342
|
}
|
|
282
343
|
async getSpeakers() {
|
|
283
|
-
throw new
|
|
344
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
345
|
+
id: "VOICE_DEFAULT_NO_SPEAKERS_PROVIDER",
|
|
346
|
+
text: "No voice provider configured",
|
|
347
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
348
|
+
category: "USER" /* USER */
|
|
349
|
+
});
|
|
284
350
|
}
|
|
285
351
|
async getListener() {
|
|
286
|
-
throw new
|
|
352
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
353
|
+
id: "VOICE_DEFAULT_NO_LISTENER_PROVIDER",
|
|
354
|
+
text: "No voice provider configured",
|
|
355
|
+
domain: "MASTRA_VOICE" /* MASTRA_VOICE */,
|
|
356
|
+
category: "USER" /* USER */
|
|
357
|
+
});
|
|
287
358
|
}
|
|
288
359
|
};
|
|
289
360
|
|