@mastra/server 0.0.0-llamaindex-extract-20250416163822 → 0.0.0-main-test-20251105183450
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/CHANGELOG.md +4494 -0
- package/LICENSE.md +11 -42
- package/README.md +45 -137
- package/dist/chunk-2PLXW4ZX.cjs +2777 -0
- package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
- package/dist/chunk-46Z2KDQL.js +124 -0
- package/dist/chunk-46Z2KDQL.js.map +1 -0
- package/dist/{chunk-FV45V6WC.cjs → chunk-64ITUOXI.cjs} +3 -7
- package/dist/chunk-64ITUOXI.cjs.map +1 -0
- package/dist/{chunk-TRDNDNGQ.js → chunk-6QWQZI4Q.js} +4 -7
- package/dist/chunk-6QWQZI4Q.js.map +1 -0
- package/dist/chunk-73PAWDM5.js +83 -0
- package/dist/chunk-73PAWDM5.js.map +1 -0
- package/dist/chunk-A5SOZY5R.js +502 -0
- package/dist/chunk-A5SOZY5R.js.map +1 -0
- package/dist/chunk-AEVI2HIU.cjs +651 -0
- package/dist/chunk-AEVI2HIU.cjs.map +1 -0
- package/dist/chunk-ALOLTNSO.js +477 -0
- package/dist/chunk-ALOLTNSO.js.map +1 -0
- package/dist/chunk-B6NK4KI5.cjs +128 -0
- package/dist/chunk-B6NK4KI5.cjs.map +1 -0
- package/dist/chunk-BANGX6SC.cjs +200 -0
- package/dist/chunk-BANGX6SC.cjs.map +1 -0
- package/dist/chunk-BHQH5QXD.cjs +172 -0
- package/dist/chunk-BHQH5QXD.cjs.map +1 -0
- package/dist/chunk-BTWIR2B7.cjs +28 -0
- package/dist/chunk-BTWIR2B7.cjs.map +1 -0
- package/dist/chunk-DNUO33HF.js +129 -0
- package/dist/chunk-DNUO33HF.js.map +1 -0
- package/dist/chunk-GTZOYEAU.cjs +130 -0
- package/dist/chunk-GTZOYEAU.cjs.map +1 -0
- package/dist/chunk-GU4EWMZB.cjs +769 -0
- package/dist/chunk-GU4EWMZB.cjs.map +1 -0
- package/dist/chunk-IGOWG5V5.js +192 -0
- package/dist/chunk-IGOWG5V5.js.map +1 -0
- package/dist/chunk-JO2AZFJN.js +165 -0
- package/dist/chunk-JO2AZFJN.js.map +1 -0
- package/dist/chunk-JZ65BJ6H.cjs +678 -0
- package/dist/chunk-JZ65BJ6H.cjs.map +1 -0
- package/dist/{chunk-4JINXASC.js → chunk-KWH5QBXP.js} +7 -4
- package/dist/chunk-KWH5QBXP.js.map +1 -0
- package/dist/chunk-LF2ZLOFP.js +767 -0
- package/dist/chunk-LF2ZLOFP.js.map +1 -0
- package/dist/{chunk-3RVHWGWO.js → chunk-LPCK5MAF.js} +49 -22
- package/dist/chunk-LPCK5MAF.js.map +1 -0
- package/dist/chunk-LPM6BBAX.cjs +1043 -0
- package/dist/chunk-LPM6BBAX.cjs.map +1 -0
- package/dist/chunk-LWLSQ2W4.cjs +133 -0
- package/dist/chunk-LWLSQ2W4.cjs.map +1 -0
- package/dist/chunk-MMQIJZ2Q.cjs +23079 -0
- package/dist/chunk-MMQIJZ2Q.cjs.map +1 -0
- package/dist/chunk-O7I5CWRX.cjs +44 -0
- package/dist/chunk-O7I5CWRX.cjs.map +1 -0
- package/dist/chunk-PPMIB3FQ.cjs +88 -0
- package/dist/chunk-PPMIB3FQ.cjs.map +1 -0
- package/dist/chunk-PR4QN5HX.js +39 -0
- package/dist/chunk-PR4QN5HX.js.map +1 -0
- package/dist/chunk-QU6N55W6.cjs +256 -0
- package/dist/chunk-QU6N55W6.cjs.map +1 -0
- package/dist/chunk-R6OQFR47.js +630 -0
- package/dist/chunk-R6OQFR47.js.map +1 -0
- package/dist/chunk-RQK4FQUD.js +1012 -0
- package/dist/chunk-RQK4FQUD.js.map +1 -0
- package/dist/{chunk-M56ECCHK.cjs → chunk-S54HNARD.cjs} +22 -19
- package/dist/chunk-S54HNARD.cjs.map +1 -0
- package/dist/chunk-SHWNNZBL.js +254 -0
- package/dist/chunk-SHWNNZBL.js.map +1 -0
- package/dist/chunk-SIPNICB3.cjs +517 -0
- package/dist/chunk-SIPNICB3.cjs.map +1 -0
- package/dist/{chunk-L7XE5QTW.js → chunk-SZIFSF4T.js} +11 -2
- package/dist/chunk-SZIFSF4T.js.map +1 -0
- package/dist/chunk-TOCYBDP2.js +46 -0
- package/dist/chunk-TOCYBDP2.js.map +1 -0
- package/dist/chunk-UU7MMOP5.js +23039 -0
- package/dist/chunk-UU7MMOP5.js.map +1 -0
- package/dist/chunk-UXGQZUYZ.js +16 -0
- package/dist/chunk-UXGQZUYZ.js.map +1 -0
- package/dist/chunk-V5WWQN7P.cjs +18 -0
- package/dist/chunk-V5WWQN7P.cjs.map +1 -0
- package/dist/chunk-VYR3SAFM.js +658 -0
- package/dist/chunk-VYR3SAFM.js.map +1 -0
- package/dist/chunk-X6C7BUWN.cjs +48 -0
- package/dist/chunk-X6C7BUWN.cjs.map +1 -0
- package/dist/chunk-XXGID4PQ.cjs +485 -0
- package/dist/chunk-XXGID4PQ.cjs.map +1 -0
- package/dist/chunk-ZULZ2752.js +2774 -0
- package/dist/chunk-ZULZ2752.js.map +1 -0
- package/dist/dist-4MVGNSRL.cjs +1150 -0
- package/dist/dist-4MVGNSRL.cjs.map +1 -0
- package/dist/dist-FZYCV3VB.cjs +940 -0
- package/dist/dist-FZYCV3VB.cjs.map +1 -0
- package/dist/dist-G2BYZJOC.cjs +928 -0
- package/dist/dist-G2BYZJOC.cjs.map +1 -0
- package/dist/dist-P4MXBQ3U.cjs +16 -0
- package/dist/dist-P4MXBQ3U.cjs.map +1 -0
- package/dist/dist-PQZUVLPC.js +937 -0
- package/dist/dist-PQZUVLPC.js.map +1 -0
- package/dist/dist-R7WYX6LC.js +925 -0
- package/dist/dist-R7WYX6LC.js.map +1 -0
- package/dist/dist-RFMYFILX.cjs +764 -0
- package/dist/dist-RFMYFILX.cjs.map +1 -0
- package/dist/dist-X7XR3M3Z.js +1147 -0
- package/dist/dist-X7XR3M3Z.js.map +1 -0
- package/dist/dist-XVBSOGFK.js +761 -0
- package/dist/dist-XVBSOGFK.js.map +1 -0
- package/dist/dist-YREX2TJT.js +3 -0
- package/dist/dist-YREX2TJT.js.map +1 -0
- package/dist/index.cjs +6 -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 +5 -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.cjs +25 -0
- package/dist/server/a2a/store.cjs.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/store.js +23 -0
- package/dist/server/a2a/store.js.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 +32 -0
- package/dist/server/handlers/a2a.cjs.map +1 -0
- package/dist/server/handlers/a2a.d.ts +68 -0
- package/dist/server/handlers/a2a.d.ts.map +1 -0
- package/dist/server/handlers/a2a.js +3 -0
- package/dist/server/handlers/a2a.js.map +1 -0
- package/dist/server/handlers/agent-builder.cjs +84 -0
- package/dist/server/handlers/agent-builder.cjs.map +1 -0
- package/dist/server/handlers/agent-builder.d.ts +91 -0
- package/dist/server/handlers/agent-builder.d.ts.map +1 -0
- package/dist/server/handlers/agent-builder.js +3 -0
- package/dist/server/handlers/agent-builder.js.map +1 -0
- package/dist/server/handlers/agents.cjs +60 -10
- package/dist/server/handlers/agents.cjs.map +1 -0
- package/dist/server/handlers/agents.d.ts +194 -6
- 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/logs.cjs +9 -7
- 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 +34 -12
- package/dist/server/handlers/memory.cjs.map +1 -0
- package/dist/server/handlers/memory.d.ts +112 -8
- 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/observability.cjs +24 -0
- package/dist/server/handlers/observability.cjs.map +1 -0
- package/dist/server/handlers/observability.d.ts +49 -0
- package/dist/server/handlers/observability.d.ts.map +1 -0
- package/dist/server/handlers/observability.js +3 -0
- package/dist/server/handlers/observability.js.map +1 -0
- package/dist/server/handlers/scores.cjs +32 -0
- package/dist/server/handlers/scores.cjs.map +1 -0
- package/dist/server/handlers/scores.d.ts +152 -0
- package/dist/server/handlers/scores.d.ts.map +1 -0
- package/dist/server/handlers/scores.js +3 -0
- package/dist/server/handlers/scores.js.map +1 -0
- package/dist/server/handlers/tools.cjs +12 -6
- package/dist/server/handlers/tools.cjs.map +1 -0
- package/dist/server/handlers/tools.d.ts +25 -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 +8 -2
- package/dist/server/handlers/utils.cjs.map +1 -0
- package/dist/server/handlers/utils.d.ts +8 -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/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 +10 -4
- package/dist/server/handlers/voice.cjs.map +1 -0
- package/dist/server/handlers/voice.d.ts +41 -3
- 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 +54 -16
- package/dist/server/handlers/workflows.cjs.map +1 -0
- package/dist/server/handlers/workflows.d.ts +94 -10
- 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 +38 -26
- package/dist/server/handlers.cjs.map +1 -0
- package/dist/server/handlers.d.ts +12 -9
- package/dist/server/handlers.d.ts.map +1 -0
- package/dist/server/handlers.js +13 -9
- package/dist/server/handlers.js.map +1 -0
- package/dist/server/http-exception.d.ts +82 -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/dist/server/utils.d.ts +44 -0
- package/dist/server/utils.d.ts.map +1 -0
- package/dist/token-375W3LEI.cjs +64 -0
- package/dist/token-375W3LEI.cjs.map +1 -0
- package/dist/token-C3IMNCC4.js +62 -0
- package/dist/token-C3IMNCC4.js.map +1 -0
- package/dist/token-util-CV3RRG6K.cjs +9 -0
- package/dist/token-util-CV3RRG6K.cjs.map +1 -0
- package/dist/token-util-E5QO2RCL.js +7 -0
- package/dist/token-util-E5QO2RCL.js.map +1 -0
- package/package.json +46 -19
- package/dist/_tsup-dts-rollup.d.cts +0 -573
- package/dist/_tsup-dts-rollup.d.ts +0 -573
- package/dist/chunk-2FJURXCL.cjs +0 -213
- package/dist/chunk-3AHQ5RGN.js +0 -11
- package/dist/chunk-3EJZQ6TQ.js +0 -49
- package/dist/chunk-67WTHYAV.js +0 -156
- package/dist/chunk-A7DF4ETD.cjs +0 -100
- package/dist/chunk-B64YROKU.cjs +0 -317
- package/dist/chunk-CWSDZEZG.cjs +0 -139
- package/dist/chunk-DVPP5S6I.js +0 -135
- package/dist/chunk-JLDXUWK7.cjs +0 -126
- package/dist/chunk-OPP7H5TW.js +0 -305
- package/dist/chunk-PDC4ZBQW.cjs +0 -126
- package/dist/chunk-QH6XWSXP.cjs +0 -5579
- package/dist/chunk-QN4KF3BH.cjs +0 -18
- package/dist/chunk-RBQASTUP.js +0 -203
- package/dist/chunk-SKBVVI24.cjs +0 -54
- package/dist/chunk-UV4WTEH4.js +0 -120
- package/dist/chunk-VK6FX47H.js +0 -5576
- package/dist/chunk-YANVFOYA.js +0 -120
- package/dist/chunk-Z46X3YCB.cjs +0 -164
- package/dist/chunk-ZLBRQFDD.cjs +0 -13
- package/dist/index.d.cts +0 -1
- package/dist/server/handlers/agents.d.cts +0 -6
- package/dist/server/handlers/error.d.cts +0 -1
- package/dist/server/handlers/logs.d.cts +0 -3
- package/dist/server/handlers/memory.d.cts +0 -8
- package/dist/server/handlers/network.cjs +0 -22
- package/dist/server/handlers/network.d.cts +0 -4
- package/dist/server/handlers/network.d.ts +0 -4
- package/dist/server/handlers/network.js +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -14
- package/dist/server/handlers/telemetry.d.cts +0 -2
- package/dist/server/handlers/telemetry.d.ts +0 -2
- package/dist/server/handlers/telemetry.js +0 -1
- package/dist/server/handlers/tools.d.cts +0 -4
- package/dist/server/handlers/utils.d.cts +0 -1
- package/dist/server/handlers/vector.d.cts +0 -6
- package/dist/server/handlers/voice.d.cts +0 -3
- package/dist/server/handlers/workflows.d.cts +0 -10
- package/dist/server/handlers.d.cts +0 -9
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkBTWIR2B7_cjs = require('./chunk-BTWIR2B7.cjs');
|
|
4
|
+
var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
|
|
5
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
6
|
+
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
7
|
+
var stream = require('stream');
|
|
8
|
+
var error = require('@mastra/core/error');
|
|
9
|
+
|
|
10
|
+
// src/server/handlers/voice.ts
|
|
11
|
+
var voice_exports = {};
|
|
12
|
+
chunkO7I5CWRX_cjs.__export(voice_exports, {
|
|
13
|
+
generateSpeechHandler: () => generateSpeechHandler,
|
|
14
|
+
getListenerHandler: () => getListenerHandler,
|
|
15
|
+
getSpeakersHandler: () => getSpeakersHandler,
|
|
16
|
+
transcribeSpeechHandler: () => transcribeSpeechHandler
|
|
17
|
+
});
|
|
18
|
+
async function getSpeakersHandler({ mastra, agentId, requestContext }) {
|
|
19
|
+
try {
|
|
20
|
+
if (!agentId) {
|
|
21
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
22
|
+
}
|
|
23
|
+
const agent = mastra.getAgent(agentId);
|
|
24
|
+
if (!agent) {
|
|
25
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
26
|
+
}
|
|
27
|
+
const voice = await agent.getVoice({ requestContext });
|
|
28
|
+
if (!voice) {
|
|
29
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
30
|
+
}
|
|
31
|
+
const speakers = await voice.getSpeakers();
|
|
32
|
+
return speakers;
|
|
33
|
+
} catch (error) {
|
|
34
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting speakers");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function generateSpeechHandler({
|
|
38
|
+
mastra,
|
|
39
|
+
agentId,
|
|
40
|
+
body,
|
|
41
|
+
requestContext
|
|
42
|
+
}) {
|
|
43
|
+
try {
|
|
44
|
+
if (!agentId) {
|
|
45
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
46
|
+
}
|
|
47
|
+
chunkBTWIR2B7_cjs.validateBody({
|
|
48
|
+
text: body?.text
|
|
49
|
+
});
|
|
50
|
+
const agent = mastra.getAgent(agentId);
|
|
51
|
+
if (!agent) {
|
|
52
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
53
|
+
}
|
|
54
|
+
const voice = await agent.getVoice({ requestContext });
|
|
55
|
+
if (!voice) {
|
|
56
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
57
|
+
}
|
|
58
|
+
const audioStream = await Promise.resolve().then(() => voice.speak(body.text, { speaker: body.speakerId })).catch((err) => {
|
|
59
|
+
if (err instanceof error.MastraError) {
|
|
60
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: err.message });
|
|
61
|
+
}
|
|
62
|
+
throw err;
|
|
63
|
+
});
|
|
64
|
+
if (!audioStream) {
|
|
65
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Failed to generate speech" });
|
|
66
|
+
}
|
|
67
|
+
return audioStream;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error generating speech");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function transcribeSpeechHandler({
|
|
73
|
+
mastra,
|
|
74
|
+
agentId,
|
|
75
|
+
body,
|
|
76
|
+
requestContext
|
|
77
|
+
}) {
|
|
78
|
+
try {
|
|
79
|
+
if (!agentId) {
|
|
80
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
81
|
+
}
|
|
82
|
+
if (!body?.audioData) {
|
|
83
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Audio data is required" });
|
|
84
|
+
}
|
|
85
|
+
const agent = mastra.getAgent(agentId);
|
|
86
|
+
if (!agent) {
|
|
87
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
88
|
+
}
|
|
89
|
+
const voice = await agent.getVoice({ requestContext });
|
|
90
|
+
if (!voice) {
|
|
91
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
92
|
+
}
|
|
93
|
+
const audioStream = new stream.Readable();
|
|
94
|
+
audioStream.push(body.audioData);
|
|
95
|
+
audioStream.push(null);
|
|
96
|
+
const text = await voice.listen(audioStream, body.options);
|
|
97
|
+
return { text };
|
|
98
|
+
} catch (error) {
|
|
99
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error transcribing speech");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async function getListenerHandler({ mastra, agentId, requestContext }) {
|
|
103
|
+
try {
|
|
104
|
+
if (!agentId) {
|
|
105
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
|
|
106
|
+
}
|
|
107
|
+
const agent = mastra.getAgent(agentId);
|
|
108
|
+
if (!agent) {
|
|
109
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
110
|
+
}
|
|
111
|
+
const voice = await agent.getVoice({ requestContext });
|
|
112
|
+
if (!voice) {
|
|
113
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
114
|
+
}
|
|
115
|
+
const listeners = await voice.getListener();
|
|
116
|
+
return listeners;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting listeners");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
exports.generateSpeechHandler = generateSpeechHandler;
|
|
123
|
+
exports.getListenerHandler = getListenerHandler;
|
|
124
|
+
exports.getSpeakersHandler = getSpeakersHandler;
|
|
125
|
+
exports.transcribeSpeechHandler = transcribeSpeechHandler;
|
|
126
|
+
exports.voice_exports = voice_exports;
|
|
127
|
+
//# sourceMappingURL=chunk-B6NK4KI5.cjs.map
|
|
128
|
+
//# sourceMappingURL=chunk-B6NK4KI5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/voice.ts"],"names":["__export","HTTPException","handleError","validateBody","MastraError","Readable"],"mappings":"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","file":"chunk-B6NK4KI5.cjs","sourcesContent":["import { Readable } from 'stream';\nimport type { Agent } from '@mastra/core/agent';\nimport { MastraError } from '@mastra/core/error';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\ninterface VoiceContext extends Context {\n agentId?: string;\n requestContext?: RequestContext;\n}\n\n/**\n * Get available speakers for an agent\n */\nexport async function getSpeakersHandler({ mastra, agentId, requestContext }: VoiceContext) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const speakers = await voice.getSpeakers();\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n}\n\n/**\n * Generate speech from text\n */\nexport async function generateSpeechHandler({\n mastra,\n agentId,\n body,\n requestContext,\n}: VoiceContext & {\n body?: {\n text?: string;\n speakerId?: string;\n };\n}) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({\n text: body?.text,\n });\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(body!.text!, { speaker: body!.speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n}\n\n/**\n * Transcribe speech to text\n */\nexport async function transcribeSpeechHandler({\n mastra,\n agentId,\n body,\n requestContext,\n}: VoiceContext & {\n body?: {\n audioData?: Buffer;\n options?: Parameters<NonNullable<Agent['voice']>['listen']>[1];\n };\n}) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!body?.audioData) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(body.audioData);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, body.options);\n return { text };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n}\n\n/**\n * Get available listeners for an agent\n */\nexport async function getListenerHandler({ mastra, agentId, requestContext }: VoiceContext) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const listeners = await voice.getListener();\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n}\n"]}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
|
|
4
|
+
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
5
|
+
|
|
6
|
+
// src/server/handlers/scores.ts
|
|
7
|
+
var scores_exports = {};
|
|
8
|
+
chunkO7I5CWRX_cjs.__export(scores_exports, {
|
|
9
|
+
getScorerHandler: () => getScorerHandler,
|
|
10
|
+
listScorersHandler: () => listScorersHandler,
|
|
11
|
+
listScoresByEntityIdHandler: () => listScoresByEntityIdHandler,
|
|
12
|
+
listScoresByRunIdHandler: () => listScoresByRunIdHandler,
|
|
13
|
+
listScoresByScorerIdHandler: () => listScoresByScorerIdHandler,
|
|
14
|
+
saveScoreHandler: () => saveScoreHandler
|
|
15
|
+
});
|
|
16
|
+
async function listScorersFromSystem({
|
|
17
|
+
mastra,
|
|
18
|
+
requestContext
|
|
19
|
+
}) {
|
|
20
|
+
const agents = mastra.listAgents();
|
|
21
|
+
const workflows = mastra.listWorkflows();
|
|
22
|
+
const scorersMap = /* @__PURE__ */ new Map();
|
|
23
|
+
for (const [agentId, agent] of Object.entries(agents)) {
|
|
24
|
+
const scorers = await agent.listScorers({
|
|
25
|
+
requestContext
|
|
26
|
+
}) || {};
|
|
27
|
+
if (Object.keys(scorers).length > 0) {
|
|
28
|
+
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
29
|
+
const scorerId = scorer.scorer.id;
|
|
30
|
+
if (scorersMap.has(scorerId)) {
|
|
31
|
+
scorersMap.get(scorerId)?.agentIds.push(agentId);
|
|
32
|
+
scorersMap.get(scorerId)?.agentNames.push(agent.name);
|
|
33
|
+
} else {
|
|
34
|
+
scorersMap.set(scorerId, {
|
|
35
|
+
workflowIds: [],
|
|
36
|
+
...scorer,
|
|
37
|
+
agentNames: [agent.name],
|
|
38
|
+
agentIds: [agentId],
|
|
39
|
+
isRegistered: false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
for (const [workflowId, workflow] of Object.entries(workflows)) {
|
|
46
|
+
const scorers = await workflow.listScorers({
|
|
47
|
+
requestContext
|
|
48
|
+
}) || {};
|
|
49
|
+
if (Object.keys(scorers).length > 0) {
|
|
50
|
+
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
51
|
+
const scorerName = scorer.scorer.name;
|
|
52
|
+
if (scorersMap.has(scorerName)) {
|
|
53
|
+
scorersMap.get(scorerName)?.workflowIds.push(workflowId);
|
|
54
|
+
} else {
|
|
55
|
+
scorersMap.set(scorerName, {
|
|
56
|
+
agentIds: [],
|
|
57
|
+
agentNames: [],
|
|
58
|
+
...scorer,
|
|
59
|
+
workflowIds: [workflowId],
|
|
60
|
+
isRegistered: false
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const registeredScorers = await mastra.listScorers();
|
|
67
|
+
for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {
|
|
68
|
+
const scorerId = scorer.id;
|
|
69
|
+
if (scorersMap.has(scorerId)) {
|
|
70
|
+
scorersMap.get(scorerId).isRegistered = true;
|
|
71
|
+
} else {
|
|
72
|
+
scorersMap.set(scorerId, {
|
|
73
|
+
scorer,
|
|
74
|
+
agentIds: [],
|
|
75
|
+
agentNames: [],
|
|
76
|
+
workflowIds: [],
|
|
77
|
+
isRegistered: true
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return Object.fromEntries(scorersMap.entries());
|
|
82
|
+
}
|
|
83
|
+
async function listScorersHandler({ mastra, requestContext }) {
|
|
84
|
+
const scorers = await listScorersFromSystem({
|
|
85
|
+
mastra,
|
|
86
|
+
requestContext
|
|
87
|
+
});
|
|
88
|
+
return scorers;
|
|
89
|
+
}
|
|
90
|
+
async function getScorerHandler({
|
|
91
|
+
mastra,
|
|
92
|
+
scorerId,
|
|
93
|
+
requestContext
|
|
94
|
+
}) {
|
|
95
|
+
const scorers = await listScorersFromSystem({
|
|
96
|
+
mastra,
|
|
97
|
+
requestContext
|
|
98
|
+
});
|
|
99
|
+
const scorer = scorers[scorerId];
|
|
100
|
+
if (!scorer) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return scorer;
|
|
104
|
+
}
|
|
105
|
+
async function listScoresByRunIdHandler({
|
|
106
|
+
mastra,
|
|
107
|
+
runId,
|
|
108
|
+
pagination
|
|
109
|
+
}) {
|
|
110
|
+
try {
|
|
111
|
+
const scoreResults = await mastra.getStorage()?.listScoresByRunId?.({
|
|
112
|
+
runId,
|
|
113
|
+
pagination
|
|
114
|
+
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
115
|
+
return {
|
|
116
|
+
pagination: scoreResults.pagination,
|
|
117
|
+
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
118
|
+
};
|
|
119
|
+
} catch (error) {
|
|
120
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by run id");
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async function listScoresByScorerIdHandler({
|
|
124
|
+
mastra,
|
|
125
|
+
scorerId,
|
|
126
|
+
pagination,
|
|
127
|
+
entityId,
|
|
128
|
+
entityType
|
|
129
|
+
}) {
|
|
130
|
+
try {
|
|
131
|
+
const scoreResults = await mastra.getStorage()?.listScoresByScorerId?.({
|
|
132
|
+
scorerId,
|
|
133
|
+
pagination,
|
|
134
|
+
entityId,
|
|
135
|
+
entityType
|
|
136
|
+
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
137
|
+
return {
|
|
138
|
+
pagination: scoreResults.pagination,
|
|
139
|
+
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
140
|
+
};
|
|
141
|
+
} catch (error) {
|
|
142
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by scorer id");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async function listScoresByEntityIdHandler({
|
|
146
|
+
mastra,
|
|
147
|
+
entityId,
|
|
148
|
+
entityType,
|
|
149
|
+
pagination
|
|
150
|
+
}) {
|
|
151
|
+
try {
|
|
152
|
+
let entityIdToUse = entityId;
|
|
153
|
+
if (entityType === "AGENT") {
|
|
154
|
+
const agent = mastra.getAgentById(entityId);
|
|
155
|
+
entityIdToUse = agent.id;
|
|
156
|
+
} else if (entityType === "WORKFLOW") {
|
|
157
|
+
const workflow = mastra.getWorkflowById(entityId);
|
|
158
|
+
entityIdToUse = workflow.id;
|
|
159
|
+
}
|
|
160
|
+
const scoreResults = await mastra.getStorage()?.listScoresByEntityId?.({
|
|
161
|
+
entityId: entityIdToUse,
|
|
162
|
+
entityType,
|
|
163
|
+
pagination
|
|
164
|
+
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
165
|
+
return {
|
|
166
|
+
pagination: scoreResults.pagination,
|
|
167
|
+
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
168
|
+
};
|
|
169
|
+
} catch (error) {
|
|
170
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by entity id");
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function getTraceDetails(traceIdWithSpanId) {
|
|
174
|
+
if (!traceIdWithSpanId) {
|
|
175
|
+
return {};
|
|
176
|
+
}
|
|
177
|
+
const [traceId, spanId] = traceIdWithSpanId.split("-");
|
|
178
|
+
return {
|
|
179
|
+
...traceId ? { traceId } : {},
|
|
180
|
+
...spanId ? { spanId } : {}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
async function saveScoreHandler({ mastra, score }) {
|
|
184
|
+
try {
|
|
185
|
+
const scores = await mastra.getStorage()?.saveScore?.(score) || [];
|
|
186
|
+
return scores;
|
|
187
|
+
} catch (error) {
|
|
188
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error saving score");
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
exports.getScorerHandler = getScorerHandler;
|
|
193
|
+
exports.listScorersHandler = listScorersHandler;
|
|
194
|
+
exports.listScoresByEntityIdHandler = listScoresByEntityIdHandler;
|
|
195
|
+
exports.listScoresByRunIdHandler = listScoresByRunIdHandler;
|
|
196
|
+
exports.listScoresByScorerIdHandler = listScoresByScorerIdHandler;
|
|
197
|
+
exports.saveScoreHandler = saveScoreHandler;
|
|
198
|
+
exports.scores_exports = scores_exports;
|
|
199
|
+
//# sourceMappingURL=chunk-BANGX6SC.cjs.map
|
|
200
|
+
//# sourceMappingURL=chunk-BANGX6SC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":["__export","handleError"],"mappings":"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","file":"chunk-BANGX6SC.cjs","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport type { Context } from '../types';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & { agentIds: string[]; agentNames: string[]; workflowIds: string[]; isRegistered: boolean }\n >();\n\n for (const [agentId, agent] of Object.entries(agents)) {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agentId);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agentId],\n isRegistered: false,\n });\n }\n }\n }\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\nexport async function listScorersHandler({ mastra, requestContext }: Context & { requestContext: RequestContext }) {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n return scorers;\n}\n\nexport async function getScorerHandler({\n mastra,\n scorerId,\n requestContext,\n}: Context & { scorerId: string; requestContext: RequestContext }) {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n}\n\nexport async function listScoresByRunIdHandler({\n mastra,\n runId,\n pagination,\n}: Context & { runId: string; pagination: StoragePagination }) {\n try {\n const scoreResults = (await mastra.getStorage()?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n}\n\nexport async function listScoresByScorerIdHandler({\n mastra,\n scorerId,\n pagination,\n entityId,\n entityType,\n}: Context & { scorerId: string; pagination: StoragePagination; entityId?: string; entityType?: string }) {\n try {\n const scoreResults = (await mastra.getStorage()?.listScoresByScorerId?.({\n scorerId,\n pagination,\n entityId,\n entityType,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n}\n\nexport async function listScoresByEntityIdHandler({\n mastra,\n entityId,\n entityType,\n pagination,\n}: Context & { entityId: string; entityType: string; pagination: StoragePagination }) {\n try {\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = mastra.getAgentById(entityId);\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const scoreResults = (await mastra.getStorage()?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map(score => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\nexport async function saveScoreHandler({ mastra, score }: Context & { score: ScoreRowData }) {\n try {\n const scores = (await mastra.getStorage()?.saveScore?.(score)) || [];\n return scores;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n}\n"]}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
|
|
4
|
+
var chunkBTWIR2B7_cjs = require('./chunk-BTWIR2B7.cjs');
|
|
5
|
+
var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
|
|
6
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
7
|
+
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
8
|
+
var tools = require('@mastra/core/tools');
|
|
9
|
+
var zodToJson = require('@mastra/core/utils/zod-to-json');
|
|
10
|
+
|
|
11
|
+
// src/server/handlers/tools.ts
|
|
12
|
+
var tools_exports = {};
|
|
13
|
+
chunkO7I5CWRX_cjs.__export(tools_exports, {
|
|
14
|
+
executeAgentToolHandler: () => executeAgentToolHandler,
|
|
15
|
+
executeToolHandler: () => executeToolHandler,
|
|
16
|
+
getAgentToolHandler: () => getAgentToolHandler,
|
|
17
|
+
getToolByIdHandler: () => getToolByIdHandler,
|
|
18
|
+
listToolsHandler: () => listToolsHandler
|
|
19
|
+
});
|
|
20
|
+
async function listToolsHandler({ tools }) {
|
|
21
|
+
try {
|
|
22
|
+
if (!tools) {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
const serializedTools = Object.entries(tools).reduce(
|
|
26
|
+
(acc, [id, _tool]) => {
|
|
27
|
+
const tool = _tool;
|
|
28
|
+
acc[id] = {
|
|
29
|
+
...tool,
|
|
30
|
+
inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
31
|
+
outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
|
|
32
|
+
};
|
|
33
|
+
return acc;
|
|
34
|
+
},
|
|
35
|
+
{}
|
|
36
|
+
);
|
|
37
|
+
return serializedTools;
|
|
38
|
+
} catch (error) {
|
|
39
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting tools");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async function getToolByIdHandler({ tools, toolId }) {
|
|
43
|
+
try {
|
|
44
|
+
const tool = Object.values(tools || {}).find((tool2) => tool2.id === toolId);
|
|
45
|
+
if (!tool) {
|
|
46
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
|
|
47
|
+
}
|
|
48
|
+
const serializedTool = {
|
|
49
|
+
...tool,
|
|
50
|
+
inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
51
|
+
outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
|
|
52
|
+
};
|
|
53
|
+
return serializedTool;
|
|
54
|
+
} catch (error) {
|
|
55
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting tool");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function executeToolHandler(tools$1) {
|
|
59
|
+
return async ({
|
|
60
|
+
mastra,
|
|
61
|
+
runId,
|
|
62
|
+
toolId,
|
|
63
|
+
data,
|
|
64
|
+
requestContext
|
|
65
|
+
}) => {
|
|
66
|
+
try {
|
|
67
|
+
if (!toolId) {
|
|
68
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool ID is required" });
|
|
69
|
+
}
|
|
70
|
+
const tool = Object.values(tools$1 || {}).find((tool2) => tool2.id === toolId);
|
|
71
|
+
if (!tool) {
|
|
72
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
|
|
73
|
+
}
|
|
74
|
+
if (!tool?.execute) {
|
|
75
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
|
|
76
|
+
}
|
|
77
|
+
chunkBTWIR2B7_cjs.validateBody({ data });
|
|
78
|
+
if (tools.isVercelTool(tool)) {
|
|
79
|
+
const result2 = await tool.execute(data);
|
|
80
|
+
return result2;
|
|
81
|
+
}
|
|
82
|
+
const result = await tool.execute(data, {
|
|
83
|
+
mastra,
|
|
84
|
+
requestContext,
|
|
85
|
+
// TODO: Pass proper tracing context when server API supports tracing
|
|
86
|
+
tracingContext: { currentSpan: void 0 },
|
|
87
|
+
...runId ? {
|
|
88
|
+
workflow: {
|
|
89
|
+
runId,
|
|
90
|
+
suspend: async () => {
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
} : {}
|
|
94
|
+
});
|
|
95
|
+
return result;
|
|
96
|
+
} catch (error) {
|
|
97
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error executing tool");
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async function getAgentToolHandler({
|
|
102
|
+
mastra,
|
|
103
|
+
agentId,
|
|
104
|
+
toolId,
|
|
105
|
+
requestContext
|
|
106
|
+
}) {
|
|
107
|
+
try {
|
|
108
|
+
const agent = agentId ? mastra.getAgent(agentId) : null;
|
|
109
|
+
if (!agent) {
|
|
110
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
|
|
111
|
+
}
|
|
112
|
+
const agentTools = await agent.listTools({ requestContext });
|
|
113
|
+
const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
|
|
114
|
+
if (!tool) {
|
|
115
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
|
|
116
|
+
}
|
|
117
|
+
const serializedTool = {
|
|
118
|
+
...tool,
|
|
119
|
+
inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
120
|
+
outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
|
|
121
|
+
};
|
|
122
|
+
return serializedTool;
|
|
123
|
+
} catch (error) {
|
|
124
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting agent tool");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async function executeAgentToolHandler({
|
|
128
|
+
mastra,
|
|
129
|
+
agentId,
|
|
130
|
+
toolId,
|
|
131
|
+
data,
|
|
132
|
+
requestContext
|
|
133
|
+
}) {
|
|
134
|
+
try {
|
|
135
|
+
const agent = agentId ? mastra.getAgent(agentId) : null;
|
|
136
|
+
if (!agent) {
|
|
137
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
|
|
138
|
+
}
|
|
139
|
+
const agentTools = await agent.listTools({ requestContext });
|
|
140
|
+
const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
|
|
141
|
+
if (!tool) {
|
|
142
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
|
|
143
|
+
}
|
|
144
|
+
if (!tool?.execute) {
|
|
145
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
|
|
146
|
+
}
|
|
147
|
+
const result = await tool.execute(data, {
|
|
148
|
+
mastra,
|
|
149
|
+
requestContext,
|
|
150
|
+
// TODO: Pass proper tracing context when server API supports tracing
|
|
151
|
+
tracingContext: { currentSpan: void 0 },
|
|
152
|
+
agent: {
|
|
153
|
+
messages: [],
|
|
154
|
+
toolCallId: "",
|
|
155
|
+
suspend: async () => {
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return result;
|
|
160
|
+
} catch (error) {
|
|
161
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error executing tool");
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
exports.executeAgentToolHandler = executeAgentToolHandler;
|
|
166
|
+
exports.executeToolHandler = executeToolHandler;
|
|
167
|
+
exports.getAgentToolHandler = getAgentToolHandler;
|
|
168
|
+
exports.getToolByIdHandler = getToolByIdHandler;
|
|
169
|
+
exports.listToolsHandler = listToolsHandler;
|
|
170
|
+
exports.tools_exports = tools_exports;
|
|
171
|
+
//# sourceMappingURL=chunk-BHQH5QXD.cjs.map
|
|
172
|
+
//# sourceMappingURL=chunk-BHQH5QXD.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["__export","stringify","zodToJsonSchema","handleError","tool","HTTPException","tools","validateBody","isVercelTool","result"],"mappings":"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","file":"chunk-BHQH5QXD.cjs","sourcesContent":["import type { RequestContext } from '@mastra/core/di';\nimport type { ToolAction, VercelTool } from '@mastra/core/tools';\nimport { isVercelTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\ninterface ToolsContext extends Context {\n tools?: Record<string, ToolAction | VercelTool>;\n toolId?: string;\n runId?: string;\n}\n\n// Tool handlers\nexport async function listToolsHandler({ tools }: Pick<ToolsContext, 'tools'>) {\n try {\n if (!tools) {\n return {};\n }\n\n const serializedTools = Object.entries(tools).reduce(\n (acc, [id, _tool]) => {\n const tool = _tool as any;\n acc[id] = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n return acc;\n },\n {} as Record<string, any>,\n );\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n}\n\nexport async function getToolByIdHandler({ tools, toolId }: Pick<ToolsContext, 'tools' | 'toolId'>) {\n try {\n const tool = Object.values(tools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n}\n\nexport function executeToolHandler(tools: ToolsContext['tools']) {\n return async ({\n mastra,\n runId,\n toolId,\n data,\n requestContext,\n }: Pick<ToolsContext, 'mastra' | 'toolId' | 'runId'> & {\n data?: unknown;\n requestContext: RequestContext;\n }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n const tool = Object.values(tools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n validateBody({ data });\n\n if (isVercelTool(tool)) {\n const result = await (tool as any).execute(data);\n return result;\n }\n\n const result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n };\n}\n\nexport async function getAgentToolHandler({\n mastra,\n agentId,\n toolId,\n requestContext,\n}: Pick<ToolsContext, 'mastra' | 'toolId'> & {\n agentId?: string;\n requestContext: RequestContext;\n}) {\n try {\n const agent = agentId ? mastra.getAgent(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n}\n\nexport async function executeAgentToolHandler({\n mastra,\n agentId,\n toolId,\n data,\n requestContext,\n}: Pick<ToolsContext, 'mastra' | 'toolId'> & {\n agentId?: string;\n data: any;\n requestContext: RequestContext;\n}) {\n try {\n const agent = agentId ? mastra.getAgent(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n // if (isVercelTool(tool)) {\n // const result = await (tool as any).execute(data);\n // return result;\n // }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n agent: {\n messages: [],\n toolCallId: '',\n suspend: async () => {},\n },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
4
|
+
|
|
5
|
+
// src/server/handlers/utils.ts
|
|
6
|
+
function validateBody(body) {
|
|
7
|
+
const errorResponse = Object.entries(body).reduce((acc, [key, value]) => {
|
|
8
|
+
if (!value) {
|
|
9
|
+
acc[key] = `Argument "${key}" is required`;
|
|
10
|
+
}
|
|
11
|
+
return acc;
|
|
12
|
+
}, {});
|
|
13
|
+
if (Object.keys(errorResponse).length > 0) {
|
|
14
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: Object.values(errorResponse)[0] });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function sanitizeBody(body, disallowedKeys) {
|
|
18
|
+
for (const key of disallowedKeys) {
|
|
19
|
+
if (key in body) {
|
|
20
|
+
delete body[key];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.sanitizeBody = sanitizeBody;
|
|
26
|
+
exports.validateBody = validateBody;
|
|
27
|
+
//# sourceMappingURL=chunk-BTWIR2B7.cjs.map
|
|
28
|
+
//# sourceMappingURL=chunk-BTWIR2B7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/utils.ts"],"names":["HTTPException"],"mappings":";;;;;AAGO,SAAS,aAAa,IAAA,EAA+B;AAC1D,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,MAAA,CAA+B,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/F,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,CAAA,UAAA,EAAa,GAAG,CAAA,aAAA,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,CAAE,SAAS,CAAA,EAAG;AACzC,IAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,CAAC,CAAA,EAAG,CAAA;AAAA,EAC3E;AACF;AAOO,SAAS,YAAA,CAAa,MAA+B,cAAA,EAA0B;AACpF,EAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,OAAO,KAAK,GAAG,CAAA;AAAA,IACjB;AAAA,EACF;AACF","file":"chunk-BTWIR2B7.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\n\n// Validation helper\nexport function validateBody(body: Record<string, unknown>) {\n const errorResponse = Object.entries(body).reduce<Record<string, string>>((acc, [key, value]) => {\n if (!value) {\n acc[key] = `Argument \"${key}\" is required`;\n }\n return acc;\n }, {});\n\n if (Object.keys(errorResponse).length > 0) {\n throw new HTTPException(400, { message: Object.values(errorResponse)[0] });\n }\n}\n\n/**\n * sanitizes the body by removing disallowed keys.\n * @param body body to sanitize\n * @param disallowedKeys keys to remove from the body\n */\nexport function sanitizeBody(body: Record<string, unknown>, disallowedKeys: string[]) {\n for (const key of disallowedKeys) {\n if (key in body) {\n delete body[key];\n }\n }\n}\n"]}
|