@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.
Files changed (103) hide show
  1. package/dist/agent/index.cjs +4 -4
  2. package/dist/agent/index.d.cts +1 -1
  3. package/dist/agent/index.d.ts +1 -1
  4. package/dist/agent/index.js +2 -2
  5. package/dist/{base-icHjkcs-.d.ts → base-DF29Fhcx.d.ts} +75 -41
  6. package/dist/{base-Bdc5hWla.d.cts → base-vDxe4rcD.d.cts} +75 -41
  7. package/dist/chunk-2RZXEVWT.js +68 -0
  8. package/dist/{chunk-TRJIWZKM.js → chunk-3SY7GRSA.js} +1 -1
  9. package/dist/{chunk-PUG7THT5.cjs → chunk-6EMFDXAQ.cjs} +4 -4
  10. package/dist/{chunk-36UICULV.js → chunk-6PQRSQZF.js} +35 -5
  11. package/dist/{chunk-62ZSDIUK.js → chunk-BMED2N3R.js} +1 -1
  12. package/dist/{chunk-I2KL5KMY.js → chunk-CMEK3A3W.js} +2 -2
  13. package/dist/{chunk-HGPLTKJA.cjs → chunk-D2ULEJL3.cjs} +2 -2
  14. package/dist/{chunk-IZGRJXUQ.js → chunk-DNK4SXPA.js} +2 -1
  15. package/dist/{chunk-AX6IHSGY.js → chunk-DPKEVI6Q.js} +1 -1
  16. package/dist/{chunk-ZKUUYDOQ.cjs → chunk-EFJIVMMM.cjs} +21 -21
  17. package/dist/{chunk-VB4S54R3.cjs → chunk-EXOTT52R.cjs} +198 -30
  18. package/dist/{chunk-SI2ENZ3O.js → chunk-F2DBWJK3.js} +1 -1
  19. package/dist/{chunk-GV6P24NY.cjs → chunk-F5XU7FFR.cjs} +5 -4
  20. package/dist/{chunk-Z37B4W7B.js → chunk-HIQ3FPBN.js} +1 -1
  21. package/dist/{chunk-RO5VPM3P.cjs → chunk-HVI3SKIH.cjs} +278 -55
  22. package/dist/{chunk-QVROTSA5.cjs → chunk-J7MLMW6O.cjs} +2 -2
  23. package/dist/{chunk-PVGSY24V.js → chunk-LDNCERLU.js} +7 -0
  24. package/dist/{chunk-S6WRT7GI.cjs → chunk-LRMKKZ6M.cjs} +2 -2
  25. package/dist/{chunk-BBAQW23O.cjs → chunk-OLSQRA2V.cjs} +7 -0
  26. package/dist/chunk-Q65UGFQK.cjs +70 -0
  27. package/dist/{chunk-ZAXPU6F2.cjs → chunk-QQ3KHYKE.cjs} +35 -5
  28. package/dist/{chunk-ZWYZGIV3.cjs → chunk-QQT4XTOG.cjs} +279 -73
  29. package/dist/{chunk-XUODQRSL.cjs → chunk-TGK6JO2D.cjs} +3 -3
  30. package/dist/{chunk-UFQERGWG.js → chunk-U3F3AQJP.js} +197 -29
  31. package/dist/{chunk-JYLH5IY3.cjs → chunk-VRDDTY4O.cjs} +87 -16
  32. package/dist/{chunk-SWJKOFCU.js → chunk-VZDPK54I.js} +262 -56
  33. package/dist/{chunk-HFEELWJO.js → chunk-YDGX5LRI.js} +274 -51
  34. package/dist/{chunk-7UNDRBOU.js → chunk-YLCFUSJ4.js} +86 -15
  35. package/dist/error/index.cjs +5 -5
  36. package/dist/error/index.d.cts +7 -0
  37. package/dist/error/index.d.ts +7 -0
  38. package/dist/error/index.js +1 -1
  39. package/dist/eval/index.d.cts +1 -1
  40. package/dist/eval/index.d.ts +1 -1
  41. package/dist/index.cjs +48 -48
  42. package/dist/index.d.cts +4 -4
  43. package/dist/index.d.ts +4 -4
  44. package/dist/index.js +12 -12
  45. package/dist/integration/index.d.cts +1 -1
  46. package/dist/integration/index.d.ts +1 -1
  47. package/dist/llm/index.d.cts +1 -1
  48. package/dist/llm/index.d.ts +1 -1
  49. package/dist/mastra/index.cjs +2 -2
  50. package/dist/mastra/index.d.cts +1 -1
  51. package/dist/mastra/index.d.ts +1 -1
  52. package/dist/mastra/index.js +1 -1
  53. package/dist/mcp/index.d.cts +1 -1
  54. package/dist/mcp/index.d.ts +1 -1
  55. package/dist/memory/index.cjs +4 -4
  56. package/dist/memory/index.d.cts +1 -1
  57. package/dist/memory/index.d.ts +1 -1
  58. package/dist/memory/index.js +1 -1
  59. package/dist/network/index.cjs +11 -5
  60. package/dist/network/index.d.cts +1 -1
  61. package/dist/network/index.d.ts +1 -1
  62. package/dist/network/index.js +10 -4
  63. package/dist/relevance/index.cjs +4 -4
  64. package/dist/relevance/index.d.cts +1 -1
  65. package/dist/relevance/index.d.ts +1 -1
  66. package/dist/relevance/index.js +1 -1
  67. package/dist/server/index.cjs +9 -3
  68. package/dist/server/index.d.cts +2 -2
  69. package/dist/server/index.d.ts +2 -2
  70. package/dist/server/index.js +8 -2
  71. package/dist/storage/index.cjs +12 -12
  72. package/dist/storage/index.d.cts +2 -2
  73. package/dist/storage/index.d.ts +2 -2
  74. package/dist/storage/index.js +4 -4
  75. package/dist/telemetry/index.cjs +7 -7
  76. package/dist/telemetry/index.d.cts +1 -1
  77. package/dist/telemetry/index.d.ts +1 -1
  78. package/dist/telemetry/index.js +1 -1
  79. package/dist/tools/index.d.cts +2 -2
  80. package/dist/tools/index.d.ts +2 -2
  81. package/dist/tts/index.cjs +2 -2
  82. package/dist/tts/index.js +1 -1
  83. package/dist/utils.cjs +14 -14
  84. package/dist/utils.d.cts +2 -2
  85. package/dist/utils.d.ts +2 -2
  86. package/dist/utils.js +1 -1
  87. package/dist/vector/index.cjs +2 -2
  88. package/dist/vector/index.js +1 -1
  89. package/dist/voice/index.cjs +4 -4
  90. package/dist/voice/index.d.cts +1 -1
  91. package/dist/voice/index.d.ts +1 -1
  92. package/dist/voice/index.js +1 -1
  93. package/dist/workflows/index.cjs +9 -9
  94. package/dist/workflows/index.d.cts +18 -7
  95. package/dist/workflows/index.d.ts +18 -7
  96. package/dist/workflows/index.js +1 -1
  97. package/dist/workflows/legacy/index.cjs +22 -22
  98. package/dist/workflows/legacy/index.d.cts +2 -2
  99. package/dist/workflows/legacy/index.d.ts +2 -2
  100. package/dist/workflows/legacy/index.js +1 -1
  101. package/package.json +24 -24
  102. package/dist/chunk-IM7CLVLZ.js +0 -43
  103. 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-SWJKOFCU.js';
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 Error("Workflow must have at least one step");
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
- return this.fmtReturnValue(executionSpan, params.emitter, stepResults, lastOutput);
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
- this.logger.error("Error executing step: " + (e?.stack ?? e));
133
- return this.fmtReturnValue(executionSpan, params.emitter, stepResults, lastOutput, e);
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
- return this.fmtReturnValue(executionSpan, params.emitter, stepResults, lastOutput);
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
- this.logger.error("Error executing step: " + (e?.stack ?? e));
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: e instanceof Error ? e?.stack ?? e : typeof e === "string" ? e : new Error("Unknown error: " + e)?.stack ?? new Error("Unknown error: " + e),
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
- this.logger.error("Error evaluating condition: " + (e?.stack ?? e));
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?.storage?.loadWorkflowSnapshot({
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 chunkZAXPU6F2_cjs = require('./chunk-ZAXPU6F2.cjs');
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 = [chunkZAXPU6F2_cjs.InstrumentClass({
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 Error("No speak provider or realtime provider configured");
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 Error("No listen provider or realtime provider configured");
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 Error("No speak provider or realtime provider configured");
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 Error("No listener provider or realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No realtime provider configured");
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 Error("No voice provider configured");
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 Error("No voice provider configured");
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 Error("No voice provider configured");
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 Error("No voice provider configured");
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