@mastra/server 0.0.0-fix-thread-list-20251105222841 → 0.0.0-fix-issue-10434-concurrent-write-corruption-20251124213939
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 +419 -3
- package/dist/chunk-2NW6POYK.cjs +89 -0
- package/dist/chunk-2NW6POYK.cjs.map +1 -0
- package/dist/chunk-35NT4TMQ.cjs +201 -0
- package/dist/chunk-35NT4TMQ.cjs.map +1 -0
- package/dist/{chunk-ALOLTNSO.js → chunk-3R5EV3HV.js} +208 -21
- package/dist/chunk-3R5EV3HV.js.map +1 -0
- package/dist/{chunk-XXGID4PQ.cjs → chunk-4ECGVOJZ.cjs} +214 -21
- package/dist/chunk-4ECGVOJZ.cjs.map +1 -0
- package/dist/chunk-5PONYNYP.cjs +125 -0
- package/dist/chunk-5PONYNYP.cjs.map +1 -0
- package/dist/chunk-5W4RPVTK.cjs +49 -0
- package/dist/chunk-5W4RPVTK.cjs.map +1 -0
- package/dist/chunk-6DTV6NEW.js +116 -0
- package/dist/chunk-6DTV6NEW.js.map +1 -0
- package/dist/chunk-7WTETKRM.cjs +1064 -0
- package/dist/chunk-7WTETKRM.cjs.map +1 -0
- package/dist/chunk-AEO6IHLK.cjs +368 -0
- package/dist/chunk-AEO6IHLK.cjs.map +1 -0
- package/dist/chunk-ASZUOBKV.js +310 -0
- package/dist/chunk-ASZUOBKV.js.map +1 -0
- package/dist/{chunk-M6KNPIZZ.cjs → chunk-BM7RP6NK.cjs} +1625 -1159
- package/dist/chunk-BM7RP6NK.cjs.map +1 -0
- package/dist/{chunk-QXWWLCTQ.js → chunk-BMKFP3XR.js} +594 -131
- package/dist/chunk-BMKFP3XR.js.map +1 -0
- package/dist/chunk-ECIVTQ4E.js +354 -0
- package/dist/chunk-ECIVTQ4E.js.map +1 -0
- package/dist/chunk-FAQICBMH.js +164 -0
- package/dist/chunk-FAQICBMH.js.map +1 -0
- package/dist/chunk-FXDZLX2Y.js +192 -0
- package/dist/chunk-FXDZLX2Y.js.map +1 -0
- package/dist/{chunk-DNUO33HF.js → chunk-G7BPNX2V.js} +5 -4
- package/dist/chunk-G7BPNX2V.js.map +1 -0
- package/dist/chunk-I5VZ5SKG.js +328 -0
- package/dist/chunk-I5VZ5SKG.js.map +1 -0
- package/dist/chunk-ICANWSEW.js +204 -0
- package/dist/chunk-ICANWSEW.js.map +1 -0
- package/dist/chunk-KB5NSROG.cjs +211 -0
- package/dist/chunk-KB5NSROG.cjs.map +1 -0
- package/dist/chunk-MWQQRVQC.cjs +259 -0
- package/dist/chunk-MWQQRVQC.cjs.map +1 -0
- package/dist/chunk-PKRHEXX7.js +74 -0
- package/dist/chunk-PKRHEXX7.js.map +1 -0
- package/dist/chunk-QGWCNTG6.cjs +797 -0
- package/dist/chunk-QGWCNTG6.cjs.map +1 -0
- package/dist/chunk-R4M3BSUG.js +226 -0
- package/dist/chunk-R4M3BSUG.js.map +1 -0
- package/dist/chunk-UJNHKFBR.cjs +167 -0
- package/dist/chunk-UJNHKFBR.cjs.map +1 -0
- package/dist/chunk-UOFV2ZCI.js +878 -0
- package/dist/chunk-UOFV2ZCI.js.map +1 -0
- package/dist/{chunk-LWLSQ2W4.cjs → chunk-UZ6CYAOG.cjs} +5 -4
- package/dist/chunk-UZ6CYAOG.cjs.map +1 -0
- package/dist/chunk-VIP2H47U.js +1021 -0
- package/dist/chunk-VIP2H47U.js.map +1 -0
- package/dist/chunk-XWGAT2DA.js +44 -0
- package/dist/chunk-XWGAT2DA.js.map +1 -0
- package/dist/chunk-YJ3VDL3Z.cjs +346 -0
- package/dist/chunk-YJ3VDL3Z.cjs.map +1 -0
- package/dist/chunk-Z36N2OQA.cjs +907 -0
- package/dist/chunk-Z36N2OQA.cjs.map +1 -0
- package/dist/chunk-ZLRTFRL4.js +773 -0
- package/dist/chunk-ZLRTFRL4.js.map +1 -0
- package/dist/chunk-ZODCSH2W.cjs +322 -0
- package/dist/chunk-ZODCSH2W.cjs.map +1 -0
- package/dist/server/handlers/a2a.cjs +15 -7
- package/dist/server/handlers/a2a.d.ts +482 -0
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +37 -37
- package/dist/server/handlers/agent-builder.d.ts +600 -77
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +53 -37
- package/dist/server/handlers/agents.d.ts +3270 -127
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/logs.cjs +7 -7
- package/dist/server/handlers/logs.d.ts +135 -27
- package/dist/server/handlers/logs.d.ts.map +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +67 -27
- package/dist/server/handlers/memory.d.ts +933 -96
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +23 -7
- package/dist/server/handlers/observability.d.ts +124 -17
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +13 -13
- package/dist/server/handlers/scores.d.ts +110 -141
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/test-utils.cjs +15 -0
- package/dist/server/handlers/test-utils.cjs.map +1 -0
- package/dist/server/handlers/test-utils.d.ts +6 -0
- package/dist/server/handlers/test-utils.d.ts.map +1 -0
- package/dist/server/handlers/test-utils.js +13 -0
- package/dist/server/handlers/test-utils.js.map +1 -0
- package/dist/server/handlers/tools.cjs +11 -11
- package/dist/server/handlers/tools.d.ts +69 -23
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +11 -3
- package/dist/server/handlers/utils.d.ts +5 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +31 -7
- package/dist/server/handlers/vector.d.ts +93 -9
- package/dist/server/handlers/vector.d.ts.map +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +21 -9
- package/dist/server/handlers/voice.d.ts +81 -40
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +65 -37
- package/dist/server/handlers/workflows.d.ts +919 -79
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +22 -22
- package/dist/server/handlers.js +11 -11
- package/dist/server/schemas/a2a.d.ts +786 -0
- package/dist/server/schemas/a2a.d.ts.map +1 -0
- package/dist/server/schemas/agent-builder.d.ts +195 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -0
- package/dist/server/schemas/agents.d.ts +1375 -0
- package/dist/server/schemas/agents.d.ts.map +1 -0
- package/dist/server/schemas/common.d.ts +165 -0
- package/dist/server/schemas/common.d.ts.map +1 -0
- package/dist/server/schemas/logs.d.ts +124 -0
- package/dist/server/schemas/logs.d.ts.map +1 -0
- package/dist/server/schemas/memory.d.ts +998 -0
- package/dist/server/schemas/memory.d.ts.map +1 -0
- package/dist/server/schemas/observability.d.ts +402 -0
- package/dist/server/schemas/observability.d.ts.map +1 -0
- package/dist/server/schemas/scores.d.ts +259 -0
- package/dist/server/schemas/scores.d.ts.map +1 -0
- package/dist/server/schemas/vectors.d.ts +107 -0
- package/dist/server/schemas/vectors.d.ts.map +1 -0
- package/dist/server/schemas/workflows.d.ts +608 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +330 -0
- package/dist/server/server-adapter/index.cjs.map +1 -0
- package/dist/server/server-adapter/index.d.ts +52 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -0
- package/dist/server/server-adapter/index.js +316 -0
- package/dist/server/server-adapter/index.js.map +1 -0
- package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agents.d.ts +3 -0
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts +41 -0
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
- package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/logs.d.ts +3 -0
- package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/memory.d.ts +3 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/observability.d.ts +3 -0
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
- package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/tools.d.ts +3 -0
- package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
- package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
- package/dist/server/utils.d.ts +2 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/package.json +23 -8
- package/dist/chunk-46Z2KDQL.js +0 -124
- package/dist/chunk-46Z2KDQL.js.map +0 -1
- package/dist/chunk-73PAWDM5.js +0 -83
- package/dist/chunk-73PAWDM5.js.map +0 -1
- package/dist/chunk-A5SOZY5R.js +0 -502
- package/dist/chunk-A5SOZY5R.js.map +0 -1
- package/dist/chunk-ALOLTNSO.js.map +0 -1
- package/dist/chunk-B6NK4KI5.cjs +0 -128
- package/dist/chunk-B6NK4KI5.cjs.map +0 -1
- package/dist/chunk-BANGX6SC.cjs +0 -200
- package/dist/chunk-BANGX6SC.cjs.map +0 -1
- package/dist/chunk-BHQH5QXD.cjs +0 -172
- package/dist/chunk-BHQH5QXD.cjs.map +0 -1
- package/dist/chunk-BTWIR2B7.cjs +0 -28
- package/dist/chunk-BTWIR2B7.cjs.map +0 -1
- package/dist/chunk-DNUO33HF.js.map +0 -1
- package/dist/chunk-GTZOYEAU.cjs +0 -130
- package/dist/chunk-GTZOYEAU.cjs.map +0 -1
- package/dist/chunk-IGOWG5V5.js +0 -192
- package/dist/chunk-IGOWG5V5.js.map +0 -1
- package/dist/chunk-JO2AZFJN.js +0 -165
- package/dist/chunk-JO2AZFJN.js.map +0 -1
- package/dist/chunk-JZ65BJ6H.cjs +0 -678
- package/dist/chunk-JZ65BJ6H.cjs.map +0 -1
- package/dist/chunk-KWH5QBXP.js +0 -123
- package/dist/chunk-KWH5QBXP.js.map +0 -1
- package/dist/chunk-LPCK5MAF.js +0 -122
- package/dist/chunk-LPCK5MAF.js.map +0 -1
- package/dist/chunk-LWLSQ2W4.cjs.map +0 -1
- package/dist/chunk-M6KNPIZZ.cjs.map +0 -1
- package/dist/chunk-PPMIB3FQ.cjs +0 -88
- package/dist/chunk-PPMIB3FQ.cjs.map +0 -1
- package/dist/chunk-QXWWLCTQ.js.map +0 -1
- package/dist/chunk-S54HNARD.cjs +0 -131
- package/dist/chunk-S54HNARD.cjs.map +0 -1
- package/dist/chunk-SIPNICB3.cjs +0 -517
- package/dist/chunk-SIPNICB3.cjs.map +0 -1
- package/dist/chunk-SRAPUMPM.cjs +0 -620
- package/dist/chunk-SRAPUMPM.cjs.map +0 -1
- package/dist/chunk-SZIFSF4T.js +0 -25
- package/dist/chunk-SZIFSF4T.js.map +0 -1
- package/dist/chunk-TWHS6DKL.js +0 -600
- package/dist/chunk-TWHS6DKL.js.map +0 -1
- package/dist/chunk-VYR3SAFM.js +0 -658
- package/dist/chunk-VYR3SAFM.js.map +0 -1
- package/dist/chunk-XXGID4PQ.cjs.map +0 -1
package/dist/chunk-GTZOYEAU.cjs
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
|
|
4
|
-
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
5
|
-
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
6
|
-
var scoreTraces = require('@mastra/core/evals/scoreTraces');
|
|
7
|
-
|
|
8
|
-
// src/server/handlers/observability.ts
|
|
9
|
-
var observability_exports = {};
|
|
10
|
-
chunkO7I5CWRX_cjs.__export(observability_exports, {
|
|
11
|
-
getAITraceHandler: () => getAITraceHandler,
|
|
12
|
-
getAITracesPaginatedHandler: () => getAITracesPaginatedHandler,
|
|
13
|
-
listScoresBySpan: () => listScoresBySpan,
|
|
14
|
-
scoreTracesHandler: () => scoreTracesHandler
|
|
15
|
-
});
|
|
16
|
-
async function getAITraceHandler({ mastra, traceId }) {
|
|
17
|
-
try {
|
|
18
|
-
if (!traceId) {
|
|
19
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Trace ID is required" });
|
|
20
|
-
}
|
|
21
|
-
const storage = mastra.getStorage();
|
|
22
|
-
if (!storage) {
|
|
23
|
-
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not available" });
|
|
24
|
-
}
|
|
25
|
-
const trace = await storage.getAITrace(traceId);
|
|
26
|
-
if (!trace) {
|
|
27
|
-
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
|
|
28
|
-
}
|
|
29
|
-
return trace;
|
|
30
|
-
} catch (error) {
|
|
31
|
-
chunkV5WWQN7P_cjs.handleError(error, "Error getting AI trace");
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
async function getAITracesPaginatedHandler({ mastra, body }) {
|
|
35
|
-
try {
|
|
36
|
-
const storage = mastra.getStorage();
|
|
37
|
-
if (!storage) {
|
|
38
|
-
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not available" });
|
|
39
|
-
}
|
|
40
|
-
if (!body) {
|
|
41
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Request body is required" });
|
|
42
|
-
}
|
|
43
|
-
const { filters, pagination } = body;
|
|
44
|
-
if (pagination?.page && pagination.page < 0) {
|
|
45
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Page must be a non-negative integer" });
|
|
46
|
-
}
|
|
47
|
-
if (pagination?.perPage && pagination.perPage < 0) {
|
|
48
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Per page must be a non-negative integer" });
|
|
49
|
-
}
|
|
50
|
-
if (pagination?.dateRange) {
|
|
51
|
-
const { start, end } = pagination.dateRange;
|
|
52
|
-
if (start && !(start instanceof Date)) {
|
|
53
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Invalid date format in date range" });
|
|
54
|
-
}
|
|
55
|
-
if (end && !(end instanceof Date)) {
|
|
56
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Invalid date format in date range" });
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return storage.getAITracesPaginated({
|
|
60
|
-
pagination,
|
|
61
|
-
filters
|
|
62
|
-
});
|
|
63
|
-
} catch (error) {
|
|
64
|
-
chunkV5WWQN7P_cjs.handleError(error, "Error getting AI traces paginated");
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
async function scoreTracesHandler({ mastra, body }) {
|
|
68
|
-
try {
|
|
69
|
-
if (!body) {
|
|
70
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Request body is required" });
|
|
71
|
-
}
|
|
72
|
-
const { scorerName, targets } = body;
|
|
73
|
-
if (!scorerName) {
|
|
74
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Scorer ID is required" });
|
|
75
|
-
}
|
|
76
|
-
if (!targets || targets.length === 0) {
|
|
77
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "At least one target is required" });
|
|
78
|
-
}
|
|
79
|
-
const storage = mastra.getStorage();
|
|
80
|
-
if (!storage) {
|
|
81
|
-
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not available" });
|
|
82
|
-
}
|
|
83
|
-
const scorer = mastra.getScorerById(scorerName);
|
|
84
|
-
if (!scorer) {
|
|
85
|
-
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer '${scorerName}' not found` });
|
|
86
|
-
}
|
|
87
|
-
const logger = mastra.getLogger();
|
|
88
|
-
scoreTraces.scoreTraces({
|
|
89
|
-
scorerId: scorer.config.id || scorer.config.name,
|
|
90
|
-
targets,
|
|
91
|
-
mastra
|
|
92
|
-
}).catch((error) => {
|
|
93
|
-
logger?.error(`Background trace scoring failed: ${error.message}`, error);
|
|
94
|
-
});
|
|
95
|
-
return {
|
|
96
|
-
status: "success",
|
|
97
|
-
message: `Scoring started for ${targets.length} ${targets.length === 1 ? "trace" : "traces"}`,
|
|
98
|
-
traceCount: targets.length
|
|
99
|
-
};
|
|
100
|
-
} catch (error) {
|
|
101
|
-
chunkV5WWQN7P_cjs.handleError(error, "Error processing trace scoring");
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
async function listScoresBySpan({
|
|
105
|
-
mastra,
|
|
106
|
-
traceId,
|
|
107
|
-
spanId,
|
|
108
|
-
pagination
|
|
109
|
-
}) {
|
|
110
|
-
try {
|
|
111
|
-
const storage = mastra.getStorage();
|
|
112
|
-
if (!storage) {
|
|
113
|
-
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not available" });
|
|
114
|
-
}
|
|
115
|
-
if (!traceId || !spanId) {
|
|
116
|
-
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Trace ID and span ID are required" });
|
|
117
|
-
}
|
|
118
|
-
return await storage.listScoresBySpan({ traceId, spanId, pagination });
|
|
119
|
-
} catch (error) {
|
|
120
|
-
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by span");
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
exports.getAITraceHandler = getAITraceHandler;
|
|
125
|
-
exports.getAITracesPaginatedHandler = getAITracesPaginatedHandler;
|
|
126
|
-
exports.listScoresBySpan = listScoresBySpan;
|
|
127
|
-
exports.observability_exports = observability_exports;
|
|
128
|
-
exports.scoreTracesHandler = scoreTracesHandler;
|
|
129
|
-
//# sourceMappingURL=chunk-GTZOYEAU.cjs.map
|
|
130
|
-
//# sourceMappingURL=chunk-GTZOYEAU.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/observability.ts"],"names":["__export","HTTPException","handleError","scoreTraces"],"mappings":"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","file":"chunk-GTZOYEAU.cjs","sourcesContent":["import { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { AITracesPaginatedArg, StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\nimport { handleError } from './error';\n\ninterface ObservabilityContext extends Context {\n traceId?: string;\n body?: AITracesPaginatedArg;\n}\n\ninterface ScoreTracesContext extends Context {\n body?: {\n // scorer.id\n scorerName: string;\n targets: Array<{\n traceId: string;\n spanId?: string;\n }>;\n };\n}\n\n/**\n * Get a complete AI trace by trace ID\n * Returns all spans in the trace with their parent-child relationships\n */\nexport async function getAITraceHandler({ mastra, traceId }: ObservabilityContext & { traceId: string }) {\n try {\n if (!traceId) {\n throw new HTTPException(400, { message: 'Trace ID is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const trace = await storage.getAITrace(traceId);\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n handleError(error, 'Error getting AI trace');\n }\n}\n\n/**\n * Get paginated AI traces with filtering and pagination\n * Returns only root spans (parent spans) for pagination, not child spans\n */\nexport async function getAITracesPaginatedHandler({ mastra, body }: ObservabilityContext) {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (!body) {\n throw new HTTPException(400, { message: 'Request body is required' });\n }\n\n const { filters, pagination } = body;\n\n if (pagination?.page && pagination.page < 0) {\n throw new HTTPException(400, { message: 'Page must be a non-negative integer' });\n }\n\n if (pagination?.perPage && pagination.perPage < 0) {\n throw new HTTPException(400, { message: 'Per page must be a non-negative integer' });\n }\n\n if (pagination?.dateRange) {\n const { start, end } = pagination.dateRange;\n\n if (start && !(start instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n\n if (end && !(end instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n }\n\n return storage.getAITracesPaginated({\n pagination,\n filters,\n });\n } catch (error) {\n handleError(error, 'Error getting AI traces paginated');\n }\n}\n\n/**\n * Score traces using a specified scorer\n * Fire-and-forget approach - returns immediately while scoring runs in background\n */\nexport async function scoreTracesHandler({ mastra, body }: ScoreTracesContext) {\n try {\n if (!body) {\n throw new HTTPException(400, { message: 'Request body is required' });\n }\n\n const { scorerName, targets } = body;\n\n if (!scorerName) {\n throw new HTTPException(400, { message: 'Scorer ID is required' });\n }\n\n if (!targets || targets.length === 0) {\n throw new HTTPException(400, { message: 'At least one target is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n const logger = mastra.getLogger();\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n // Return immediate response\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n handleError(error, 'Error processing trace scoring');\n }\n}\n\nexport async function listScoresBySpan({\n mastra,\n traceId,\n spanId,\n pagination,\n}: Context & { traceId: string; spanId: string; pagination: StoragePagination }) {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (!traceId || !spanId) {\n throw new HTTPException(400, { message: 'Trace ID and span ID are required' });\n }\n\n return await storage.listScoresBySpan({ traceId, spanId, pagination });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n}\n"]}
|
package/dist/chunk-IGOWG5V5.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { handleError } from './chunk-UXGQZUYZ.js';
|
|
2
|
-
import { __export } from './chunk-PR4QN5HX.js';
|
|
3
|
-
|
|
4
|
-
// src/server/handlers/scores.ts
|
|
5
|
-
var scores_exports = {};
|
|
6
|
-
__export(scores_exports, {
|
|
7
|
-
getScorerHandler: () => getScorerHandler,
|
|
8
|
-
listScorersHandler: () => listScorersHandler,
|
|
9
|
-
listScoresByEntityIdHandler: () => listScoresByEntityIdHandler,
|
|
10
|
-
listScoresByRunIdHandler: () => listScoresByRunIdHandler,
|
|
11
|
-
listScoresByScorerIdHandler: () => listScoresByScorerIdHandler,
|
|
12
|
-
saveScoreHandler: () => saveScoreHandler
|
|
13
|
-
});
|
|
14
|
-
async function listScorersFromSystem({
|
|
15
|
-
mastra,
|
|
16
|
-
requestContext
|
|
17
|
-
}) {
|
|
18
|
-
const agents = mastra.listAgents();
|
|
19
|
-
const workflows = mastra.listWorkflows();
|
|
20
|
-
const scorersMap = /* @__PURE__ */ new Map();
|
|
21
|
-
for (const [agentId, agent] of Object.entries(agents)) {
|
|
22
|
-
const scorers = await agent.listScorers({
|
|
23
|
-
requestContext
|
|
24
|
-
}) || {};
|
|
25
|
-
if (Object.keys(scorers).length > 0) {
|
|
26
|
-
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
27
|
-
const scorerId = scorer.scorer.id;
|
|
28
|
-
if (scorersMap.has(scorerId)) {
|
|
29
|
-
scorersMap.get(scorerId)?.agentIds.push(agentId);
|
|
30
|
-
scorersMap.get(scorerId)?.agentNames.push(agent.name);
|
|
31
|
-
} else {
|
|
32
|
-
scorersMap.set(scorerId, {
|
|
33
|
-
workflowIds: [],
|
|
34
|
-
...scorer,
|
|
35
|
-
agentNames: [agent.name],
|
|
36
|
-
agentIds: [agentId],
|
|
37
|
-
isRegistered: false
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
for (const [workflowId, workflow] of Object.entries(workflows)) {
|
|
44
|
-
const scorers = await workflow.listScorers({
|
|
45
|
-
requestContext
|
|
46
|
-
}) || {};
|
|
47
|
-
if (Object.keys(scorers).length > 0) {
|
|
48
|
-
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
49
|
-
const scorerName = scorer.scorer.name;
|
|
50
|
-
if (scorersMap.has(scorerName)) {
|
|
51
|
-
scorersMap.get(scorerName)?.workflowIds.push(workflowId);
|
|
52
|
-
} else {
|
|
53
|
-
scorersMap.set(scorerName, {
|
|
54
|
-
agentIds: [],
|
|
55
|
-
agentNames: [],
|
|
56
|
-
...scorer,
|
|
57
|
-
workflowIds: [workflowId],
|
|
58
|
-
isRegistered: false
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const registeredScorers = await mastra.listScorers();
|
|
65
|
-
for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {
|
|
66
|
-
const scorerId = scorer.id;
|
|
67
|
-
if (scorersMap.has(scorerId)) {
|
|
68
|
-
scorersMap.get(scorerId).isRegistered = true;
|
|
69
|
-
} else {
|
|
70
|
-
scorersMap.set(scorerId, {
|
|
71
|
-
scorer,
|
|
72
|
-
agentIds: [],
|
|
73
|
-
agentNames: [],
|
|
74
|
-
workflowIds: [],
|
|
75
|
-
isRegistered: true
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return Object.fromEntries(scorersMap.entries());
|
|
80
|
-
}
|
|
81
|
-
async function listScorersHandler({ mastra, requestContext }) {
|
|
82
|
-
const scorers = await listScorersFromSystem({
|
|
83
|
-
mastra,
|
|
84
|
-
requestContext
|
|
85
|
-
});
|
|
86
|
-
return scorers;
|
|
87
|
-
}
|
|
88
|
-
async function getScorerHandler({
|
|
89
|
-
mastra,
|
|
90
|
-
scorerId,
|
|
91
|
-
requestContext
|
|
92
|
-
}) {
|
|
93
|
-
const scorers = await listScorersFromSystem({
|
|
94
|
-
mastra,
|
|
95
|
-
requestContext
|
|
96
|
-
});
|
|
97
|
-
const scorer = scorers[scorerId];
|
|
98
|
-
if (!scorer) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
return scorer;
|
|
102
|
-
}
|
|
103
|
-
async function listScoresByRunIdHandler({
|
|
104
|
-
mastra,
|
|
105
|
-
runId,
|
|
106
|
-
pagination
|
|
107
|
-
}) {
|
|
108
|
-
try {
|
|
109
|
-
const scoreResults = await mastra.getStorage()?.listScoresByRunId?.({
|
|
110
|
-
runId,
|
|
111
|
-
pagination
|
|
112
|
-
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
113
|
-
return {
|
|
114
|
-
pagination: scoreResults.pagination,
|
|
115
|
-
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
116
|
-
};
|
|
117
|
-
} catch (error) {
|
|
118
|
-
return handleError(error, "Error getting scores by run id");
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
async function listScoresByScorerIdHandler({
|
|
122
|
-
mastra,
|
|
123
|
-
scorerId,
|
|
124
|
-
pagination,
|
|
125
|
-
entityId,
|
|
126
|
-
entityType
|
|
127
|
-
}) {
|
|
128
|
-
try {
|
|
129
|
-
const scoreResults = await mastra.getStorage()?.listScoresByScorerId?.({
|
|
130
|
-
scorerId,
|
|
131
|
-
pagination,
|
|
132
|
-
entityId,
|
|
133
|
-
entityType
|
|
134
|
-
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
135
|
-
return {
|
|
136
|
-
pagination: scoreResults.pagination,
|
|
137
|
-
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
138
|
-
};
|
|
139
|
-
} catch (error) {
|
|
140
|
-
return handleError(error, "Error getting scores by scorer id");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
async function listScoresByEntityIdHandler({
|
|
144
|
-
mastra,
|
|
145
|
-
entityId,
|
|
146
|
-
entityType,
|
|
147
|
-
pagination
|
|
148
|
-
}) {
|
|
149
|
-
try {
|
|
150
|
-
let entityIdToUse = entityId;
|
|
151
|
-
if (entityType === "AGENT") {
|
|
152
|
-
const agent = mastra.getAgentById(entityId);
|
|
153
|
-
entityIdToUse = agent.id;
|
|
154
|
-
} else if (entityType === "WORKFLOW") {
|
|
155
|
-
const workflow = mastra.getWorkflowById(entityId);
|
|
156
|
-
entityIdToUse = workflow.id;
|
|
157
|
-
}
|
|
158
|
-
const scoreResults = await mastra.getStorage()?.listScoresByEntityId?.({
|
|
159
|
-
entityId: entityIdToUse,
|
|
160
|
-
entityType,
|
|
161
|
-
pagination
|
|
162
|
-
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
163
|
-
return {
|
|
164
|
-
pagination: scoreResults.pagination,
|
|
165
|
-
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
166
|
-
};
|
|
167
|
-
} catch (error) {
|
|
168
|
-
return handleError(error, "Error getting scores by entity id");
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
function getTraceDetails(traceIdWithSpanId) {
|
|
172
|
-
if (!traceIdWithSpanId) {
|
|
173
|
-
return {};
|
|
174
|
-
}
|
|
175
|
-
const [traceId, spanId] = traceIdWithSpanId.split("-");
|
|
176
|
-
return {
|
|
177
|
-
...traceId ? { traceId } : {},
|
|
178
|
-
...spanId ? { spanId } : {}
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
async function saveScoreHandler({ mastra, score }) {
|
|
182
|
-
try {
|
|
183
|
-
const scores = await mastra.getStorage()?.saveScore?.(score) || [];
|
|
184
|
-
return scores;
|
|
185
|
-
} catch (error) {
|
|
186
|
-
return handleError(error, "Error saving score");
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export { getScorerHandler, listScorersHandler, listScoresByEntityIdHandler, listScoresByRunIdHandler, listScoresByScorerIdHandler, saveScoreHandler, scores_exports };
|
|
191
|
-
//# sourceMappingURL=chunk-IGOWG5V5.js.map
|
|
192
|
-
//# sourceMappingURL=chunk-IGOWG5V5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":[],"mappings":"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","file":"chunk-IGOWG5V5.js","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"]}
|
package/dist/chunk-JO2AZFJN.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { stringify } from './chunk-LF2ZLOFP.js';
|
|
2
|
-
import { validateBody } from './chunk-SZIFSF4T.js';
|
|
3
|
-
import { handleError } from './chunk-UXGQZUYZ.js';
|
|
4
|
-
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
5
|
-
import { __export } from './chunk-PR4QN5HX.js';
|
|
6
|
-
import { isVercelTool } from '@mastra/core/tools';
|
|
7
|
-
import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
|
|
8
|
-
|
|
9
|
-
// src/server/handlers/tools.ts
|
|
10
|
-
var tools_exports = {};
|
|
11
|
-
__export(tools_exports, {
|
|
12
|
-
executeAgentToolHandler: () => executeAgentToolHandler,
|
|
13
|
-
executeToolHandler: () => executeToolHandler,
|
|
14
|
-
getAgentToolHandler: () => getAgentToolHandler,
|
|
15
|
-
getToolByIdHandler: () => getToolByIdHandler,
|
|
16
|
-
listToolsHandler: () => listToolsHandler
|
|
17
|
-
});
|
|
18
|
-
async function listToolsHandler({ tools }) {
|
|
19
|
-
try {
|
|
20
|
-
if (!tools) {
|
|
21
|
-
return {};
|
|
22
|
-
}
|
|
23
|
-
const serializedTools = Object.entries(tools).reduce(
|
|
24
|
-
(acc, [id, _tool]) => {
|
|
25
|
-
const tool = _tool;
|
|
26
|
-
acc[id] = {
|
|
27
|
-
...tool,
|
|
28
|
-
inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
29
|
-
outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
|
|
30
|
-
};
|
|
31
|
-
return acc;
|
|
32
|
-
},
|
|
33
|
-
{}
|
|
34
|
-
);
|
|
35
|
-
return serializedTools;
|
|
36
|
-
} catch (error) {
|
|
37
|
-
return handleError(error, "Error getting tools");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async function getToolByIdHandler({ tools, toolId }) {
|
|
41
|
-
try {
|
|
42
|
-
const tool = Object.values(tools || {}).find((tool2) => tool2.id === toolId);
|
|
43
|
-
if (!tool) {
|
|
44
|
-
throw new HTTPException(404, { message: "Tool not found" });
|
|
45
|
-
}
|
|
46
|
-
const serializedTool = {
|
|
47
|
-
...tool,
|
|
48
|
-
inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
49
|
-
outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
|
|
50
|
-
};
|
|
51
|
-
return serializedTool;
|
|
52
|
-
} catch (error) {
|
|
53
|
-
return handleError(error, "Error getting tool");
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function executeToolHandler(tools) {
|
|
57
|
-
return async ({
|
|
58
|
-
mastra,
|
|
59
|
-
runId,
|
|
60
|
-
toolId,
|
|
61
|
-
data,
|
|
62
|
-
requestContext
|
|
63
|
-
}) => {
|
|
64
|
-
try {
|
|
65
|
-
if (!toolId) {
|
|
66
|
-
throw new HTTPException(400, { message: "Tool ID is required" });
|
|
67
|
-
}
|
|
68
|
-
const tool = Object.values(tools || {}).find((tool2) => tool2.id === toolId);
|
|
69
|
-
if (!tool) {
|
|
70
|
-
throw new HTTPException(404, { message: "Tool not found" });
|
|
71
|
-
}
|
|
72
|
-
if (!tool?.execute) {
|
|
73
|
-
throw new HTTPException(400, { message: "Tool is not executable" });
|
|
74
|
-
}
|
|
75
|
-
validateBody({ data });
|
|
76
|
-
if (isVercelTool(tool)) {
|
|
77
|
-
const result2 = await tool.execute(data);
|
|
78
|
-
return result2;
|
|
79
|
-
}
|
|
80
|
-
const result = await tool.execute(data, {
|
|
81
|
-
mastra,
|
|
82
|
-
requestContext,
|
|
83
|
-
// TODO: Pass proper tracing context when server API supports tracing
|
|
84
|
-
tracingContext: { currentSpan: void 0 },
|
|
85
|
-
...runId ? {
|
|
86
|
-
workflow: {
|
|
87
|
-
runId,
|
|
88
|
-
suspend: async () => {
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
} : {}
|
|
92
|
-
});
|
|
93
|
-
return result;
|
|
94
|
-
} catch (error) {
|
|
95
|
-
return handleError(error, "Error executing tool");
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
async function getAgentToolHandler({
|
|
100
|
-
mastra,
|
|
101
|
-
agentId,
|
|
102
|
-
toolId,
|
|
103
|
-
requestContext
|
|
104
|
-
}) {
|
|
105
|
-
try {
|
|
106
|
-
const agent = agentId ? mastra.getAgent(agentId) : null;
|
|
107
|
-
if (!agent) {
|
|
108
|
-
throw new HTTPException(404, { message: "Agent not found" });
|
|
109
|
-
}
|
|
110
|
-
const agentTools = await agent.listTools({ requestContext });
|
|
111
|
-
const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
|
|
112
|
-
if (!tool) {
|
|
113
|
-
throw new HTTPException(404, { message: "Tool not found" });
|
|
114
|
-
}
|
|
115
|
-
const serializedTool = {
|
|
116
|
-
...tool,
|
|
117
|
-
inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
|
|
118
|
-
outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
|
|
119
|
-
};
|
|
120
|
-
return serializedTool;
|
|
121
|
-
} catch (error) {
|
|
122
|
-
return handleError(error, "Error getting agent tool");
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
async function executeAgentToolHandler({
|
|
126
|
-
mastra,
|
|
127
|
-
agentId,
|
|
128
|
-
toolId,
|
|
129
|
-
data,
|
|
130
|
-
requestContext
|
|
131
|
-
}) {
|
|
132
|
-
try {
|
|
133
|
-
const agent = agentId ? mastra.getAgent(agentId) : null;
|
|
134
|
-
if (!agent) {
|
|
135
|
-
throw new HTTPException(404, { message: "Tool not found" });
|
|
136
|
-
}
|
|
137
|
-
const agentTools = await agent.listTools({ requestContext });
|
|
138
|
-
const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
|
|
139
|
-
if (!tool) {
|
|
140
|
-
throw new HTTPException(404, { message: "Tool not found" });
|
|
141
|
-
}
|
|
142
|
-
if (!tool?.execute) {
|
|
143
|
-
throw new HTTPException(400, { message: "Tool is not executable" });
|
|
144
|
-
}
|
|
145
|
-
const result = await tool.execute(data, {
|
|
146
|
-
mastra,
|
|
147
|
-
requestContext,
|
|
148
|
-
// TODO: Pass proper tracing context when server API supports tracing
|
|
149
|
-
tracingContext: { currentSpan: void 0 },
|
|
150
|
-
agent: {
|
|
151
|
-
messages: [],
|
|
152
|
-
toolCallId: "",
|
|
153
|
-
suspend: async () => {
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
return result;
|
|
158
|
-
} catch (error) {
|
|
159
|
-
return handleError(error, "Error executing tool");
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export { executeAgentToolHandler, executeToolHandler, getAgentToolHandler, getToolByIdHandler, listToolsHandler, tools_exports };
|
|
164
|
-
//# sourceMappingURL=chunk-JO2AZFJN.js.map
|
|
165
|
-
//# sourceMappingURL=chunk-JO2AZFJN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["tool","result"],"mappings":"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","file":"chunk-JO2AZFJN.js","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"]}
|