@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.
Files changed (33) hide show
  1. package/dist/_tsup-dts-rollup.d.cts +111 -30
  2. package/dist/_tsup-dts-rollup.d.ts +111 -30
  3. package/dist/{chunk-4WJ5GHRG.cjs → chunk-4BIX6GMY.cjs} +56 -31
  4. package/dist/{chunk-A7DF4ETD.cjs → chunk-55HTWX4C.cjs} +2 -9
  5. package/dist/{chunk-XISBMH56.js → chunk-5JNVY6DU.js} +4 -4
  6. package/dist/{chunk-JLDXUWK7.cjs → chunk-5YGDYMRB.cjs} +52 -31
  7. package/dist/chunk-AELYAUEE.cjs +316 -0
  8. package/dist/{chunk-HABV7TZK.cjs → chunk-D3G23FP3.cjs} +4 -4
  9. package/dist/{chunk-RNU4JMLM.cjs → chunk-EVCC233P.cjs} +15 -11
  10. package/dist/chunk-JPB6RPGB.js +304 -0
  11. package/dist/{chunk-4B7OUZXW.js → chunk-M3YJLWTU.js} +15 -11
  12. package/dist/{chunk-3RVHWGWO.js → chunk-Q6SHQECN.js} +2 -9
  13. package/dist/{chunk-YANVFOYA.js → chunk-QJ3AHN64.js} +52 -31
  14. package/dist/{chunk-TFFNX7FI.js → chunk-Y3SV5XK4.js} +56 -31
  15. package/dist/server/handlers/agents.cjs +7 -7
  16. package/dist/server/handlers/agents.js +1 -1
  17. package/dist/server/handlers/network.cjs +5 -5
  18. package/dist/server/handlers/network.js +1 -1
  19. package/dist/server/handlers/tools.cjs +5 -5
  20. package/dist/server/handlers/tools.js +1 -1
  21. package/dist/server/handlers/vNextWorkflows.cjs +46 -0
  22. package/dist/server/handlers/vNextWorkflows.d.cts +10 -0
  23. package/dist/server/handlers/vNextWorkflows.d.ts +10 -0
  24. package/dist/server/handlers/vNextWorkflows.js +1 -0
  25. package/dist/server/handlers/voice.cjs +4 -4
  26. package/dist/server/handlers/voice.js +1 -1
  27. package/dist/server/handlers/workflows.cjs +11 -11
  28. package/dist/server/handlers/workflows.js +1 -1
  29. package/dist/server/handlers.cjs +15 -10
  30. package/dist/server/handlers.d.cts +1 -0
  31. package/dist/server/handlers.d.ts +1 -0
  32. package/dist/server/handlers.js +6 -5
  33. 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 serializedAgents = Object.entries(agents).reduce((acc, [_id, _agent]) => {
22
- const agent = _agent;
23
- const serializedAgentTools = Object.entries(agent?.tools || {}).reduce((acc2, [key, tool]) => {
24
- const _tool = tool;
25
- acc2[key] = {
26
- ..._tool,
27
- inputSchema: _tool.inputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_tool.inputSchema)) : void 0,
28
- outputSchema: _tool.outputSchema ? chunk5SWCVTNL_cjs.stringify(chunk5SWCVTNL_cjs.esm_default(_tool.outputSchema)) : void 0
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
- return acc2;
31
- }, {});
32
- acc[_id] = {
33
- name: agent.name,
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({ mastra, agentId }) {
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 serializedAgentTools = Object.entries(agent?.tools || {}).reduce((acc, [key, tool]) => {
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: agent.instructions,
78
+ instructions,
64
79
  tools: serializedAgentTools,
65
- provider: agent.llm?.getProvider(),
66
- modelId: agent.llm?.getModelId()
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({ mastra, agentId }) {
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: agent.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({ mastra, agentId }) {
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: agent.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
- container,
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
- container
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
- container,
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
- container
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: void 0,
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
- const chunks = [];
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
- container
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
- container
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
- container
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
- container,
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({ mastra }) {
15
+ async function getNetworksHandler({
16
+ mastra,
17
+ runtimeContext
18
+ }) {
16
19
  try {
17
20
  const networks = mastra.getNetworks();
18
- const serializedNetworks = networks.map((network) => {
19
- const routingAgent = network.getRoutingAgent();
20
- const agents = network.getAgents();
21
- return {
22
- id: network.formatAgentId(routingAgent.name),
23
- name: routingAgent.name,
24
- instructions: routingAgent.instructions,
25
- agents: agents.map((agent) => ({
26
- name: agent.name,
27
- provider: agent.llm?.getProvider(),
28
- modelId: agent.llm?.getModelId()
29
- })),
30
- routingModel: {
31
- provider: routingAgent.llm?.getProvider(),
32
- modelId: routingAgent.llm?.getModelId()
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({ mastra, networkId }) {
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: agents.map((agent) => ({
58
- name: agent.name,
59
- provider: agent.llm?.getProvider(),
60
- modelId: agent.llm?.getModelId()
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: routingAgent.llm?.getProvider(),
64
- modelId: routingAgent.llm?.getModelId()
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
- container,
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, container });
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
- container
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
- container
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;