@mastra/server 0.0.0-mastra-3171-llamaindex-pin-20250423175211 → 0.0.0-mastra-2452-core-tracing-sentry-20250507205331
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/README.md +50 -135
- package/dist/_tsup-dts-rollup.d.cts +108 -11
- package/dist/_tsup-dts-rollup.d.ts +108 -11
- package/dist/{chunk-LFOBHRFO.js → chunk-3XTEV33Q.js} +16 -4
- package/dist/{chunk-CWUJ6DED.cjs → chunk-55HTWX4C.cjs} +1 -6
- package/dist/{chunk-FPIWDH5Y.cjs → chunk-5YGDYMRB.cjs} +48 -27
- package/dist/{chunk-HCOPJZ4A.cjs → chunk-6Q7UXAYJ.cjs} +67 -33
- package/dist/{chunk-7IWQE76Z.cjs → chunk-AMVOS7YB.cjs} +4 -2
- package/dist/{chunk-WTHDCRMY.js → chunk-BPL2CBLV.js} +4 -2
- package/dist/{chunk-TZK63M5N.cjs → chunk-CHFORQ7J.cjs} +16 -4
- package/dist/{chunk-R4J7XQYU.js → chunk-GVBJ5I2S.js} +65 -31
- package/dist/chunk-M2RXDCPV.cjs +324 -0
- package/dist/chunk-OWNA6I2H.js +312 -0
- package/dist/{chunk-YE2P6K2L.js → chunk-Q6SHQECN.js} +1 -6
- package/dist/{chunk-RE6YL32K.js → chunk-QJ3AHN64.js} +48 -27
- package/dist/server/handlers/agents.cjs +7 -7
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/network.cjs +5 -5
- package/dist/server/handlers/network.js +1 -1
- package/dist/server/handlers/telemetry.cjs +3 -3
- package/dist/server/handlers/telemetry.js +1 -1
- package/dist/server/handlers/vNextWorkflows.cjs +46 -0
- package/dist/server/handlers/vNextWorkflows.d.cts +10 -0
- package/dist/server/handlers/vNextWorkflows.d.ts +10 -0
- package/dist/server/handlers/vNextWorkflows.js +1 -0
- package/dist/server/handlers/voice.cjs +4 -4
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +11 -11
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +15 -10
- package/dist/server/handlers.d.cts +1 -0
- package/dist/server/handlers.d.ts +1 -0
- package/dist/server/handlers.js +6 -5
- package/package.json +6 -6
|
@@ -34,7 +34,9 @@ async function getWorkflowsHandler({ mastra }) {
|
|
|
34
34
|
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
35
35
|
const _step = step;
|
|
36
36
|
acc2[key2] = {
|
|
37
|
-
|
|
37
|
+
id: _step.id,
|
|
38
|
+
description: _step.description,
|
|
39
|
+
workflowId: _step.workflowId,
|
|
38
40
|
inputSchema: _step.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_step.inputSchema)) : void 0,
|
|
39
41
|
outputSchema: _step.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_step.outputSchema)) : void 0
|
|
40
42
|
};
|
|
@@ -67,7 +69,9 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
|
|
|
67
69
|
steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
|
|
68
70
|
const _step = step;
|
|
69
71
|
acc[key] = {
|
|
70
|
-
|
|
72
|
+
id: _step.id,
|
|
73
|
+
description: _step.description,
|
|
74
|
+
workflowId: _step.workflowId,
|
|
71
75
|
inputSchema: _step.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_step.inputSchema)) : void 0,
|
|
72
76
|
outputSchema: _step.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_step.outputSchema)) : void 0
|
|
73
77
|
};
|
|
@@ -288,13 +292,21 @@ async function resumeWorkflowHandler({
|
|
|
288
292
|
return chunkZLBRQFDD_cjs.handleError(error, "Error resuming workflow");
|
|
289
293
|
}
|
|
290
294
|
}
|
|
291
|
-
async function getWorkflowRunsHandler({
|
|
295
|
+
async function getWorkflowRunsHandler({
|
|
296
|
+
mastra,
|
|
297
|
+
workflowId,
|
|
298
|
+
fromDate,
|
|
299
|
+
toDate,
|
|
300
|
+
limit,
|
|
301
|
+
offset,
|
|
302
|
+
resourceId
|
|
303
|
+
}) {
|
|
292
304
|
try {
|
|
293
305
|
if (!workflowId) {
|
|
294
306
|
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
295
307
|
}
|
|
296
308
|
const workflow = mastra.getWorkflow(workflowId);
|
|
297
|
-
const workflowRuns = await workflow.getWorkflowRuns() || {
|
|
309
|
+
const workflowRuns = await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId }) || {
|
|
298
310
|
runs: [],
|
|
299
311
|
total: 0
|
|
300
312
|
};
|
|
@@ -2,6 +2,7 @@ import { stringify, esm_default } from './chunk-OMN3UI6X.js';
|
|
|
2
2
|
import { validateBody } from './chunk-L7XE5QTW.js';
|
|
3
3
|
import { handleError } from './chunk-3AHQ5RGN.js';
|
|
4
4
|
import { __export, HTTPException } from './chunk-TRDNDNGQ.js';
|
|
5
|
+
import { RuntimeContext } from '@mastra/core/runtime-context';
|
|
5
6
|
|
|
6
7
|
// src/server/handlers/agents.ts
|
|
7
8
|
var agents_exports = {};
|
|
@@ -13,27 +14,35 @@ __export(agents_exports, {
|
|
|
13
14
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
14
15
|
streamGenerateHandler: () => streamGenerateHandler
|
|
15
16
|
});
|
|
16
|
-
async function getAgentsHandler({ mastra }) {
|
|
17
|
+
async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
17
18
|
try {
|
|
18
19
|
const agents = mastra.getAgents();
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const serializedAgentsMap = await Promise.all(
|
|
21
|
+
Object.entries(agents).map(async ([id, agent]) => {
|
|
22
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
23
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
24
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
25
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
26
|
+
const _tool = tool;
|
|
27
|
+
acc[key] = {
|
|
28
|
+
..._tool,
|
|
29
|
+
inputSchema: _tool.inputSchema ? stringify(esm_default(_tool.inputSchema)) : void 0,
|
|
30
|
+
outputSchema: _tool.outputSchema ? stringify(esm_default(_tool.outputSchema)) : void 0
|
|
31
|
+
};
|
|
32
|
+
return acc;
|
|
33
|
+
}, {});
|
|
34
|
+
return {
|
|
35
|
+
id,
|
|
36
|
+
name: agent.name,
|
|
37
|
+
instructions,
|
|
38
|
+
tools: serializedAgentTools,
|
|
39
|
+
provider: llm?.getProvider(),
|
|
40
|
+
modelId: llm?.getModelId()
|
|
27
41
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
instructions: agent.instructions,
|
|
33
|
-
tools: serializedAgentTools,
|
|
34
|
-
provider: agent.llm?.getProvider(),
|
|
35
|
-
modelId: agent.llm?.getModelId()
|
|
36
|
-
};
|
|
42
|
+
})
|
|
43
|
+
);
|
|
44
|
+
const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
|
|
45
|
+
acc[id] = rest;
|
|
37
46
|
return acc;
|
|
38
47
|
}, {});
|
|
39
48
|
return serializedAgents;
|
|
@@ -41,13 +50,18 @@ async function getAgentsHandler({ mastra }) {
|
|
|
41
50
|
return handleError(error, "Error getting agents");
|
|
42
51
|
}
|
|
43
52
|
}
|
|
44
|
-
async function getAgentByIdHandler({
|
|
53
|
+
async function getAgentByIdHandler({
|
|
54
|
+
mastra,
|
|
55
|
+
runtimeContext,
|
|
56
|
+
agentId
|
|
57
|
+
}) {
|
|
45
58
|
try {
|
|
46
59
|
const agent = mastra.getAgent(agentId);
|
|
47
60
|
if (!agent) {
|
|
48
61
|
throw new HTTPException(404, { message: "Agent not found" });
|
|
49
62
|
}
|
|
50
|
-
const
|
|
63
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
64
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
51
65
|
const _tool = tool;
|
|
52
66
|
acc[key] = {
|
|
53
67
|
..._tool,
|
|
@@ -56,39 +70,51 @@ async function getAgentByIdHandler({ mastra, agentId }) {
|
|
|
56
70
|
};
|
|
57
71
|
return acc;
|
|
58
72
|
}, {});
|
|
73
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
74
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
59
75
|
return {
|
|
60
76
|
name: agent.name,
|
|
61
|
-
instructions
|
|
77
|
+
instructions,
|
|
62
78
|
tools: serializedAgentTools,
|
|
63
|
-
provider:
|
|
64
|
-
modelId:
|
|
79
|
+
provider: llm?.getProvider(),
|
|
80
|
+
modelId: llm?.getModelId()
|
|
65
81
|
};
|
|
66
82
|
} catch (error) {
|
|
67
83
|
return handleError(error, "Error getting agent");
|
|
68
84
|
}
|
|
69
85
|
}
|
|
70
|
-
async function getEvalsByAgentIdHandler({
|
|
86
|
+
async function getEvalsByAgentIdHandler({
|
|
87
|
+
mastra,
|
|
88
|
+
runtimeContext,
|
|
89
|
+
agentId
|
|
90
|
+
}) {
|
|
71
91
|
try {
|
|
72
92
|
const agent = mastra.getAgent(agentId);
|
|
73
93
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
|
|
94
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
74
95
|
return {
|
|
75
96
|
id: agentId,
|
|
76
97
|
name: agent.name,
|
|
77
|
-
instructions
|
|
98
|
+
instructions,
|
|
78
99
|
evals
|
|
79
100
|
};
|
|
80
101
|
} catch (error) {
|
|
81
102
|
return handleError(error, "Error getting test evals");
|
|
82
103
|
}
|
|
83
104
|
}
|
|
84
|
-
async function getLiveEvalsByAgentIdHandler({
|
|
105
|
+
async function getLiveEvalsByAgentIdHandler({
|
|
106
|
+
mastra,
|
|
107
|
+
runtimeContext,
|
|
108
|
+
agentId
|
|
109
|
+
}) {
|
|
85
110
|
try {
|
|
86
111
|
const agent = mastra.getAgent(agentId);
|
|
87
112
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
|
|
113
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
88
114
|
return {
|
|
89
115
|
id: agentId,
|
|
90
116
|
name: agent.name,
|
|
91
|
-
instructions
|
|
117
|
+
instructions,
|
|
92
118
|
evals
|
|
93
119
|
};
|
|
94
120
|
} catch (error) {
|
|
@@ -106,14 +132,18 @@ async function generateHandler({
|
|
|
106
132
|
if (!agent) {
|
|
107
133
|
throw new HTTPException(404, { message: "Agent not found" });
|
|
108
134
|
}
|
|
109
|
-
const { messages, resourceId, resourceid, ...rest } = body;
|
|
135
|
+
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
110
136
|
const finalResourceId = resourceId ?? resourceid;
|
|
137
|
+
const finalRuntimeContext = new RuntimeContext([
|
|
138
|
+
...Array.from(runtimeContext.entries()),
|
|
139
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
140
|
+
]);
|
|
111
141
|
validateBody({ messages });
|
|
112
142
|
const result = await agent.generate(messages, {
|
|
113
143
|
...rest,
|
|
114
144
|
// @ts-expect-error TODO fix types
|
|
115
145
|
resourceId: finalResourceId,
|
|
116
|
-
runtimeContext
|
|
146
|
+
runtimeContext: finalRuntimeContext
|
|
117
147
|
});
|
|
118
148
|
return result;
|
|
119
149
|
} catch (error) {
|
|
@@ -131,14 +161,18 @@ async function streamGenerateHandler({
|
|
|
131
161
|
if (!agent) {
|
|
132
162
|
throw new HTTPException(404, { message: "Agent not found" });
|
|
133
163
|
}
|
|
134
|
-
const { messages, resourceId, resourceid, ...rest } = body;
|
|
164
|
+
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
135
165
|
const finalResourceId = resourceId ?? resourceid;
|
|
166
|
+
const finalRuntimeContext = new RuntimeContext([
|
|
167
|
+
...Array.from(runtimeContext.entries()),
|
|
168
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
169
|
+
]);
|
|
136
170
|
validateBody({ messages });
|
|
137
171
|
const streamResult = await agent.stream(messages, {
|
|
138
172
|
...rest,
|
|
139
173
|
// @ts-expect-error TODO fix types
|
|
140
174
|
resourceId: finalResourceId,
|
|
141
|
-
runtimeContext
|
|
175
|
+
runtimeContext: finalRuntimeContext
|
|
142
176
|
});
|
|
143
177
|
const streamResponse = rest.output ? streamResult.toTextStreamResponse() : streamResult.toDataStreamResponse({
|
|
144
178
|
sendUsage: true,
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk5SWCVTNL_cjs = require('./chunk-5SWCVTNL.cjs');
|
|
4
|
+
var chunkZLBRQFDD_cjs = require('./chunk-ZLBRQFDD.cjs');
|
|
5
|
+
var chunkFV45V6WC_cjs = require('./chunk-FV45V6WC.cjs');
|
|
6
|
+
var web = require('stream/web');
|
|
7
|
+
|
|
8
|
+
// src/server/handlers/vNextWorkflows.ts
|
|
9
|
+
var vNextWorkflows_exports = {};
|
|
10
|
+
chunkFV45V6WC_cjs.__export(vNextWorkflows_exports, {
|
|
11
|
+
createVNextWorkflowRunHandler: () => createVNextWorkflowRunHandler,
|
|
12
|
+
getVNextWorkflowByIdHandler: () => getVNextWorkflowByIdHandler,
|
|
13
|
+
getVNextWorkflowRunByIdHandler: () => getVNextWorkflowRunByIdHandler,
|
|
14
|
+
getVNextWorkflowRunsHandler: () => getVNextWorkflowRunsHandler,
|
|
15
|
+
getVNextWorkflowsHandler: () => getVNextWorkflowsHandler,
|
|
16
|
+
resumeAsyncVNextWorkflowHandler: () => resumeAsyncVNextWorkflowHandler,
|
|
17
|
+
resumeVNextWorkflowHandler: () => resumeVNextWorkflowHandler,
|
|
18
|
+
startAsyncVNextWorkflowHandler: () => startAsyncVNextWorkflowHandler,
|
|
19
|
+
startVNextWorkflowRunHandler: () => startVNextWorkflowRunHandler,
|
|
20
|
+
watchVNextWorkflowHandler: () => watchVNextWorkflowHandler
|
|
21
|
+
});
|
|
22
|
+
async function getVNextWorkflowsHandler({ mastra }) {
|
|
23
|
+
try {
|
|
24
|
+
const workflows = mastra.vnext_getWorkflows({ serialized: false });
|
|
25
|
+
const _workflows = Object.entries(workflows).reduce((acc, [key, workflow]) => {
|
|
26
|
+
acc[key] = {
|
|
27
|
+
name: workflow.name,
|
|
28
|
+
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
29
|
+
acc2[key2] = {
|
|
30
|
+
id: step.id,
|
|
31
|
+
description: step.description,
|
|
32
|
+
inputSchema: step.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.inputSchema)) : void 0,
|
|
33
|
+
outputSchema: step.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.outputSchema)) : void 0,
|
|
34
|
+
resumeSchema: step.resumeSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.resumeSchema)) : void 0,
|
|
35
|
+
suspendSchema: step.suspendSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.suspendSchema)) : void 0
|
|
36
|
+
};
|
|
37
|
+
return acc2;
|
|
38
|
+
}, {}),
|
|
39
|
+
stepGraph: workflow.serializedStepGraph,
|
|
40
|
+
inputSchema: workflow.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(workflow.inputSchema)) : void 0,
|
|
41
|
+
outputSchema: workflow.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(workflow.outputSchema)) : void 0
|
|
42
|
+
};
|
|
43
|
+
return acc;
|
|
44
|
+
}, {});
|
|
45
|
+
return _workflows;
|
|
46
|
+
} catch (error) {
|
|
47
|
+
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: error?.message || "Error getting workflows" });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function getVNextWorkflowByIdHandler({ mastra, workflowId }) {
|
|
51
|
+
try {
|
|
52
|
+
if (!workflowId) {
|
|
53
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
54
|
+
}
|
|
55
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
56
|
+
if (!workflow) {
|
|
57
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
|
|
61
|
+
acc[key] = {
|
|
62
|
+
id: step.id,
|
|
63
|
+
description: step.description,
|
|
64
|
+
inputSchema: step.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.inputSchema)) : void 0,
|
|
65
|
+
outputSchema: step.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.outputSchema)) : void 0,
|
|
66
|
+
resumeSchema: step.resumeSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.resumeSchema)) : void 0,
|
|
67
|
+
suspendSchema: step.suspendSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(step.suspendSchema)) : void 0
|
|
68
|
+
};
|
|
69
|
+
return acc;
|
|
70
|
+
}, {}),
|
|
71
|
+
name: workflow.name,
|
|
72
|
+
stepGraph: workflow.serializedStepGraph,
|
|
73
|
+
inputSchema: workflow.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(workflow.inputSchema)) : void 0,
|
|
74
|
+
outputSchema: workflow.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(workflow.outputSchema)) : void 0
|
|
75
|
+
};
|
|
76
|
+
} catch (error) {
|
|
77
|
+
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: error?.message || "Error getting workflow" });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function getVNextWorkflowRunByIdHandler({
|
|
81
|
+
mastra,
|
|
82
|
+
workflowId,
|
|
83
|
+
runId
|
|
84
|
+
}) {
|
|
85
|
+
try {
|
|
86
|
+
if (!workflowId) {
|
|
87
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
88
|
+
}
|
|
89
|
+
if (!runId) {
|
|
90
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Run ID is required" });
|
|
91
|
+
}
|
|
92
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
93
|
+
if (!workflow) {
|
|
94
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
95
|
+
}
|
|
96
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
97
|
+
if (!run) {
|
|
98
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
99
|
+
}
|
|
100
|
+
return run;
|
|
101
|
+
} catch (error) {
|
|
102
|
+
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: error?.message || "Error getting workflow run" });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async function createVNextWorkflowRunHandler({
|
|
106
|
+
mastra,
|
|
107
|
+
workflowId,
|
|
108
|
+
runId: prevRunId
|
|
109
|
+
}) {
|
|
110
|
+
try {
|
|
111
|
+
if (!workflowId) {
|
|
112
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
113
|
+
}
|
|
114
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
115
|
+
if (!workflow) {
|
|
116
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
117
|
+
}
|
|
118
|
+
const run = workflow.createRun({ runId: prevRunId });
|
|
119
|
+
return { runId: run.runId };
|
|
120
|
+
} catch (error) {
|
|
121
|
+
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: error?.message || "Error creating workflow run" });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function startAsyncVNextWorkflowHandler({
|
|
125
|
+
mastra,
|
|
126
|
+
runtimeContext,
|
|
127
|
+
workflowId,
|
|
128
|
+
runId,
|
|
129
|
+
inputData
|
|
130
|
+
}) {
|
|
131
|
+
try {
|
|
132
|
+
if (!workflowId) {
|
|
133
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
134
|
+
}
|
|
135
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
136
|
+
if (!workflow) {
|
|
137
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
138
|
+
}
|
|
139
|
+
const _run = workflow.createRun({ runId });
|
|
140
|
+
const result = await _run.start({
|
|
141
|
+
inputData,
|
|
142
|
+
runtimeContext
|
|
143
|
+
});
|
|
144
|
+
return result;
|
|
145
|
+
} catch (error) {
|
|
146
|
+
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: error?.message || "Error executing workflow" });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function startVNextWorkflowRunHandler({
|
|
150
|
+
mastra,
|
|
151
|
+
runtimeContext,
|
|
152
|
+
workflowId,
|
|
153
|
+
runId,
|
|
154
|
+
inputData
|
|
155
|
+
}) {
|
|
156
|
+
try {
|
|
157
|
+
if (!workflowId) {
|
|
158
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
159
|
+
}
|
|
160
|
+
if (!runId) {
|
|
161
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "runId required to start run" });
|
|
162
|
+
}
|
|
163
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
164
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
165
|
+
if (!run) {
|
|
166
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
167
|
+
}
|
|
168
|
+
const _run = workflow.createRun({ runId });
|
|
169
|
+
await _run.start({
|
|
170
|
+
inputData,
|
|
171
|
+
runtimeContext
|
|
172
|
+
});
|
|
173
|
+
return { message: "Workflow run started" };
|
|
174
|
+
} catch (e) {
|
|
175
|
+
return chunkZLBRQFDD_cjs.handleError(e, "Error starting workflow run");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async function watchVNextWorkflowHandler({
|
|
179
|
+
mastra,
|
|
180
|
+
workflowId,
|
|
181
|
+
runId
|
|
182
|
+
}) {
|
|
183
|
+
try {
|
|
184
|
+
if (!workflowId) {
|
|
185
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
186
|
+
}
|
|
187
|
+
if (!runId) {
|
|
188
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "runId required to watch workflow" });
|
|
189
|
+
}
|
|
190
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
191
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
192
|
+
if (!run) {
|
|
193
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
194
|
+
}
|
|
195
|
+
const _run = workflow.createRun({ runId });
|
|
196
|
+
let unwatch;
|
|
197
|
+
let asyncRef = null;
|
|
198
|
+
const stream = new web.ReadableStream({
|
|
199
|
+
start(controller) {
|
|
200
|
+
unwatch = _run.watch(({ type, payload, eventTimestamp }) => {
|
|
201
|
+
controller.enqueue(JSON.stringify({ type, payload, eventTimestamp, runId }));
|
|
202
|
+
if (asyncRef) {
|
|
203
|
+
clearImmediate(asyncRef);
|
|
204
|
+
asyncRef = null;
|
|
205
|
+
}
|
|
206
|
+
asyncRef = setImmediate(async () => {
|
|
207
|
+
const runDone = payload.workflowState.status !== "running";
|
|
208
|
+
if (runDone) {
|
|
209
|
+
controller.close();
|
|
210
|
+
unwatch?.();
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
},
|
|
215
|
+
cancel() {
|
|
216
|
+
unwatch?.();
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
return stream;
|
|
220
|
+
} catch (error) {
|
|
221
|
+
return chunkZLBRQFDD_cjs.handleError(error, "Error watching workflow");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
async function resumeAsyncVNextWorkflowHandler({
|
|
225
|
+
mastra,
|
|
226
|
+
workflowId,
|
|
227
|
+
runId,
|
|
228
|
+
body,
|
|
229
|
+
runtimeContext
|
|
230
|
+
}) {
|
|
231
|
+
try {
|
|
232
|
+
if (!workflowId) {
|
|
233
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
234
|
+
}
|
|
235
|
+
if (!runId) {
|
|
236
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "runId required to resume workflow" });
|
|
237
|
+
}
|
|
238
|
+
if (!body.step) {
|
|
239
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "step required to resume workflow" });
|
|
240
|
+
}
|
|
241
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
242
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
243
|
+
if (!run) {
|
|
244
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
245
|
+
}
|
|
246
|
+
const _run = workflow.createRun({ runId });
|
|
247
|
+
const result = await _run.resume({
|
|
248
|
+
step: body.step,
|
|
249
|
+
resumeData: body.resumeData,
|
|
250
|
+
runtimeContext
|
|
251
|
+
});
|
|
252
|
+
return result;
|
|
253
|
+
} catch (error) {
|
|
254
|
+
return chunkZLBRQFDD_cjs.handleError(error, "Error resuming workflow step");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
async function resumeVNextWorkflowHandler({
|
|
258
|
+
mastra,
|
|
259
|
+
workflowId,
|
|
260
|
+
runId,
|
|
261
|
+
body,
|
|
262
|
+
runtimeContext
|
|
263
|
+
}) {
|
|
264
|
+
try {
|
|
265
|
+
if (!workflowId) {
|
|
266
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
267
|
+
}
|
|
268
|
+
if (!runId) {
|
|
269
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "runId required to resume workflow" });
|
|
270
|
+
}
|
|
271
|
+
if (!body.step) {
|
|
272
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "step required to resume workflow" });
|
|
273
|
+
}
|
|
274
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
275
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
276
|
+
if (!run) {
|
|
277
|
+
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
278
|
+
}
|
|
279
|
+
const _run = workflow.createRun({ runId });
|
|
280
|
+
await _run.resume({
|
|
281
|
+
step: body.step,
|
|
282
|
+
resumeData: body.resumeData,
|
|
283
|
+
runtimeContext
|
|
284
|
+
});
|
|
285
|
+
return { message: "Workflow run resumed" };
|
|
286
|
+
} catch (error) {
|
|
287
|
+
return chunkZLBRQFDD_cjs.handleError(error, "Error resuming workflow");
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
async function getVNextWorkflowRunsHandler({
|
|
291
|
+
mastra,
|
|
292
|
+
workflowId,
|
|
293
|
+
fromDate,
|
|
294
|
+
toDate,
|
|
295
|
+
limit,
|
|
296
|
+
offset,
|
|
297
|
+
resourceId
|
|
298
|
+
}) {
|
|
299
|
+
try {
|
|
300
|
+
if (!workflowId) {
|
|
301
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
302
|
+
}
|
|
303
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
304
|
+
const workflowRuns = await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId }) || {
|
|
305
|
+
runs: [],
|
|
306
|
+
total: 0
|
|
307
|
+
};
|
|
308
|
+
return workflowRuns;
|
|
309
|
+
} catch (error) {
|
|
310
|
+
return chunkZLBRQFDD_cjs.handleError(error, "Error getting workflow runs");
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
exports.createVNextWorkflowRunHandler = createVNextWorkflowRunHandler;
|
|
315
|
+
exports.getVNextWorkflowByIdHandler = getVNextWorkflowByIdHandler;
|
|
316
|
+
exports.getVNextWorkflowRunByIdHandler = getVNextWorkflowRunByIdHandler;
|
|
317
|
+
exports.getVNextWorkflowRunsHandler = getVNextWorkflowRunsHandler;
|
|
318
|
+
exports.getVNextWorkflowsHandler = getVNextWorkflowsHandler;
|
|
319
|
+
exports.resumeAsyncVNextWorkflowHandler = resumeAsyncVNextWorkflowHandler;
|
|
320
|
+
exports.resumeVNextWorkflowHandler = resumeVNextWorkflowHandler;
|
|
321
|
+
exports.startAsyncVNextWorkflowHandler = startAsyncVNextWorkflowHandler;
|
|
322
|
+
exports.startVNextWorkflowRunHandler = startVNextWorkflowRunHandler;
|
|
323
|
+
exports.vNextWorkflows_exports = vNextWorkflows_exports;
|
|
324
|
+
exports.watchVNextWorkflowHandler = watchVNextWorkflowHandler;
|