@mastra/server 0.0.0-ai-v5-20250729181825 → 0.0.0-ai-v5-20250801192614
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/{chunk-AJRURO6F.cjs → chunk-3UVCRG2A.cjs} +26 -24
- package/dist/chunk-3UVCRG2A.cjs.map +1 -0
- package/dist/{chunk-4D66QEKC.js → chunk-4MQU6AJN.js} +5 -3
- package/dist/chunk-4MQU6AJN.js.map +1 -0
- package/dist/{chunk-CCGRCYWJ.cjs → chunk-4QSNRCOT.cjs} +4 -2
- package/dist/chunk-4QSNRCOT.cjs.map +1 -0
- package/dist/{chunk-RHSWAXKB.cjs → chunk-4US5W7PH.cjs} +26 -24
- package/dist/chunk-4US5W7PH.cjs.map +1 -0
- package/dist/{chunk-36BLNJHS.js → chunk-7FHF55WA.js} +2 -0
- package/dist/chunk-7FHF55WA.js.map +1 -0
- package/dist/{chunk-EZXKTV2W.js → chunk-7MEJQMCS.js} +7 -5
- package/dist/chunk-7MEJQMCS.js.map +1 -0
- package/dist/{chunk-2KZFMI6P.cjs → chunk-7NADHFD2.cjs} +2 -0
- package/dist/chunk-7NADHFD2.cjs.map +1 -0
- package/dist/{chunk-QGX47B5D.cjs → chunk-BED2O446.cjs} +11 -9
- package/dist/chunk-BED2O446.cjs.map +1 -0
- package/dist/{chunk-T7HAZC2E.js → chunk-BUOJL3MN.js} +6 -4
- package/dist/chunk-BUOJL3MN.js.map +1 -0
- package/dist/{chunk-HAGPF7OS.cjs → chunk-CERIVHRO.cjs} +16 -14
- package/dist/chunk-CERIVHRO.cjs.map +1 -0
- package/dist/{chunk-LF7P5PLR.js → chunk-CY4TP3FK.js} +3 -1
- package/dist/chunk-CY4TP3FK.js.map +1 -0
- package/dist/{chunk-WNVFNNWN.js → chunk-G7NVCO5M.js} +5 -3
- package/dist/chunk-G7NVCO5M.js.map +1 -0
- package/dist/{chunk-KHZKYUNR.js → chunk-HWHKM67I.js} +6 -4
- package/dist/chunk-HWHKM67I.js.map +1 -0
- package/dist/{chunk-BYCOGHDE.js → chunk-HXZTRBY4.js} +6 -4
- package/dist/chunk-HXZTRBY4.js.map +1 -0
- package/dist/{chunk-G7KH752Y.cjs → chunk-ILCWPBYQ.cjs} +9 -7
- package/dist/chunk-ILCWPBYQ.cjs.map +1 -0
- package/dist/{chunk-UCV4247U.cjs → chunk-JGVY3KWV.cjs} +47 -45
- package/dist/chunk-JGVY3KWV.cjs.map +1 -0
- package/dist/{chunk-MKHRYD4K.js → chunk-KXXJ7Y4H.js} +37 -5
- package/dist/chunk-KXXJ7Y4H.js.map +1 -0
- package/dist/{chunk-HISYIDYH.cjs → chunk-LRUH33B4.cjs} +2 -0
- package/dist/chunk-LRUH33B4.cjs.map +1 -0
- package/dist/{chunk-FC5QBMOM.cjs → chunk-LZASFI6W.cjs} +91 -58
- package/dist/chunk-LZASFI6W.cjs.map +1 -0
- package/dist/{chunk-LCM566I4.js → chunk-MMROOK5J.js} +2 -0
- package/dist/chunk-MMROOK5J.js.map +1 -0
- package/dist/{chunk-7TP2LX5L.cjs → chunk-NCS2OXX6.cjs} +20 -18
- package/dist/chunk-NCS2OXX6.cjs.map +1 -0
- package/dist/{chunk-HRSAZUIK.cjs → chunk-O4I563YW.cjs} +24 -22
- package/dist/chunk-O4I563YW.cjs.map +1 -0
- package/dist/{chunk-RSEO4XPX.js → chunk-OW4FX5TS.js} +3 -1
- package/dist/chunk-OW4FX5TS.js.map +1 -0
- package/dist/{chunk-T7WA465P.cjs → chunk-OZE3KILQ.cjs} +4 -2
- package/dist/chunk-OZE3KILQ.cjs.map +1 -0
- package/dist/{chunk-MLKGABMK.js → chunk-PZ5AY32C.js} +2 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/{chunk-75ZPJI57.cjs → chunk-Q7SFCCGT.cjs} +2 -0
- package/dist/chunk-Q7SFCCGT.cjs.map +1 -0
- package/dist/{chunk-PZQDCRPV.cjs → chunk-RE4RPXT2.cjs} +4 -2
- package/dist/chunk-RE4RPXT2.cjs.map +1 -0
- package/dist/{chunk-6KP2OBYA.cjs → chunk-S37KCGOR.cjs} +88 -86
- package/dist/chunk-S37KCGOR.cjs.map +1 -0
- package/dist/{chunk-RG473F6Y.js → chunk-SQ7KKIH3.js} +5 -3
- package/dist/chunk-SQ7KKIH3.js.map +1 -0
- package/dist/{chunk-B36R2PHA.js → chunk-TLOXYMXG.js} +3 -1
- package/dist/chunk-TLOXYMXG.js.map +1 -0
- package/dist/{chunk-6T5JUKOQ.js → chunk-TXAQU2XN.js} +4 -2
- package/dist/chunk-TXAQU2XN.js.map +1 -0
- package/dist/{chunk-ZYAFP2AV.js → chunk-UVOSITKU.js} +6 -4
- package/dist/chunk-UVOSITKU.js.map +1 -0
- package/dist/{chunk-424T5F2J.cjs → chunk-VIGPWTDA.cjs} +9 -7
- package/dist/chunk-VIGPWTDA.cjs.map +1 -0
- package/dist/{chunk-WBRFIHSF.js → chunk-YS66MFDY.js} +7 -5
- package/dist/chunk-YS66MFDY.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/server/a2a/protocol.d.ts +8 -0
- package/dist/server/a2a/protocol.d.ts.map +1 -0
- package/dist/server/a2a/store.d.ts +14 -0
- package/dist/server/a2a/store.d.ts.map +1 -0
- package/dist/server/a2a/tasks.d.ts +20 -0
- package/dist/server/a2a/tasks.d.ts.map +1 -0
- package/dist/server/handlers/a2a.cjs +9 -7
- package/dist/server/handlers/a2a.cjs.map +1 -0
- package/dist/server/handlers/a2a.d.ts +66 -6
- package/dist/server/handlers/a2a.d.ts.map +1 -0
- package/dist/server/handlers/a2a.js +3 -1
- package/dist/server/handlers/a2a.js.map +1 -0
- package/dist/server/handlers/agents.cjs +10 -8
- package/dist/server/handlers/agents.cjs.map +1 -0
- package/dist/server/handlers/agents.d.ts +81 -7
- package/dist/server/handlers/agents.d.ts.map +1 -0
- package/dist/server/handlers/agents.js +3 -1
- package/dist/server/handlers/agents.js.map +1 -0
- package/dist/server/handlers/error.cjs +4 -2
- package/dist/server/handlers/error.cjs.map +1 -0
- package/dist/server/handlers/error.d.ts +2 -1
- package/dist/server/handlers/error.d.ts.map +1 -0
- package/dist/server/handlers/error.js +3 -1
- package/dist/server/handlers/error.js.map +1 -0
- package/dist/server/handlers/legacyWorkflows.cjs +13 -11
- package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
- package/dist/server/handlers/legacyWorkflows.d.ts +59 -10
- package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
- package/dist/server/handlers/legacyWorkflows.js +3 -1
- package/dist/server/handlers/legacyWorkflows.js.map +1 -0
- package/dist/server/handlers/logs.cjs +6 -4
- package/dist/server/handlers/logs.cjs.map +1 -0
- package/dist/server/handlers/logs.d.ts +34 -3
- package/dist/server/handlers/logs.d.ts.map +1 -0
- package/dist/server/handlers/logs.js +3 -1
- package/dist/server/handlers/logs.js.map +1 -0
- package/dist/server/handlers/memory.cjs +21 -15
- package/dist/server/handlers/memory.cjs.map +1 -0
- package/dist/server/handlers/memory.d.ts +121 -14
- package/dist/server/handlers/memory.d.ts.map +1 -0
- package/dist/server/handlers/memory.js +3 -1
- package/dist/server/handlers/memory.js.map +1 -0
- package/dist/server/handlers/network.cjs +7 -5
- package/dist/server/handlers/network.cjs.map +1 -0
- package/dist/server/handlers/network.d.ts +51 -4
- package/dist/server/handlers/network.d.ts.map +1 -0
- package/dist/server/handlers/network.js +3 -1
- package/dist/server/handlers/network.js.map +1 -0
- package/dist/server/handlers/scores.cjs +9 -7
- package/dist/server/handlers/scores.cjs.map +1 -0
- package/dist/server/handlers/scores.d.ts +49 -6
- package/dist/server/handlers/scores.d.ts.map +1 -0
- package/dist/server/handlers/scores.js +3 -1
- package/dist/server/handlers/scores.js.map +1 -0
- package/dist/server/handlers/telemetry.cjs +5 -3
- package/dist/server/handlers/telemetry.cjs.map +1 -0
- package/dist/server/handlers/telemetry.d.ts +32 -2
- package/dist/server/handlers/telemetry.d.ts.map +1 -0
- package/dist/server/handlers/telemetry.js +3 -1
- package/dist/server/handlers/telemetry.js.map +1 -0
- package/dist/server/handlers/tools.cjs +7 -5
- package/dist/server/handlers/tools.cjs.map +1 -0
- package/dist/server/handlers/tools.d.ts +21 -4
- package/dist/server/handlers/tools.d.ts.map +1 -0
- package/dist/server/handlers/tools.js +3 -1
- package/dist/server/handlers/tools.js.map +1 -0
- package/dist/server/handlers/utils.cjs +4 -2
- package/dist/server/handlers/utils.cjs.map +1 -0
- package/dist/server/handlers/utils.d.ts +2 -1
- package/dist/server/handlers/utils.d.ts.map +1 -0
- package/dist/server/handlers/utils.js +3 -1
- package/dist/server/handlers/utils.js.map +1 -0
- package/dist/server/handlers/vNextNetwork.cjs +25 -23
- package/dist/server/handlers/vNextNetwork.cjs.map +1 -0
- package/dist/server/handlers/vNextNetwork.d.ts +179 -6
- package/dist/server/handlers/vNextNetwork.d.ts.map +1 -0
- package/dist/server/handlers/vNextNetwork.js +6 -4
- package/dist/server/handlers/vNextNetwork.js.map +1 -0
- package/dist/server/handlers/vector.cjs +9 -7
- package/dist/server/handlers/vector.cjs.map +1 -0
- package/dist/server/handlers/vector.d.ts +51 -6
- package/dist/server/handlers/vector.d.ts.map +1 -0
- package/dist/server/handlers/vector.js +3 -1
- package/dist/server/handlers/vector.js.map +1 -0
- package/dist/server/handlers/voice.cjs +7 -5
- package/dist/server/handlers/voice.cjs.map +1 -0
- package/dist/server/handlers/voice.d.ts +39 -4
- package/dist/server/handlers/voice.d.ts.map +1 -0
- package/dist/server/handlers/voice.js +3 -1
- package/dist/server/handlers/voice.js.map +1 -0
- package/dist/server/handlers/workflows.cjs +18 -16
- package/dist/server/handlers/workflows.cjs.map +1 -0
- package/dist/server/handlers/workflows.d.ts +88 -15
- package/dist/server/handlers/workflows.d.ts.map +1 -0
- package/dist/server/handlers/workflows.js +3 -1
- package/dist/server/handlers/workflows.js.map +1 -0
- package/dist/server/handlers.cjs +26 -24
- package/dist/server/handlers.cjs.map +1 -0
- package/dist/server/handlers.d.ts +13 -12
- package/dist/server/handlers.d.ts.map +1 -0
- package/dist/server/handlers.js +14 -12
- package/dist/server/handlers.js.map +1 -0
- package/dist/server/http-exception.d.ts +87 -0
- package/dist/server/http-exception.d.ts.map +1 -0
- package/dist/server/types.d.ts +10 -0
- package/dist/server/types.d.ts.map +1 -0
- package/package.json +7 -7
- package/dist/_tsup-dts-rollup.d.cts +0 -1262
- package/dist/_tsup-dts-rollup.d.ts +0 -1262
- package/dist/index.d.cts +0 -1
- package/dist/server/handlers/a2a.d.cts +0 -6
- package/dist/server/handlers/agents.d.cts +0 -7
- package/dist/server/handlers/error.d.cts +0 -1
- package/dist/server/handlers/legacyWorkflows.d.cts +0 -10
- package/dist/server/handlers/logs.d.cts +0 -3
- package/dist/server/handlers/memory.d.cts +0 -14
- package/dist/server/handlers/network.d.cts +0 -4
- package/dist/server/handlers/scores.d.cts +0 -6
- package/dist/server/handlers/telemetry.d.cts +0 -2
- package/dist/server/handlers/tools.d.cts +0 -4
- package/dist/server/handlers/utils.d.cts +0 -1
- package/dist/server/handlers/vNextNetwork.d.cts +0 -6
- package/dist/server/handlers/vector.d.cts +0 -6
- package/dist/server/handlers/voice.d.cts +0 -4
- package/dist/server/handlers/workflows.d.cts +0 -15
- package/dist/server/handlers.d.cts +0 -12
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var chunkLRUH33B4_cjs = require('./chunk-LRUH33B4.cjs');
|
|
4
|
+
var chunkRE4RPXT2_cjs = require('./chunk-RE4RPXT2.cjs');
|
|
5
|
+
var chunk7NADHFD2_cjs = require('./chunk-7NADHFD2.cjs');
|
|
6
|
+
var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
|
|
7
7
|
var web = require('stream/web');
|
|
8
8
|
|
|
9
9
|
// src/server/handlers/legacyWorkflows.ts
|
|
10
10
|
var legacyWorkflows_exports = {};
|
|
11
|
-
|
|
11
|
+
chunkQ7SFCCGT_cjs.__export(legacyWorkflows_exports, {
|
|
12
12
|
createLegacyWorkflowRunHandler: () => createLegacyWorkflowRunHandler,
|
|
13
13
|
getLegacyWorkflowByIdHandler: () => getLegacyWorkflowByIdHandler,
|
|
14
14
|
getLegacyWorkflowRunHandler: () => getLegacyWorkflowRunHandler,
|
|
@@ -31,15 +31,15 @@ async function getLegacyWorkflowsHandler({ mastra }) {
|
|
|
31
31
|
serializedStepGraph: workflow.serializedStepGraph,
|
|
32
32
|
serializedStepSubscriberGraph: workflow.serializedStepSubscriberGraph,
|
|
33
33
|
name: workflow.name,
|
|
34
|
-
triggerSchema: workflow.triggerSchema ?
|
|
34
|
+
triggerSchema: workflow.triggerSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(workflow.triggerSchema)) : void 0,
|
|
35
35
|
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
36
36
|
const _step = step;
|
|
37
37
|
acc2[key2] = {
|
|
38
38
|
id: _step.id,
|
|
39
39
|
description: _step.description,
|
|
40
40
|
workflowId: _step.workflowId,
|
|
41
|
-
inputSchema: _step.inputSchema ?
|
|
42
|
-
outputSchema: _step.outputSchema ?
|
|
41
|
+
inputSchema: _step.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_step.inputSchema)) : void 0,
|
|
42
|
+
outputSchema: _step.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_step.outputSchema)) : void 0
|
|
43
43
|
};
|
|
44
44
|
return acc2;
|
|
45
45
|
}, {})
|
|
@@ -48,17 +48,17 @@ async function getLegacyWorkflowsHandler({ mastra }) {
|
|
|
48
48
|
}, {});
|
|
49
49
|
return _workflows;
|
|
50
50
|
} catch (error) {
|
|
51
|
-
return
|
|
51
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error getting workflows");
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
async function getLegacyWorkflowByIdHandler({ mastra, workflowId }) {
|
|
55
55
|
try {
|
|
56
56
|
if (!workflowId) {
|
|
57
|
-
throw new
|
|
57
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
58
58
|
}
|
|
59
59
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
60
60
|
if (!workflow) {
|
|
61
|
-
throw new
|
|
61
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
62
62
|
}
|
|
63
63
|
return {
|
|
64
64
|
stepGraph: workflow.stepGraph,
|
|
@@ -66,21 +66,21 @@ async function getLegacyWorkflowByIdHandler({ mastra, workflowId }) {
|
|
|
66
66
|
serializedStepGraph: workflow.serializedStepGraph,
|
|
67
67
|
serializedStepSubscriberGraph: workflow.serializedStepSubscriberGraph,
|
|
68
68
|
name: workflow.name,
|
|
69
|
-
triggerSchema: workflow.triggerSchema ?
|
|
69
|
+
triggerSchema: workflow.triggerSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(workflow.triggerSchema)) : void 0,
|
|
70
70
|
steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
|
|
71
71
|
const _step = step;
|
|
72
72
|
acc[key] = {
|
|
73
73
|
id: _step.id,
|
|
74
74
|
description: _step.description,
|
|
75
75
|
workflowId: _step.workflowId,
|
|
76
|
-
inputSchema: _step.inputSchema ?
|
|
77
|
-
outputSchema: _step.outputSchema ?
|
|
76
|
+
inputSchema: _step.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_step.inputSchema)) : void 0,
|
|
77
|
+
outputSchema: _step.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_step.outputSchema)) : void 0
|
|
78
78
|
};
|
|
79
79
|
return acc;
|
|
80
80
|
}, {})
|
|
81
81
|
};
|
|
82
82
|
} catch (error) {
|
|
83
|
-
return
|
|
83
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error getting workflow by id");
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
async function startAsyncLegacyWorkflowHandler({
|
|
@@ -92,11 +92,11 @@ async function startAsyncLegacyWorkflowHandler({
|
|
|
92
92
|
}) {
|
|
93
93
|
try {
|
|
94
94
|
if (!workflowId) {
|
|
95
|
-
throw new
|
|
95
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
96
96
|
}
|
|
97
97
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
98
98
|
if (!workflow) {
|
|
99
|
-
throw new
|
|
99
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
100
100
|
}
|
|
101
101
|
if (!runId) {
|
|
102
102
|
const newRun = workflow.createRun();
|
|
@@ -108,7 +108,7 @@ async function startAsyncLegacyWorkflowHandler({
|
|
|
108
108
|
}
|
|
109
109
|
const run = workflow.getMemoryRun(runId);
|
|
110
110
|
if (!run) {
|
|
111
|
-
throw new
|
|
111
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
112
112
|
}
|
|
113
113
|
const result = await run.start({
|
|
114
114
|
triggerData,
|
|
@@ -116,7 +116,7 @@ async function startAsyncLegacyWorkflowHandler({
|
|
|
116
116
|
});
|
|
117
117
|
return result;
|
|
118
118
|
} catch (error) {
|
|
119
|
-
return
|
|
119
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error starting workflow");
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
async function getLegacyWorkflowRunHandler({
|
|
@@ -126,22 +126,22 @@ async function getLegacyWorkflowRunHandler({
|
|
|
126
126
|
}) {
|
|
127
127
|
try {
|
|
128
128
|
if (!workflowId) {
|
|
129
|
-
throw new
|
|
129
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
130
130
|
}
|
|
131
131
|
if (!runId) {
|
|
132
|
-
throw new
|
|
132
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Run ID is required" });
|
|
133
133
|
}
|
|
134
134
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
135
135
|
if (!workflow) {
|
|
136
|
-
throw new
|
|
136
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
137
137
|
}
|
|
138
138
|
const run = await workflow.getRun(runId);
|
|
139
139
|
if (!run) {
|
|
140
|
-
throw new
|
|
140
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
141
141
|
}
|
|
142
142
|
return run;
|
|
143
143
|
} catch (error) {
|
|
144
|
-
return
|
|
144
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error getting workflow run");
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
async function createLegacyWorkflowRunHandler({
|
|
@@ -151,16 +151,16 @@ async function createLegacyWorkflowRunHandler({
|
|
|
151
151
|
}) {
|
|
152
152
|
try {
|
|
153
153
|
if (!workflowId) {
|
|
154
|
-
throw new
|
|
154
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
155
155
|
}
|
|
156
156
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
157
157
|
if (!workflow) {
|
|
158
|
-
throw new
|
|
158
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow not found" });
|
|
159
159
|
}
|
|
160
160
|
const newRun = workflow.createRun({ runId: prevRunId });
|
|
161
161
|
return { runId: newRun.runId };
|
|
162
162
|
} catch (error) {
|
|
163
|
-
return
|
|
163
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error creating workflow run");
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
async function startLegacyWorkflowRunHandler({
|
|
@@ -172,15 +172,15 @@ async function startLegacyWorkflowRunHandler({
|
|
|
172
172
|
}) {
|
|
173
173
|
try {
|
|
174
174
|
if (!workflowId) {
|
|
175
|
-
throw new
|
|
175
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
176
176
|
}
|
|
177
177
|
if (!runId) {
|
|
178
|
-
throw new
|
|
178
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "runId required to start run" });
|
|
179
179
|
}
|
|
180
180
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
181
181
|
const run = workflow.getMemoryRun(runId);
|
|
182
182
|
if (!run) {
|
|
183
|
-
throw new
|
|
183
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
184
184
|
}
|
|
185
185
|
void run.start({
|
|
186
186
|
triggerData,
|
|
@@ -188,7 +188,7 @@ async function startLegacyWorkflowRunHandler({
|
|
|
188
188
|
});
|
|
189
189
|
return { message: "Workflow run started" };
|
|
190
190
|
} catch (e) {
|
|
191
|
-
return
|
|
191
|
+
return chunkRE4RPXT2_cjs.handleError(e, "Error starting workflow run");
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
async function watchLegacyWorkflowHandler({
|
|
@@ -198,15 +198,15 @@ async function watchLegacyWorkflowHandler({
|
|
|
198
198
|
}) {
|
|
199
199
|
try {
|
|
200
200
|
if (!workflowId) {
|
|
201
|
-
throw new
|
|
201
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
202
202
|
}
|
|
203
203
|
if (!runId) {
|
|
204
|
-
throw new
|
|
204
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "runId required to watch workflow" });
|
|
205
205
|
}
|
|
206
206
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
207
207
|
const run = workflow.getMemoryRun(runId);
|
|
208
208
|
if (!run) {
|
|
209
|
-
throw new
|
|
209
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
210
210
|
}
|
|
211
211
|
let unwatch;
|
|
212
212
|
let asyncRef = null;
|
|
@@ -234,7 +234,7 @@ async function watchLegacyWorkflowHandler({
|
|
|
234
234
|
});
|
|
235
235
|
return stream;
|
|
236
236
|
} catch (error) {
|
|
237
|
-
return
|
|
237
|
+
return chunkRE4RPXT2_cjs.handleError(error, "Error watching workflow");
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
async function resumeAsyncLegacyWorkflowHandler({
|
|
@@ -246,15 +246,15 @@ async function resumeAsyncLegacyWorkflowHandler({
|
|
|
246
246
|
}) {
|
|
247
247
|
try {
|
|
248
248
|
if (!workflowId) {
|
|
249
|
-
throw new
|
|
249
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
250
250
|
}
|
|
251
251
|
if (!runId) {
|
|
252
|
-
throw new
|
|
252
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "runId required to resume workflow" });
|
|
253
253
|
}
|
|
254
254
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
255
255
|
const run = workflow.getMemoryRun(runId);
|
|
256
256
|
if (!run) {
|
|
257
|
-
throw new
|
|
257
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
258
258
|
}
|
|
259
259
|
const result = await run.resume({
|
|
260
260
|
stepId: body.stepId,
|
|
@@ -263,7 +263,7 @@ async function resumeAsyncLegacyWorkflowHandler({
|
|
|
263
263
|
});
|
|
264
264
|
return result;
|
|
265
265
|
} catch (error) {
|
|
266
|
-
return
|
|
266
|
+
return chunkRE4RPXT2_cjs.handleError(error, "Error resuming workflow step");
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
async function resumeLegacyWorkflowHandler({
|
|
@@ -275,15 +275,15 @@ async function resumeLegacyWorkflowHandler({
|
|
|
275
275
|
}) {
|
|
276
276
|
try {
|
|
277
277
|
if (!workflowId) {
|
|
278
|
-
throw new
|
|
278
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
279
279
|
}
|
|
280
280
|
if (!runId) {
|
|
281
|
-
throw new
|
|
281
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "runId required to resume workflow" });
|
|
282
282
|
}
|
|
283
283
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
284
284
|
const run = workflow.getMemoryRun(runId);
|
|
285
285
|
if (!run) {
|
|
286
|
-
throw new
|
|
286
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Workflow run not found" });
|
|
287
287
|
}
|
|
288
288
|
void run.resume({
|
|
289
289
|
stepId: body.stepId,
|
|
@@ -292,7 +292,7 @@ async function resumeLegacyWorkflowHandler({
|
|
|
292
292
|
});
|
|
293
293
|
return { message: "Workflow run resumed" };
|
|
294
294
|
} catch (error) {
|
|
295
|
-
return
|
|
295
|
+
return chunkRE4RPXT2_cjs.handleError(error, "Error resuming workflow");
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
async function getLegacyWorkflowRunsHandler({
|
|
@@ -306,7 +306,7 @@ async function getLegacyWorkflowRunsHandler({
|
|
|
306
306
|
}) {
|
|
307
307
|
try {
|
|
308
308
|
if (!workflowId) {
|
|
309
|
-
throw new
|
|
309
|
+
throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Workflow ID is required" });
|
|
310
310
|
}
|
|
311
311
|
const workflow = mastra.legacy_getWorkflow(workflowId);
|
|
312
312
|
const workflowRuns = await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId }) || {
|
|
@@ -315,7 +315,7 @@ async function getLegacyWorkflowRunsHandler({
|
|
|
315
315
|
};
|
|
316
316
|
return workflowRuns;
|
|
317
317
|
} catch (error) {
|
|
318
|
-
return
|
|
318
|
+
return chunkRE4RPXT2_cjs.handleError(error, "Error getting workflow runs");
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
|
|
@@ -330,3 +330,5 @@ exports.resumeLegacyWorkflowHandler = resumeLegacyWorkflowHandler;
|
|
|
330
330
|
exports.startAsyncLegacyWorkflowHandler = startAsyncLegacyWorkflowHandler;
|
|
331
331
|
exports.startLegacyWorkflowRunHandler = startLegacyWorkflowRunHandler;
|
|
332
332
|
exports.watchLegacyWorkflowHandler = watchLegacyWorkflowHandler;
|
|
333
|
+
//# sourceMappingURL=chunk-JGVY3KWV.cjs.map
|
|
334
|
+
//# sourceMappingURL=chunk-JGVY3KWV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/legacyWorkflows.ts"],"names":["__export","stringify","esm_default","acc","key","handleError","HTTPException","result","ReadableStream","runId"],"mappings":"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","file":"chunk-JGVY3KWV.cjs","sourcesContent":["import { ReadableStream } from 'node:stream/web';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport type { LegacyWorkflowRuns } from '@mastra/core/storage';\nimport type { LegacyWorkflow } from '@mastra/core/workflows/legacy';\nimport { stringify } from 'superjson';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\nimport { handleError } from './error';\n\ninterface WorkflowContext extends Context {\n workflowId?: string;\n runId?: string;\n}\n\nexport async function getLegacyWorkflowsHandler({ mastra }: WorkflowContext) {\n try {\n const workflows = mastra.legacy_getWorkflows({ serialized: false });\n const _workflows = Object.entries(workflows).reduce<any>((acc, [key, workflow]) => {\n if (workflow.isNested) return acc;\n acc[key] = {\n stepGraph: workflow.stepGraph,\n stepSubscriberGraph: workflow.stepSubscriberGraph,\n serializedStepGraph: workflow.serializedStepGraph,\n serializedStepSubscriberGraph: workflow.serializedStepSubscriberGraph,\n name: workflow.name,\n triggerSchema: workflow.triggerSchema ? stringify(zodToJsonSchema(workflow.triggerSchema)) : undefined,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n const _step = step as any;\n acc[key] = {\n id: _step.id,\n description: _step.description,\n workflowId: _step.workflowId,\n inputSchema: _step.inputSchema ? stringify(zodToJsonSchema(_step.inputSchema)) : undefined,\n outputSchema: _step.outputSchema ? stringify(zodToJsonSchema(_step.outputSchema)) : undefined,\n };\n return acc;\n }, {}),\n };\n return acc;\n }, {});\n return _workflows;\n } catch (error) {\n return handleError(error, 'error getting workflows');\n }\n}\n\nexport async function getLegacyWorkflowByIdHandler({ mastra, workflowId }: WorkflowContext) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n return {\n stepGraph: workflow.stepGraph,\n stepSubscriberGraph: workflow.stepSubscriberGraph,\n serializedStepGraph: workflow.serializedStepGraph,\n serializedStepSubscriberGraph: workflow.serializedStepSubscriberGraph,\n name: workflow.name,\n triggerSchema: workflow.triggerSchema ? stringify(zodToJsonSchema(workflow.triggerSchema)) : undefined,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n const _step = step as any;\n acc[key] = {\n id: _step.id,\n description: _step.description,\n workflowId: _step.workflowId,\n inputSchema: _step.inputSchema ? stringify(zodToJsonSchema(_step.inputSchema)) : undefined,\n outputSchema: _step.outputSchema ? stringify(zodToJsonSchema(_step.outputSchema)) : undefined,\n };\n return acc;\n }, {}),\n };\n } catch (error) {\n return handleError(error, 'error getting workflow by id');\n }\n}\n\nexport async function startAsyncLegacyWorkflowHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n triggerData,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n triggerData?: unknown;\n runtimeContext: RuntimeContext;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n if (!runId) {\n const newRun = workflow.createRun();\n const result = await newRun.start({\n triggerData,\n runtimeContext,\n });\n return result;\n }\n\n const run = workflow.getMemoryRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n // const newRun = workflow.createRun({ runId });\n\n const result = await run.start({\n triggerData,\n runtimeContext,\n });\n return result;\n } catch (error) {\n return handleError(error, 'error starting workflow');\n }\n}\n\nexport async function getLegacyWorkflowRunHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>): Promise<ReturnType<LegacyWorkflow['getRun']>> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'Run ID is required' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n return run;\n } catch (error) {\n return handleError(error, 'error getting workflow run');\n }\n}\n\nexport async function createLegacyWorkflowRunHandler({\n mastra,\n workflowId,\n runId: prevRunId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const newRun = workflow.createRun({ runId: prevRunId });\n\n return { runId: newRun.runId };\n } catch (error) {\n return handleError(error, 'error creating workflow run');\n }\n}\n\nexport async function startLegacyWorkflowRunHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n triggerData,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n triggerData?: unknown;\n runtimeContext: RuntimeContext;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to start run' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n const run = workflow.getMemoryRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n void run.start({\n triggerData,\n runtimeContext,\n });\n\n return { message: 'Workflow run started' };\n } catch (e) {\n return handleError(e, 'Error starting workflow run');\n }\n}\n\nexport async function watchLegacyWorkflowHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>): Promise<ReadableStream<string>> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to watch workflow' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n const run = workflow.getMemoryRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n let unwatch: () => void;\n let asyncRef: NodeJS.Immediate | null = null;\n const stream = new ReadableStream<string>({\n start(controller) {\n unwatch = run.watch(({ activePaths, runId, timestamp, results }) => {\n const activePathsObj = Object.fromEntries(activePaths);\n controller.enqueue(JSON.stringify({ activePaths: activePathsObj, runId, timestamp, results }));\n\n if (asyncRef) {\n clearImmediate(asyncRef);\n asyncRef = null;\n }\n\n // a run is finished if none of the active paths is currently being executed\n asyncRef = setImmediate(() => {\n const runDone = Object.values(activePathsObj).every(value => value.status !== 'executing');\n if (runDone) {\n controller.close();\n unwatch?.();\n }\n });\n });\n },\n cancel() {\n unwatch?.();\n },\n });\n\n return stream;\n } catch (error) {\n return handleError(error, 'Error watching workflow');\n }\n}\n\nexport async function resumeAsyncLegacyWorkflowHandler({\n mastra,\n workflowId,\n runId,\n body,\n runtimeContext,\n}: WorkflowContext & { body: { stepId: string; context: any }; runtimeContext: RuntimeContext }) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n const run = workflow.getMemoryRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n // const newRun = workflow.createRun({ runId });\n\n const result = await run.resume({\n stepId: body.stepId,\n context: body.context,\n runtimeContext,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error resuming workflow step');\n }\n}\n\nexport async function resumeLegacyWorkflowHandler({\n mastra,\n workflowId,\n runId,\n body,\n runtimeContext,\n}: WorkflowContext & { body: { stepId: string; context: any }; runtimeContext: RuntimeContext }) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n const run = workflow.getMemoryRun(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n void run.resume({\n stepId: body.stepId,\n context: body.context,\n runtimeContext,\n });\n\n return { message: 'Workflow run resumed' };\n } catch (error) {\n return handleError(error, 'Error resuming workflow');\n }\n}\n\nexport async function getLegacyWorkflowRunsHandler({\n mastra,\n workflowId,\n fromDate,\n toDate,\n limit,\n offset,\n resourceId,\n}: WorkflowContext & {\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n resourceId?: string;\n}): Promise<LegacyWorkflowRuns> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const workflow = mastra.legacy_getWorkflow(workflowId);\n const workflowRuns = (await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId })) || {\n runs: [],\n total: 0,\n };\n return workflowRuns;\n } catch (error) {\n return handleError(error, 'Error getting workflow runs');\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { validateBody } from './chunk-
|
|
2
|
-
import { handleError } from './chunk-
|
|
3
|
-
import { HTTPException } from './chunk-
|
|
4
|
-
import { __export } from './chunk-
|
|
1
|
+
import { validateBody } from './chunk-OW4FX5TS.js';
|
|
2
|
+
import { handleError } from './chunk-CY4TP3FK.js';
|
|
3
|
+
import { HTTPException } from './chunk-MMROOK5J.js';
|
|
4
|
+
import { __export } from './chunk-PZ5AY32C.js';
|
|
5
5
|
import { generateEmptyFromSchema } from '@mastra/core';
|
|
6
6
|
|
|
7
7
|
// src/server/handlers/memory.ts
|
|
@@ -16,6 +16,7 @@ __export(memory_exports, {
|
|
|
16
16
|
getMessagesPaginatedHandler: () => getMessagesPaginatedHandler,
|
|
17
17
|
getThreadByIdHandler: () => getThreadByIdHandler,
|
|
18
18
|
getThreadsHandler: () => getThreadsHandler,
|
|
19
|
+
getThreadsPaginatedHandler: () => getThreadsPaginatedHandler,
|
|
19
20
|
getWorkingMemoryHandler: () => getWorkingMemoryHandler,
|
|
20
21
|
saveMessagesHandler: () => saveMessagesHandler,
|
|
21
22
|
searchMemoryHandler: () => searchMemoryHandler,
|
|
@@ -102,6 +103,35 @@ async function getThreadsHandler({
|
|
|
102
103
|
return handleError(error, "Error getting threads");
|
|
103
104
|
}
|
|
104
105
|
}
|
|
106
|
+
async function getThreadsPaginatedHandler({
|
|
107
|
+
mastra,
|
|
108
|
+
agentId,
|
|
109
|
+
resourceId,
|
|
110
|
+
networkId,
|
|
111
|
+
runtimeContext,
|
|
112
|
+
page,
|
|
113
|
+
perPage,
|
|
114
|
+
orderBy,
|
|
115
|
+
sortDirection
|
|
116
|
+
}) {
|
|
117
|
+
try {
|
|
118
|
+
const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });
|
|
119
|
+
if (!memory) {
|
|
120
|
+
throw new HTTPException(400, { message: "Memory is not initialized" });
|
|
121
|
+
}
|
|
122
|
+
validateBody({ resourceId });
|
|
123
|
+
const result = await memory.getThreadsByResourceIdPaginated({
|
|
124
|
+
resourceId,
|
|
125
|
+
page,
|
|
126
|
+
perPage,
|
|
127
|
+
orderBy,
|
|
128
|
+
sortDirection
|
|
129
|
+
});
|
|
130
|
+
return result;
|
|
131
|
+
} catch (error) {
|
|
132
|
+
return handleError(error, "Error getting paginated threads");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
105
135
|
async function getThreadByIdHandler({
|
|
106
136
|
mastra,
|
|
107
137
|
agentId,
|
|
@@ -557,4 +587,6 @@ async function searchMemoryHandler({
|
|
|
557
587
|
}
|
|
558
588
|
}
|
|
559
589
|
|
|
560
|
-
export { createThreadHandler, deleteMessagesHandler, deleteThreadHandler, getMemoryConfigHandler, getMemoryStatusHandler, getMessagesHandler, getMessagesPaginatedHandler, getThreadByIdHandler, getThreadsHandler, getWorkingMemoryHandler, memory_exports, saveMessagesHandler, searchMemoryHandler, updateThreadHandler, updateWorkingMemoryHandler };
|
|
590
|
+
export { createThreadHandler, deleteMessagesHandler, deleteThreadHandler, getMemoryConfigHandler, getMemoryStatusHandler, getMessagesHandler, getMessagesPaginatedHandler, getThreadByIdHandler, getThreadsHandler, getThreadsPaginatedHandler, getWorkingMemoryHandler, memory_exports, saveMessagesHandler, searchMemoryHandler, updateThreadHandler, updateWorkingMemoryHandler };
|
|
591
|
+
//# sourceMappingURL=chunk-KXXJ7Y4H.js.map
|
|
592
|
+
//# sourceMappingURL=chunk-KXXJ7Y4H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/memory.ts"],"names":[],"mappings":"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","file":"chunk-KXXJ7Y4H.js","sourcesContent":["import { generateEmptyFromSchema } from '@mastra/core';\nimport type { StorageGetMessagesArg } from '@mastra/core';\nimport type { RuntimeContext } from '@mastra/core/di';\nimport type { MastraMemory } from '@mastra/core/memory';\nimport type { ThreadSortOptions } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\ninterface MemoryContext extends Context {\n agentId?: string;\n resourceId?: string;\n threadId?: string;\n networkId?: string;\n runtimeContext?: RuntimeContext;\n}\n\nasync function getMemoryFromContext({\n mastra,\n agentId,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'>): Promise<\n MastraMemory | null | undefined\n> {\n const agent = agentId ? mastra.getAgent(agentId) : null;\n if (agentId && !agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const network = networkId ? mastra.vnext_getNetwork(networkId) : null;\n\n if (networkId && !network) {\n throw new HTTPException(404, { message: 'Network not found' });\n }\n\n if (agent) {\n return (await agent?.getMemory()) || mastra.getMemory();\n }\n\n if (network) {\n return (await network?.getMemory({ runtimeContext })) || mastra.getMemory();\n }\n\n return mastra.getMemory();\n}\n\n// Memory handlers\nexport async function getMemoryStatusHandler({\n mastra,\n agentId,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'>) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n return { result: false };\n }\n\n return { result: true };\n } catch (error) {\n return handleError(error, 'Error getting memory status');\n }\n}\n\nexport async function getMemoryConfigHandler({\n mastra,\n agentId,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'>) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Get the merged configuration (defaults + custom)\n const config = memory.getMergedThreadConfig({});\n\n return { config };\n } catch (error) {\n return handleError(error, 'Error getting memory configuration');\n }\n}\n\nexport async function getThreadsHandler({\n mastra,\n agentId,\n resourceId,\n networkId,\n runtimeContext,\n orderBy,\n sortDirection,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'resourceId' | 'networkId' | 'runtimeContext'> & ThreadSortOptions) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n validateBody({ resourceId });\n\n const threads = await memory.getThreadsByResourceId({\n resourceId: resourceId!,\n orderBy,\n sortDirection,\n });\n return threads;\n } catch (error) {\n return handleError(error, 'Error getting threads');\n }\n}\n\nexport async function getThreadsPaginatedHandler({\n mastra,\n agentId,\n resourceId,\n networkId,\n runtimeContext,\n page,\n perPage,\n orderBy,\n sortDirection,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'resourceId' | 'networkId' | 'runtimeContext'> & {\n page: number;\n perPage: number;\n} & ThreadSortOptions) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n validateBody({ resourceId });\n\n const result = await memory.getThreadsByResourceIdPaginated({\n resourceId: resourceId!,\n page,\n perPage,\n orderBy,\n sortDirection,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error getting paginated threads');\n }\n}\n\nexport async function getThreadByIdHandler({\n mastra,\n agentId,\n threadId,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'>) {\n try {\n validateBody({ threadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: threadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n return thread;\n } catch (error) {\n return handleError(error, 'Error getting thread');\n }\n}\n\nexport async function saveMessagesHandler({\n mastra,\n agentId,\n body,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'> & {\n body: {\n messages: Parameters<MastraMemory['saveMessages']>[0]['messages'];\n };\n}) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n if (!body?.messages) {\n throw new HTTPException(400, { message: 'Messages are required' });\n }\n\n if (!Array.isArray(body.messages)) {\n throw new HTTPException(400, { message: 'Messages should be an array' });\n }\n\n // Validate that all messages have threadId and resourceId\n const invalidMessages = body.messages.filter(message => !message.threadId || !message.resourceId);\n if (invalidMessages.length > 0) {\n throw new HTTPException(400, {\n message: `All messages must have threadId and resourceId fields. Found ${invalidMessages.length} invalid message(s).`,\n });\n }\n\n const processedMessages = body.messages.map(message => ({\n ...message,\n id: message.id || memory.generateId(),\n createdAt: message.createdAt ? new Date(message.createdAt) : new Date(),\n }));\n\n const result = await memory.saveMessages({ messages: processedMessages, memoryConfig: {} });\n return result;\n } catch (error) {\n return handleError(error, 'Error saving messages');\n }\n}\n\nexport async function createThreadHandler({\n mastra,\n agentId,\n body,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'> & {\n body?: Omit<Parameters<MastraMemory['createThread']>[0], 'resourceId'> & { resourceId?: string };\n}) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n validateBody({ resourceId: body?.resourceId });\n\n const result = await memory.createThread({\n resourceId: body?.resourceId!,\n title: body?.title,\n metadata: body?.metadata,\n threadId: body?.threadId,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error saving thread to memory');\n }\n}\n\nexport async function updateThreadHandler({\n mastra,\n agentId,\n threadId,\n body,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'> & {\n body?: Parameters<MastraMemory['saveThread']>[0]['thread'];\n}) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!body) {\n throw new HTTPException(400, { message: 'Body is required' });\n }\n\n const { title, metadata, resourceId } = body;\n const updatedAt = new Date();\n\n validateBody({ threadId });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: threadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n const updatedThread = {\n ...thread,\n title: title || thread.title,\n metadata: metadata || thread.metadata,\n resourceId: resourceId || thread.resourceId,\n createdAt: thread.createdAt,\n updatedAt,\n };\n\n const result = await memory.saveThread({ thread: updatedThread });\n return result;\n } catch (error) {\n return handleError(error, 'Error updating thread');\n }\n}\n\nexport async function deleteThreadHandler({\n mastra,\n agentId,\n threadId,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'>) {\n try {\n validateBody({ threadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: threadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n await memory.deleteThread(threadId!);\n return { result: 'Thread deleted' };\n } catch (error) {\n return handleError(error, 'Error deleting thread');\n }\n}\n\nexport async function getMessagesPaginatedHandler({\n mastra,\n threadId,\n resourceId,\n selectBy,\n format,\n}: StorageGetMessagesArg & Pick<MemoryContext, 'mastra'>) {\n try {\n validateBody({ threadId });\n\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(400, { message: 'Storage is not initialized' });\n }\n\n const thread = await storage.getThreadById({ threadId: threadId! });\n\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n const result = await storage.getMessagesPaginated({ threadId: threadId!, resourceId, selectBy, format });\n return result;\n } catch (error) {\n return handleError(error, 'Error getting messages');\n }\n}\n\nexport async function getMessagesHandler({\n mastra,\n agentId,\n threadId,\n limit,\n format,\n clientSdkCompat,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'> & {\n limit?: number;\n format?: 'aiv4' | 'aiv5';\n clientSdkCompat?: string;\n}) {\n if (limit !== undefined && (!Number.isInteger(limit) || limit <= 0)) {\n throw new HTTPException(400, { message: 'Invalid limit: must be a positive integer' });\n }\n try {\n validateBody({ threadId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n const thread = await memory.getThreadById({ threadId: threadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n const result = await memory.query({\n threadId: threadId!,\n ...(limit && { selectBy: { last: limit } }),\n });\n\n // Determine format: explicit format parameter, auto-detection, or default to v5\n let useV4Format = false;\n if (format === 'aiv4') {\n useV4Format = true;\n } else if (format === 'aiv5') {\n useV4Format = false;\n } else {\n // No explicit format - check for client header override first, then fall back to Mastra config\n useV4Format = clientSdkCompat === 'v4' || mastra.getAiSdkCompatMode() === 'v4';\n }\n\n // Return appropriate format\n if (useV4Format) {\n return { messages: result.messages, uiMessages: result.uiMessagesV4 };\n }\n\n return { messages: result.messages, uiMessages: result.uiMessages };\n } catch (error) {\n return handleError(error, 'Error getting messages');\n }\n}\n\n/**\n * Handler to get the working memory for a thread (optionally resource-scoped).\n * @returns workingMemory - the working memory for the thread\n * @returns source - thread or resource\n */\nexport async function getWorkingMemoryHandler({\n mastra,\n agentId,\n threadId,\n resourceId,\n networkId,\n runtimeContext,\n memoryConfig,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'> & {\n resourceId?: Parameters<MastraMemory['getWorkingMemory']>[0]['resourceId'];\n memoryConfig?: Parameters<MastraMemory['getWorkingMemory']>[0]['memoryConfig'];\n}) {\n try {\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n validateBody({ threadId });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n const thread = await memory.getThreadById({ threadId: threadId! });\n const threadExists = !!thread;\n const template = await memory.getWorkingMemoryTemplate({ memoryConfig });\n const workingMemoryTemplate =\n template?.format === 'json'\n ? { ...template, content: JSON.stringify(generateEmptyFromSchema(template.content)) }\n : template;\n const workingMemory = await memory.getWorkingMemory({ threadId: threadId!, resourceId, memoryConfig });\n const config = memory.getMergedThreadConfig(memoryConfig || {});\n const source = config.workingMemory?.scope === 'resource' && resourceId ? 'resource' : 'thread';\n return { workingMemory, source, workingMemoryTemplate, threadExists };\n } catch (error) {\n return handleError(error, 'Error getting working memory');\n }\n}\n\n/**\n * Handler to update the working memory for a thread (optionally resource-scoped).\n * @param threadId - the thread id\n * @param body - the body containing the working memory to update and the resource id (optional)\n */\nexport async function updateWorkingMemoryHandler({\n mastra,\n agentId,\n threadId,\n body,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'threadId' | 'networkId' | 'runtimeContext'> & {\n body: Omit<Parameters<MastraMemory['updateWorkingMemory']>[0], 'threadId'>;\n}) {\n try {\n validateBody({ threadId });\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n const { resourceId, memoryConfig, workingMemory } = body;\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n const thread = await memory.getThreadById({ threadId: threadId! });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n\n await memory.updateWorkingMemory({ threadId: threadId!, resourceId, workingMemory, memoryConfig });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error updating working memory');\n }\n}\n\ninterface SearchResult {\n id: string;\n role: string;\n content: any;\n createdAt: Date;\n threadId?: string;\n threadTitle?: string;\n score?: number;\n context?: {\n before?: SearchResult[];\n after?: SearchResult[];\n };\n}\n\ninterface SearchResponse {\n results: SearchResult[];\n count: number;\n query: string;\n searchScope?: string;\n searchType?: string;\n}\n\n/**\n * Handler to delete one or more messages.\n * @param messageIds - Can be a single ID, array of IDs, or objects with ID property\n */\nexport async function deleteMessagesHandler({\n mastra,\n agentId,\n messageIds,\n networkId,\n runtimeContext,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'> & {\n messageIds: string | string[] | { id: string } | { id: string }[];\n}) {\n try {\n if (messageIds === undefined || messageIds === null) {\n throw new HTTPException(400, { message: 'messageIds is required' });\n }\n\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Delete the messages - let the memory method handle validation\n await memory.deleteMessages(messageIds as any);\n\n // Count messages for response\n let count = 1;\n if (Array.isArray(messageIds)) {\n count = messageIds.length;\n }\n\n return { success: true, message: `${count} message${count === 1 ? '' : 's'} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting messages');\n }\n}\n\nexport async function searchMemoryHandler({\n mastra,\n agentId,\n searchQuery,\n resourceId,\n threadId,\n limit = 20,\n networkId,\n runtimeContext,\n memoryConfig,\n}: Pick<MemoryContext, 'mastra' | 'agentId' | 'networkId' | 'runtimeContext'> & {\n searchQuery: string;\n resourceId: string;\n threadId?: string;\n limit?: number;\n memoryConfig?: any;\n}): Promise<SearchResponse | ReturnType<typeof handleError>> {\n try {\n validateBody({ searchQuery, resourceId });\n\n const memory = await getMemoryFromContext({ mastra, agentId, networkId, runtimeContext });\n if (!memory) {\n throw new HTTPException(400, { message: 'Memory is not initialized' });\n }\n\n // Get memory configuration first to check scope\n const config = memory.getMergedThreadConfig(memoryConfig || {});\n const hasSemanticRecall = !!config?.semanticRecall;\n const resourceScope = typeof config?.semanticRecall === 'object' && config?.semanticRecall?.scope === 'resource';\n\n // Only validate thread ownership if we're in thread scope\n if (threadId && !resourceScope) {\n const thread = await memory.getThreadById({ threadId });\n if (!thread) {\n throw new HTTPException(404, { message: 'Thread not found' });\n }\n if (thread.resourceId !== resourceId) {\n throw new HTTPException(403, { message: 'Thread does not belong to the specified resource' });\n }\n }\n\n const searchResults: SearchResult[] = [];\n const messageMap = new Map<string, boolean>(); // For deduplication\n\n // If threadId is provided and scope is thread-based, check if the thread exists\n if (threadId && !resourceScope) {\n const thread = await memory.getThreadById({ threadId });\n if (!thread) {\n // Thread doesn't exist yet (new unsaved thread) - return empty results\n return {\n results: [],\n count: 0,\n query: searchQuery,\n searchScope: 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n }\n }\n\n // If resource scope is enabled or no threadId provided, search across all threads\n if (!threadId || resourceScope) {\n // Search across all threads for this resource\n const threads = await memory.getThreadsByResourceId({ resourceId });\n\n // If no threads exist yet, return empty results\n if (threads.length === 0) {\n return {\n results: [],\n count: 0,\n query: searchQuery,\n searchScope: 'resource',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n }\n\n for (const thread of threads) {\n // Use rememberMessages for semantic search\n const result = await memory.rememberMessages({\n threadId: thread.id,\n resourceId,\n vectorMessageSearch: searchQuery,\n config,\n });\n\n // Get thread messages for context\n const threadMessages = (await memory.query({ threadId: thread.id, format: 'v2' })).uiMessages;\n\n // Process results\n result.messagesV2.forEach(msg => {\n if (messageMap.has(msg.id)) return;\n messageMap.set(msg.id, true);\n\n const content =\n msg.content.content || msg.content.parts?.map(p => (p.type === 'text' ? p.text : '')).join(' ') || '';\n\n if (!hasSemanticRecall && !content.toLowerCase().includes(searchQuery.toLowerCase())) {\n return;\n }\n\n const messageIndex = threadMessages.findIndex(m => m.id === msg.id);\n\n const searchResult: SearchResult = {\n id: msg.id,\n role: msg.role,\n content,\n createdAt: msg.createdAt,\n threadId: msg.threadId || thread.id,\n threadTitle: thread.title || msg.threadId || thread.id,\n };\n\n if (messageIndex !== -1) {\n searchResult.context = {\n before: threadMessages.slice(Math.max(0, messageIndex - 2), messageIndex).map(m => ({\n id: m.id,\n role: m.role,\n content: m.parts\n .map(p => (p.type === `text` ? p.text : null))\n .filter(Boolean)\n .join(`\\n`),\n // @ts-ignore\n createdAt: m.createdAt || new Date(),\n })),\n after: threadMessages.slice(messageIndex + 1, messageIndex + 3).map(m => ({\n id: m.id,\n role: m.role,\n content: m.parts\n .map(p => (p.type === `text` ? p.text : null))\n .filter(Boolean)\n .join(`\\n`),\n // @ts-ignore\n createdAt: m.createdAt || new Date(),\n })),\n };\n }\n\n searchResults.push(searchResult);\n });\n }\n } else if (threadId) {\n // Search in specific thread only\n const thread = await memory.getThreadById({ threadId });\n if (!thread) {\n // Thread doesn't exist yet - return empty results\n return {\n results: [],\n count: 0,\n query: searchQuery,\n searchScope: 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n }\n\n const result = await memory.rememberMessages({\n threadId,\n resourceId,\n vectorMessageSearch: searchQuery,\n config,\n });\n\n const threadMessages = (await memory.query({ threadId, format: 'v2' })).uiMessages;\n\n result.messagesV2.forEach(msg => {\n // Skip duplicates\n if (messageMap.has(msg.id)) return;\n messageMap.set(msg.id, true);\n\n // Extract content\n const content =\n msg.content.content || msg.content.parts?.map(p => (p.type === 'text' ? p.text : '')).join(' ') || '';\n\n // If not using semantic recall, filter by text search\n if (!hasSemanticRecall && !content.toLowerCase().includes(searchQuery.toLowerCase())) {\n return;\n }\n\n // Find message index for context\n const messageIndex = threadMessages.findIndex(m => m.id === msg.id);\n\n const searchResult: SearchResult = {\n id: msg.id,\n role: msg.role,\n content,\n createdAt: msg.createdAt,\n threadId: threadId,\n threadTitle: thread?.title || threadId,\n };\n\n // Add context if found\n if (messageIndex !== -1) {\n searchResult.context = {\n before: threadMessages.slice(Math.max(0, messageIndex - 2), messageIndex).map(m => ({\n id: m.id,\n role: m.role,\n content: m.parts\n .map(p => (p.type === `text` ? p.text : null))\n .filter(Boolean)\n .join(`\\n`),\n // @ts-ignore\n createdAt: m.createdAt || new Date(),\n })),\n after: threadMessages.slice(messageIndex + 1, messageIndex + 3).map(m => ({\n id: m.id,\n role: m.role,\n content: m.parts\n .map(p => (p.type === `text` ? p.text : null))\n .filter(Boolean)\n .join(`\\n`),\n // @ts-ignore\n createdAt: m.createdAt || new Date(),\n })),\n };\n }\n\n searchResults.push(searchResult);\n });\n }\n\n // Sort by date (newest first) and limit\n const sortedResults = searchResults\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())\n .slice(0, limit);\n\n return {\n results: sortedResults,\n count: sortedResults.length,\n query: searchQuery,\n searchScope: resourceScope ? 'resource' : 'thread',\n searchType: hasSemanticRecall ? 'semantic' : 'text',\n };\n } catch (error) {\n return handleError(error, 'Error searching memory');\n }\n}\n"]}
|