@mastra/server 0.0.0-fix-message-list-args-missing-20250807205055 → 0.0.0-fix-zod-to-json-schema-ref-strategy-20250910193441
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 +3569 -0
- package/dist/chunk-2JEDATG5.cjs +15707 -0
- package/dist/chunk-2JEDATG5.cjs.map +1 -0
- package/dist/{chunk-GASWM5HJ.cjs → chunk-3THIIWWW.cjs} +108 -138
- package/dist/chunk-3THIIWWW.cjs.map +1 -0
- package/dist/{chunk-OW4FX5TS.js → chunk-4QCXUEAT.js} +10 -3
- package/dist/chunk-4QCXUEAT.js.map +1 -0
- package/dist/chunk-4RRMWXQ2.js +3522 -0
- package/dist/chunk-4RRMWXQ2.js.map +1 -0
- package/dist/chunk-5DP5XZH6.cjs +928 -0
- package/dist/chunk-5DP5XZH6.cjs.map +1 -0
- package/dist/{chunk-TRWPUPGD.js → chunk-5QUKZCEF.js} +107 -137
- package/dist/chunk-5QUKZCEF.js.map +1 -0
- package/dist/chunk-66YYHFGF.js +761 -0
- package/dist/chunk-66YYHFGF.js.map +1 -0
- package/dist/chunk-6GMFZ5LK.js +2774 -0
- package/dist/chunk-6GMFZ5LK.js.map +1 -0
- package/dist/{chunk-S37KCGOR.cjs → chunk-6LUKYSWE.cjs} +119 -55
- package/dist/chunk-6LUKYSWE.cjs.map +1 -0
- package/dist/chunk-743UIDHI.cjs +2013 -0
- package/dist/chunk-743UIDHI.cjs.map +1 -0
- package/dist/{chunk-TXAQU2XN.js → chunk-7QEJ5QG5.js} +5 -5
- package/dist/chunk-7QEJ5QG5.js.map +1 -0
- package/dist/{chunk-4MQU6AJN.js → chunk-A3AL7EWJ.js} +4 -4
- package/dist/{chunk-4MQU6AJN.js.map → chunk-A3AL7EWJ.js.map} +1 -1
- package/dist/{chunk-HWHKM67I.js → chunk-A75S4TDD.js} +4 -4
- package/dist/{chunk-HWHKM67I.js.map → chunk-A75S4TDD.js.map} +1 -1
- package/dist/chunk-AK2FXLLB.cjs +849 -0
- package/dist/chunk-AK2FXLLB.cjs.map +1 -0
- package/dist/{chunk-BUOJL3MN.js → chunk-B2V3PUB7.js} +117 -55
- package/dist/chunk-B2V3PUB7.js.map +1 -0
- package/dist/chunk-EMMSS5I5.cjs +37 -0
- package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-EMMSS5I5.cjs.map} +1 -1
- package/dist/chunk-EMNGA4R4.js +845 -0
- package/dist/chunk-EMNGA4R4.js.map +1 -0
- package/dist/chunk-FALVL2VV.cjs +3525 -0
- package/dist/chunk-FALVL2VV.cjs.map +1 -0
- package/dist/chunk-FQNT7PI4.js +937 -0
- package/dist/chunk-FQNT7PI4.js.map +1 -0
- package/dist/chunk-G3PMV62Z.js +33 -0
- package/dist/{chunk-PZ5AY32C.js.map → chunk-G3PMV62Z.js.map} +1 -1
- package/dist/{chunk-4QSNRCOT.cjs → chunk-G4PUALCE.cjs} +10 -2
- package/dist/chunk-G4PUALCE.cjs.map +1 -0
- package/dist/chunk-GU4EWMZB.cjs +769 -0
- package/dist/chunk-GU4EWMZB.cjs.map +1 -0
- package/dist/{chunk-VIGPWTDA.cjs → chunk-GUI3CROV.cjs} +6 -6
- package/dist/chunk-GUI3CROV.cjs.map +1 -0
- package/dist/chunk-HJQKWRKQ.cjs +764 -0
- package/dist/chunk-HJQKWRKQ.cjs.map +1 -0
- package/dist/{chunk-LRUH33B4.cjs → chunk-HVBBFCDH.cjs} +1004 -727
- package/dist/chunk-HVBBFCDH.cjs.map +1 -0
- package/dist/chunk-HZJRQ5L3.cjs +1411 -0
- package/dist/chunk-HZJRQ5L3.cjs.map +1 -0
- package/dist/chunk-IGFMAZZ5.cjs +1150 -0
- package/dist/chunk-IGFMAZZ5.cjs.map +1 -0
- package/dist/chunk-IOQGI4ML.js +931 -0
- package/dist/chunk-IOQGI4ML.js.map +1 -0
- package/dist/{chunk-4CEZIJWJ.cjs → chunk-IY34NOLA.cjs} +7 -7
- package/dist/{chunk-4CEZIJWJ.cjs.map → chunk-IY34NOLA.cjs.map} +1 -1
- package/dist/{chunk-O4I563YW.cjs → chunk-J7BPKKOG.cjs} +46 -13
- package/dist/chunk-J7BPKKOG.cjs.map +1 -0
- package/dist/{chunk-JGVY3KWV.cjs → chunk-KNGXRN26.cjs} +12 -11
- package/dist/chunk-KNGXRN26.cjs.map +1 -0
- package/dist/{chunk-SQ7KKIH3.js → chunk-KV6VHX4V.js} +22 -5
- package/dist/chunk-KV6VHX4V.js.map +1 -0
- package/dist/chunk-L265APUD.cjs +69 -0
- package/dist/chunk-L265APUD.cjs.map +1 -0
- package/dist/chunk-LF2ZLOFP.js +767 -0
- package/dist/chunk-LF2ZLOFP.js.map +1 -0
- package/dist/{chunk-VOY6MGKA.js → chunk-LJFXFCUH.js} +184 -30
- package/dist/chunk-LJFXFCUH.js.map +1 -0
- package/dist/chunk-LYPU75T6.js +1147 -0
- package/dist/chunk-LYPU75T6.js.map +1 -0
- package/dist/{chunk-7FHF55WA.js → chunk-N7F33WAD.js} +976 -727
- package/dist/chunk-N7F33WAD.js.map +1 -0
- package/dist/chunk-NG5IVLEZ.js +1012 -0
- package/dist/chunk-NG5IVLEZ.js.map +1 -0
- package/dist/chunk-OGW6HHVI.js +1408 -0
- package/dist/chunk-OGW6HHVI.js.map +1 -0
- package/dist/chunk-OTU37YZO.js +15671 -0
- package/dist/chunk-OTU37YZO.js.map +1 -0
- package/dist/{chunk-GX25CWC7.cjs → chunk-OZLRIVC4.cjs} +18 -18
- package/dist/chunk-OZLRIVC4.cjs.map +1 -0
- package/dist/chunk-P7CIEIJ3.js +925 -0
- package/dist/chunk-P7CIEIJ3.js.map +1 -0
- package/dist/chunk-P7RBMCBE.cjs +934 -0
- package/dist/chunk-P7RBMCBE.cjs.map +1 -0
- package/dist/chunk-PPYGWINI.cjs +2777 -0
- package/dist/chunk-PPYGWINI.cjs.map +1 -0
- package/dist/{chunk-ILCWPBYQ.cjs → chunk-PWTXZZTR.cjs} +23 -5
- package/dist/chunk-PWTXZZTR.cjs.map +1 -0
- package/dist/{chunk-2XIJW7SV.cjs → chunk-QZT4RDHB.cjs} +193 -33
- package/dist/chunk-QZT4RDHB.cjs.map +1 -0
- package/dist/chunk-R7NOGUZG.js +65 -0
- package/dist/chunk-R7NOGUZG.js.map +1 -0
- package/dist/chunk-RCHEPTZZ.js +2006 -0
- package/dist/chunk-RCHEPTZZ.js.map +1 -0
- package/dist/chunk-SIGXR3JT.cjs +1043 -0
- package/dist/chunk-SIGXR3JT.cjs.map +1 -0
- package/dist/{chunk-BED2O446.cjs → chunk-SPLSYTYW.cjs} +7 -7
- package/dist/{chunk-BED2O446.cjs.map → chunk-SPLSYTYW.cjs.map} +1 -1
- package/dist/{chunk-ZKJZQN24.js → chunk-SQY4T6EJ.js} +5 -5
- package/dist/chunk-SQY4T6EJ.js.map +1 -0
- package/dist/{chunk-YS66MFDY.js → chunk-SYRRSBGL.js} +44 -12
- package/dist/chunk-SYRRSBGL.js.map +1 -0
- package/dist/{chunk-NCS2OXX6.cjs → chunk-T3TIA3O6.cjs} +4 -4
- package/dist/{chunk-NCS2OXX6.cjs.map → chunk-T3TIA3O6.cjs.map} +1 -1
- package/dist/{chunk-UVOSITKU.js → chunk-TTHEEIZ3.js} +11 -10
- package/dist/chunk-TTHEEIZ3.js.map +1 -0
- package/dist/chunk-TVSIG4JE.cjs +940 -0
- package/dist/chunk-TVSIG4JE.cjs.map +1 -0
- package/dist/{chunk-Y3J45CVZ.js → chunk-U46VIX2V.js} +4 -4
- package/dist/{chunk-Y3J45CVZ.js.map → chunk-U46VIX2V.js.map} +1 -1
- package/dist/{chunk-G7NVCO5M.js → chunk-WHN4VX55.js} +3 -3
- package/dist/{chunk-G7NVCO5M.js.map → chunk-WHN4VX55.js.map} +1 -1
- package/dist/{chunk-4US5W7PH.cjs → chunk-WZC6CIVD.cjs} +6 -6
- package/dist/{chunk-4US5W7PH.cjs.map → chunk-WZC6CIVD.cjs.map} +1 -1
- package/dist/dist-26HWEQY6.js +3 -0
- package/dist/dist-26HWEQY6.js.map +1 -0
- package/dist/dist-3A5DXB37.cjs +20 -0
- package/dist/dist-3A5DXB37.cjs.map +1 -0
- package/dist/dist-3SJKQJGY.cjs +16 -0
- package/dist/dist-3SJKQJGY.cjs.map +1 -0
- package/dist/dist-4ZQSPE5K.js +3 -0
- package/dist/dist-4ZQSPE5K.js.map +1 -0
- package/dist/dist-5W5QNRTD.js +3 -0
- package/dist/dist-5W5QNRTD.js.map +1 -0
- package/dist/dist-653SRMPL.js +3 -0
- package/dist/dist-653SRMPL.js.map +1 -0
- package/dist/dist-6U6EFC5C.cjs +16 -0
- package/dist/dist-6U6EFC5C.cjs.map +1 -0
- package/dist/dist-7IHNNYMF.cjs +16 -0
- package/dist/dist-7IHNNYMF.cjs.map +1 -0
- package/dist/dist-B5IPRF6W.js +3 -0
- package/dist/dist-B5IPRF6W.js.map +1 -0
- package/dist/dist-EOMYFT4Y.cjs +16 -0
- package/dist/dist-EOMYFT4Y.cjs.map +1 -0
- package/dist/dist-EZZMMMNT.cjs +16 -0
- package/dist/dist-EZZMMMNT.cjs.map +1 -0
- package/dist/dist-F2ET4MNO.cjs +16 -0
- package/dist/dist-F2ET4MNO.cjs.map +1 -0
- package/dist/dist-H64VX6DE.js +3 -0
- package/dist/dist-H64VX6DE.js.map +1 -0
- package/dist/dist-HY7RMLJQ.cjs +16 -0
- package/dist/dist-HY7RMLJQ.cjs.map +1 -0
- package/dist/dist-M6S4P3FJ.js +3 -0
- package/dist/dist-M6S4P3FJ.js.map +1 -0
- package/dist/dist-NR7QSCQT.js +3 -0
- package/dist/dist-NR7QSCQT.js.map +1 -0
- package/dist/dist-QLFMCMCX.js +3 -0
- package/dist/dist-QLFMCMCX.js.map +1 -0
- package/dist/dist-UY46BFRP.js +3 -0
- package/dist/dist-UY46BFRP.js.map +1 -0
- package/dist/dist-WCQDRTIV.cjs +16 -0
- package/dist/dist-WCQDRTIV.cjs.map +1 -0
- package/dist/dist-WKYB3LTJ.cjs +16 -0
- package/dist/dist-WKYB3LTJ.cjs.map +1 -0
- package/dist/server/a2a/store.cjs +25 -0
- package/dist/server/a2a/store.cjs.map +1 -0
- package/dist/server/a2a/store.d.ts +3 -3
- package/dist/server/a2a/store.d.ts.map +1 -1
- package/dist/server/a2a/store.js +23 -0
- package/dist/server/a2a/store.js.map +1 -0
- package/dist/server/a2a/tasks.d.ts +6 -6
- package/dist/server/a2a/tasks.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +11 -11
- package/dist/server/handlers/a2a.d.ts +16 -14
- 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 +68 -0
- package/dist/server/handlers/agent-builder.cjs.map +1 -0
- package/dist/server/handlers/agent-builder.d.ts +87 -0
- package/dist/server/handlers/agent-builder.d.ts.map +1 -0
- package/dist/server/handlers/agent-builder.js +3 -0
- package/dist/server/handlers/agent-builder.js.map +1 -0
- package/dist/server/handlers/agents.cjs +32 -8
- package/dist/server/handlers/agents.d.ts +50 -2
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/legacyWorkflows.cjs +11 -11
- package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -1
- package/dist/server/handlers/legacyWorkflows.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +16 -16
- package/dist/server/handlers/memory.d.ts +1 -2
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/network.cjs +5 -5
- package/dist/server/handlers/network.js +1 -1
- package/dist/server/handlers/observability.cjs +16 -0
- package/dist/server/handlers/observability.cjs.map +1 -0
- package/dist/server/handlers/observability.d.ts +23 -0
- package/dist/server/handlers/observability.d.ts.map +1 -0
- package/dist/server/handlers/observability.js +3 -0
- package/dist/server/handlers/observability.js.map +1 -0
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/telemetry.cjs +7 -3
- package/dist/server/handlers/telemetry.d.ts +1 -0
- package/dist/server/handlers/telemetry.d.ts.map +1 -1
- package/dist/server/handlers/telemetry.js +1 -1
- package/dist/server/handlers/tools.cjs +9 -5
- package/dist/server/handlers/tools.d.ts +4 -0
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +6 -2
- package/dist/server/handlers/utils.d.ts +6 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vNextNetwork.cjs +11 -11
- package/dist/server/handlers/vNextNetwork.cjs.map +1 -1
- package/dist/server/handlers/vNextNetwork.d.ts +9 -9
- package/dist/server/handlers/vNextNetwork.d.ts.map +1 -1
- package/dist/server/handlers/vNextNetwork.js +7 -7
- package/dist/server/handlers/vNextNetwork.js.map +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.js +1 -1
- package/dist/server/handlers/workflows.cjs +16 -16
- package/dist/server/handlers/workflows.d.ts +7 -22
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +44 -34
- package/dist/server/handlers.d.ts +2 -0
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +14 -12
- package/dist/server/utils.d.ts +42 -0
- package/dist/server/utils.d.ts.map +1 -0
- package/package.json +40 -11
- package/dist/chunk-2XIJW7SV.cjs.map +0 -1
- package/dist/chunk-4QSNRCOT.cjs.map +0 -1
- package/dist/chunk-7FHF55WA.js.map +0 -1
- package/dist/chunk-BUOJL3MN.js.map +0 -1
- package/dist/chunk-GASWM5HJ.cjs.map +0 -1
- package/dist/chunk-GX25CWC7.cjs.map +0 -1
- package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
- package/dist/chunk-JGVY3KWV.cjs.map +0 -1
- package/dist/chunk-LRUH33B4.cjs.map +0 -1
- package/dist/chunk-O4I563YW.cjs.map +0 -1
- package/dist/chunk-OW4FX5TS.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -9
- package/dist/chunk-Q7SFCCGT.cjs +0 -11
- package/dist/chunk-S37KCGOR.cjs.map +0 -1
- package/dist/chunk-SQ7KKIH3.js.map +0 -1
- package/dist/chunk-TRWPUPGD.js.map +0 -1
- package/dist/chunk-TXAQU2XN.js.map +0 -1
- package/dist/chunk-UVOSITKU.js.map +0 -1
- package/dist/chunk-VIGPWTDA.cjs.map +0 -1
- package/dist/chunk-VOY6MGKA.js.map +0 -1
- package/dist/chunk-YS66MFDY.js.map +0 -1
- package/dist/chunk-ZKJZQN24.js.map +0 -1
|
@@ -1,23 +1,69 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk5DP5XZH6_cjs = require('./chunk-5DP5XZH6.cjs');
|
|
4
|
+
var chunkTVSIG4JE_cjs = require('./chunk-TVSIG4JE.cjs');
|
|
5
|
+
var chunk743UIDHI_cjs = require('./chunk-743UIDHI.cjs');
|
|
6
|
+
var chunkAK2FXLLB_cjs = require('./chunk-AK2FXLLB.cjs');
|
|
7
|
+
var chunkP7RBMCBE_cjs = require('./chunk-P7RBMCBE.cjs');
|
|
8
|
+
var chunkHZJRQ5L3_cjs = require('./chunk-HZJRQ5L3.cjs');
|
|
9
|
+
var chunkIGFMAZZ5_cjs = require('./chunk-IGFMAZZ5.cjs');
|
|
10
|
+
var chunkHJQKWRKQ_cjs = require('./chunk-HJQKWRKQ.cjs');
|
|
11
|
+
var chunkG4PUALCE_cjs = require('./chunk-G4PUALCE.cjs');
|
|
12
|
+
var chunkFALVL2VV_cjs = require('./chunk-FALVL2VV.cjs');
|
|
13
|
+
var chunkPPYGWINI_cjs = require('./chunk-PPYGWINI.cjs');
|
|
14
|
+
var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
|
|
5
15
|
var chunkRE4RPXT2_cjs = require('./chunk-RE4RPXT2.cjs');
|
|
6
16
|
var chunk7NADHFD2_cjs = require('./chunk-7NADHFD2.cjs');
|
|
7
|
-
var
|
|
17
|
+
var chunkEMMSS5I5_cjs = require('./chunk-EMMSS5I5.cjs');
|
|
8
18
|
var runtimeContext = require('@mastra/core/runtime-context');
|
|
19
|
+
var zodToJson = require('@mastra/core/utils/zod-to-json');
|
|
9
20
|
|
|
10
21
|
// src/server/handlers/agents.ts
|
|
11
22
|
var agents_exports = {};
|
|
12
|
-
|
|
23
|
+
chunkEMMSS5I5_cjs.__export(agents_exports, {
|
|
13
24
|
generateHandler: () => generateHandler,
|
|
25
|
+
generateLegacyHandler: () => generateLegacyHandler,
|
|
26
|
+
generateVNextHandler: () => generateVNextHandler,
|
|
14
27
|
getAgentByIdHandler: () => getAgentByIdHandler,
|
|
15
28
|
getAgentsHandler: () => getAgentsHandler,
|
|
16
29
|
getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
|
|
17
30
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
31
|
+
getSerializedAgentTools: () => getSerializedAgentTools,
|
|
18
32
|
streamGenerateHandler: () => streamGenerateHandler,
|
|
19
|
-
|
|
33
|
+
streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
|
|
34
|
+
streamVNextGenerateHandler: () => streamVNextGenerateHandler,
|
|
35
|
+
streamVNextUIMessageHandler: () => streamVNextUIMessageHandler,
|
|
36
|
+
updateAgentModelHandler: () => updateAgentModelHandler
|
|
20
37
|
});
|
|
38
|
+
async function getSerializedAgentTools(tools) {
|
|
39
|
+
return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
40
|
+
const _tool = tool;
|
|
41
|
+
const toolId = _tool.id ?? `tool-${key}`;
|
|
42
|
+
let inputSchemaForReturn = void 0;
|
|
43
|
+
if (_tool.inputSchema) {
|
|
44
|
+
if (_tool.inputSchema?.jsonSchema) {
|
|
45
|
+
inputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(_tool.inputSchema.jsonSchema);
|
|
46
|
+
} else {
|
|
47
|
+
inputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(_tool.inputSchema));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let outputSchemaForReturn = void 0;
|
|
51
|
+
if (_tool.outputSchema) {
|
|
52
|
+
if (_tool.outputSchema?.jsonSchema) {
|
|
53
|
+
outputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(_tool.outputSchema.jsonSchema);
|
|
54
|
+
} else {
|
|
55
|
+
outputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(_tool.outputSchema));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
acc[key] = {
|
|
59
|
+
..._tool,
|
|
60
|
+
id: toolId,
|
|
61
|
+
inputSchema: inputSchemaForReturn,
|
|
62
|
+
outputSchema: outputSchemaForReturn
|
|
63
|
+
};
|
|
64
|
+
return acc;
|
|
65
|
+
}, {});
|
|
66
|
+
}
|
|
21
67
|
async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
22
68
|
try {
|
|
23
69
|
const agents = mastra.getAgents();
|
|
@@ -28,15 +74,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
|
28
74
|
const llm = await agent.getLLM({ runtimeContext });
|
|
29
75
|
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });
|
|
30
76
|
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });
|
|
31
|
-
const serializedAgentTools =
|
|
32
|
-
const _tool = tool;
|
|
33
|
-
acc[key] = {
|
|
34
|
-
..._tool,
|
|
35
|
-
inputSchema: _tool.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.inputSchema)) : void 0,
|
|
36
|
-
outputSchema: _tool.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.outputSchema)) : void 0
|
|
37
|
-
};
|
|
38
|
-
return acc;
|
|
39
|
-
}, {});
|
|
77
|
+
const serializedAgentTools = await getSerializedAgentTools(tools);
|
|
40
78
|
let serializedAgentWorkflows = {};
|
|
41
79
|
if ("getWorkflows" in agent) {
|
|
42
80
|
const logger = mastra.getLogger();
|
|
@@ -54,6 +92,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
|
54
92
|
logger.error("Error getting workflows for agent", { agentName: agent.name, error });
|
|
55
93
|
}
|
|
56
94
|
}
|
|
95
|
+
const model = llm?.getModel();
|
|
57
96
|
return {
|
|
58
97
|
id,
|
|
59
98
|
name: agent.name,
|
|
@@ -62,6 +101,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
|
|
|
62
101
|
workflows: serializedAgentWorkflows,
|
|
63
102
|
provider: llm?.getProvider(),
|
|
64
103
|
modelId: llm?.getModelId(),
|
|
104
|
+
modelVersion: model?.specificationVersion,
|
|
65
105
|
defaultGenerateOptions,
|
|
66
106
|
defaultStreamOptions
|
|
67
107
|
};
|
|
@@ -88,15 +128,7 @@ async function getAgentByIdHandler({
|
|
|
88
128
|
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
89
129
|
}
|
|
90
130
|
const tools = await agent.getTools({ runtimeContext });
|
|
91
|
-
const serializedAgentTools =
|
|
92
|
-
const _tool = tool;
|
|
93
|
-
acc[key] = {
|
|
94
|
-
..._tool,
|
|
95
|
-
inputSchema: _tool.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.inputSchema)) : void 0,
|
|
96
|
-
outputSchema: _tool.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.outputSchema)) : void 0
|
|
97
|
-
};
|
|
98
|
-
return acc;
|
|
99
|
-
}, {});
|
|
131
|
+
const serializedAgentTools = await getSerializedAgentTools(tools);
|
|
100
132
|
let serializedAgentWorkflows = {};
|
|
101
133
|
if ("getWorkflows" in agent) {
|
|
102
134
|
const logger = mastra.getLogger();
|
|
@@ -141,6 +173,7 @@ async function getAgentByIdHandler({
|
|
|
141
173
|
const llm = await agent.getLLM({ runtimeContext });
|
|
142
174
|
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
|
|
143
175
|
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
|
|
176
|
+
const model = llm?.getModel();
|
|
144
177
|
return {
|
|
145
178
|
name: agent.name,
|
|
146
179
|
instructions,
|
|
@@ -148,6 +181,7 @@ async function getAgentByIdHandler({
|
|
|
148
181
|
workflows: serializedAgentWorkflows,
|
|
149
182
|
provider: llm?.getProvider(),
|
|
150
183
|
modelId: llm?.getModelId(),
|
|
184
|
+
modelVersion: model?.specificationVersion,
|
|
151
185
|
defaultGenerateOptions,
|
|
152
186
|
defaultStreamOptions
|
|
153
187
|
};
|
|
@@ -193,7 +227,17 @@ async function getLiveEvalsByAgentIdHandler({
|
|
|
193
227
|
return chunkRE4RPXT2_cjs.handleError(error, "Error getting live evals");
|
|
194
228
|
}
|
|
195
229
|
}
|
|
196
|
-
|
|
230
|
+
function generateHandler({
|
|
231
|
+
mastra,
|
|
232
|
+
...args
|
|
233
|
+
}) {
|
|
234
|
+
const logger = mastra.getLogger();
|
|
235
|
+
logger?.warn(
|
|
236
|
+
"Deprecation NOTICE:\nGenerate method will switch to use generateVNext implementation September 16th, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet."
|
|
237
|
+
);
|
|
238
|
+
return generateLegacyHandler({ mastra, ...args });
|
|
239
|
+
}
|
|
240
|
+
async function generateLegacyHandler({
|
|
197
241
|
mastra,
|
|
198
242
|
runtimeContext: runtimeContext$1,
|
|
199
243
|
agentId,
|
|
@@ -205,19 +249,50 @@ async function generateHandler({
|
|
|
205
249
|
if (!agent) {
|
|
206
250
|
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
207
251
|
}
|
|
252
|
+
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
208
253
|
const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
209
254
|
const finalResourceId = resourceId ?? resourceid;
|
|
210
255
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
211
256
|
...Array.from(runtimeContext$1.entries()),
|
|
212
257
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
213
258
|
]);
|
|
214
|
-
|
|
259
|
+
chunkG4PUALCE_cjs.validateBody({ messages });
|
|
215
260
|
const result = await agent.generate(messages, {
|
|
216
261
|
...rest,
|
|
262
|
+
abortSignal,
|
|
217
263
|
// @ts-expect-error TODO fix types
|
|
218
264
|
resourceId: finalResourceId,
|
|
265
|
+
runtimeContext: finalRuntimeContext
|
|
266
|
+
});
|
|
267
|
+
return result;
|
|
268
|
+
} catch (error) {
|
|
269
|
+
return chunkRE4RPXT2_cjs.handleError(error, "Error generating from agent");
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
async function generateVNextHandler({
|
|
273
|
+
mastra,
|
|
274
|
+
runtimeContext: runtimeContext$1,
|
|
275
|
+
agentId,
|
|
276
|
+
body,
|
|
277
|
+
abortSignal
|
|
278
|
+
}) {
|
|
279
|
+
try {
|
|
280
|
+
const agent = mastra.getAgent(agentId);
|
|
281
|
+
if (!agent) {
|
|
282
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
283
|
+
}
|
|
284
|
+
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
285
|
+
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
286
|
+
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
287
|
+
...Array.from(runtimeContext$1.entries()),
|
|
288
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
289
|
+
]);
|
|
290
|
+
chunkG4PUALCE_cjs.validateBody({ messages });
|
|
291
|
+
const result = await agent.generateVNext(messages, {
|
|
292
|
+
...rest,
|
|
219
293
|
runtimeContext: finalRuntimeContext,
|
|
220
|
-
|
|
294
|
+
format: rest.format || "mastra",
|
|
295
|
+
abortSignal
|
|
221
296
|
});
|
|
222
297
|
return result;
|
|
223
298
|
} catch (error) {
|
|
@@ -225,6 +300,16 @@ async function generateHandler({
|
|
|
225
300
|
}
|
|
226
301
|
}
|
|
227
302
|
async function streamGenerateHandler({
|
|
303
|
+
mastra,
|
|
304
|
+
...args
|
|
305
|
+
}) {
|
|
306
|
+
const logger = mastra.getLogger();
|
|
307
|
+
logger?.warn(
|
|
308
|
+
"Deprecation NOTICE:\n Stream method will switch to use streamVNext implementation September 16th, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet."
|
|
309
|
+
);
|
|
310
|
+
return streamGenerateLegacyHandler({ mastra, ...args });
|
|
311
|
+
}
|
|
312
|
+
async function streamGenerateLegacyHandler({
|
|
228
313
|
mastra,
|
|
229
314
|
runtimeContext: runtimeContext$1,
|
|
230
315
|
agentId,
|
|
@@ -242,13 +327,13 @@ async function streamGenerateHandler({
|
|
|
242
327
|
...Array.from(runtimeContext$1.entries()),
|
|
243
328
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
244
329
|
]);
|
|
245
|
-
|
|
330
|
+
chunkG4PUALCE_cjs.validateBody({ messages });
|
|
246
331
|
const streamResult = await agent.stream(messages, {
|
|
247
332
|
...rest,
|
|
333
|
+
abortSignal,
|
|
248
334
|
// @ts-expect-error TODO fix types
|
|
249
335
|
resourceId: finalResourceId,
|
|
250
|
-
runtimeContext: finalRuntimeContext
|
|
251
|
-
signal: abortSignal
|
|
336
|
+
runtimeContext: finalRuntimeContext
|
|
252
337
|
});
|
|
253
338
|
const streamResponse = rest.output ? streamResult.toTextStreamResponse({
|
|
254
339
|
headers: {
|
|
@@ -281,30 +366,105 @@ function streamVNextGenerateHandler({
|
|
|
281
366
|
if (!agent) {
|
|
282
367
|
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
283
368
|
}
|
|
369
|
+
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
284
370
|
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
285
371
|
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
286
372
|
...Array.from(runtimeContext$1.entries()),
|
|
287
373
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
288
374
|
]);
|
|
289
|
-
|
|
375
|
+
chunkG4PUALCE_cjs.validateBody({ messages });
|
|
290
376
|
const streamResult = agent.streamVNext(messages, {
|
|
291
377
|
...rest,
|
|
292
378
|
runtimeContext: finalRuntimeContext,
|
|
293
|
-
abortSignal
|
|
379
|
+
abortSignal,
|
|
380
|
+
format: body.format ?? "mastra"
|
|
294
381
|
});
|
|
295
382
|
return streamResult;
|
|
296
383
|
} catch (error) {
|
|
297
384
|
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
298
385
|
}
|
|
299
386
|
}
|
|
387
|
+
async function streamVNextUIMessageHandler({
|
|
388
|
+
mastra,
|
|
389
|
+
runtimeContext: runtimeContext$1,
|
|
390
|
+
agentId,
|
|
391
|
+
body,
|
|
392
|
+
abortSignal
|
|
393
|
+
}) {
|
|
394
|
+
try {
|
|
395
|
+
const agent = mastra.getAgent(agentId);
|
|
396
|
+
if (!agent) {
|
|
397
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
398
|
+
}
|
|
399
|
+
chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
|
|
400
|
+
const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
401
|
+
const finalRuntimeContext = new runtimeContext.RuntimeContext([
|
|
402
|
+
...Array.from(runtimeContext$1.entries()),
|
|
403
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
404
|
+
]);
|
|
405
|
+
chunkG4PUALCE_cjs.validateBody({ messages });
|
|
406
|
+
const streamResult = await agent.streamVNext(messages, {
|
|
407
|
+
...rest,
|
|
408
|
+
runtimeContext: finalRuntimeContext,
|
|
409
|
+
abortSignal,
|
|
410
|
+
format: "aisdk"
|
|
411
|
+
});
|
|
412
|
+
return streamResult.toUIMessageStreamResponse();
|
|
413
|
+
} catch (error) {
|
|
414
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
async function updateAgentModelHandler({
|
|
418
|
+
mastra,
|
|
419
|
+
agentId,
|
|
420
|
+
body
|
|
421
|
+
}) {
|
|
422
|
+
try {
|
|
423
|
+
const agent = mastra.getAgent(agentId);
|
|
424
|
+
if (!agent) {
|
|
425
|
+
throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
|
|
426
|
+
}
|
|
427
|
+
const agentModel = await agent.getModel();
|
|
428
|
+
const modelVersion = agentModel.specificationVersion;
|
|
429
|
+
const { modelId, provider } = body;
|
|
430
|
+
const providerMap = {
|
|
431
|
+
v1: {
|
|
432
|
+
openai: chunkPPYGWINI_cjs.openai(modelId),
|
|
433
|
+
anthropic: chunkIGFMAZZ5_cjs.anthropic(modelId),
|
|
434
|
+
groq: chunkHJQKWRKQ_cjs.groq(modelId),
|
|
435
|
+
xai: chunk5DP5XZH6_cjs.xai(modelId),
|
|
436
|
+
google: chunkTVSIG4JE_cjs.google(modelId)
|
|
437
|
+
},
|
|
438
|
+
v2: {
|
|
439
|
+
openai: chunkFALVL2VV_cjs.openai(modelId),
|
|
440
|
+
anthropic: chunk743UIDHI_cjs.anthropic(modelId),
|
|
441
|
+
groq: chunkAK2FXLLB_cjs.groq(modelId),
|
|
442
|
+
xai: chunkP7RBMCBE_cjs.xai(modelId),
|
|
443
|
+
google: chunkHZJRQ5L3_cjs.google(modelId)
|
|
444
|
+
}
|
|
445
|
+
};
|
|
446
|
+
const modelVersionKey = modelVersion === "v2" ? "v2" : "v1";
|
|
447
|
+
let model = providerMap[modelVersionKey][provider];
|
|
448
|
+
agent.__updateModel({ model });
|
|
449
|
+
return { message: "Agent model updated" };
|
|
450
|
+
} catch (error) {
|
|
451
|
+
return chunkRE4RPXT2_cjs.handleError(error, "error updating agent model");
|
|
452
|
+
}
|
|
453
|
+
}
|
|
300
454
|
|
|
301
455
|
exports.agents_exports = agents_exports;
|
|
302
456
|
exports.generateHandler = generateHandler;
|
|
457
|
+
exports.generateLegacyHandler = generateLegacyHandler;
|
|
458
|
+
exports.generateVNextHandler = generateVNextHandler;
|
|
303
459
|
exports.getAgentByIdHandler = getAgentByIdHandler;
|
|
304
460
|
exports.getAgentsHandler = getAgentsHandler;
|
|
305
461
|
exports.getEvalsByAgentIdHandler = getEvalsByAgentIdHandler;
|
|
306
462
|
exports.getLiveEvalsByAgentIdHandler = getLiveEvalsByAgentIdHandler;
|
|
463
|
+
exports.getSerializedAgentTools = getSerializedAgentTools;
|
|
307
464
|
exports.streamGenerateHandler = streamGenerateHandler;
|
|
465
|
+
exports.streamGenerateLegacyHandler = streamGenerateLegacyHandler;
|
|
308
466
|
exports.streamVNextGenerateHandler = streamVNextGenerateHandler;
|
|
309
|
-
|
|
310
|
-
|
|
467
|
+
exports.streamVNextUIMessageHandler = streamVNextUIMessageHandler;
|
|
468
|
+
exports.updateAgentModelHandler = updateAgentModelHandler;
|
|
469
|
+
//# sourceMappingURL=chunk-QZT4RDHB.cjs.map
|
|
470
|
+
//# sourceMappingURL=chunk-QZT4RDHB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["__export","stringify","zodToJsonSchema","handleError","HTTPException","acc","key","runtimeContext","sanitizeBody","RuntimeContext","validateBody","openai","anthropic","groq","xai","google"],"mappings":"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","file":"chunk-QZT4RDHB.cjs","sourcesContent":["import { anthropic } from '@ai-sdk/anthropic';\nimport { anthropic as anthropicV5 } from '@ai-sdk/anthropic-v5';\nimport { google } from '@ai-sdk/google';\nimport { google as googleV5 } from '@ai-sdk/google-v5';\nimport { groq } from '@ai-sdk/groq';\nimport { groq as groqV5 } from '@ai-sdk/groq-v5';\nimport { openai } from '@ai-sdk/openai';\nimport { openai as openaiV5 } from '@ai-sdk/openai-v5';\nimport { xai } from '@ai-sdk/xai';\nimport { xai as xaiV5 } from '@ai-sdk/xai-v5';\nimport type { Agent } from '@mastra/core/agent';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { sanitizeBody, validateBody } from './utils';\n\ntype GetBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = {\n messages: Parameters<Agent[T]>[0];\n} & Parameters<Agent[T]>[1];\n\nexport async function getSerializedAgentTools(tools: Record<string, any>) {\n return Object.entries(tools || {}).reduce<any>((acc, [key, tool]) => {\n const _tool = tool as any;\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn = undefined;\n\n if (_tool.inputSchema) {\n if (_tool.inputSchema?.jsonSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema));\n }\n }\n\n let outputSchemaForReturn = undefined;\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema?.jsonSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else {\n outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema));\n }\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\n// Agent handlers\nexport async function getAgentsHandler({ mastra, runtimeContext }: Context & { runtimeContext: RuntimeContext }) {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n const instructions = await agent.getInstructions({ runtimeContext });\n const tools = await agent.getTools({ runtimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<any>((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name,\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const model = llm?.getModel();\n\n return {\n id,\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions: defaultGenerateOptions as any,\n defaultStreamOptions: defaultStreamOptions as any,\n };\n }),\n );\n\n const serializedAgents = serializedAgentsMap.reduce<\n Record<string, Omit<(typeof serializedAgentsMap)[number], 'id'>>\n >((acc, { id, ...rest }) => {\n acc[id] = rest;\n return acc;\n }, {});\n\n return serializedAgents;\n } catch (error) {\n return handleError(error, 'Error getting agents');\n }\n}\n\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<any>((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\n }, {}),\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n let proxyRuntimeContext = runtimeContext;\n if (isPlayground) {\n proxyRuntimeContext = new Proxy(runtimeContext, {\n get(target, prop) {\n if (prop === 'get') {\n return function (key: string) {\n const value = target.get(key);\n return value ?? `<${key}>`;\n };\n }\n return Reflect.get(target, prop);\n },\n });\n }\n\n const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });\n\n const model = llm?.getModel();\n\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions: defaultGenerateOptions as any,\n defaultStreamOptions: defaultStreamOptions as any,\n };\n } catch (error) {\n return handleError(error, 'Error getting agent');\n }\n}\n\nexport async function getEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'test')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting test evals');\n }\n}\n\nexport async function getLiveEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'live')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting live evals');\n }\n}\n\nexport function generateHandler({\n mastra,\n ...args\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n const logger = mastra.getLogger();\n logger?.warn(\n \"Deprecation NOTICE:\\nGenerate method will switch to use generateVNext implementation September 16th, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet.\",\n );\n return generateLegacyHandler({ mastra, ...args });\n}\n\nexport async function generateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generate(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function generateVNextHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateVNext'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generateVNext']>> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generateVNext(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n format: rest.format || 'mastra',\n abortSignal,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function streamGenerateHandler({\n mastra,\n ...args\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}) {\n const logger = mastra.getLogger();\n logger?.warn(\n \"Deprecation NOTICE:\\n Stream method will switch to use streamVNext implementation September 16th, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet.\",\n );\n\n return streamGenerateLegacyHandler({ mastra, ...args });\n}\nexport async function streamGenerateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.stream(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n const streamResponse = rest.output\n ? streamResult.toTextStreamResponse({\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n })\n : streamResult.toDataStreamResponse({\n sendUsage: true,\n sendReasoning: true,\n getErrorMessage: (error: any) => {\n return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;\n },\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n });\n\n return streamResponse;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function streamVNextGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamVNext'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['streamVNext']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.streamVNext(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function streamVNextUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamVNext'> & {\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.streamVNext(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: 'aisdk',\n });\n\n return streamResult.toUIMessageStreamResponse();\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function updateAgentModelHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n modelId: string;\n provider: 'openai' | 'anthropic' | 'groq' | 'xai' | 'google';\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const agentModel = await agent.getModel();\n const modelVersion = agentModel.specificationVersion;\n\n const { modelId, provider } = body;\n\n const providerMap = {\n v1: {\n openai: openai(modelId),\n anthropic: anthropic(modelId),\n groq: groq(modelId),\n xai: xai(modelId),\n google: google(modelId),\n },\n v2: {\n openai: openaiV5(modelId),\n anthropic: anthropicV5(modelId),\n groq: groqV5(modelId),\n xai: xaiV5(modelId),\n google: googleV5(modelId),\n },\n };\n\n const modelVersionKey = modelVersion === 'v2' ? 'v2' : 'v1';\n\n let model = providerMap[modelVersionKey][provider];\n\n agent.__updateModel({ model });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n"]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { handleError } from './chunk-CY4TP3FK.js';
|
|
2
|
+
import { HTTPException } from './chunk-MMROOK5J.js';
|
|
3
|
+
import { __export } from './chunk-G3PMV62Z.js';
|
|
4
|
+
|
|
5
|
+
// src/server/handlers/observability.ts
|
|
6
|
+
var observability_exports = {};
|
|
7
|
+
__export(observability_exports, {
|
|
8
|
+
getAITraceHandler: () => getAITraceHandler,
|
|
9
|
+
getAITracesPaginatedHandler: () => getAITracesPaginatedHandler
|
|
10
|
+
});
|
|
11
|
+
async function getAITraceHandler({ mastra, traceId }) {
|
|
12
|
+
try {
|
|
13
|
+
if (!traceId) {
|
|
14
|
+
throw new HTTPException(400, { message: "Trace ID is required" });
|
|
15
|
+
}
|
|
16
|
+
const storage = mastra.getStorage();
|
|
17
|
+
if (!storage) {
|
|
18
|
+
throw new HTTPException(500, { message: "Storage is not available" });
|
|
19
|
+
}
|
|
20
|
+
const trace = await storage.getAITrace(traceId);
|
|
21
|
+
if (!trace) {
|
|
22
|
+
throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
|
|
23
|
+
}
|
|
24
|
+
return trace;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
handleError(error, "Error getting AI trace");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function getAITracesPaginatedHandler({ mastra, body }) {
|
|
30
|
+
try {
|
|
31
|
+
const storage = mastra.getStorage();
|
|
32
|
+
if (!storage) {
|
|
33
|
+
throw new HTTPException(500, { message: "Storage is not available" });
|
|
34
|
+
}
|
|
35
|
+
if (!body) {
|
|
36
|
+
throw new HTTPException(400, { message: "Request body is required" });
|
|
37
|
+
}
|
|
38
|
+
const { filters, pagination } = body;
|
|
39
|
+
if (pagination?.page && pagination.page < 0) {
|
|
40
|
+
throw new HTTPException(400, { message: "Page must be a non-negative integer" });
|
|
41
|
+
}
|
|
42
|
+
if (pagination?.perPage && pagination.perPage < 0) {
|
|
43
|
+
throw new HTTPException(400, { message: "Per page must be a non-negative integer" });
|
|
44
|
+
}
|
|
45
|
+
if (pagination?.dateRange) {
|
|
46
|
+
const { start, end } = pagination.dateRange;
|
|
47
|
+
if (start && !(start instanceof Date)) {
|
|
48
|
+
throw new HTTPException(400, { message: "Invalid date format in date range" });
|
|
49
|
+
}
|
|
50
|
+
if (end && !(end instanceof Date)) {
|
|
51
|
+
throw new HTTPException(400, { message: "Invalid date format in date range" });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return storage.getAITracesPaginated({
|
|
55
|
+
pagination,
|
|
56
|
+
filters
|
|
57
|
+
});
|
|
58
|
+
} catch (error) {
|
|
59
|
+
handleError(error, "Error getting AI traces paginated");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { getAITraceHandler, getAITracesPaginatedHandler, observability_exports };
|
|
64
|
+
//# sourceMappingURL=chunk-R7NOGUZG.js.map
|
|
65
|
+
//# sourceMappingURL=chunk-R7NOGUZG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/observability.ts"],"names":[],"mappings":";;;;;AAAA,IAAA,qBAAA,GAAA;AAAA,QAAA,CAAA,qBAAA,EAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,2BAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAeA,eAAsB,iBAAA,CAAkB,EAAE,MAAA,EAAQ,OAAA,EAAQ,EAA+C;AACvG,EAAA,IAAI;AACF,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,UAAA,CAAW,OAAO,CAAA;AAE9C,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,eAAA,EAAkB,OAAO,eAAe,CAAA;AAAA,IAClF;AAEA,IAAA,OAAO,KAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,WAAA,CAAY,OAAO,wBAAwB,CAAA;AAAA,EAC7C;AACF;AAMA,eAAsB,2BAAA,CAA4B,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAyB;AACxF,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,EAAE,OAAA,EAAS,UAAA,EAAW,GAAI,IAAA;AAEhC,IAAA,IAAI,UAAA,EAAY,IAAA,IAAQ,UAAA,CAAW,IAAA,GAAO,CAAA,EAAG;AAC3C,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,uCAAuC,CAAA;AAAA,IACjF;AAEA,IAAA,IAAI,UAAA,EAAY,OAAA,IAAW,UAAA,CAAW,OAAA,GAAU,CAAA,EAAG;AACjD,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,2CAA2C,CAAA;AAAA,IACrF;AAEA,IAAA,IAAI,YAAY,SAAA,EAAW;AACzB,MAAA,MAAM,EAAE,KAAA,EAAO,GAAA,EAAI,GAAI,UAAA,CAAW,SAAA;AAElC,MAAA,IAAI,KAAA,IAAS,EAAE,KAAA,YAAiB,IAAA,CAAA,EAAO;AACrC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,qCAAqC,CAAA;AAAA,MAC/E;AAEA,MAAA,IAAI,GAAA,IAAO,EAAE,GAAA,YAAe,IAAA,CAAA,EAAO;AACjC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,qCAAqC,CAAA;AAAA,MAC/E;AAAA,IACF;AAEA,IAAA,OAAO,QAAQ,oBAAA,CAAqB;AAAA,MAClC,UAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,SAAS,KAAA,EAAO;AACd,IAAA,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,EACxD;AACF","file":"chunk-R7NOGUZG.js","sourcesContent":["import type { AITracesPaginatedArg } from '@mastra/core';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\n\ninterface ObservabilityContext extends Context {\n traceId?: string;\n body?: AITracesPaginatedArg;\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"]}
|