@mastra/server 0.0.0-mcp-server-update-parse-20250421171139 → 0.0.0-mcp-schema-serializer-20250430202337
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/_tsup-dts-rollup.d.cts +111 -30
- package/dist/_tsup-dts-rollup.d.ts +111 -30
- package/dist/{chunk-4WJ5GHRG.cjs → chunk-4BIX6GMY.cjs} +56 -31
- package/dist/{chunk-A7DF4ETD.cjs → chunk-55HTWX4C.cjs} +2 -9
- package/dist/{chunk-XISBMH56.js → chunk-5JNVY6DU.js} +4 -4
- package/dist/{chunk-JLDXUWK7.cjs → chunk-5YGDYMRB.cjs} +52 -31
- package/dist/chunk-AELYAUEE.cjs +316 -0
- package/dist/{chunk-HABV7TZK.cjs → chunk-D3G23FP3.cjs} +4 -4
- package/dist/{chunk-RNU4JMLM.cjs → chunk-EVCC233P.cjs} +15 -11
- package/dist/chunk-JPB6RPGB.js +304 -0
- package/dist/{chunk-4B7OUZXW.js → chunk-M3YJLWTU.js} +15 -11
- package/dist/{chunk-3RVHWGWO.js → chunk-Q6SHQECN.js} +2 -9
- package/dist/{chunk-YANVFOYA.js → chunk-QJ3AHN64.js} +52 -31
- package/dist/{chunk-TFFNX7FI.js → chunk-Y3SV5XK4.js} +56 -31
- 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/tools.cjs +5 -5
- package/dist/server/handlers/tools.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 +5 -5
|
@@ -15,27 +15,35 @@ chunkFV45V6WC_cjs.__export(agents_exports, {
|
|
|
15
15
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
16
16
|
streamGenerateHandler: () => streamGenerateHandler
|
|
17
17
|
});
|
|
18
|
-
async function getAgentsHandler({ mastra }) {
|
|
18
|
+
async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
19
19
|
try {
|
|
20
20
|
const agents = mastra.getAgents();
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
const serializedAgentsMap = await Promise.all(
|
|
22
|
+
Object.entries(agents).map(async ([id, agent]) => {
|
|
23
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
24
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
25
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
26
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
27
|
+
const _tool = tool;
|
|
28
|
+
acc[key] = {
|
|
29
|
+
..._tool,
|
|
30
|
+
inputSchema: _tool.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_tool.inputSchema)) : void 0,
|
|
31
|
+
outputSchema: _tool.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_tool.outputSchema)) : void 0
|
|
32
|
+
};
|
|
33
|
+
return acc;
|
|
34
|
+
}, {});
|
|
35
|
+
return {
|
|
36
|
+
id,
|
|
37
|
+
name: agent.name,
|
|
38
|
+
instructions,
|
|
39
|
+
tools: serializedAgentTools,
|
|
40
|
+
provider: llm?.getProvider(),
|
|
41
|
+
modelId: llm?.getModelId()
|
|
29
42
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
instructions: agent.instructions,
|
|
35
|
-
tools: serializedAgentTools,
|
|
36
|
-
provider: agent.llm?.getProvider(),
|
|
37
|
-
modelId: agent.llm?.getModelId()
|
|
38
|
-
};
|
|
43
|
+
})
|
|
44
|
+
);
|
|
45
|
+
const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
|
|
46
|
+
acc[id] = rest;
|
|
39
47
|
return acc;
|
|
40
48
|
}, {});
|
|
41
49
|
return serializedAgents;
|
|
@@ -43,13 +51,18 @@ async function getAgentsHandler({ mastra }) {
|
|
|
43
51
|
return chunkZLBRQFDD_cjs.handleError(error, "Error getting agents");
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
|
-
async function getAgentByIdHandler({
|
|
54
|
+
async function getAgentByIdHandler({
|
|
55
|
+
mastra,
|
|
56
|
+
runtimeContext,
|
|
57
|
+
agentId
|
|
58
|
+
}) {
|
|
47
59
|
try {
|
|
48
60
|
const agent = mastra.getAgent(agentId);
|
|
49
61
|
if (!agent) {
|
|
50
62
|
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Agent not found" });
|
|
51
63
|
}
|
|
52
|
-
const
|
|
64
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
65
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
53
66
|
const _tool = tool;
|
|
54
67
|
acc[key] = {
|
|
55
68
|
..._tool,
|
|
@@ -58,39 +71,51 @@ async function getAgentByIdHandler({ mastra, agentId }) {
|
|
|
58
71
|
};
|
|
59
72
|
return acc;
|
|
60
73
|
}, {});
|
|
74
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
75
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
61
76
|
return {
|
|
62
77
|
name: agent.name,
|
|
63
|
-
instructions
|
|
78
|
+
instructions,
|
|
64
79
|
tools: serializedAgentTools,
|
|
65
|
-
provider:
|
|
66
|
-
modelId:
|
|
80
|
+
provider: llm?.getProvider(),
|
|
81
|
+
modelId: llm?.getModelId()
|
|
67
82
|
};
|
|
68
83
|
} catch (error) {
|
|
69
84
|
return chunkZLBRQFDD_cjs.handleError(error, "Error getting agent");
|
|
70
85
|
}
|
|
71
86
|
}
|
|
72
|
-
async function getEvalsByAgentIdHandler({
|
|
87
|
+
async function getEvalsByAgentIdHandler({
|
|
88
|
+
mastra,
|
|
89
|
+
runtimeContext,
|
|
90
|
+
agentId
|
|
91
|
+
}) {
|
|
73
92
|
try {
|
|
74
93
|
const agent = mastra.getAgent(agentId);
|
|
75
94
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
|
|
95
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
76
96
|
return {
|
|
77
97
|
id: agentId,
|
|
78
98
|
name: agent.name,
|
|
79
|
-
instructions
|
|
99
|
+
instructions,
|
|
80
100
|
evals
|
|
81
101
|
};
|
|
82
102
|
} catch (error) {
|
|
83
103
|
return chunkZLBRQFDD_cjs.handleError(error, "Error getting test evals");
|
|
84
104
|
}
|
|
85
105
|
}
|
|
86
|
-
async function getLiveEvalsByAgentIdHandler({
|
|
106
|
+
async function getLiveEvalsByAgentIdHandler({
|
|
107
|
+
mastra,
|
|
108
|
+
runtimeContext,
|
|
109
|
+
agentId
|
|
110
|
+
}) {
|
|
87
111
|
try {
|
|
88
112
|
const agent = mastra.getAgent(agentId);
|
|
89
113
|
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
|
|
114
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
90
115
|
return {
|
|
91
116
|
id: agentId,
|
|
92
117
|
name: agent.name,
|
|
93
|
-
instructions
|
|
118
|
+
instructions,
|
|
94
119
|
evals
|
|
95
120
|
};
|
|
96
121
|
} catch (error) {
|
|
@@ -99,7 +124,7 @@ async function getLiveEvalsByAgentIdHandler({ mastra, agentId }) {
|
|
|
99
124
|
}
|
|
100
125
|
async function generateHandler({
|
|
101
126
|
mastra,
|
|
102
|
-
|
|
127
|
+
runtimeContext,
|
|
103
128
|
agentId,
|
|
104
129
|
body
|
|
105
130
|
}) {
|
|
@@ -115,7 +140,7 @@ async function generateHandler({
|
|
|
115
140
|
...rest,
|
|
116
141
|
// @ts-expect-error TODO fix types
|
|
117
142
|
resourceId: finalResourceId,
|
|
118
|
-
|
|
143
|
+
runtimeContext
|
|
119
144
|
});
|
|
120
145
|
return result;
|
|
121
146
|
} catch (error) {
|
|
@@ -124,7 +149,7 @@ async function generateHandler({
|
|
|
124
149
|
}
|
|
125
150
|
async function streamGenerateHandler({
|
|
126
151
|
mastra,
|
|
127
|
-
|
|
152
|
+
runtimeContext,
|
|
128
153
|
agentId,
|
|
129
154
|
body
|
|
130
155
|
}) {
|
|
@@ -140,7 +165,7 @@ async function streamGenerateHandler({
|
|
|
140
165
|
...rest,
|
|
141
166
|
// @ts-expect-error TODO fix types
|
|
142
167
|
resourceId: finalResourceId,
|
|
143
|
-
|
|
168
|
+
runtimeContext
|
|
144
169
|
});
|
|
145
170
|
const streamResponse = rest.output ? streamResult.toTextStreamResponse() : streamResult.toDataStreamResponse({
|
|
146
171
|
sendUsage: true,
|
|
@@ -40,9 +40,7 @@ async function generateSpeechHandler({
|
|
|
40
40
|
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
41
41
|
}
|
|
42
42
|
chunkQN4KF3BH_cjs.validateBody({
|
|
43
|
-
text:
|
|
44
|
-
speakerId: void 0,
|
|
45
|
-
...body
|
|
43
|
+
text: body?.text
|
|
46
44
|
});
|
|
47
45
|
const agent = mastra.getAgent(agentId);
|
|
48
46
|
if (!agent) {
|
|
@@ -55,12 +53,7 @@ async function generateSpeechHandler({
|
|
|
55
53
|
if (!audioStream) {
|
|
56
54
|
throw new chunkFV45V6WC_cjs.HTTPException(500, { message: "Failed to generate speech" });
|
|
57
55
|
}
|
|
58
|
-
|
|
59
|
-
for await (const chunk of audioStream) {
|
|
60
|
-
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
61
|
-
}
|
|
62
|
-
const audioData = Buffer.concat(chunks);
|
|
63
|
-
return { audioData };
|
|
56
|
+
return audioStream;
|
|
64
57
|
} catch (error) {
|
|
65
58
|
return chunkZLBRQFDD_cjs.handleError(error, "Error generating speech");
|
|
66
59
|
}
|
|
@@ -56,7 +56,7 @@ function executeToolHandler(tools) {
|
|
|
56
56
|
runId,
|
|
57
57
|
toolId,
|
|
58
58
|
data,
|
|
59
|
-
|
|
59
|
+
runtimeContext
|
|
60
60
|
}) => {
|
|
61
61
|
try {
|
|
62
62
|
if (!toolId) {
|
|
@@ -78,7 +78,7 @@ function executeToolHandler(tools) {
|
|
|
78
78
|
context: data,
|
|
79
79
|
mastra,
|
|
80
80
|
runId,
|
|
81
|
-
|
|
81
|
+
runtimeContext
|
|
82
82
|
});
|
|
83
83
|
return result;
|
|
84
84
|
} catch (error) {
|
|
@@ -91,7 +91,7 @@ async function executeAgentToolHandler({
|
|
|
91
91
|
agentId,
|
|
92
92
|
toolId,
|
|
93
93
|
data,
|
|
94
|
-
|
|
94
|
+
runtimeContext
|
|
95
95
|
}) {
|
|
96
96
|
try {
|
|
97
97
|
const agent = agentId ? mastra.getAgent(agentId) : null;
|
|
@@ -107,7 +107,7 @@ async function executeAgentToolHandler({
|
|
|
107
107
|
}
|
|
108
108
|
const result = await tool.execute({
|
|
109
109
|
context: data,
|
|
110
|
-
|
|
110
|
+
runtimeContext,
|
|
111
111
|
mastra,
|
|
112
112
|
runId: agentId
|
|
113
113
|
});
|
|
@@ -12,33 +12,48 @@ chunkFV45V6WC_cjs.__export(network_exports, {
|
|
|
12
12
|
getNetworksHandler: () => getNetworksHandler,
|
|
13
13
|
streamGenerateHandler: () => streamGenerateHandler
|
|
14
14
|
});
|
|
15
|
-
async function getNetworksHandler({
|
|
15
|
+
async function getNetworksHandler({
|
|
16
|
+
mastra,
|
|
17
|
+
runtimeContext
|
|
18
|
+
}) {
|
|
16
19
|
try {
|
|
17
20
|
const networks = mastra.getNetworks();
|
|
18
|
-
const serializedNetworks =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
const serializedNetworks = await Promise.all(
|
|
22
|
+
networks.map(async (network) => {
|
|
23
|
+
const routingAgent = network.getRoutingAgent();
|
|
24
|
+
const routingLLM = await routingAgent.getLLM({ runtimeContext });
|
|
25
|
+
const agents = network.getAgents();
|
|
26
|
+
return {
|
|
27
|
+
id: network.formatAgentId(routingAgent.name),
|
|
28
|
+
name: routingAgent.name,
|
|
29
|
+
instructions: routingAgent.instructions,
|
|
30
|
+
agents: await Promise.all(
|
|
31
|
+
agents.map(async (agent) => {
|
|
32
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
33
|
+
return {
|
|
34
|
+
name: agent.name,
|
|
35
|
+
provider: llm?.getProvider(),
|
|
36
|
+
modelId: llm?.getModelId()
|
|
37
|
+
};
|
|
38
|
+
})
|
|
39
|
+
),
|
|
40
|
+
routingModel: {
|
|
41
|
+
provider: routingLLM?.getProvider(),
|
|
42
|
+
modelId: routingLLM?.getModelId()
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
})
|
|
46
|
+
);
|
|
36
47
|
return serializedNetworks;
|
|
37
48
|
} catch (error) {
|
|
38
49
|
return chunkZLBRQFDD_cjs.handleError(error, "Error getting networks");
|
|
39
50
|
}
|
|
40
51
|
}
|
|
41
|
-
async function getNetworkByIdHandler({
|
|
52
|
+
async function getNetworkByIdHandler({
|
|
53
|
+
mastra,
|
|
54
|
+
networkId,
|
|
55
|
+
runtimeContext
|
|
56
|
+
}) {
|
|
42
57
|
try {
|
|
43
58
|
const networks = mastra.getNetworks();
|
|
44
59
|
const network = networks.find((network2) => {
|
|
@@ -49,19 +64,25 @@ async function getNetworkByIdHandler({ mastra, networkId }) {
|
|
|
49
64
|
throw new chunkFV45V6WC_cjs.HTTPException(404, { message: "Network not found" });
|
|
50
65
|
}
|
|
51
66
|
const routingAgent = network.getRoutingAgent();
|
|
67
|
+
const routingLLM = await routingAgent.getLLM({ runtimeContext });
|
|
52
68
|
const agents = network.getAgents();
|
|
53
69
|
const serializedNetwork = {
|
|
54
70
|
id: network.formatAgentId(routingAgent.name),
|
|
55
71
|
name: routingAgent.name,
|
|
56
72
|
instructions: routingAgent.instructions,
|
|
57
|
-
agents:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
73
|
+
agents: await Promise.all(
|
|
74
|
+
agents.map(async (agent) => {
|
|
75
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
76
|
+
return {
|
|
77
|
+
name: agent.name,
|
|
78
|
+
provider: llm?.getProvider(),
|
|
79
|
+
modelId: llm?.getModelId()
|
|
80
|
+
};
|
|
81
|
+
})
|
|
82
|
+
),
|
|
62
83
|
routingModel: {
|
|
63
|
-
provider:
|
|
64
|
-
modelId:
|
|
84
|
+
provider: routingLLM?.getProvider(),
|
|
85
|
+
modelId: routingLLM?.getModelId()
|
|
65
86
|
}
|
|
66
87
|
};
|
|
67
88
|
return serializedNetwork;
|
|
@@ -71,7 +92,7 @@ async function getNetworkByIdHandler({ mastra, networkId }) {
|
|
|
71
92
|
}
|
|
72
93
|
async function generateHandler({
|
|
73
94
|
mastra,
|
|
74
|
-
|
|
95
|
+
runtimeContext,
|
|
75
96
|
networkId,
|
|
76
97
|
body
|
|
77
98
|
}) {
|
|
@@ -82,7 +103,7 @@ async function generateHandler({
|
|
|
82
103
|
}
|
|
83
104
|
chunkQN4KF3BH_cjs.validateBody({ messages: body.messages });
|
|
84
105
|
const { messages, ...rest } = body;
|
|
85
|
-
const result = await network.generate(messages, { ...rest,
|
|
106
|
+
const result = await network.generate(messages, { ...rest, runtimeContext });
|
|
86
107
|
return result;
|
|
87
108
|
} catch (error) {
|
|
88
109
|
return chunkZLBRQFDD_cjs.handleError(error, "Error generating from network");
|
|
@@ -92,7 +113,7 @@ async function streamGenerateHandler({
|
|
|
92
113
|
mastra,
|
|
93
114
|
networkId,
|
|
94
115
|
body,
|
|
95
|
-
|
|
116
|
+
runtimeContext
|
|
96
117
|
}) {
|
|
97
118
|
try {
|
|
98
119
|
const network = mastra.getNetwork(networkId);
|
|
@@ -104,7 +125,7 @@ async function streamGenerateHandler({
|
|
|
104
125
|
const streamResult = await network.stream(messages, {
|
|
105
126
|
output,
|
|
106
127
|
...rest,
|
|
107
|
-
|
|
128
|
+
runtimeContext
|
|
108
129
|
});
|
|
109
130
|
const streamResponse = output ? streamResult.toTextStreamResponse() : streamResult.toDataStreamResponse({
|
|
110
131
|
sendUsage: true,
|
|
@@ -0,0 +1,316 @@
|
|
|
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
|
+
getVNextWorkflowRunHandler: () => getVNextWorkflowRunHandler,
|
|
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 getVNextWorkflowRunHandler({
|
|
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.getWorkflowRun(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.getWorkflowRun(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.getWorkflowRun(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.getWorkflowRun(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.getWorkflowRun(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({ mastra, workflowId }) {
|
|
291
|
+
try {
|
|
292
|
+
if (!workflowId) {
|
|
293
|
+
throw new chunkFV45V6WC_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
294
|
+
}
|
|
295
|
+
const workflow = mastra.vnext_getWorkflow(workflowId);
|
|
296
|
+
const workflowRuns = await workflow.getWorkflowRuns() || {
|
|
297
|
+
runs: [],
|
|
298
|
+
total: 0
|
|
299
|
+
};
|
|
300
|
+
return workflowRuns;
|
|
301
|
+
} catch (error) {
|
|
302
|
+
return chunkZLBRQFDD_cjs.handleError(error, "Error getting workflow runs");
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
exports.createVNextWorkflowRunHandler = createVNextWorkflowRunHandler;
|
|
307
|
+
exports.getVNextWorkflowByIdHandler = getVNextWorkflowByIdHandler;
|
|
308
|
+
exports.getVNextWorkflowRunHandler = getVNextWorkflowRunHandler;
|
|
309
|
+
exports.getVNextWorkflowRunsHandler = getVNextWorkflowRunsHandler;
|
|
310
|
+
exports.getVNextWorkflowsHandler = getVNextWorkflowsHandler;
|
|
311
|
+
exports.resumeAsyncVNextWorkflowHandler = resumeAsyncVNextWorkflowHandler;
|
|
312
|
+
exports.resumeVNextWorkflowHandler = resumeVNextWorkflowHandler;
|
|
313
|
+
exports.startAsyncVNextWorkflowHandler = startAsyncVNextWorkflowHandler;
|
|
314
|
+
exports.startVNextWorkflowRunHandler = startVNextWorkflowRunHandler;
|
|
315
|
+
exports.vNextWorkflows_exports = vNextWorkflows_exports;
|
|
316
|
+
exports.watchVNextWorkflowHandler = watchVNextWorkflowHandler;
|