@mastra/server 0.0.0-switch-to-core-20250424015131 → 0.0.0-tool-call-parts-20250630193309
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 +48 -135
- package/dist/_tsup-dts-rollup.d.cts +541 -51
- package/dist/_tsup-dts-rollup.d.ts +541 -51
- package/dist/chunk-2BCWG3EZ.js +270 -0
- package/dist/{chunk-4JINXASC.js → chunk-55DOQLP6.js} +5 -4
- package/dist/{chunk-QN4KF3BH.cjs → chunk-57CJTIPW.cjs} +2 -2
- package/dist/{chunk-ZLBRQFDD.cjs → chunk-64U3UDTH.cjs} +2 -2
- package/dist/chunk-72LOJGUV.js +421 -0
- package/dist/chunk-75ZPJI57.cjs +9 -0
- package/dist/{chunk-7IWQE76Z.cjs → chunk-B4MQFJ7G.cjs} +16 -10
- package/dist/{chunk-WTHDCRMY.js → chunk-BFOA2QQY.js} +12 -6
- package/dist/{chunk-M56ECCHK.cjs → chunk-BNEY4P4P.cjs} +20 -19
- package/dist/{chunk-RE6YL32K.js → chunk-C7564HUT.js} +52 -30
- package/dist/{chunk-LFOBHRFO.js → chunk-E2LP4J6K.js} +69 -54
- package/dist/chunk-EP3XVEVC.cjs +278 -0
- package/dist/{chunk-5JNVY6DU.js → chunk-EWLR2PNT.js} +7 -5
- package/dist/chunk-GHC4YV6R.js +504 -0
- package/dist/{chunk-L7XE5QTW.js → chunk-H5PTF3Y4.js} +1 -1
- package/dist/chunk-IMBY5XUG.cjs +86 -0
- package/dist/chunk-L3VURYKY.cjs +435 -0
- package/dist/chunk-LI436ITD.cjs +2042 -0
- package/dist/{chunk-3AHQ5RGN.js → chunk-M5ABIP7D.js} +1 -1
- package/dist/chunk-MEGCYGBU.js +2039 -0
- package/dist/chunk-MLKGABMK.js +7 -0
- package/dist/chunk-NGHSYB5B.cjs +332 -0
- package/dist/{chunk-TRDNDNGQ.js → chunk-NYN7KFXL.js} +1 -7
- package/dist/{chunk-FV45V6WC.cjs → chunk-OCWPVYNI.cjs} +0 -7
- package/dist/chunk-QLG2PFHE.js +81 -0
- package/dist/{chunk-Q6SHQECN.js → chunk-R5VGYBV6.js} +34 -10
- package/dist/{chunk-2FJURXCL.cjs → chunk-RQ2Z56EC.cjs} +93 -55
- package/dist/chunk-SDPGVWQJ.cjs +512 -0
- package/dist/{chunk-FPIWDH5Y.cjs → chunk-VPNDC2DI.cjs} +62 -40
- package/dist/chunk-WJY57THV.cjs +118 -0
- package/dist/{chunk-RBQASTUP.js → chunk-XUIJ7WRT.js} +63 -25
- package/dist/{chunk-D3G23FP3.cjs → chunk-Z3PTO2AK.cjs} +24 -22
- package/dist/server/handlers/a2a.cjs +30 -0
- package/dist/server/handlers/a2a.d.cts +6 -0
- package/dist/server/handlers/a2a.d.ts +6 -0
- package/dist/server/handlers/a2a.js +1 -0
- package/dist/server/handlers/agents.cjs +7 -7
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +2 -2
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/legacyWorkflows.cjs +46 -0
- package/dist/server/handlers/legacyWorkflows.d.cts +10 -0
- package/dist/server/handlers/legacyWorkflows.d.ts +10 -0
- package/dist/server/handlers/legacyWorkflows.js +1 -0
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +9 -9
- package/dist/server/handlers/memory.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/tools.cjs +5 -5
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +2 -2
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vNextNetwork.cjs +218 -0
- package/dist/server/handlers/vNextNetwork.d.cts +6 -0
- package/dist/server/handlers/vNextNetwork.d.ts +6 -0
- package/dist/server/handlers/vNextNetwork.js +211 -0
- package/dist/server/handlers/vector.cjs +7 -7
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -4
- package/dist/server/handlers/voice.d.cts +1 -0
- package/dist/server/handlers/voice.d.ts +1 -0
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +21 -13
- package/dist/server/handlers/workflows.d.cts +4 -2
- package/dist/server/handlers/workflows.d.ts +4 -2
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +33 -23
- package/dist/server/handlers.d.cts +2 -0
- package/dist/server/handlers.d.ts +2 -0
- package/dist/server/handlers.js +11 -9
- package/package.json +13 -12
- package/dist/chunk-3EJZQ6TQ.js +0 -49
- package/dist/chunk-55HTWX4C.cjs +0 -93
- package/dist/chunk-5SWCVTNL.cjs +0 -5579
- package/dist/chunk-HCOPJZ4A.cjs +0 -164
- package/dist/chunk-OMN3UI6X.js +0 -5576
- package/dist/chunk-R4J7XQYU.js +0 -156
- package/dist/chunk-SKBVVI24.cjs +0 -54
- package/dist/chunk-TZK63M5N.cjs +0 -317
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { validateBody } from './chunk-
|
|
2
|
-
import { handleError } from './chunk-
|
|
3
|
-
import {
|
|
1
|
+
import { validateBody } from './chunk-H5PTF3Y4.js';
|
|
2
|
+
import { handleError } from './chunk-M5ABIP7D.js';
|
|
3
|
+
import { HTTPException } from './chunk-NYN7KFXL.js';
|
|
4
|
+
import { __export } from './chunk-MLKGABMK.js';
|
|
4
5
|
|
|
5
6
|
// src/server/handlers/network.ts
|
|
6
7
|
var network_exports = {};
|
|
@@ -10,33 +11,48 @@ __export(network_exports, {
|
|
|
10
11
|
getNetworksHandler: () => getNetworksHandler,
|
|
11
12
|
streamGenerateHandler: () => streamGenerateHandler
|
|
12
13
|
});
|
|
13
|
-
async function getNetworksHandler({
|
|
14
|
+
async function getNetworksHandler({
|
|
15
|
+
mastra,
|
|
16
|
+
runtimeContext
|
|
17
|
+
}) {
|
|
14
18
|
try {
|
|
15
19
|
const networks = mastra.getNetworks();
|
|
16
|
-
const serializedNetworks =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
const serializedNetworks = await Promise.all(
|
|
21
|
+
networks.map(async (network) => {
|
|
22
|
+
const routingAgent = network.getRoutingAgent();
|
|
23
|
+
const routingLLM = await routingAgent.getLLM({ runtimeContext });
|
|
24
|
+
const agents = network.getAgents();
|
|
25
|
+
return {
|
|
26
|
+
id: network.formatAgentId(routingAgent.name),
|
|
27
|
+
name: routingAgent.name,
|
|
28
|
+
instructions: routingAgent.instructions,
|
|
29
|
+
agents: await Promise.all(
|
|
30
|
+
agents.map(async (agent) => {
|
|
31
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
32
|
+
return {
|
|
33
|
+
name: agent.name,
|
|
34
|
+
provider: llm?.getProvider(),
|
|
35
|
+
modelId: llm?.getModelId()
|
|
36
|
+
};
|
|
37
|
+
})
|
|
38
|
+
),
|
|
39
|
+
routingModel: {
|
|
40
|
+
provider: routingLLM?.getProvider(),
|
|
41
|
+
modelId: routingLLM?.getModelId()
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
})
|
|
45
|
+
);
|
|
34
46
|
return serializedNetworks;
|
|
35
47
|
} catch (error) {
|
|
36
48
|
return handleError(error, "Error getting networks");
|
|
37
49
|
}
|
|
38
50
|
}
|
|
39
|
-
async function getNetworkByIdHandler({
|
|
51
|
+
async function getNetworkByIdHandler({
|
|
52
|
+
mastra,
|
|
53
|
+
networkId,
|
|
54
|
+
runtimeContext
|
|
55
|
+
}) {
|
|
40
56
|
try {
|
|
41
57
|
const networks = mastra.getNetworks();
|
|
42
58
|
const network = networks.find((network2) => {
|
|
@@ -47,19 +63,25 @@ async function getNetworkByIdHandler({ mastra, networkId }) {
|
|
|
47
63
|
throw new HTTPException(404, { message: "Network not found" });
|
|
48
64
|
}
|
|
49
65
|
const routingAgent = network.getRoutingAgent();
|
|
66
|
+
const routingLLM = await routingAgent.getLLM({ runtimeContext });
|
|
50
67
|
const agents = network.getAgents();
|
|
51
68
|
const serializedNetwork = {
|
|
52
69
|
id: network.formatAgentId(routingAgent.name),
|
|
53
70
|
name: routingAgent.name,
|
|
54
71
|
instructions: routingAgent.instructions,
|
|
55
|
-
agents:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
72
|
+
agents: await Promise.all(
|
|
73
|
+
agents.map(async (agent) => {
|
|
74
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
75
|
+
return {
|
|
76
|
+
name: agent.name,
|
|
77
|
+
provider: llm?.getProvider(),
|
|
78
|
+
modelId: llm?.getModelId()
|
|
79
|
+
};
|
|
80
|
+
})
|
|
81
|
+
),
|
|
60
82
|
routingModel: {
|
|
61
|
-
provider:
|
|
62
|
-
modelId:
|
|
83
|
+
provider: routingLLM?.getProvider(),
|
|
84
|
+
modelId: routingLLM?.getModelId()
|
|
63
85
|
}
|
|
64
86
|
};
|
|
65
87
|
return serializedNetwork;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { stringify, esm_default } from './chunk-
|
|
2
|
-
import { handleError } from './chunk-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { stringify, esm_default } from './chunk-MEGCYGBU.js';
|
|
2
|
+
import { handleError } from './chunk-M5ABIP7D.js';
|
|
3
|
+
import { HTTPException } from './chunk-NYN7KFXL.js';
|
|
4
|
+
import { __export } from './chunk-MLKGABMK.js';
|
|
5
|
+
import { ReadableStream } from 'stream/web';
|
|
5
6
|
|
|
6
|
-
// src/server/handlers/
|
|
7
|
-
var
|
|
8
|
-
__export(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
// src/server/handlers/legacyWorkflows.ts
|
|
8
|
+
var legacyWorkflows_exports = {};
|
|
9
|
+
__export(legacyWorkflows_exports, {
|
|
10
|
+
createLegacyWorkflowRunHandler: () => createLegacyWorkflowRunHandler,
|
|
11
|
+
getLegacyWorkflowByIdHandler: () => getLegacyWorkflowByIdHandler,
|
|
12
|
+
getLegacyWorkflowRunHandler: () => getLegacyWorkflowRunHandler,
|
|
13
|
+
getLegacyWorkflowRunsHandler: () => getLegacyWorkflowRunsHandler,
|
|
14
|
+
getLegacyWorkflowsHandler: () => getLegacyWorkflowsHandler,
|
|
15
|
+
resumeAsyncLegacyWorkflowHandler: () => resumeAsyncLegacyWorkflowHandler,
|
|
16
|
+
resumeLegacyWorkflowHandler: () => resumeLegacyWorkflowHandler,
|
|
17
|
+
startAsyncLegacyWorkflowHandler: () => startAsyncLegacyWorkflowHandler,
|
|
18
|
+
startLegacyWorkflowRunHandler: () => startLegacyWorkflowRunHandler,
|
|
19
|
+
watchLegacyWorkflowHandler: () => watchLegacyWorkflowHandler
|
|
19
20
|
});
|
|
20
|
-
async function
|
|
21
|
+
async function getLegacyWorkflowsHandler({ mastra }) {
|
|
21
22
|
try {
|
|
22
|
-
const workflows = mastra.
|
|
23
|
+
const workflows = mastra.legacy_getWorkflows({ serialized: false });
|
|
23
24
|
const _workflows = Object.entries(workflows).reduce((acc, [key, workflow]) => {
|
|
24
25
|
if (workflow.isNested) return acc;
|
|
25
26
|
acc[key] = {
|
|
@@ -32,7 +33,9 @@ async function getWorkflowsHandler({ mastra }) {
|
|
|
32
33
|
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
33
34
|
const _step = step;
|
|
34
35
|
acc2[key2] = {
|
|
35
|
-
|
|
36
|
+
id: _step.id,
|
|
37
|
+
description: _step.description,
|
|
38
|
+
workflowId: _step.workflowId,
|
|
36
39
|
inputSchema: _step.inputSchema ? stringify(esm_default(_step.inputSchema)) : void 0,
|
|
37
40
|
outputSchema: _step.outputSchema ? stringify(esm_default(_step.outputSchema)) : void 0
|
|
38
41
|
};
|
|
@@ -46,12 +49,12 @@ async function getWorkflowsHandler({ mastra }) {
|
|
|
46
49
|
throw new HTTPException(500, { message: error?.message || "Error getting workflows" });
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
|
-
async function
|
|
52
|
+
async function getLegacyWorkflowByIdHandler({ mastra, workflowId }) {
|
|
50
53
|
try {
|
|
51
54
|
if (!workflowId) {
|
|
52
55
|
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
53
56
|
}
|
|
54
|
-
const workflow = mastra.
|
|
57
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
55
58
|
if (!workflow) {
|
|
56
59
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
57
60
|
}
|
|
@@ -65,7 +68,9 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
|
|
|
65
68
|
steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
|
|
66
69
|
const _step = step;
|
|
67
70
|
acc[key] = {
|
|
68
|
-
|
|
71
|
+
id: _step.id,
|
|
72
|
+
description: _step.description,
|
|
73
|
+
workflowId: _step.workflowId,
|
|
69
74
|
inputSchema: _step.inputSchema ? stringify(esm_default(_step.inputSchema)) : void 0,
|
|
70
75
|
outputSchema: _step.outputSchema ? stringify(esm_default(_step.outputSchema)) : void 0
|
|
71
76
|
};
|
|
@@ -76,7 +81,7 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
|
|
|
76
81
|
throw new HTTPException(500, { message: error?.message || "Error getting workflow" });
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
|
-
async function
|
|
84
|
+
async function startAsyncLegacyWorkflowHandler({
|
|
80
85
|
mastra,
|
|
81
86
|
runtimeContext,
|
|
82
87
|
workflowId,
|
|
@@ -87,19 +92,19 @@ async function startAsyncWorkflowHandler({
|
|
|
87
92
|
if (!workflowId) {
|
|
88
93
|
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
89
94
|
}
|
|
90
|
-
const workflow = mastra.
|
|
95
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
91
96
|
if (!workflow) {
|
|
92
97
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
93
98
|
}
|
|
94
99
|
if (!runId) {
|
|
95
|
-
const
|
|
96
|
-
const result2 = await start({
|
|
100
|
+
const newRun = workflow.createRun();
|
|
101
|
+
const result2 = await newRun.start({
|
|
97
102
|
triggerData,
|
|
98
103
|
runtimeContext
|
|
99
104
|
});
|
|
100
105
|
return result2;
|
|
101
106
|
}
|
|
102
|
-
const run = workflow.
|
|
107
|
+
const run = workflow.getMemoryRun(runId);
|
|
103
108
|
if (!run) {
|
|
104
109
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
105
110
|
}
|
|
@@ -112,7 +117,7 @@ async function startAsyncWorkflowHandler({
|
|
|
112
117
|
throw new HTTPException(500, { message: error?.message || "Error executing workflow" });
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
|
-
async function
|
|
120
|
+
async function getLegacyWorkflowRunHandler({
|
|
116
121
|
mastra,
|
|
117
122
|
workflowId,
|
|
118
123
|
runId
|
|
@@ -124,11 +129,11 @@ async function getWorkflowRunHandler({
|
|
|
124
129
|
if (!runId) {
|
|
125
130
|
throw new HTTPException(400, { message: "Run ID is required" });
|
|
126
131
|
}
|
|
127
|
-
const workflow = mastra.
|
|
132
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
128
133
|
if (!workflow) {
|
|
129
134
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
130
135
|
}
|
|
131
|
-
const run = workflow.getRun(runId);
|
|
136
|
+
const run = await workflow.getRun(runId);
|
|
132
137
|
if (!run) {
|
|
133
138
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
134
139
|
}
|
|
@@ -137,7 +142,7 @@ async function getWorkflowRunHandler({
|
|
|
137
142
|
throw new HTTPException(500, { message: error?.message || "Error getting workflow run" });
|
|
138
143
|
}
|
|
139
144
|
}
|
|
140
|
-
async function
|
|
145
|
+
async function createLegacyWorkflowRunHandler({
|
|
141
146
|
mastra,
|
|
142
147
|
workflowId,
|
|
143
148
|
runId: prevRunId
|
|
@@ -146,17 +151,17 @@ async function createRunHandler({
|
|
|
146
151
|
if (!workflowId) {
|
|
147
152
|
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
148
153
|
}
|
|
149
|
-
const workflow = mastra.
|
|
154
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
150
155
|
if (!workflow) {
|
|
151
156
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
152
157
|
}
|
|
153
|
-
const
|
|
154
|
-
return { runId };
|
|
158
|
+
const newRun = workflow.createRun({ runId: prevRunId });
|
|
159
|
+
return { runId: newRun.runId };
|
|
155
160
|
} catch (error) {
|
|
156
161
|
throw new HTTPException(500, { message: error?.message || "Error creating workflow run" });
|
|
157
162
|
}
|
|
158
163
|
}
|
|
159
|
-
async function
|
|
164
|
+
async function startLegacyWorkflowRunHandler({
|
|
160
165
|
mastra,
|
|
161
166
|
runtimeContext,
|
|
162
167
|
workflowId,
|
|
@@ -170,12 +175,12 @@ async function startWorkflowRunHandler({
|
|
|
170
175
|
if (!runId) {
|
|
171
176
|
throw new HTTPException(400, { message: "runId required to start run" });
|
|
172
177
|
}
|
|
173
|
-
const workflow = mastra.
|
|
174
|
-
const run = workflow.
|
|
178
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
179
|
+
const run = workflow.getMemoryRun(runId);
|
|
175
180
|
if (!run) {
|
|
176
181
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
177
182
|
}
|
|
178
|
-
|
|
183
|
+
void run.start({
|
|
179
184
|
triggerData,
|
|
180
185
|
runtimeContext
|
|
181
186
|
});
|
|
@@ -184,7 +189,7 @@ async function startWorkflowRunHandler({
|
|
|
184
189
|
return handleError(e, "Error starting workflow run");
|
|
185
190
|
}
|
|
186
191
|
}
|
|
187
|
-
async function
|
|
192
|
+
async function watchLegacyWorkflowHandler({
|
|
188
193
|
mastra,
|
|
189
194
|
workflowId,
|
|
190
195
|
runId
|
|
@@ -196,8 +201,8 @@ async function watchWorkflowHandler({
|
|
|
196
201
|
if (!runId) {
|
|
197
202
|
throw new HTTPException(400, { message: "runId required to watch workflow" });
|
|
198
203
|
}
|
|
199
|
-
const workflow = mastra.
|
|
200
|
-
const run = workflow.
|
|
204
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
205
|
+
const run = workflow.getMemoryRun(runId);
|
|
201
206
|
if (!run) {
|
|
202
207
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
203
208
|
}
|
|
@@ -213,8 +218,10 @@ async function watchWorkflowHandler({
|
|
|
213
218
|
asyncRef = null;
|
|
214
219
|
}
|
|
215
220
|
asyncRef = setImmediate(() => {
|
|
216
|
-
|
|
221
|
+
const runDone = Object.values(activePathsObj).every((value) => value.status !== "executing");
|
|
222
|
+
if (runDone) {
|
|
217
223
|
controller.close();
|
|
224
|
+
unwatch?.();
|
|
218
225
|
}
|
|
219
226
|
});
|
|
220
227
|
});
|
|
@@ -228,7 +235,7 @@ async function watchWorkflowHandler({
|
|
|
228
235
|
return handleError(error, "Error watching workflow");
|
|
229
236
|
}
|
|
230
237
|
}
|
|
231
|
-
async function
|
|
238
|
+
async function resumeAsyncLegacyWorkflowHandler({
|
|
232
239
|
mastra,
|
|
233
240
|
workflowId,
|
|
234
241
|
runId,
|
|
@@ -242,8 +249,8 @@ async function resumeAsyncWorkflowHandler({
|
|
|
242
249
|
if (!runId) {
|
|
243
250
|
throw new HTTPException(400, { message: "runId required to resume workflow" });
|
|
244
251
|
}
|
|
245
|
-
const workflow = mastra.
|
|
246
|
-
const run = workflow.
|
|
252
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
253
|
+
const run = workflow.getMemoryRun(runId);
|
|
247
254
|
if (!run) {
|
|
248
255
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
249
256
|
}
|
|
@@ -257,7 +264,7 @@ async function resumeAsyncWorkflowHandler({
|
|
|
257
264
|
return handleError(error, "Error resuming workflow step");
|
|
258
265
|
}
|
|
259
266
|
}
|
|
260
|
-
async function
|
|
267
|
+
async function resumeLegacyWorkflowHandler({
|
|
261
268
|
mastra,
|
|
262
269
|
workflowId,
|
|
263
270
|
runId,
|
|
@@ -271,12 +278,12 @@ async function resumeWorkflowHandler({
|
|
|
271
278
|
if (!runId) {
|
|
272
279
|
throw new HTTPException(400, { message: "runId required to resume workflow" });
|
|
273
280
|
}
|
|
274
|
-
const workflow = mastra.
|
|
275
|
-
const run = workflow.
|
|
281
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
282
|
+
const run = workflow.getMemoryRun(runId);
|
|
276
283
|
if (!run) {
|
|
277
284
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
278
285
|
}
|
|
279
|
-
|
|
286
|
+
void run.resume({
|
|
280
287
|
stepId: body.stepId,
|
|
281
288
|
context: body.context,
|
|
282
289
|
runtimeContext
|
|
@@ -286,13 +293,21 @@ async function resumeWorkflowHandler({
|
|
|
286
293
|
return handleError(error, "Error resuming workflow");
|
|
287
294
|
}
|
|
288
295
|
}
|
|
289
|
-
async function
|
|
296
|
+
async function getLegacyWorkflowRunsHandler({
|
|
297
|
+
mastra,
|
|
298
|
+
workflowId,
|
|
299
|
+
fromDate,
|
|
300
|
+
toDate,
|
|
301
|
+
limit,
|
|
302
|
+
offset,
|
|
303
|
+
resourceId
|
|
304
|
+
}) {
|
|
290
305
|
try {
|
|
291
306
|
if (!workflowId) {
|
|
292
307
|
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
293
308
|
}
|
|
294
|
-
const workflow = mastra.
|
|
295
|
-
const workflowRuns = await workflow.getWorkflowRuns() || {
|
|
309
|
+
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
310
|
+
const workflowRuns = await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId }) || {
|
|
296
311
|
runs: [],
|
|
297
312
|
total: 0
|
|
298
313
|
};
|
|
@@ -302,4 +317,4 @@ async function getWorkflowRunsHandler({ mastra, workflowId }) {
|
|
|
302
317
|
}
|
|
303
318
|
}
|
|
304
319
|
|
|
305
|
-
export {
|
|
320
|
+
export { createLegacyWorkflowRunHandler, getLegacyWorkflowByIdHandler, getLegacyWorkflowRunHandler, getLegacyWorkflowRunsHandler, getLegacyWorkflowsHandler, legacyWorkflows_exports, resumeAsyncLegacyWorkflowHandler, resumeLegacyWorkflowHandler, startAsyncLegacyWorkflowHandler, startLegacyWorkflowRunHandler, watchLegacyWorkflowHandler };
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkLI436ITD_cjs = require('./chunk-LI436ITD.cjs');
|
|
4
|
+
var chunk57CJTIPW_cjs = require('./chunk-57CJTIPW.cjs');
|
|
5
|
+
var chunk64U3UDTH_cjs = require('./chunk-64U3UDTH.cjs');
|
|
6
|
+
var chunkOCWPVYNI_cjs = require('./chunk-OCWPVYNI.cjs');
|
|
7
|
+
var chunk75ZPJI57_cjs = require('./chunk-75ZPJI57.cjs');
|
|
8
|
+
var runtimeContext = require('@mastra/core/runtime-context');
|
|
9
|
+
|
|
10
|
+
// src/server/handlers/agents.ts
|
|
11
|
+
var agents_exports = {};
|
|
12
|
+
chunk75ZPJI57_cjs.__export(agents_exports, {
|
|
13
|
+
generateHandler: () => generateHandler,
|
|
14
|
+
getAgentByIdHandler: () => getAgentByIdHandler,
|
|
15
|
+
getAgentsHandler: () => getAgentsHandler,
|
|
16
|
+
getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
|
|
17
|
+
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
18
|
+
streamGenerateHandler: () => streamGenerateHandler
|
|
19
|
+
});
|
|
20
|
+
async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
21
|
+
try {
|
|
22
|
+
const agents = mastra.getAgents();
|
|
23
|
+
const serializedAgentsMap = await Promise.all(
|
|
24
|
+
Object.entries(agents).map(async ([id, agent]) => {
|
|
25
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
26
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
27
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
28
|
+
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });
|
|
29
|
+
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });
|
|
30
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
31
|
+
const _tool = tool;
|
|
32
|
+
acc[key] = {
|
|
33
|
+
..._tool,
|
|
34
|
+
inputSchema: _tool.inputSchema ? chunkLI436ITD_cjs.stringify(chunkLI436ITD_cjs.esm_default(_tool.inputSchema)) : void 0,
|
|
35
|
+
outputSchema: _tool.outputSchema ? chunkLI436ITD_cjs.stringify(chunkLI436ITD_cjs.esm_default(_tool.outputSchema)) : void 0
|
|
36
|
+
};
|
|
37
|
+
return acc;
|
|
38
|
+
}, {});
|
|
39
|
+
let serializedAgentWorkflows = {};
|
|
40
|
+
if ("getWorkflows" in agent) {
|
|
41
|
+
const logger = mastra.getLogger();
|
|
42
|
+
try {
|
|
43
|
+
const workflows = await agent.getWorkflows({ runtimeContext });
|
|
44
|
+
serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
|
|
45
|
+
return {
|
|
46
|
+
...acc,
|
|
47
|
+
[key]: {
|
|
48
|
+
name: workflow.name
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}, {});
|
|
52
|
+
} catch (error) {
|
|
53
|
+
logger.error("Error getting workflows for agent", { agentName: agent.name, error });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
id,
|
|
58
|
+
name: agent.name,
|
|
59
|
+
instructions,
|
|
60
|
+
tools: serializedAgentTools,
|
|
61
|
+
workflows: serializedAgentWorkflows,
|
|
62
|
+
provider: llm?.getProvider(),
|
|
63
|
+
modelId: llm?.getModelId(),
|
|
64
|
+
defaultGenerateOptions,
|
|
65
|
+
defaultStreamOptions
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
);
|
|
69
|
+
const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
|
|
70
|
+
acc[id] = rest;
|
|
71
|
+
return acc;
|
|
72
|
+
}, {});
|
|
73
|
+
return serializedAgents;
|
|
74
|
+
} catch (error) {
|
|
75
|
+
return chunk64U3UDTH_cjs.handleError(error, "Error getting agents");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function getAgentByIdHandler({
|
|
79
|
+
mastra,
|
|
80
|
+
runtimeContext,
|
|
81
|
+
agentId,
|
|
82
|
+
isPlayground = false
|
|
83
|
+
}) {
|
|
84
|
+
try {
|
|
85
|
+
const agent = mastra.getAgent(agentId);
|
|
86
|
+
if (!agent) {
|
|
87
|
+
throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
88
|
+
}
|
|
89
|
+
const tools = await agent.getTools({ runtimeContext });
|
|
90
|
+
const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
91
|
+
const _tool = tool;
|
|
92
|
+
acc[key] = {
|
|
93
|
+
..._tool,
|
|
94
|
+
inputSchema: _tool.inputSchema ? chunkLI436ITD_cjs.stringify(chunkLI436ITD_cjs.esm_default(_tool.inputSchema)) : void 0,
|
|
95
|
+
outputSchema: _tool.outputSchema ? chunkLI436ITD_cjs.stringify(chunkLI436ITD_cjs.esm_default(_tool.outputSchema)) : void 0
|
|
96
|
+
};
|
|
97
|
+
return acc;
|
|
98
|
+
}, {});
|
|
99
|
+
let serializedAgentWorkflows = {};
|
|
100
|
+
if ("getWorkflows" in agent) {
|
|
101
|
+
const logger = mastra.getLogger();
|
|
102
|
+
try {
|
|
103
|
+
const workflows = await agent.getWorkflows({ runtimeContext });
|
|
104
|
+
serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
|
|
105
|
+
return {
|
|
106
|
+
...acc,
|
|
107
|
+
[key]: {
|
|
108
|
+
name: workflow.name,
|
|
109
|
+
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
110
|
+
return {
|
|
111
|
+
...acc2,
|
|
112
|
+
[key2]: {
|
|
113
|
+
id: step.id,
|
|
114
|
+
description: step.description
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}, {})
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}, {});
|
|
121
|
+
} catch (error) {
|
|
122
|
+
logger.error("Error getting workflows for agent", { agentName: agent.name, error });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
let proxyRuntimeContext = runtimeContext;
|
|
126
|
+
if (isPlayground) {
|
|
127
|
+
proxyRuntimeContext = new Proxy(runtimeContext, {
|
|
128
|
+
get(target, prop) {
|
|
129
|
+
if (prop === "get") {
|
|
130
|
+
return function(key) {
|
|
131
|
+
const value = target.get(key);
|
|
132
|
+
return value ?? `<${key}>`;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return Reflect.get(target, prop);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
|
|
140
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
141
|
+
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
|
|
142
|
+
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
|
|
143
|
+
return {
|
|
144
|
+
name: agent.name,
|
|
145
|
+
instructions,
|
|
146
|
+
tools: serializedAgentTools,
|
|
147
|
+
workflows: serializedAgentWorkflows,
|
|
148
|
+
provider: llm?.getProvider(),
|
|
149
|
+
modelId: llm?.getModelId(),
|
|
150
|
+
defaultGenerateOptions,
|
|
151
|
+
defaultStreamOptions
|
|
152
|
+
};
|
|
153
|
+
} catch (error) {
|
|
154
|
+
return chunk64U3UDTH_cjs.handleError(error, "Error getting agent");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function getEvalsByAgentIdHandler({
|
|
158
|
+
mastra,
|
|
159
|
+
runtimeContext,
|
|
160
|
+
agentId
|
|
161
|
+
}) {
|
|
162
|
+
try {
|
|
163
|
+
const agent = mastra.getAgent(agentId);
|
|
164
|
+
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
|
|
165
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
166
|
+
return {
|
|
167
|
+
id: agentId,
|
|
168
|
+
name: agent.name,
|
|
169
|
+
instructions,
|
|
170
|
+
evals
|
|
171
|
+
};
|
|
172
|
+
} catch (error) {
|
|
173
|
+
return chunk64U3UDTH_cjs.handleError(error, "Error getting test evals");
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async function getLiveEvalsByAgentIdHandler({
|
|
177
|
+
mastra,
|
|
178
|
+
runtimeContext,
|
|
179
|
+
agentId
|
|
180
|
+
}) {
|
|
181
|
+
try {
|
|
182
|
+
const agent = mastra.getAgent(agentId);
|
|
183
|
+
const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
|
|
184
|
+
const instructions = await agent.getInstructions({ runtimeContext });
|
|
185
|
+
return {
|
|
186
|
+
id: agentId,
|
|
187
|
+
name: agent.name,
|
|
188
|
+
instructions,
|
|
189
|
+
evals
|
|
190
|
+
};
|
|
191
|
+
} catch (error) {
|
|
192
|
+
return chunk64U3UDTH_cjs.handleError(error, "Error getting live evals");
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
async function generateHandler({
|
|
196
|
+
mastra,
|
|
197
|
+
runtimeContext: runtimeContext$1,
|
|
198
|
+
agentId,
|
|
199
|
+
body,
|
|
200
|
+
abortSignal
|
|
201
|
+
}) {
|
|
202
|
+
try {
|
|
203
|
+
const agent = mastra.getAgent(agentId);
|
|
204
|
+
if (!agent) {
|
|
205
|
+
throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
206
|
+
}
|
|
207
|
+
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
208
|
+
const finalResourceId = resourceId ?? resourceid;
|
|
209
|
+
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
210
|
+
...Array.from(runtimeContext$1.entries()),
|
|
211
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
212
|
+
]);
|
|
213
|
+
chunk57CJTIPW_cjs.validateBody({ messages });
|
|
214
|
+
const result = await agent.generate(messages, {
|
|
215
|
+
...rest,
|
|
216
|
+
// @ts-expect-error TODO fix types
|
|
217
|
+
resourceId: finalResourceId,
|
|
218
|
+
runtimeContext: finalRuntimeContext,
|
|
219
|
+
signal: abortSignal
|
|
220
|
+
});
|
|
221
|
+
return result;
|
|
222
|
+
} catch (error) {
|
|
223
|
+
return chunk64U3UDTH_cjs.handleError(error, "Error generating from agent");
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
async function streamGenerateHandler({
|
|
227
|
+
mastra,
|
|
228
|
+
runtimeContext: runtimeContext$1,
|
|
229
|
+
agentId,
|
|
230
|
+
body,
|
|
231
|
+
abortSignal
|
|
232
|
+
}) {
|
|
233
|
+
try {
|
|
234
|
+
const agent = mastra.getAgent(agentId);
|
|
235
|
+
if (!agent) {
|
|
236
|
+
throw new chunkOCWPVYNI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
237
|
+
}
|
|
238
|
+
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
239
|
+
const finalResourceId = resourceId ?? resourceid;
|
|
240
|
+
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
241
|
+
...Array.from(runtimeContext$1.entries()),
|
|
242
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
243
|
+
]);
|
|
244
|
+
chunk57CJTIPW_cjs.validateBody({ messages });
|
|
245
|
+
const streamResult = await agent.stream(messages, {
|
|
246
|
+
...rest,
|
|
247
|
+
// @ts-expect-error TODO fix types
|
|
248
|
+
resourceId: finalResourceId,
|
|
249
|
+
runtimeContext: finalRuntimeContext,
|
|
250
|
+
signal: abortSignal
|
|
251
|
+
});
|
|
252
|
+
const streamResponse = rest.output ? streamResult.toTextStreamResponse({
|
|
253
|
+
headers: {
|
|
254
|
+
"Transfer-Encoding": "chunked"
|
|
255
|
+
}
|
|
256
|
+
}) : streamResult.toDataStreamResponse({
|
|
257
|
+
sendUsage: true,
|
|
258
|
+
sendReasoning: true,
|
|
259
|
+
getErrorMessage: (error) => {
|
|
260
|
+
return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;
|
|
261
|
+
},
|
|
262
|
+
headers: {
|
|
263
|
+
"Transfer-Encoding": "chunked"
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
return streamResponse;
|
|
267
|
+
} catch (error) {
|
|
268
|
+
throw new chunkOCWPVYNI_cjs.HTTPException(error?.status ?? 500, { message: error?.message ?? "Error streaming from agent" });
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
exports.agents_exports = agents_exports;
|
|
273
|
+
exports.generateHandler = generateHandler;
|
|
274
|
+
exports.getAgentByIdHandler = getAgentByIdHandler;
|
|
275
|
+
exports.getAgentsHandler = getAgentsHandler;
|
|
276
|
+
exports.getEvalsByAgentIdHandler = getEvalsByAgentIdHandler;
|
|
277
|
+
exports.getLiveEvalsByAgentIdHandler = getLiveEvalsByAgentIdHandler;
|
|
278
|
+
exports.streamGenerateHandler = streamGenerateHandler;
|