@mastra/server 0.24.0 → 1.0.0-beta.1
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 +308 -57
- package/README.md +1 -1
- package/dist/{chunk-OQPXME7E.js → chunk-2IS5WICF.js} +4569 -1062
- package/dist/chunk-2IS5WICF.js.map +1 -0
- package/dist/{chunk-SPRRK3P7.cjs → chunk-2YZH5PH6.cjs} +47 -47
- package/dist/chunk-2YZH5PH6.cjs.map +1 -0
- package/dist/{chunk-BATEJLED.js → chunk-3AMNUUZF.js} +20 -20
- package/dist/chunk-3AMNUUZF.js.map +1 -0
- package/dist/{chunk-AW5BU3RQ.js → chunk-3F52QCI4.js} +40 -40
- package/dist/chunk-3F52QCI4.js.map +1 -0
- package/dist/{chunk-PBXWFGEH.js → chunk-4JF5WXPL.js} +130 -207
- package/dist/chunk-4JF5WXPL.js.map +1 -0
- package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
- package/dist/chunk-64ITUOXI.cjs.map +1 -0
- package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
- package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
- package/dist/{chunk-ABRFV4XP.js → chunk-73PAWDM5.js} +13 -13
- package/dist/chunk-73PAWDM5.js.map +1 -0
- package/dist/{chunk-2S4IMB6E.cjs → chunk-A24TSVEZ.cjs} +39 -39
- package/dist/chunk-A24TSVEZ.cjs.map +1 -0
- package/dist/{chunk-NT5XW5PI.cjs → chunk-A2NPD5N6.cjs} +176 -255
- package/dist/chunk-A2NPD5N6.cjs.map +1 -0
- package/dist/{chunk-QQXMIP6C.js → chunk-B3Z6J745.js} +17 -17
- package/dist/chunk-B3Z6J745.js.map +1 -0
- package/dist/{chunk-G4PUALCE.cjs → chunk-BTWIR2B7.cjs} +4 -4
- package/dist/{chunk-G4PUALCE.cjs.map → chunk-BTWIR2B7.cjs.map} +1 -1
- package/dist/{chunk-YWOK4F5A.js → chunk-D7T74TVR.js} +4 -6
- package/dist/chunk-D7T74TVR.js.map +1 -0
- package/dist/{chunk-IJSDPAUY.cjs → chunk-EHACNWDL.cjs} +156 -202
- package/dist/chunk-EHACNWDL.cjs.map +1 -0
- package/dist/{chunk-HPXAM2PG.js → chunk-FPBYKMIS.js} +13 -13
- package/dist/chunk-FPBYKMIS.js.map +1 -0
- package/dist/{chunk-3SNGNFUJ.cjs → chunk-GLAZTMX3.cjs} +37 -37
- package/dist/chunk-GLAZTMX3.cjs.map +1 -0
- package/dist/{chunk-TEOUDAN5.cjs → chunk-ID6JYDNL.cjs} +4590 -1080
- package/dist/chunk-ID6JYDNL.cjs.map +1 -0
- package/dist/{chunk-TRGAMKHX.cjs → chunk-KF3RI45U.cjs} +46 -41
- package/dist/chunk-KF3RI45U.cjs.map +1 -0
- package/dist/{chunk-TOP25AIO.cjs → chunk-KJIDZQRA.cjs} +14 -14
- package/dist/chunk-KJIDZQRA.cjs.map +1 -0
- package/dist/{chunk-MYR4PVGN.js → chunk-KWH5QBXP.js} +4 -4
- package/dist/{chunk-MYR4PVGN.js.map → chunk-KWH5QBXP.js.map} +1 -1
- package/dist/{chunk-AHB4JCIQ.js → chunk-ND5OKOMT.js} +31 -26
- package/dist/chunk-ND5OKOMT.js.map +1 -0
- package/dist/{chunk-XN74I6VW.cjs → chunk-PPMIB3FQ.cjs} +20 -20
- package/dist/chunk-PPMIB3FQ.cjs.map +1 -0
- package/dist/{chunk-EP3JQDPD.cjs → chunk-S54HNARD.cjs} +18 -18
- package/dist/{chunk-EP3JQDPD.cjs.map → chunk-S54HNARD.cjs.map} +1 -1
- package/dist/{chunk-4QCXUEAT.js → chunk-SZIFSF4T.js} +3 -3
- package/dist/{chunk-4QCXUEAT.js.map → chunk-SZIFSF4T.js.map} +1 -1
- package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
- package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
- package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
- package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
- package/dist/{chunk-VY4ENABS.cjs → chunk-W2KMU354.cjs} +4 -6
- package/dist/chunk-W2KMU354.cjs.map +1 -0
- package/dist/{chunk-H33KYEMY.cjs → chunk-X3MICMI2.cjs} +140 -240
- package/dist/chunk-X3MICMI2.cjs.map +1 -0
- package/dist/{chunk-Y4VKB6KC.js → chunk-Z2O5YVHY.js} +121 -165
- package/dist/chunk-Z2O5YVHY.js.map +1 -0
- package/dist/{chunk-PY2K7VNW.js → chunk-ZJ6KEY6H.js} +67 -165
- package/dist/chunk-ZJ6KEY6H.js.map +1 -0
- package/dist/server/handlers/a2a.cjs +7 -7
- package/dist/server/handlers/a2a.d.ts +10 -10
- 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 +31 -19
- package/dist/server/handlers/agent-builder.d.ts +38 -47
- 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 +22 -30
- package/dist/server/handlers/agents.d.ts +36 -55
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +2 -2
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/logs.cjs +7 -7
- package/dist/server/handlers/logs.d.ts +3 -3
- package/dist/server/handlers/logs.d.ts.map +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +17 -25
- package/dist/server/handlers/memory.d.ts +28 -34
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +8 -8
- package/dist/server/handlers/observability.d.ts +12 -12
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +11 -11
- package/dist/server/handlers/scores.d.ts +24 -24
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/tools.cjs +7 -7
- package/dist/server/handlers/tools.d.ts +8 -8
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +3 -3
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +7 -7
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +5 -5
- package/dist/server/handlers/voice.d.ts +6 -6
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +21 -29
- package/dist/server/handlers/workflows.d.ts +27 -36
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +26 -36
- package/dist/server/handlers.d.ts +0 -2
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +11 -13
- package/dist/server/http-exception.d.ts +0 -5
- package/dist/server/http-exception.d.ts.map +1 -1
- package/dist/server/utils.d.ts +3 -2
- package/dist/server/utils.d.ts.map +1 -1
- package/package.json +9 -13
- package/dist/chunk-2S4IMB6E.cjs.map +0 -1
- package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
- package/dist/chunk-67GYDFSB.js +0 -160
- package/dist/chunk-67GYDFSB.js.map +0 -1
- package/dist/chunk-6ZR275MD.cjs +0 -165
- package/dist/chunk-6ZR275MD.cjs.map +0 -1
- package/dist/chunk-ABRFV4XP.js.map +0 -1
- package/dist/chunk-AHB4JCIQ.js.map +0 -1
- package/dist/chunk-AW5BU3RQ.js.map +0 -1
- package/dist/chunk-BATEJLED.js.map +0 -1
- package/dist/chunk-H33KYEMY.cjs.map +0 -1
- package/dist/chunk-HPXAM2PG.js.map +0 -1
- package/dist/chunk-I3C4ODGV.cjs +0 -335
- package/dist/chunk-I3C4ODGV.cjs.map +0 -1
- package/dist/chunk-IJSDPAUY.cjs.map +0 -1
- package/dist/chunk-LLUOPR3J.js +0 -323
- package/dist/chunk-LLUOPR3J.js.map +0 -1
- package/dist/chunk-MMROOK5J.js.map +0 -1
- package/dist/chunk-NT5XW5PI.cjs.map +0 -1
- package/dist/chunk-OQPXME7E.js.map +0 -1
- package/dist/chunk-PBXWFGEH.js.map +0 -1
- package/dist/chunk-PY2K7VNW.js.map +0 -1
- package/dist/chunk-QQXMIP6C.js.map +0 -1
- package/dist/chunk-SPRRK3P7.cjs.map +0 -1
- package/dist/chunk-TEOUDAN5.cjs.map +0 -1
- package/dist/chunk-TOP25AIO.cjs.map +0 -1
- package/dist/chunk-TRGAMKHX.cjs.map +0 -1
- package/dist/chunk-VY4ENABS.cjs.map +0 -1
- package/dist/chunk-XN74I6VW.cjs.map +0 -1
- package/dist/chunk-Y4VKB6KC.js.map +0 -1
- package/dist/chunk-YWOK4F5A.js.map +0 -1
- package/dist/server/handlers/legacyWorkflows.cjs +0 -48
- package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
- package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
- package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
- package/dist/server/handlers/legacyWorkflows.js +0 -3
- package/dist/server/handlers/legacyWorkflows.js.map +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -20
- package/dist/server/handlers/telemetry.cjs.map +0 -1
- package/dist/server/handlers/telemetry.d.ts +0 -33
- package/dist/server/handlers/telemetry.d.ts.map +0 -1
- package/dist/server/handlers/telemetry.js +0 -3
- package/dist/server/handlers/telemetry.js.map +0 -1
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
|
|
4
4
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
5
5
|
|
|
6
6
|
// src/server/handlers/scores.ts
|
|
7
7
|
var scores_exports = {};
|
|
8
8
|
chunkO7I5CWRX_cjs.__export(scores_exports, {
|
|
9
9
|
getScorerHandler: () => getScorerHandler,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
listScorersHandler: () => listScorersHandler,
|
|
11
|
+
listScoresByEntityIdHandler: () => listScoresByEntityIdHandler,
|
|
12
|
+
listScoresByRunIdHandler: () => listScoresByRunIdHandler,
|
|
13
|
+
listScoresByScorerIdHandler: () => listScoresByScorerIdHandler,
|
|
14
14
|
saveScoreHandler: () => saveScoreHandler
|
|
15
15
|
});
|
|
16
|
-
async function
|
|
16
|
+
async function listScorersFromSystem({
|
|
17
17
|
mastra,
|
|
18
|
-
|
|
18
|
+
requestContext
|
|
19
19
|
}) {
|
|
20
|
-
const agents = mastra.
|
|
21
|
-
const workflows = mastra.
|
|
20
|
+
const agents = mastra.listAgents();
|
|
21
|
+
const workflows = mastra.listWorkflows();
|
|
22
22
|
const scorersMap = /* @__PURE__ */ new Map();
|
|
23
|
-
for (const [
|
|
24
|
-
const scorers = await agent.
|
|
25
|
-
|
|
23
|
+
for (const [_, agent] of Object.entries(agents)) {
|
|
24
|
+
const scorers = await agent.listScorers({
|
|
25
|
+
requestContext
|
|
26
26
|
}) || {};
|
|
27
27
|
if (Object.keys(scorers).length > 0) {
|
|
28
28
|
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
29
|
-
const
|
|
30
|
-
if (scorersMap.has(
|
|
31
|
-
scorersMap.get(
|
|
32
|
-
scorersMap.get(
|
|
29
|
+
const scorerId = scorer.scorer.id;
|
|
30
|
+
if (scorersMap.has(scorerId)) {
|
|
31
|
+
scorersMap.get(scorerId)?.agentIds.push(agent.id);
|
|
32
|
+
scorersMap.get(scorerId)?.agentNames.push(agent.name);
|
|
33
33
|
} else {
|
|
34
|
-
scorersMap.set(
|
|
34
|
+
scorersMap.set(scorerId, {
|
|
35
35
|
workflowIds: [],
|
|
36
36
|
...scorer,
|
|
37
37
|
agentNames: [agent.name],
|
|
38
|
-
agentIds: [
|
|
38
|
+
agentIds: [agent.id],
|
|
39
39
|
isRegistered: false
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -43,8 +43,8 @@ async function getScorersFromSystem({
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
for (const [workflowId, workflow] of Object.entries(workflows)) {
|
|
46
|
-
const scorers = await workflow.
|
|
47
|
-
|
|
46
|
+
const scorers = await workflow.listScorers({
|
|
47
|
+
requestContext
|
|
48
48
|
}) || {};
|
|
49
49
|
if (Object.keys(scorers).length > 0) {
|
|
50
50
|
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
@@ -63,13 +63,13 @@ async function getScorersFromSystem({
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
const registeredScorers = await mastra.
|
|
66
|
+
const registeredScorers = await mastra.listScorers();
|
|
67
67
|
for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {
|
|
68
|
-
const
|
|
69
|
-
if (scorersMap.has(
|
|
70
|
-
scorersMap.get(
|
|
68
|
+
const scorerId = scorer.id;
|
|
69
|
+
if (scorersMap.has(scorerId)) {
|
|
70
|
+
scorersMap.get(scorerId).isRegistered = true;
|
|
71
71
|
} else {
|
|
72
|
-
scorersMap.set(
|
|
72
|
+
scorersMap.set(scorerId, {
|
|
73
73
|
scorer,
|
|
74
74
|
agentIds: [],
|
|
75
75
|
agentNames: [],
|
|
@@ -80,21 +80,21 @@ async function getScorersFromSystem({
|
|
|
80
80
|
}
|
|
81
81
|
return Object.fromEntries(scorersMap.entries());
|
|
82
82
|
}
|
|
83
|
-
async function
|
|
84
|
-
const scorers = await
|
|
83
|
+
async function listScorersHandler({ mastra, requestContext }) {
|
|
84
|
+
const scorers = await listScorersFromSystem({
|
|
85
85
|
mastra,
|
|
86
|
-
|
|
86
|
+
requestContext
|
|
87
87
|
});
|
|
88
88
|
return scorers;
|
|
89
89
|
}
|
|
90
90
|
async function getScorerHandler({
|
|
91
91
|
mastra,
|
|
92
92
|
scorerId,
|
|
93
|
-
|
|
93
|
+
requestContext
|
|
94
94
|
}) {
|
|
95
|
-
const scorers = await
|
|
95
|
+
const scorers = await listScorersFromSystem({
|
|
96
96
|
mastra,
|
|
97
|
-
|
|
97
|
+
requestContext
|
|
98
98
|
});
|
|
99
99
|
const scorer = scorers[scorerId];
|
|
100
100
|
if (!scorer) {
|
|
@@ -102,13 +102,13 @@ async function getScorerHandler({
|
|
|
102
102
|
}
|
|
103
103
|
return scorer;
|
|
104
104
|
}
|
|
105
|
-
async function
|
|
105
|
+
async function listScoresByRunIdHandler({
|
|
106
106
|
mastra,
|
|
107
107
|
runId,
|
|
108
108
|
pagination
|
|
109
109
|
}) {
|
|
110
110
|
try {
|
|
111
|
-
const scoreResults = await mastra.getStorage()?.
|
|
111
|
+
const scoreResults = await mastra.getStorage()?.listScoresByRunId?.({
|
|
112
112
|
runId,
|
|
113
113
|
pagination
|
|
114
114
|
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
@@ -117,10 +117,10 @@ async function getScoresByRunIdHandler({
|
|
|
117
117
|
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
118
118
|
};
|
|
119
119
|
} catch (error) {
|
|
120
|
-
return
|
|
120
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by run id");
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
async function
|
|
123
|
+
async function listScoresByScorerIdHandler({
|
|
124
124
|
mastra,
|
|
125
125
|
scorerId,
|
|
126
126
|
pagination,
|
|
@@ -128,7 +128,7 @@ async function getScoresByScorerIdHandler({
|
|
|
128
128
|
entityType
|
|
129
129
|
}) {
|
|
130
130
|
try {
|
|
131
|
-
const scoreResults = await mastra.getStorage()?.
|
|
131
|
+
const scoreResults = await mastra.getStorage()?.listScoresByScorerId?.({
|
|
132
132
|
scorerId,
|
|
133
133
|
pagination,
|
|
134
134
|
entityId,
|
|
@@ -139,10 +139,10 @@ async function getScoresByScorerIdHandler({
|
|
|
139
139
|
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
140
140
|
};
|
|
141
141
|
} catch (error) {
|
|
142
|
-
return
|
|
142
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by scorer id");
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
async function
|
|
145
|
+
async function listScoresByEntityIdHandler({
|
|
146
146
|
mastra,
|
|
147
147
|
entityId,
|
|
148
148
|
entityType,
|
|
@@ -157,7 +157,7 @@ async function getScoresByEntityIdHandler({
|
|
|
157
157
|
const workflow = mastra.getWorkflowById(entityId);
|
|
158
158
|
entityIdToUse = workflow.id;
|
|
159
159
|
}
|
|
160
|
-
const scoreResults = await mastra.getStorage()?.
|
|
160
|
+
const scoreResults = await mastra.getStorage()?.listScoresByEntityId?.({
|
|
161
161
|
entityId: entityIdToUse,
|
|
162
162
|
entityType,
|
|
163
163
|
pagination
|
|
@@ -167,7 +167,7 @@ async function getScoresByEntityIdHandler({
|
|
|
167
167
|
scores: scoreResults.scores.map((score) => ({ ...score, ...getTraceDetails(score.traceId) }))
|
|
168
168
|
};
|
|
169
169
|
} catch (error) {
|
|
170
|
-
return
|
|
170
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error getting scores by entity id");
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
function getTraceDetails(traceIdWithSpanId) {
|
|
@@ -185,16 +185,16 @@ async function saveScoreHandler({ mastra, score }) {
|
|
|
185
185
|
const scores = await mastra.getStorage()?.saveScore?.(score) || [];
|
|
186
186
|
return scores;
|
|
187
187
|
} catch (error) {
|
|
188
|
-
return
|
|
188
|
+
return chunkV5WWQN7P_cjs.handleError(error, "Error saving score");
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
exports.getScorerHandler = getScorerHandler;
|
|
193
|
-
exports.
|
|
194
|
-
exports.
|
|
195
|
-
exports.
|
|
196
|
-
exports.
|
|
193
|
+
exports.listScorersHandler = listScorersHandler;
|
|
194
|
+
exports.listScoresByEntityIdHandler = listScoresByEntityIdHandler;
|
|
195
|
+
exports.listScoresByRunIdHandler = listScoresByRunIdHandler;
|
|
196
|
+
exports.listScoresByScorerIdHandler = listScoresByScorerIdHandler;
|
|
197
197
|
exports.saveScoreHandler = saveScoreHandler;
|
|
198
198
|
exports.scores_exports = scores_exports;
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
200
|
-
//# sourceMappingURL=chunk-
|
|
199
|
+
//# sourceMappingURL=chunk-2YZH5PH6.cjs.map
|
|
200
|
+
//# sourceMappingURL=chunk-2YZH5PH6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":["__export","handleError"],"mappings":"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","file":"chunk-2YZH5PH6.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 [_, 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(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\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"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { handleError } from './chunk-
|
|
2
|
-
import { HTTPException } from './chunk-
|
|
1
|
+
import { handleError } from './chunk-UXGQZUYZ.js';
|
|
2
|
+
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
3
3
|
import { __export } from './chunk-PR4QN5HX.js';
|
|
4
|
-
import { scoreTraces } from '@mastra/core/
|
|
4
|
+
import { scoreTraces } from '@mastra/core/evals/scoreTraces';
|
|
5
5
|
|
|
6
6
|
// src/server/handlers/observability.ts
|
|
7
7
|
var observability_exports = {};
|
|
8
8
|
__export(observability_exports, {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
getTraceHandler: () => getTraceHandler,
|
|
10
|
+
getTracesPaginatedHandler: () => getTracesPaginatedHandler,
|
|
11
|
+
listScoresBySpan: () => listScoresBySpan,
|
|
12
12
|
scoreTracesHandler: () => scoreTracesHandler
|
|
13
13
|
});
|
|
14
|
-
async function
|
|
14
|
+
async function getTraceHandler({ mastra, traceId }) {
|
|
15
15
|
try {
|
|
16
16
|
if (!traceId) {
|
|
17
17
|
throw new HTTPException(400, { message: "Trace ID is required" });
|
|
@@ -20,16 +20,16 @@ async function getAITraceHandler({ mastra, traceId }) {
|
|
|
20
20
|
if (!storage) {
|
|
21
21
|
throw new HTTPException(500, { message: "Storage is not available" });
|
|
22
22
|
}
|
|
23
|
-
const trace = await storage.
|
|
23
|
+
const trace = await storage.getTrace(traceId);
|
|
24
24
|
if (!trace) {
|
|
25
25
|
throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
|
|
26
26
|
}
|
|
27
27
|
return trace;
|
|
28
28
|
} catch (error) {
|
|
29
|
-
handleError(error, "Error getting
|
|
29
|
+
handleError(error, "Error getting trace");
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
async function
|
|
32
|
+
async function getTracesPaginatedHandler({ mastra, body }) {
|
|
33
33
|
try {
|
|
34
34
|
const storage = mastra.getStorage();
|
|
35
35
|
if (!storage) {
|
|
@@ -54,12 +54,12 @@ async function getAITracesPaginatedHandler({ mastra, body }) {
|
|
|
54
54
|
throw new HTTPException(400, { message: "Invalid date format in date range" });
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
return storage.
|
|
57
|
+
return storage.getTracesPaginated({
|
|
58
58
|
pagination,
|
|
59
59
|
filters
|
|
60
60
|
});
|
|
61
61
|
} catch (error) {
|
|
62
|
-
handleError(error, "Error getting
|
|
62
|
+
handleError(error, "Error getting traces paginated");
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
async function scoreTracesHandler({ mastra, body }) {
|
|
@@ -69,7 +69,7 @@ async function scoreTracesHandler({ mastra, body }) {
|
|
|
69
69
|
}
|
|
70
70
|
const { scorerName, targets } = body;
|
|
71
71
|
if (!scorerName) {
|
|
72
|
-
throw new HTTPException(400, { message: "Scorer
|
|
72
|
+
throw new HTTPException(400, { message: "Scorer ID is required" });
|
|
73
73
|
}
|
|
74
74
|
if (!targets || targets.length === 0) {
|
|
75
75
|
throw new HTTPException(400, { message: "At least one target is required" });
|
|
@@ -78,13 +78,13 @@ async function scoreTracesHandler({ mastra, body }) {
|
|
|
78
78
|
if (!storage) {
|
|
79
79
|
throw new HTTPException(500, { message: "Storage is not available" });
|
|
80
80
|
}
|
|
81
|
-
const scorer = mastra.
|
|
81
|
+
const scorer = mastra.getScorerById(scorerName);
|
|
82
82
|
if (!scorer) {
|
|
83
83
|
throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });
|
|
84
84
|
}
|
|
85
85
|
const logger = mastra.getLogger();
|
|
86
86
|
scoreTraces({
|
|
87
|
-
|
|
87
|
+
scorerId: scorer.config.id || scorer.config.name,
|
|
88
88
|
targets,
|
|
89
89
|
mastra
|
|
90
90
|
}).catch((error) => {
|
|
@@ -99,7 +99,7 @@ async function scoreTracesHandler({ mastra, body }) {
|
|
|
99
99
|
handleError(error, "Error processing trace scoring");
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
async function
|
|
102
|
+
async function listScoresBySpan({
|
|
103
103
|
mastra,
|
|
104
104
|
traceId,
|
|
105
105
|
spanId,
|
|
@@ -113,12 +113,12 @@ async function getScoresBySpan({
|
|
|
113
113
|
if (!traceId || !spanId) {
|
|
114
114
|
throw new HTTPException(400, { message: "Trace ID and span ID are required" });
|
|
115
115
|
}
|
|
116
|
-
return await storage.
|
|
116
|
+
return await storage.listScoresBySpan({ traceId, spanId, pagination });
|
|
117
117
|
} catch (error) {
|
|
118
118
|
return handleError(error, "Error getting scores by span");
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export {
|
|
123
|
-
//# sourceMappingURL=chunk-
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
122
|
+
export { getTraceHandler, getTracesPaginatedHandler, listScoresBySpan, observability_exports, scoreTracesHandler };
|
|
123
|
+
//# sourceMappingURL=chunk-3AMNUUZF.js.map
|
|
124
|
+
//# sourceMappingURL=chunk-3AMNUUZF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/observability.ts"],"names":[],"mappings":"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","file":"chunk-3AMNUUZF.js","sourcesContent":["import { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { TracesPaginatedArg, 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?: TracesPaginatedArg;\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 trace by trace ID\n * Returns all spans in the trace with their parent-child relationships\n */\nexport async function getTraceHandler({ 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.getTrace(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 trace');\n }\n}\n\n/**\n * Get paginated traces with filtering and pagination\n * Returns only root spans (parent spans) for pagination, not child spans\n */\nexport async function getTracesPaginatedHandler({ 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.getTracesPaginated({\n pagination,\n filters,\n });\n } catch (error) {\n handleError(error, 'Error getting 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"]}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { handleError } from './chunk-
|
|
1
|
+
import { handleError } from './chunk-UXGQZUYZ.js';
|
|
2
2
|
import { __export } from './chunk-PR4QN5HX.js';
|
|
3
3
|
|
|
4
4
|
// src/server/handlers/scores.ts
|
|
5
5
|
var scores_exports = {};
|
|
6
6
|
__export(scores_exports, {
|
|
7
7
|
getScorerHandler: () => getScorerHandler,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
listScorersHandler: () => listScorersHandler,
|
|
9
|
+
listScoresByEntityIdHandler: () => listScoresByEntityIdHandler,
|
|
10
|
+
listScoresByRunIdHandler: () => listScoresByRunIdHandler,
|
|
11
|
+
listScoresByScorerIdHandler: () => listScoresByScorerIdHandler,
|
|
12
12
|
saveScoreHandler: () => saveScoreHandler
|
|
13
13
|
});
|
|
14
|
-
async function
|
|
14
|
+
async function listScorersFromSystem({
|
|
15
15
|
mastra,
|
|
16
|
-
|
|
16
|
+
requestContext
|
|
17
17
|
}) {
|
|
18
|
-
const agents = mastra.
|
|
19
|
-
const workflows = mastra.
|
|
18
|
+
const agents = mastra.listAgents();
|
|
19
|
+
const workflows = mastra.listWorkflows();
|
|
20
20
|
const scorersMap = /* @__PURE__ */ new Map();
|
|
21
|
-
for (const [
|
|
22
|
-
const scorers = await agent.
|
|
23
|
-
|
|
21
|
+
for (const [_, agent] of Object.entries(agents)) {
|
|
22
|
+
const scorers = await agent.listScorers({
|
|
23
|
+
requestContext
|
|
24
24
|
}) || {};
|
|
25
25
|
if (Object.keys(scorers).length > 0) {
|
|
26
26
|
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
27
|
-
const
|
|
28
|
-
if (scorersMap.has(
|
|
29
|
-
scorersMap.get(
|
|
30
|
-
scorersMap.get(
|
|
27
|
+
const scorerId = scorer.scorer.id;
|
|
28
|
+
if (scorersMap.has(scorerId)) {
|
|
29
|
+
scorersMap.get(scorerId)?.agentIds.push(agent.id);
|
|
30
|
+
scorersMap.get(scorerId)?.agentNames.push(agent.name);
|
|
31
31
|
} else {
|
|
32
|
-
scorersMap.set(
|
|
32
|
+
scorersMap.set(scorerId, {
|
|
33
33
|
workflowIds: [],
|
|
34
34
|
...scorer,
|
|
35
35
|
agentNames: [agent.name],
|
|
36
|
-
agentIds: [
|
|
36
|
+
agentIds: [agent.id],
|
|
37
37
|
isRegistered: false
|
|
38
38
|
});
|
|
39
39
|
}
|
|
@@ -41,8 +41,8 @@ async function getScorersFromSystem({
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
for (const [workflowId, workflow] of Object.entries(workflows)) {
|
|
44
|
-
const scorers = await workflow.
|
|
45
|
-
|
|
44
|
+
const scorers = await workflow.listScorers({
|
|
45
|
+
requestContext
|
|
46
46
|
}) || {};
|
|
47
47
|
if (Object.keys(scorers).length > 0) {
|
|
48
48
|
for (const [_scorerId, scorer] of Object.entries(scorers)) {
|
|
@@ -61,13 +61,13 @@ async function getScorersFromSystem({
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
const registeredScorers = await mastra.
|
|
64
|
+
const registeredScorers = await mastra.listScorers();
|
|
65
65
|
for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {
|
|
66
|
-
const
|
|
67
|
-
if (scorersMap.has(
|
|
68
|
-
scorersMap.get(
|
|
66
|
+
const scorerId = scorer.id;
|
|
67
|
+
if (scorersMap.has(scorerId)) {
|
|
68
|
+
scorersMap.get(scorerId).isRegistered = true;
|
|
69
69
|
} else {
|
|
70
|
-
scorersMap.set(
|
|
70
|
+
scorersMap.set(scorerId, {
|
|
71
71
|
scorer,
|
|
72
72
|
agentIds: [],
|
|
73
73
|
agentNames: [],
|
|
@@ -78,21 +78,21 @@ async function getScorersFromSystem({
|
|
|
78
78
|
}
|
|
79
79
|
return Object.fromEntries(scorersMap.entries());
|
|
80
80
|
}
|
|
81
|
-
async function
|
|
82
|
-
const scorers = await
|
|
81
|
+
async function listScorersHandler({ mastra, requestContext }) {
|
|
82
|
+
const scorers = await listScorersFromSystem({
|
|
83
83
|
mastra,
|
|
84
|
-
|
|
84
|
+
requestContext
|
|
85
85
|
});
|
|
86
86
|
return scorers;
|
|
87
87
|
}
|
|
88
88
|
async function getScorerHandler({
|
|
89
89
|
mastra,
|
|
90
90
|
scorerId,
|
|
91
|
-
|
|
91
|
+
requestContext
|
|
92
92
|
}) {
|
|
93
|
-
const scorers = await
|
|
93
|
+
const scorers = await listScorersFromSystem({
|
|
94
94
|
mastra,
|
|
95
|
-
|
|
95
|
+
requestContext
|
|
96
96
|
});
|
|
97
97
|
const scorer = scorers[scorerId];
|
|
98
98
|
if (!scorer) {
|
|
@@ -100,13 +100,13 @@ async function getScorerHandler({
|
|
|
100
100
|
}
|
|
101
101
|
return scorer;
|
|
102
102
|
}
|
|
103
|
-
async function
|
|
103
|
+
async function listScoresByRunIdHandler({
|
|
104
104
|
mastra,
|
|
105
105
|
runId,
|
|
106
106
|
pagination
|
|
107
107
|
}) {
|
|
108
108
|
try {
|
|
109
|
-
const scoreResults = await mastra.getStorage()?.
|
|
109
|
+
const scoreResults = await mastra.getStorage()?.listScoresByRunId?.({
|
|
110
110
|
runId,
|
|
111
111
|
pagination
|
|
112
112
|
}) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };
|
|
@@ -118,7 +118,7 @@ async function getScoresByRunIdHandler({
|
|
|
118
118
|
return handleError(error, "Error getting scores by run id");
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
async function
|
|
121
|
+
async function listScoresByScorerIdHandler({
|
|
122
122
|
mastra,
|
|
123
123
|
scorerId,
|
|
124
124
|
pagination,
|
|
@@ -126,7 +126,7 @@ async function getScoresByScorerIdHandler({
|
|
|
126
126
|
entityType
|
|
127
127
|
}) {
|
|
128
128
|
try {
|
|
129
|
-
const scoreResults = await mastra.getStorage()?.
|
|
129
|
+
const scoreResults = await mastra.getStorage()?.listScoresByScorerId?.({
|
|
130
130
|
scorerId,
|
|
131
131
|
pagination,
|
|
132
132
|
entityId,
|
|
@@ -140,7 +140,7 @@ async function getScoresByScorerIdHandler({
|
|
|
140
140
|
return handleError(error, "Error getting scores by scorer id");
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
async function
|
|
143
|
+
async function listScoresByEntityIdHandler({
|
|
144
144
|
mastra,
|
|
145
145
|
entityId,
|
|
146
146
|
entityType,
|
|
@@ -155,7 +155,7 @@ async function getScoresByEntityIdHandler({
|
|
|
155
155
|
const workflow = mastra.getWorkflowById(entityId);
|
|
156
156
|
entityIdToUse = workflow.id;
|
|
157
157
|
}
|
|
158
|
-
const scoreResults = await mastra.getStorage()?.
|
|
158
|
+
const scoreResults = await mastra.getStorage()?.listScoresByEntityId?.({
|
|
159
159
|
entityId: entityIdToUse,
|
|
160
160
|
entityType,
|
|
161
161
|
pagination
|
|
@@ -187,6 +187,6 @@ async function saveScoreHandler({ mastra, score }) {
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
export { getScorerHandler,
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
192
|
-
//# sourceMappingURL=chunk-
|
|
190
|
+
export { getScorerHandler, listScorersHandler, listScoresByEntityIdHandler, listScoresByRunIdHandler, listScoresByScorerIdHandler, saveScoreHandler, scores_exports };
|
|
191
|
+
//# sourceMappingURL=chunk-3F52QCI4.js.map
|
|
192
|
+
//# sourceMappingURL=chunk-3F52QCI4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":[],"mappings":";;;;AAAA,IAAA,cAAA,GAAA;AAAA,QAAA,CAAA,cAAA,EAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,2BAAA,EAAA,MAAA,2BAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,2BAAA,EAAA,MAAA,2BAAA;AAAA,EAAA,gBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAMA,eAAe,qBAAA,CAAsB;AAAA,EACnC,MAAA;AAAA,EACA;AACF,CAAA,EAEG;AACD,EAAA,MAAM,MAAA,GAAS,OAAO,UAAA,EAAW;AACjC,EAAA,MAAM,SAAA,GAAY,OAAO,aAAA,EAAc;AAEvC,EAAA,MAAM,UAAA,uBAAiB,GAAA,EAGrB;AAEF,EAAA,KAAA,MAAW,CAAC,CAAA,EAAG,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC/C,IAAA,MAAM,OAAA,GACH,MAAM,KAAA,CAAM,WAAA,CAAY;AAAA,MACvB;AAAA,KACD,KAAM,EAAC;AAEV,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,SAAS,CAAA,EAAG;AACnC,MAAA,KAAA,MAAW,CAAC,SAAA,EAAW,MAAM,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACzD,QAAA,MAAM,QAAA,GAAW,OAAO,MAAA,CAAO,EAAA;AAC/B,QAAA,IAAI,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC5B,UAAA,UAAA,CAAW,IAAI,QAAQ,CAAA,EAAG,QAAA,CAAS,IAAA,CAAK,MAAM,EAAE,CAAA;AAChD,UAAA,UAAA,CAAW,IAAI,QAAQ,CAAA,EAAG,UAAA,CAAW,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,QACtD,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,IAAI,QAAA,EAAU;AAAA,YACvB,aAAa,EAAC;AAAA,YACd,GAAG,MAAA;AAAA,YACH,UAAA,EAAY,CAAC,KAAA,CAAM,IAAI,CAAA;AAAA,YACvB,QAAA,EAAU,CAAC,KAAA,CAAM,EAAE,CAAA;AAAA,YACnB,YAAA,EAAc;AAAA,WACf,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,KAAA,MAAW,CAAC,UAAA,EAAY,QAAQ,KAAK,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC9D,IAAA,MAAM,OAAA,GACH,MAAM,QAAA,CAAS,WAAA,CAAY;AAAA,MAC1B;AAAA,KACD,KAAM,EAAC;AAEV,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,SAAS,CAAA,EAAG;AACnC,MAAA,KAAA,MAAW,CAAC,SAAA,EAAW,MAAM,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACzD,QAAA,MAAM,UAAA,GAAa,OAAO,MAAA,CAAO,IAAA;AACjC,QAAA,IAAI,UAAA,CAAW,GAAA,CAAI,UAAU,CAAA,EAAG;AAC9B,UAAA,UAAA,CAAW,GAAA,CAAI,UAAU,CAAA,EAAG,WAAA,CAAY,KAAK,UAAU,CAAA;AAAA,QACzD,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,IAAI,UAAA,EAAY;AAAA,YACzB,UAAU,EAAC;AAAA,YACX,YAAY,EAAC;AAAA,YACb,GAAG,MAAA;AAAA,YACH,WAAA,EAAa,CAAC,UAAU,CAAA;AAAA,YACxB,YAAA,EAAc;AAAA,WACf,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,iBAAA,GAAoB,MAAM,MAAA,CAAO,WAAA,EAAY;AACnD,EAAA,KAAA,MAAW,CAAC,WAAW,MAAM,CAAA,IAAK,OAAO,OAAA,CAAQ,iBAAA,IAAqB,EAAE,CAAA,EAAG;AACzE,IAAA,MAAM,WAAW,MAAA,CAAO,EAAA;AACxB,IAAA,IAAI,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC5B,MAAA,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,CAAG,YAAA,GAAe,IAAA;AAAA,IAC3C,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,IAAI,QAAA,EAAU;AAAA,QACvB,MAAA;AAAA,QACA,UAAU,EAAC;AAAA,QACX,YAAY,EAAC;AAAA,QACb,aAAa,EAAC;AAAA,QACd,YAAA,EAAc;AAAA,OACf,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,OAAO,MAAA,CAAO,WAAA,CAAY,UAAA,CAAW,OAAA,EAAS,CAAA;AAChD;AAEA,eAAsB,kBAAA,CAAmB,EAAE,MAAA,EAAQ,cAAA,EAAe,EAAiD;AACjH,EAAA,MAAM,OAAA,GAAU,MAAM,qBAAA,CAAsB;AAAA,IAC1C,MAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,OAAO,OAAA;AACT;AAEA,eAAsB,gBAAA,CAAiB;AAAA,EACrC,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAmE;AACjE,EAAA,MAAM,OAAA,GAAU,MAAM,qBAAA,CAAsB;AAAA,IAC1C,MAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,MAAA,GAAS,QAAQ,QAAQ,CAAA;AAE/B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,eAAsB,wBAAA,CAAyB;AAAA,EAC7C,MAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA+D;AAC7D,EAAA,IAAI;AACF,IAAA,MAAM,YAAA,GAAgB,MAAM,MAAA,CAAO,UAAA,IAAc,iBAAA,GAAoB;AAAA,MACnE,KAAA;AAAA,MACA;AAAA,KACD,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AACnF,IAAA,OAAO;AAAA,MACL,YAAY,YAAA,CAAa,UAAA;AAAA,MACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,KAC5F;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,WAAA,CAAY,OAAO,gCAAgC,CAAA;AAAA,EAC5D;AACF;AAEA,eAAsB,2BAAA,CAA4B;AAAA,EAChD,MAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA0G;AACxG,EAAA,IAAI;AACF,IAAA,MAAM,YAAA,GAAgB,MAAM,MAAA,CAAO,UAAA,IAAc,oBAAA,GAAuB;AAAA,MACtE,QAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACD,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AACnF,IAAA,OAAO;AAAA,MACL,YAAY,YAAA,CAAa,UAAA;AAAA,MACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,KAC5F;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,EAC/D;AACF;AAEA,eAAsB,2BAAA,CAA4B;AAAA,EAChD,MAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAAsF;AACpF,EAAA,IAAI;AACF,IAAA,IAAI,aAAA,GAAgB,QAAA;AAEpB,IAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,QAAQ,CAAA;AAC1C,MAAA,aAAA,GAAgB,KAAA,CAAM,EAAA;AAAA,IACxB,CAAA,MAAA,IAAW,eAAe,UAAA,EAAY;AACpC,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,QAAQ,CAAA;AAChD,MAAA,aAAA,GAAgB,QAAA,CAAS,EAAA;AAAA,IAC3B;AAEA,IAAA,MAAM,YAAA,GAAgB,MAAM,MAAA,CAAO,UAAA,IAAc,oBAAA,GAAuB;AAAA,MACtE,QAAA,EAAU,aAAA;AAAA,MACV,UAAA;AAAA,MACA;AAAA,KACD,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AAEnF,IAAA,OAAO;AAAA,MACL,YAAY,YAAA,CAAa,UAAA;AAAA,MACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAA,KAAA,MAAU,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,KAC5F;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,EAC/D;AACF;AAGA,SAAS,gBAAgB,iBAAA,EAA4B;AACnD,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,CAAC,OAAA,EAAS,MAAM,CAAA,GAAI,iBAAA,CAAkB,MAAM,GAAG,CAAA;AAErD,EAAA,OAAO;AAAA,IACL,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,IAC7B,GAAI,MAAA,GAAS,EAAE,MAAA,KAAW;AAAC,GAC7B;AACF;AAEA,eAAsB,gBAAA,CAAiB,EAAE,MAAA,EAAQ,KAAA,EAAM,EAAsC;AAC3F,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAU,MAAM,MAAA,CAAO,UAAA,IAAc,SAAA,GAAY,KAAK,KAAM,EAAC;AACnE,IAAA,OAAO,MAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,WAAA,CAAY,OAAO,oBAAoB,CAAA;AAAA,EAChD;AACF","file":"chunk-3F52QCI4.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 [_, 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(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\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"]}
|