@mastra/core 0.10.4 → 0.10.5
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-CmIdgTSq.d.ts} +37 -31
- package/dist/{base-Bdc5hWla.d.cts → base-_mZ6e_qo.d.cts} +37 -31
- package/dist/chunk-2RZXEVWT.js +68 -0
- package/dist/{chunk-UFQERGWG.js → chunk-32XBQVNY.js} +117 -28
- 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-VB4S54R3.cjs → chunk-7L56W43N.cjs} +118 -29
- 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-AX6IHSGY.js → chunk-DPKEVI6Q.js} +1 -1
- package/dist/{chunk-ZKUUYDOQ.cjs → chunk-EFJIVMMM.cjs} +21 -21
- package/dist/{chunk-SI2ENZ3O.js → chunk-F2DBWJK3.js} +1 -1
- package/dist/{chunk-Z37B4W7B.js → chunk-HIQ3FPBN.js} +1 -1
- package/dist/{chunk-RO5VPM3P.cjs → chunk-HVI3SKIH.cjs} +278 -55
- package/dist/{chunk-GV6P24NY.cjs → chunk-ISRXIKDS.cjs} +4 -4
- 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-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/{chunk-IZGRJXUQ.js → chunk-Z7SBZ7XB.js} +1 -1
- 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 +2 -2
- package/dist/index.d.ts +2 -2
- 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 +14 -7
- package/dist/workflows/index.d.ts +14 -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 +2 -2
- 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,15 +131,69 @@ 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) {
|
|
@@ -272,10 +332,20 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
272
332
|
}
|
|
273
333
|
break;
|
|
274
334
|
} catch (e) {
|
|
275
|
-
|
|
335
|
+
const error = e instanceof MastraError ? e : new MastraError(
|
|
336
|
+
{
|
|
337
|
+
id: "WORKFLOW_STEP_INVOKE_FAILED",
|
|
338
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
339
|
+
category: "USER" /* USER */,
|
|
340
|
+
details: { workflowId, runId, stepId: step.id }
|
|
341
|
+
},
|
|
342
|
+
e
|
|
343
|
+
);
|
|
344
|
+
this.logger.trackException(error);
|
|
345
|
+
this.logger.error("Error executing step: " + error?.stack);
|
|
276
346
|
execResults = {
|
|
277
347
|
status: "failed",
|
|
278
|
-
error:
|
|
348
|
+
error: error?.stack,
|
|
279
349
|
endedAt: Date.now()
|
|
280
350
|
};
|
|
281
351
|
}
|
|
@@ -366,18 +436,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
366
436
|
})
|
|
367
437
|
)
|
|
368
438
|
);
|
|
369
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
370
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
439
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
440
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
371
441
|
if (hasFailed) {
|
|
372
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
442
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
373
443
|
} else if (hasSuspended) {
|
|
374
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
444
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
375
445
|
} else {
|
|
376
446
|
execResults = {
|
|
377
447
|
status: "success",
|
|
378
448
|
output: results.reduce((acc, result, index) => {
|
|
379
|
-
if (result.status === "success") {
|
|
380
|
-
acc[entry.steps[index].step.id] = result.output;
|
|
449
|
+
if (result.result.status === "success") {
|
|
450
|
+
acc[entry.steps[index].step.id] = result.result.output;
|
|
381
451
|
}
|
|
382
452
|
return acc;
|
|
383
453
|
}, {})
|
|
@@ -421,11 +491,22 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
421
491
|
// TODO: this function shouldn't have suspend probably?
|
|
422
492
|
suspend: async (_suspendPayload) => {
|
|
423
493
|
},
|
|
424
|
-
[EMITTER_SYMBOL]: emitter
|
|
494
|
+
[EMITTER_SYMBOL]: emitter,
|
|
495
|
+
engine: {}
|
|
425
496
|
});
|
|
426
497
|
return result ? index : null;
|
|
427
498
|
} catch (e) {
|
|
428
|
-
|
|
499
|
+
const error = e instanceof MastraError ? e : new MastraError(
|
|
500
|
+
{
|
|
501
|
+
id: "WORKFLOW_CONDITION_EVALUATION_FAILED",
|
|
502
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
503
|
+
category: "USER" /* USER */,
|
|
504
|
+
details: { workflowId, runId }
|
|
505
|
+
},
|
|
506
|
+
e
|
|
507
|
+
);
|
|
508
|
+
this.logger.trackException(error);
|
|
509
|
+
this.logger.error("Error evaluating condition: " + error?.stack);
|
|
429
510
|
return null;
|
|
430
511
|
}
|
|
431
512
|
})
|
|
@@ -454,18 +535,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
454
535
|
})
|
|
455
536
|
)
|
|
456
537
|
);
|
|
457
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
458
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
538
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
539
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
459
540
|
if (hasFailed) {
|
|
460
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
541
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
461
542
|
} else if (hasSuspended) {
|
|
462
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
543
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
463
544
|
} else {
|
|
464
545
|
execResults = {
|
|
465
546
|
status: "success",
|
|
466
547
|
output: results.reduce((acc, result, index) => {
|
|
467
|
-
if (result.status === "success") {
|
|
468
|
-
acc[stepsToRun[index].step.id] = result.output;
|
|
548
|
+
if (result.result.status === "success") {
|
|
549
|
+
acc[stepsToRun[index].step.id] = result.result.output;
|
|
469
550
|
}
|
|
470
551
|
return acc;
|
|
471
552
|
}, {})
|
|
@@ -517,7 +598,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
517
598
|
},
|
|
518
599
|
suspend: async (_suspendPayload) => {
|
|
519
600
|
},
|
|
520
|
-
[EMITTER_SYMBOL]: emitter
|
|
601
|
+
[EMITTER_SYMBOL]: emitter,
|
|
602
|
+
engine: {}
|
|
521
603
|
});
|
|
522
604
|
} while (entry.loopType === "dowhile" ? isTrue : !isTrue);
|
|
523
605
|
return result;
|
|
@@ -579,18 +661,24 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
579
661
|
runId,
|
|
580
662
|
stepResults,
|
|
581
663
|
serializedStepGraph,
|
|
582
|
-
executionContext
|
|
664
|
+
executionContext,
|
|
665
|
+
workflowStatus,
|
|
666
|
+
result,
|
|
667
|
+
error
|
|
583
668
|
}) {
|
|
584
669
|
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
585
670
|
workflowName: workflowId,
|
|
586
671
|
runId,
|
|
587
672
|
snapshot: {
|
|
588
673
|
runId,
|
|
674
|
+
status: workflowStatus,
|
|
589
675
|
value: {},
|
|
590
676
|
context: stepResults,
|
|
591
677
|
activePaths: [],
|
|
592
678
|
serializedStepGraph,
|
|
593
679
|
suspendedPaths: executionContext.suspendedPaths,
|
|
680
|
+
result,
|
|
681
|
+
error,
|
|
594
682
|
// @ts-ignore
|
|
595
683
|
timestamp: Date.now()
|
|
596
684
|
}
|
|
@@ -706,9 +794,10 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
706
794
|
runId,
|
|
707
795
|
serializedStepGraph,
|
|
708
796
|
stepResults,
|
|
709
|
-
executionContext
|
|
797
|
+
executionContext,
|
|
798
|
+
workflowStatus: "running"
|
|
710
799
|
});
|
|
711
|
-
return execResults;
|
|
800
|
+
return { result: execResults, stepResults, executionContext };
|
|
712
801
|
}
|
|
713
802
|
};
|
|
714
803
|
|
|
@@ -1378,7 +1467,7 @@ var Run = class {
|
|
|
1378
1467
|
const steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
|
|
1379
1468
|
(step) => typeof step === "string" ? step : step?.id
|
|
1380
1469
|
);
|
|
1381
|
-
const snapshot = await this.#mastra?.
|
|
1470
|
+
const snapshot = await this.#mastra?.getStorage()?.loadWorkflowSnapshot({
|
|
1382
1471
|
workflowName: this.workflowId,
|
|
1383
1472
|
runId: this.runId
|
|
1384
1473
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MastraError } from './chunk-PVGSY24V.js';
|
|
2
1
|
import { isVercelTool } from './chunk-C4LMN2IR.js';
|
|
2
|
+
import { MastraError } from './chunk-LDNCERLU.js';
|
|
3
3
|
import { MastraBase } from './chunk-5IEKR756.js';
|
|
4
4
|
import { RuntimeContext } from './chunk-SGGPJWRQ.js';
|
|
5
5
|
import { createHash } from 'crypto';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkLXFZUKP3_cjs = require('./chunk-LXFZUKP3.cjs');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkTGK6JO2D_cjs = require('./chunk-TGK6JO2D.cjs');
|
|
5
|
+
var chunkJ7MLMW6O_cjs = require('./chunk-J7MLMW6O.cjs');
|
|
6
6
|
var chunkP3Q73CAW_cjs = require('./chunk-P3Q73CAW.cjs');
|
|
7
7
|
|
|
8
8
|
// src/memory/memory.ts
|
|
@@ -130,7 +130,7 @@ https://mastra.ai/en/docs/memory/overview`
|
|
|
130
130
|
if (config?.workingMemory && "use" in config.workingMemory) {
|
|
131
131
|
throw new Error("The workingMemory.use option has been removed. Working memory always uses tool-call mode.");
|
|
132
132
|
}
|
|
133
|
-
return
|
|
133
|
+
return chunkJ7MLMW6O_cjs.deepMerge(this.threadConfig, config || {});
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
136
136
|
* Apply all configured message processors to a list of messages.
|
|
@@ -221,7 +221,7 @@ https://mastra.ai/en/docs/memory/overview`
|
|
|
221
221
|
toolCallIds
|
|
222
222
|
};
|
|
223
223
|
const savedMessages = await this.saveMessages({ messages: [message], memoryConfig: config });
|
|
224
|
-
const list = new
|
|
224
|
+
const list = new chunkTGK6JO2D_cjs.MessageList({ threadId, resourceId }).add(savedMessages[0], "memory");
|
|
225
225
|
return list.get.all.v1()[0];
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { MastraError } from './chunk-LDNCERLU.js';
|
|
1
2
|
import { trace, propagation, context, SpanStatusCode, SpanKind } from '@opentelemetry/api';
|
|
2
3
|
import { ExportResultCode } from '@opentelemetry/core';
|
|
3
4
|
import { JsonTraceSerializer } from '@opentelemetry/otlp-transformer';
|
|
4
5
|
|
|
5
|
-
// src/telemetry/telemetry.decorators.ts
|
|
6
6
|
function hasActiveTelemetry(tracerName = "default-tracer") {
|
|
7
7
|
try {
|
|
8
8
|
return !!trace.getTracer(tracerName);
|
|
@@ -315,7 +315,24 @@ var OTLPTraceExporter = class {
|
|
|
315
315
|
code: ExportResultCode.SUCCESS
|
|
316
316
|
});
|
|
317
317
|
}).catch((e) => {
|
|
318
|
-
|
|
318
|
+
const mastraError = new MastraError(
|
|
319
|
+
{
|
|
320
|
+
id: "OTLP_TRACE_EXPORT_FAILURE",
|
|
321
|
+
text: "Failed to export telemetry spans",
|
|
322
|
+
domain: "MASTRA_TELEMETRY" /* MASTRA_TELEMETRY */,
|
|
323
|
+
category: "SYSTEM" /* SYSTEM */,
|
|
324
|
+
details: {
|
|
325
|
+
attemptedSpanCount: allSpans.length,
|
|
326
|
+
targetTable: TABLE_TRACES,
|
|
327
|
+
firstSpanName: allSpans.length > 0 ? allSpans[0].name : "",
|
|
328
|
+
firstSpanKind: allSpans.length > 0 ? allSpans[0].kind : "",
|
|
329
|
+
firstSpanScope: allSpans.length > 0 ? allSpans[0].scope : ""
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
e
|
|
333
|
+
);
|
|
334
|
+
this.logger.trackException(mastraError);
|
|
335
|
+
this.logger.error("span err:" + mastraError.toString());
|
|
319
336
|
items.resultCallback({
|
|
320
337
|
code: ExportResultCode.FAILED,
|
|
321
338
|
error: e
|
|
@@ -361,8 +378,16 @@ var Telemetry = class _Telemetry {
|
|
|
361
378
|
}
|
|
362
379
|
return global.__TELEMETRY__;
|
|
363
380
|
} catch (error) {
|
|
364
|
-
|
|
365
|
-
|
|
381
|
+
const wrappedError = new MastraError(
|
|
382
|
+
{
|
|
383
|
+
id: "TELEMETRY_INIT_FAILED",
|
|
384
|
+
text: "Failed to initialize telemetry",
|
|
385
|
+
domain: "MASTRA_TELEMETRY" /* MASTRA_TELEMETRY */,
|
|
386
|
+
category: "SYSTEM" /* SYSTEM */
|
|
387
|
+
},
|
|
388
|
+
error
|
|
389
|
+
);
|
|
390
|
+
throw wrappedError;
|
|
366
391
|
}
|
|
367
392
|
}
|
|
368
393
|
static getActiveSpan() {
|
|
@@ -376,7 +401,12 @@ var Telemetry = class _Telemetry {
|
|
|
376
401
|
*/
|
|
377
402
|
static get() {
|
|
378
403
|
if (!global.__TELEMETRY__) {
|
|
379
|
-
throw new
|
|
404
|
+
throw new MastraError({
|
|
405
|
+
id: "TELEMETRY_GETTER_FAILED_GLOBAL_TELEMETRY_NOT_INITIALIZED",
|
|
406
|
+
text: "Telemetry not initialized",
|
|
407
|
+
domain: "MASTRA_TELEMETRY" /* MASTRA_TELEMETRY */,
|
|
408
|
+
category: "USER" /* USER */
|
|
409
|
+
});
|
|
380
410
|
}
|
|
381
411
|
return global.__TELEMETRY__;
|
|
382
412
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkBB6DPGIV_cjs = require('./chunk-BB6DPGIV.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkQQT4XTOG_cjs = require('./chunk-QQT4XTOG.cjs');
|
|
5
5
|
var chunk4Z3OU5RY_cjs = require('./chunk-4Z3OU5RY.cjs');
|
|
6
|
+
var chunkOLSQRA2V_cjs = require('./chunk-OLSQRA2V.cjs');
|
|
6
7
|
var chunkP3Q73CAW_cjs = require('./chunk-P3Q73CAW.cjs');
|
|
7
8
|
var chunkZIZ3CVHN_cjs = require('./chunk-ZIZ3CVHN.cjs');
|
|
8
9
|
var chunkLABUWBKX_cjs = require('./chunk-LABUWBKX.cjs');
|
|
@@ -97,7 +98,12 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
97
98
|
const { attempts = 0, delay = 0 } = retryConfig ?? {};
|
|
98
99
|
const steps = graph.steps;
|
|
99
100
|
if (steps.length === 0) {
|
|
100
|
-
throw new
|
|
101
|
+
throw new chunkOLSQRA2V_cjs.MastraError({
|
|
102
|
+
id: "WORKFLOW_EXECUTE_EMPTY_GRAPH",
|
|
103
|
+
text: "Workflow must have at least one step",
|
|
104
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
105
|
+
category: "USER" /* USER */
|
|
106
|
+
});
|
|
101
107
|
}
|
|
102
108
|
const executionSpan = this.mastra?.getTelemetry()?.tracer.startSpan(`workflow.${workflowId}.execute`, {
|
|
103
109
|
attributes: { componentName: workflowId, runId }
|
|
@@ -131,15 +137,69 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
131
137
|
emitter: params.emitter,
|
|
132
138
|
runtimeContext: params.runtimeContext
|
|
133
139
|
});
|
|
134
|
-
if (lastOutput.status !== "success") {
|
|
135
|
-
|
|
140
|
+
if (lastOutput.result.status !== "success") {
|
|
141
|
+
const result2 = await this.fmtReturnValue(
|
|
142
|
+
executionSpan,
|
|
143
|
+
params.emitter,
|
|
144
|
+
stepResults,
|
|
145
|
+
lastOutput.result
|
|
146
|
+
);
|
|
147
|
+
await this.persistStepUpdate({
|
|
148
|
+
workflowId,
|
|
149
|
+
runId,
|
|
150
|
+
stepResults: lastOutput.stepResults,
|
|
151
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
152
|
+
executionContext: lastOutput.executionContext,
|
|
153
|
+
workflowStatus: result2.status,
|
|
154
|
+
result: result2.result,
|
|
155
|
+
error: result2.error
|
|
156
|
+
});
|
|
157
|
+
return result2;
|
|
136
158
|
}
|
|
137
159
|
} catch (e) {
|
|
138
|
-
|
|
139
|
-
|
|
160
|
+
const error = e instanceof chunkOLSQRA2V_cjs.MastraError ? e : new chunkOLSQRA2V_cjs.MastraError(
|
|
161
|
+
{
|
|
162
|
+
id: "WORKFLOW_ENGINE_STEP_EXECUTION_FAILED",
|
|
163
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
164
|
+
category: "USER" /* USER */,
|
|
165
|
+
details: { workflowId, runId }
|
|
166
|
+
},
|
|
167
|
+
e
|
|
168
|
+
);
|
|
169
|
+
this.logger?.trackException(error);
|
|
170
|
+
this.logger?.error(`Error executing step: ${error?.stack}`);
|
|
171
|
+
const result2 = await this.fmtReturnValue(
|
|
172
|
+
executionSpan,
|
|
173
|
+
params.emitter,
|
|
174
|
+
stepResults,
|
|
175
|
+
lastOutput.result,
|
|
176
|
+
e
|
|
177
|
+
);
|
|
178
|
+
await this.persistStepUpdate({
|
|
179
|
+
workflowId,
|
|
180
|
+
runId,
|
|
181
|
+
stepResults: lastOutput.stepResults,
|
|
182
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
183
|
+
executionContext: lastOutput.executionContext,
|
|
184
|
+
workflowStatus: result2.status,
|
|
185
|
+
result: result2.result,
|
|
186
|
+
error: result2.error
|
|
187
|
+
});
|
|
188
|
+
return result2;
|
|
140
189
|
}
|
|
141
190
|
}
|
|
142
|
-
|
|
191
|
+
const result = await this.fmtReturnValue(executionSpan, params.emitter, stepResults, lastOutput.result);
|
|
192
|
+
await this.persistStepUpdate({
|
|
193
|
+
workflowId,
|
|
194
|
+
runId,
|
|
195
|
+
stepResults: lastOutput.stepResults,
|
|
196
|
+
serializedStepGraph: params.serializedStepGraph,
|
|
197
|
+
executionContext: lastOutput.executionContext,
|
|
198
|
+
workflowStatus: result.status,
|
|
199
|
+
result: result.result,
|
|
200
|
+
error: result.error
|
|
201
|
+
});
|
|
202
|
+
return result;
|
|
143
203
|
}
|
|
144
204
|
getStepOutput(stepResults, step) {
|
|
145
205
|
if (!step) {
|
|
@@ -278,10 +338,20 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
278
338
|
}
|
|
279
339
|
break;
|
|
280
340
|
} catch (e) {
|
|
281
|
-
|
|
341
|
+
const error = e instanceof chunkOLSQRA2V_cjs.MastraError ? e : new chunkOLSQRA2V_cjs.MastraError(
|
|
342
|
+
{
|
|
343
|
+
id: "WORKFLOW_STEP_INVOKE_FAILED",
|
|
344
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
345
|
+
category: "USER" /* USER */,
|
|
346
|
+
details: { workflowId, runId, stepId: step.id }
|
|
347
|
+
},
|
|
348
|
+
e
|
|
349
|
+
);
|
|
350
|
+
this.logger.trackException(error);
|
|
351
|
+
this.logger.error("Error executing step: " + error?.stack);
|
|
282
352
|
execResults = {
|
|
283
353
|
status: "failed",
|
|
284
|
-
error:
|
|
354
|
+
error: error?.stack,
|
|
285
355
|
endedAt: Date.now()
|
|
286
356
|
};
|
|
287
357
|
}
|
|
@@ -372,18 +442,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
372
442
|
})
|
|
373
443
|
)
|
|
374
444
|
);
|
|
375
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
376
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
445
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
446
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
377
447
|
if (hasFailed) {
|
|
378
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
448
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
379
449
|
} else if (hasSuspended) {
|
|
380
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
450
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
381
451
|
} else {
|
|
382
452
|
execResults = {
|
|
383
453
|
status: "success",
|
|
384
454
|
output: results.reduce((acc, result, index) => {
|
|
385
|
-
if (result.status === "success") {
|
|
386
|
-
acc[entry.steps[index].step.id] = result.output;
|
|
455
|
+
if (result.result.status === "success") {
|
|
456
|
+
acc[entry.steps[index].step.id] = result.result.output;
|
|
387
457
|
}
|
|
388
458
|
return acc;
|
|
389
459
|
}, {})
|
|
@@ -427,11 +497,22 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
427
497
|
// TODO: this function shouldn't have suspend probably?
|
|
428
498
|
suspend: async (_suspendPayload) => {
|
|
429
499
|
},
|
|
430
|
-
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter
|
|
500
|
+
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
501
|
+
engine: {}
|
|
431
502
|
});
|
|
432
503
|
return result ? index : null;
|
|
433
504
|
} catch (e) {
|
|
434
|
-
|
|
505
|
+
const error = e instanceof chunkOLSQRA2V_cjs.MastraError ? e : new chunkOLSQRA2V_cjs.MastraError(
|
|
506
|
+
{
|
|
507
|
+
id: "WORKFLOW_CONDITION_EVALUATION_FAILED",
|
|
508
|
+
domain: "MASTRA_WORKFLOW" /* MASTRA_WORKFLOW */,
|
|
509
|
+
category: "USER" /* USER */,
|
|
510
|
+
details: { workflowId, runId }
|
|
511
|
+
},
|
|
512
|
+
e
|
|
513
|
+
);
|
|
514
|
+
this.logger.trackException(error);
|
|
515
|
+
this.logger.error("Error evaluating condition: " + error?.stack);
|
|
435
516
|
return null;
|
|
436
517
|
}
|
|
437
518
|
})
|
|
@@ -460,18 +541,18 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
460
541
|
})
|
|
461
542
|
)
|
|
462
543
|
);
|
|
463
|
-
const hasFailed = results.find((result) => result.status === "failed");
|
|
464
|
-
const hasSuspended = results.find((result) => result.status === "suspended");
|
|
544
|
+
const hasFailed = results.find((result) => result.result.status === "failed");
|
|
545
|
+
const hasSuspended = results.find((result) => result.result.status === "suspended");
|
|
465
546
|
if (hasFailed) {
|
|
466
|
-
execResults = { status: "failed", error: hasFailed.error };
|
|
547
|
+
execResults = { status: "failed", error: hasFailed.result.error };
|
|
467
548
|
} else if (hasSuspended) {
|
|
468
|
-
execResults = { status: "suspended", payload: hasSuspended.suspendPayload };
|
|
549
|
+
execResults = { status: "suspended", payload: hasSuspended.result.suspendPayload };
|
|
469
550
|
} else {
|
|
470
551
|
execResults = {
|
|
471
552
|
status: "success",
|
|
472
553
|
output: results.reduce((acc, result, index) => {
|
|
473
|
-
if (result.status === "success") {
|
|
474
|
-
acc[stepsToRun[index].step.id] = result.output;
|
|
554
|
+
if (result.result.status === "success") {
|
|
555
|
+
acc[stepsToRun[index].step.id] = result.result.output;
|
|
475
556
|
}
|
|
476
557
|
return acc;
|
|
477
558
|
}, {})
|
|
@@ -523,7 +604,8 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
523
604
|
},
|
|
524
605
|
suspend: async (_suspendPayload) => {
|
|
525
606
|
},
|
|
526
|
-
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter
|
|
607
|
+
[chunkBB6DPGIV_cjs.EMITTER_SYMBOL]: emitter,
|
|
608
|
+
engine: {}
|
|
527
609
|
});
|
|
528
610
|
} while (entry.loopType === "dowhile" ? isTrue : !isTrue);
|
|
529
611
|
return result;
|
|
@@ -585,18 +667,24 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
585
667
|
runId,
|
|
586
668
|
stepResults,
|
|
587
669
|
serializedStepGraph,
|
|
588
|
-
executionContext
|
|
670
|
+
executionContext,
|
|
671
|
+
workflowStatus,
|
|
672
|
+
result,
|
|
673
|
+
error
|
|
589
674
|
}) {
|
|
590
675
|
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
591
676
|
workflowName: workflowId,
|
|
592
677
|
runId,
|
|
593
678
|
snapshot: {
|
|
594
679
|
runId,
|
|
680
|
+
status: workflowStatus,
|
|
595
681
|
value: {},
|
|
596
682
|
context: stepResults,
|
|
597
683
|
activePaths: [],
|
|
598
684
|
serializedStepGraph,
|
|
599
685
|
suspendedPaths: executionContext.suspendedPaths,
|
|
686
|
+
result,
|
|
687
|
+
error,
|
|
600
688
|
// @ts-ignore
|
|
601
689
|
timestamp: Date.now()
|
|
602
690
|
}
|
|
@@ -712,15 +800,16 @@ var DefaultExecutionEngine = class extends ExecutionEngine {
|
|
|
712
800
|
runId,
|
|
713
801
|
serializedStepGraph,
|
|
714
802
|
stepResults,
|
|
715
|
-
executionContext
|
|
803
|
+
executionContext,
|
|
804
|
+
workflowStatus: "running"
|
|
716
805
|
});
|
|
717
|
-
return execResults;
|
|
806
|
+
return { result: execResults, stepResults, executionContext };
|
|
718
807
|
}
|
|
719
808
|
};
|
|
720
809
|
|
|
721
810
|
// src/workflows/workflow.ts
|
|
722
811
|
function createStep(params) {
|
|
723
|
-
if (params instanceof
|
|
812
|
+
if (params instanceof chunkQQT4XTOG_cjs.Agent) {
|
|
724
813
|
return {
|
|
725
814
|
id: params.name,
|
|
726
815
|
// @ts-ignore
|
|
@@ -1384,7 +1473,7 @@ var Run = class {
|
|
|
1384
1473
|
const steps = (Array.isArray(params.step) ? params.step : [params.step]).map(
|
|
1385
1474
|
(step) => typeof step === "string" ? step : step?.id
|
|
1386
1475
|
);
|
|
1387
|
-
const snapshot = await this.#mastra?.
|
|
1476
|
+
const snapshot = await this.#mastra?.getStorage()?.loadWorkflowSnapshot({
|
|
1388
1477
|
workflowName: this.workflowId,
|
|
1389
1478
|
runId: this.runId
|
|
1390
1479
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TABLE_WORKFLOW_SNAPSHOT, TABLE_EVALS, TABLE_MESSAGES, TABLE_THREADS, TABLE_TRACES, TABLE_SCHEMAS } from './chunk-
|
|
1
|
+
import { TABLE_WORKFLOW_SNAPSHOT, TABLE_EVALS, TABLE_MESSAGES, TABLE_THREADS, TABLE_TRACES, TABLE_SCHEMAS } from './chunk-6PQRSQZF.js';
|
|
2
2
|
import { MastraBase } from './chunk-5IEKR756.js';
|
|
3
3
|
|
|
4
4
|
// src/storage/base.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { augmentWithInit } from './chunk-YOQP5T77.js';
|
|
2
|
-
import { MessageList } from './chunk-
|
|
3
|
-
import { deepMerge } from './chunk-
|
|
2
|
+
import { MessageList } from './chunk-DPKEVI6Q.js';
|
|
3
|
+
import { deepMerge } from './chunk-3SY7GRSA.js';
|
|
4
4
|
import { MastraBase } from './chunk-5IEKR756.js';
|
|
5
5
|
|
|
6
6
|
// src/memory/memory.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkQQT4XTOG_cjs = require('./chunk-QQT4XTOG.cjs');
|
|
4
4
|
var cohereAi = require('cohere-ai');
|
|
5
5
|
|
|
6
6
|
var CohereRelevanceScorer = class {
|
|
@@ -38,7 +38,7 @@ Relevance score (0-1):`;
|
|
|
38
38
|
var MastraAgentRelevanceScorer = class {
|
|
39
39
|
agent;
|
|
40
40
|
constructor(name, model) {
|
|
41
|
-
this.agent = new
|
|
41
|
+
this.agent = new chunkQQT4XTOG_cjs.Agent({
|
|
42
42
|
name: `Relevance Scorer ${name}`,
|
|
43
43
|
instructions: `You are a specialized agent for evaluating the relevance of text to queries.
|
|
44
44
|
Your task is to rate how well a text passage answers a given query.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isUiMessage, isCoreMessage } from './chunk-
|
|
1
|
+
import { isUiMessage, isCoreMessage } from './chunk-3SY7GRSA.js';
|
|
2
2
|
import { randomUUID } from 'crypto';
|
|
3
3
|
import { convertToCoreMessages } from 'ai';
|
|
4
4
|
import { convertUint8ArrayToBase64, convertBase64ToUint8Array } from '@ai-sdk/provider-utils';
|