@mastra/server 0.0.0-configure-project-root-for-private-packages-20250919100548 → 0.0.0-cor235-20251008175106
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 +247 -3
- package/dist/{chunk-PPYGWINI.cjs → chunk-2PLXW4ZX.cjs} +74 -74
- package/dist/{chunk-PPYGWINI.cjs.map → chunk-2PLXW4ZX.cjs.map} +1 -1
- package/dist/{chunk-L265APUD.cjs → chunk-2S4IMB6E.cjs} +66 -5
- package/dist/chunk-2S4IMB6E.cjs.map +1 -0
- package/dist/{chunk-NLWACBE7.cjs → chunk-3SNGNFUJ.cjs} +4 -4
- package/dist/{chunk-NLWACBE7.cjs.map → chunk-3SNGNFUJ.cjs.map} +1 -1
- package/dist/{chunk-7QEJ5QG5.js → chunk-5BNQIYQN.js} +61 -23
- package/dist/chunk-5BNQIYQN.js.map +1 -0
- package/dist/{chunk-KV6VHX4V.js → chunk-67GYDFSB.js} +3 -3
- package/dist/{chunk-KV6VHX4V.js.map → chunk-67GYDFSB.js.map} +1 -1
- package/dist/{chunk-PWTXZZTR.cjs → chunk-6ZR275MD.cjs} +4 -4
- package/dist/{chunk-PWTXZZTR.cjs.map → chunk-6ZR275MD.cjs.map} +1 -1
- package/dist/{chunk-HJ4EQIE6.cjs → chunk-7HDOBOGG.cjs} +2374 -604
- package/dist/chunk-7HDOBOGG.cjs.map +1 -0
- package/dist/{chunk-A3AL7EWJ.js → chunk-ABRFV4XP.js} +3 -3
- package/dist/{chunk-A3AL7EWJ.js.map → chunk-ABRFV4XP.js.map} +1 -1
- package/dist/{chunk-SYRRSBGL.js → chunk-AHB4JCIQ.js} +9 -5
- package/dist/chunk-AHB4JCIQ.js.map +1 -0
- package/dist/chunk-BATEJLED.js +124 -0
- package/dist/chunk-BATEJLED.js.map +1 -0
- package/dist/{chunk-N35YCWQ5.cjs → chunk-BZLZFHAT.cjs} +266 -124
- package/dist/chunk-BZLZFHAT.cjs.map +1 -0
- package/dist/{chunk-K4GZBPXF.js → chunk-DB63UMTV.js} +120 -136
- package/dist/chunk-DB63UMTV.js.map +1 -0
- package/dist/{chunk-T3TIA3O6.cjs → chunk-EP3JQDPD.cjs} +4 -4
- package/dist/{chunk-T3TIA3O6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
- package/dist/{chunk-G7PLDFT6.js → chunk-FWO7VQDC.js} +2324 -554
- package/dist/chunk-FWO7VQDC.js.map +1 -0
- package/dist/chunk-FZNS32WJ.js +46 -0
- package/dist/chunk-FZNS32WJ.js.map +1 -0
- package/dist/{chunk-5QUKZCEF.js → chunk-HPXAM2PG.js} +5 -4
- package/dist/chunk-HPXAM2PG.js.map +1 -0
- package/dist/{chunk-KNGXRN26.cjs → chunk-I3C4ODGV.cjs} +4 -4
- package/dist/{chunk-KNGXRN26.cjs.map → chunk-I3C4ODGV.cjs.map} +1 -1
- package/dist/{chunk-ILESGJ6N.js → chunk-JSLAYFEW.js} +259 -121
- package/dist/chunk-JSLAYFEW.js.map +1 -0
- package/dist/{chunk-TTHEEIZ3.js → chunk-LLUOPR3J.js} +3 -3
- package/dist/{chunk-TTHEEIZ3.js.map → chunk-LLUOPR3J.js.map} +1 -1
- package/dist/{chunk-GUI3CROV.cjs → chunk-LNT5N7XW.cjs} +62 -24
- package/dist/chunk-LNT5N7XW.cjs.map +1 -0
- package/dist/{chunk-SIGXR3JT.cjs → chunk-LPM6BBAX.cjs} +5 -5
- package/dist/{chunk-SIGXR3JT.cjs.map → chunk-LPM6BBAX.cjs.map} +1 -1
- package/dist/{chunk-NZMDHQVP.cjs → chunk-MQDBNHBT.cjs} +124 -141
- package/dist/chunk-MQDBNHBT.cjs.map +1 -0
- package/dist/{chunk-WHN4VX55.js → chunk-MYR4PVGN.js} +3 -3
- package/dist/{chunk-WHN4VX55.js.map → chunk-MYR4PVGN.js.map} +1 -1
- package/dist/{chunk-EMMSS5I5.cjs → chunk-O7I5CWRX.cjs} +10 -3
- package/dist/{chunk-EMMSS5I5.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
- package/dist/chunk-OYL5TBJW.cjs +48 -0
- package/dist/chunk-OYL5TBJW.cjs.map +1 -0
- package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +10 -4
- package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +1 -1
- package/dist/{chunk-JRDEOHAJ.js → chunk-QQXMIP6C.js} +3 -3
- package/dist/{chunk-JRDEOHAJ.js.map → chunk-QQXMIP6C.js.map} +1 -1
- package/dist/{chunk-NG5IVLEZ.js → chunk-RQK4FQUD.js} +3 -3
- package/dist/{chunk-NG5IVLEZ.js.map → chunk-RQK4FQUD.js.map} +1 -1
- package/dist/chunk-SIW6CYO3.js +254 -0
- package/dist/chunk-SIW6CYO3.js.map +1 -0
- package/dist/{chunk-3THIIWWW.cjs → chunk-TOP25AIO.cjs} +6 -5
- package/dist/chunk-TOP25AIO.cjs.map +1 -0
- package/dist/{chunk-J7BPKKOG.cjs → chunk-TRGAMKHX.cjs} +10 -6
- package/dist/chunk-TRGAMKHX.cjs.map +1 -0
- package/dist/chunk-VY4ENABS.cjs +135 -0
- package/dist/chunk-VY4ENABS.cjs.map +1 -0
- package/dist/{chunk-SQY4T6EJ.js → chunk-WHABYJRY.js} +20 -40
- package/dist/chunk-WHABYJRY.js.map +1 -0
- package/dist/{chunk-SPLSYTYW.cjs → chunk-XN74I6VW.cjs} +4 -4
- package/dist/{chunk-SPLSYTYW.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
- package/dist/chunk-XVPBGW6Y.cjs +256 -0
- package/dist/chunk-XVPBGW6Y.cjs.map +1 -0
- package/dist/{chunk-OZLRIVC4.cjs → chunk-YJU744I4.cjs} +21 -41
- package/dist/chunk-YJU744I4.cjs.map +1 -0
- package/dist/chunk-YWOK4F5A.js +131 -0
- package/dist/chunk-YWOK4F5A.js.map +1 -0
- package/dist/{chunk-6GMFZ5LK.js → chunk-ZULZ2752.js} +3 -3
- package/dist/{chunk-6GMFZ5LK.js.map → chunk-ZULZ2752.js.map} +1 -1
- package/dist/{chunk-IGFMAZZ5.cjs → dist-4MVGNSRL.cjs} +20 -20
- package/dist/dist-4MVGNSRL.cjs.map +1 -0
- package/dist/{chunk-TVSIG4JE.cjs → dist-FZYCV3VB.cjs} +26 -26
- package/dist/dist-FZYCV3VB.cjs.map +1 -0
- package/dist/{chunk-5DP5XZH6.cjs → dist-G2BYZJOC.cjs} +28 -28
- package/dist/dist-G2BYZJOC.cjs.map +1 -0
- package/dist/dist-P4MXBQ3U.cjs +16 -0
- package/dist/{dist-3A5DXB37.cjs.map → dist-P4MXBQ3U.cjs.map} +1 -1
- package/dist/{chunk-FQNT7PI4.js → dist-PQZUVLPC.js} +3 -3
- package/dist/dist-PQZUVLPC.js.map +1 -0
- package/dist/{chunk-P7CIEIJ3.js → dist-R7WYX6LC.js} +3 -3
- package/dist/dist-R7WYX6LC.js.map +1 -0
- package/dist/{chunk-HJQKWRKQ.cjs → dist-RFMYFILX.cjs} +30 -30
- package/dist/dist-RFMYFILX.cjs.map +1 -0
- package/dist/{chunk-LYPU75T6.js → dist-X7XR3M3Z.js} +3 -3
- package/dist/dist-X7XR3M3Z.js.map +1 -0
- package/dist/{chunk-66YYHFGF.js → dist-XVBSOGFK.js} +3 -3
- package/dist/dist-XVBSOGFK.js.map +1 -0
- package/dist/dist-YREX2TJT.js +3 -0
- package/dist/{dist-26HWEQY6.js.map → dist-YREX2TJT.js.map} +1 -1
- package/dist/server/handlers/a2a.cjs +7 -7
- 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 +16 -16
- package/dist/server/handlers/agent-builder.d.ts +10 -4
- 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 +37 -21
- package/dist/server/handlers/agents.d.ts +117 -52
- 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.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 +14 -15
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +11 -3
- package/dist/server/handlers/observability.d.ts +27 -1
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.d.ts +208 -6
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/telemetry.cjs +4 -4
- package/dist/server/handlers/telemetry.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.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.js +1 -1
- package/dist/server/handlers/workflows.cjs +22 -18
- package/dist/server/handlers/workflows.d.ts +22 -13
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +29 -29
- package/dist/server/handlers.js +13 -13
- package/dist/server/utils.d.ts +2 -0
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/token-53CFGXUO.cjs +64 -0
- package/dist/token-53CFGXUO.cjs.map +1 -0
- package/dist/token-WAEKDUVY.js +62 -0
- package/dist/token-WAEKDUVY.js.map +1 -0
- package/dist/token-util-LY37VCIN.js +7 -0
- package/dist/token-util-LY37VCIN.js.map +1 -0
- package/dist/token-util-S4A355II.cjs +9 -0
- package/dist/token-util-S4A355II.cjs.map +1 -0
- package/package.json +8 -16
- package/dist/chunk-3THIIWWW.cjs.map +0 -1
- package/dist/chunk-4RRMWXQ2.js +0 -3522
- package/dist/chunk-4RRMWXQ2.js.map +0 -1
- package/dist/chunk-5DP5XZH6.cjs.map +0 -1
- package/dist/chunk-5QUKZCEF.js.map +0 -1
- package/dist/chunk-66YYHFGF.js.map +0 -1
- package/dist/chunk-743UIDHI.cjs +0 -2013
- package/dist/chunk-743UIDHI.cjs.map +0 -1
- package/dist/chunk-7QEJ5QG5.js.map +0 -1
- package/dist/chunk-AK2FXLLB.cjs +0 -849
- package/dist/chunk-AK2FXLLB.cjs.map +0 -1
- package/dist/chunk-EMNGA4R4.js +0 -845
- package/dist/chunk-EMNGA4R4.js.map +0 -1
- package/dist/chunk-FALVL2VV.cjs +0 -3525
- package/dist/chunk-FALVL2VV.cjs.map +0 -1
- package/dist/chunk-FQNT7PI4.js.map +0 -1
- package/dist/chunk-G7PLDFT6.js.map +0 -1
- package/dist/chunk-GUI3CROV.cjs.map +0 -1
- package/dist/chunk-HJ4EQIE6.cjs.map +0 -1
- package/dist/chunk-HJQKWRKQ.cjs.map +0 -1
- package/dist/chunk-HVBBFCDH.cjs +0 -2321
- package/dist/chunk-HVBBFCDH.cjs.map +0 -1
- package/dist/chunk-HZJRQ5L3.cjs +0 -1411
- package/dist/chunk-HZJRQ5L3.cjs.map +0 -1
- package/dist/chunk-IGFMAZZ5.cjs.map +0 -1
- package/dist/chunk-ILESGJ6N.js.map +0 -1
- package/dist/chunk-IOQGI4ML.js +0 -931
- package/dist/chunk-IOQGI4ML.js.map +0 -1
- package/dist/chunk-J7BPKKOG.cjs.map +0 -1
- package/dist/chunk-K4GZBPXF.js.map +0 -1
- package/dist/chunk-L265APUD.cjs.map +0 -1
- package/dist/chunk-LYPU75T6.js.map +0 -1
- package/dist/chunk-N35YCWQ5.cjs.map +0 -1
- package/dist/chunk-N7F33WAD.js +0 -2290
- package/dist/chunk-N7F33WAD.js.map +0 -1
- package/dist/chunk-NZMDHQVP.cjs.map +0 -1
- package/dist/chunk-OGW6HHVI.js +0 -1408
- package/dist/chunk-OGW6HHVI.js.map +0 -1
- package/dist/chunk-OZLRIVC4.cjs.map +0 -1
- package/dist/chunk-P7CIEIJ3.js.map +0 -1
- package/dist/chunk-P7RBMCBE.cjs +0 -934
- package/dist/chunk-P7RBMCBE.cjs.map +0 -1
- package/dist/chunk-R7NOGUZG.js +0 -65
- package/dist/chunk-R7NOGUZG.js.map +0 -1
- package/dist/chunk-RCHEPTZZ.js +0 -2006
- package/dist/chunk-RCHEPTZZ.js.map +0 -1
- package/dist/chunk-SQY4T6EJ.js.map +0 -1
- package/dist/chunk-SYRRSBGL.js.map +0 -1
- package/dist/chunk-TVSIG4JE.cjs.map +0 -1
- package/dist/dist-26HWEQY6.js +0 -3
- package/dist/dist-3A5DXB37.cjs +0 -20
- package/dist/dist-3SJKQJGY.cjs +0 -16
- package/dist/dist-3SJKQJGY.cjs.map +0 -1
- package/dist/dist-4ZQSPE5K.js +0 -3
- package/dist/dist-4ZQSPE5K.js.map +0 -1
- package/dist/dist-5W5QNRTD.js +0 -3
- package/dist/dist-5W5QNRTD.js.map +0 -1
- package/dist/dist-653SRMPL.js +0 -3
- package/dist/dist-653SRMPL.js.map +0 -1
- package/dist/dist-6U6EFC5C.cjs +0 -16
- package/dist/dist-6U6EFC5C.cjs.map +0 -1
- package/dist/dist-7IHNNYMF.cjs +0 -16
- package/dist/dist-7IHNNYMF.cjs.map +0 -1
- package/dist/dist-B5IPRF6W.js +0 -3
- package/dist/dist-B5IPRF6W.js.map +0 -1
- package/dist/dist-EOMYFT4Y.cjs +0 -16
- package/dist/dist-EOMYFT4Y.cjs.map +0 -1
- package/dist/dist-EZZMMMNT.cjs +0 -16
- package/dist/dist-EZZMMMNT.cjs.map +0 -1
- package/dist/dist-F2ET4MNO.cjs +0 -16
- package/dist/dist-F2ET4MNO.cjs.map +0 -1
- package/dist/dist-H64VX6DE.js +0 -3
- package/dist/dist-H64VX6DE.js.map +0 -1
- package/dist/dist-HY7RMLJQ.cjs +0 -16
- package/dist/dist-HY7RMLJQ.cjs.map +0 -1
- package/dist/dist-M6S4P3FJ.js +0 -3
- package/dist/dist-M6S4P3FJ.js.map +0 -1
- package/dist/dist-NR7QSCQT.js +0 -3
- package/dist/dist-NR7QSCQT.js.map +0 -1
- package/dist/dist-QLFMCMCX.js +0 -3
- package/dist/dist-QLFMCMCX.js.map +0 -1
- package/dist/dist-UY46BFRP.js +0 -3
- package/dist/dist-UY46BFRP.js.map +0 -1
- package/dist/dist-WCQDRTIV.cjs +0 -16
- package/dist/dist-WCQDRTIV.cjs.map +0 -1
- package/dist/dist-WKYB3LTJ.cjs +0 -16
- package/dist/dist-WKYB3LTJ.cjs.map +0 -1
- package/dist/server/handlers/vNextNetwork.cjs +0 -220
- package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
- package/dist/server/handlers/vNextNetwork.d.ts +0 -246
- package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
- package/dist/server/handlers/vNextNetwork.js +0 -213
- package/dist/server/handlers/vNextNetwork.js.map +0 -1
|
@@ -1,38 +1,33 @@
|
|
|
1
|
-
import { google as google$1 } from './chunk-FQNT7PI4.js';
|
|
2
|
-
import { anthropic } from './chunk-RCHEPTZZ.js';
|
|
3
|
-
import { groq } from './chunk-EMNGA4R4.js';
|
|
4
|
-
import { xai } from './chunk-IOQGI4ML.js';
|
|
5
|
-
import { google } from './chunk-OGW6HHVI.js';
|
|
6
|
-
import { anthropic as anthropic$1 } from './chunk-LYPU75T6.js';
|
|
7
|
-
import { groq as groq$1 } from './chunk-66YYHFGF.js';
|
|
8
|
-
import { xai as xai$1 } from './chunk-P7CIEIJ3.js';
|
|
9
1
|
import { sanitizeBody, validateBody } from './chunk-4QCXUEAT.js';
|
|
10
|
-
import { openai } from './chunk-4RRMWXQ2.js';
|
|
11
|
-
import { openai as openai$1 } from './chunk-6GMFZ5LK.js';
|
|
12
2
|
import { stringify } from './chunk-LF2ZLOFP.js';
|
|
13
3
|
import { handleError } from './chunk-CY4TP3FK.js';
|
|
14
4
|
import { HTTPException } from './chunk-MMROOK5J.js';
|
|
15
|
-
import { __export } from './chunk-
|
|
5
|
+
import { __export } from './chunk-PR4QN5HX.js';
|
|
6
|
+
import { PROVIDER_REGISTRY } from '@mastra/core/llm';
|
|
16
7
|
import { RuntimeContext } from '@mastra/core/runtime-context';
|
|
17
8
|
import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
|
|
18
9
|
|
|
19
10
|
// src/server/handlers/agents.ts
|
|
20
11
|
var agents_exports = {};
|
|
21
12
|
__export(agents_exports, {
|
|
13
|
+
approveToolCallHandler: () => approveToolCallHandler,
|
|
14
|
+
declineToolCallHandler: () => declineToolCallHandler,
|
|
22
15
|
generateHandler: () => generateHandler,
|
|
23
16
|
generateLegacyHandler: () => generateLegacyHandler,
|
|
24
|
-
generateVNextHandler: () => generateVNextHandler,
|
|
25
17
|
getAgentByIdHandler: () => getAgentByIdHandler,
|
|
26
18
|
getAgentsHandler: () => getAgentsHandler,
|
|
27
19
|
getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
|
|
28
20
|
getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
|
|
21
|
+
getProvidersHandler: () => getProvidersHandler,
|
|
29
22
|
getSerializedAgentTools: () => getSerializedAgentTools,
|
|
23
|
+
getSerializedProcessors: () => getSerializedProcessors,
|
|
24
|
+
reorderAgentModelListHandler: () => reorderAgentModelListHandler,
|
|
30
25
|
streamGenerateHandler: () => streamGenerateHandler,
|
|
31
26
|
streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
|
|
32
27
|
streamNetworkHandler: () => streamNetworkHandler,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
streamUIMessageHandler: () => streamUIMessageHandler,
|
|
29
|
+
updateAgentModelHandler: () => updateAgentModelHandler,
|
|
30
|
+
updateAgentModelInModelListHandler: () => updateAgentModelInModelListHandler
|
|
36
31
|
});
|
|
37
32
|
async function getSerializedAgentTools(tools) {
|
|
38
33
|
return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
|
|
@@ -40,17 +35,17 @@ async function getSerializedAgentTools(tools) {
|
|
|
40
35
|
const toolId = _tool.id ?? `tool-${key}`;
|
|
41
36
|
let inputSchemaForReturn = void 0;
|
|
42
37
|
if (_tool.inputSchema) {
|
|
43
|
-
if (_tool.inputSchema
|
|
38
|
+
if (_tool.inputSchema && typeof _tool.inputSchema === "object" && "jsonSchema" in _tool.inputSchema) {
|
|
44
39
|
inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);
|
|
45
|
-
} else {
|
|
40
|
+
} else if (_tool.inputSchema) {
|
|
46
41
|
inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema));
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
44
|
let outputSchemaForReturn = void 0;
|
|
50
45
|
if (_tool.outputSchema) {
|
|
51
|
-
if (_tool.outputSchema
|
|
46
|
+
if (_tool.outputSchema && typeof _tool.outputSchema === "object" && "jsonSchema" in _tool.outputSchema) {
|
|
52
47
|
outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);
|
|
53
|
-
} else {
|
|
48
|
+
} else if (_tool.outputSchema) {
|
|
54
49
|
outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema));
|
|
55
50
|
}
|
|
56
51
|
}
|
|
@@ -63,6 +58,13 @@ async function getSerializedAgentTools(tools) {
|
|
|
63
58
|
return acc;
|
|
64
59
|
}, {});
|
|
65
60
|
}
|
|
61
|
+
function getSerializedProcessors(processors) {
|
|
62
|
+
return processors.map((processor) => {
|
|
63
|
+
return {
|
|
64
|
+
name: processor.name || processor.constructor.name
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
66
68
|
async function getSerializedAgentDefinition({
|
|
67
69
|
agent,
|
|
68
70
|
runtimeContext
|
|
@@ -70,12 +72,15 @@ async function getSerializedAgentDefinition({
|
|
|
70
72
|
let serializedAgentAgents = {};
|
|
71
73
|
if ("listAgents" in agent) {
|
|
72
74
|
const agents = await agent.listAgents({ runtimeContext });
|
|
73
|
-
serializedAgentAgents = Object.entries(agents || {}).reduce(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
serializedAgentAgents = Object.entries(agents || {}).reduce(
|
|
76
|
+
(acc, [key, agent2]) => {
|
|
77
|
+
return {
|
|
78
|
+
...acc,
|
|
79
|
+
[key]: { id: agent2.id, name: agent2.name }
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
{}
|
|
83
|
+
);
|
|
79
84
|
}
|
|
80
85
|
return serializedAgentAgents;
|
|
81
86
|
}
|
|
@@ -100,7 +105,7 @@ async function formatAgentList({
|
|
|
100
105
|
return {
|
|
101
106
|
...acc,
|
|
102
107
|
[key]: {
|
|
103
|
-
name: workflow.name
|
|
108
|
+
name: workflow.name || "Unnamed workflow"
|
|
104
109
|
}
|
|
105
110
|
};
|
|
106
111
|
}, {});
|
|
@@ -109,7 +114,20 @@ async function formatAgentList({
|
|
|
109
114
|
}
|
|
110
115
|
}
|
|
111
116
|
const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });
|
|
117
|
+
const inputProcessors = await agent.getInputProcessors(runtimeContext);
|
|
118
|
+
const outputProcessors = await agent.getOutputProcessors(runtimeContext);
|
|
119
|
+
const serializedInputProcessors = getSerializedProcessors(inputProcessors);
|
|
120
|
+
const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
|
|
112
121
|
const model = llm?.getModel();
|
|
122
|
+
const models = await agent.getModelList(runtimeContext);
|
|
123
|
+
const modelList = models?.map((md) => ({
|
|
124
|
+
...md,
|
|
125
|
+
model: {
|
|
126
|
+
modelId: md.model.modelId,
|
|
127
|
+
provider: md.model.provider,
|
|
128
|
+
modelVersion: md.model.specificationVersion
|
|
129
|
+
}
|
|
130
|
+
}));
|
|
113
131
|
return {
|
|
114
132
|
id,
|
|
115
133
|
name: agent.name,
|
|
@@ -117,14 +135,20 @@ async function formatAgentList({
|
|
|
117
135
|
agents: serializedAgentAgents,
|
|
118
136
|
tools: serializedAgentTools,
|
|
119
137
|
workflows: serializedAgentWorkflows,
|
|
138
|
+
inputProcessors: serializedInputProcessors,
|
|
139
|
+
outputProcessors: serializedOutputProcessors,
|
|
120
140
|
provider: llm?.getProvider(),
|
|
121
141
|
modelId: llm?.getModelId(),
|
|
122
142
|
modelVersion: model?.specificationVersion,
|
|
123
143
|
defaultGenerateOptions,
|
|
124
|
-
defaultStreamOptions
|
|
144
|
+
defaultStreamOptions,
|
|
145
|
+
modelList
|
|
125
146
|
};
|
|
126
147
|
}
|
|
127
|
-
async function getAgentsHandler({
|
|
148
|
+
async function getAgentsHandler({
|
|
149
|
+
mastra,
|
|
150
|
+
runtimeContext
|
|
151
|
+
}) {
|
|
128
152
|
try {
|
|
129
153
|
const agents = mastra.getAgents();
|
|
130
154
|
const serializedAgentsMap = await Promise.all(
|
|
@@ -158,55 +182,74 @@ async function formatAgent({
|
|
|
158
182
|
return {
|
|
159
183
|
...acc,
|
|
160
184
|
[key]: {
|
|
161
|
-
name: workflow.name,
|
|
162
|
-
steps: Object.entries(workflow.steps).reduce(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
185
|
+
name: workflow.name || "Unnamed workflow",
|
|
186
|
+
steps: Object.entries(workflow.steps).reduce(
|
|
187
|
+
(acc2, [key2, step]) => {
|
|
188
|
+
return {
|
|
189
|
+
...acc2,
|
|
190
|
+
[key2]: {
|
|
191
|
+
id: step.id,
|
|
192
|
+
description: step.description
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
},
|
|
196
|
+
{}
|
|
197
|
+
)
|
|
171
198
|
}
|
|
172
199
|
};
|
|
173
200
|
}, {});
|
|
174
201
|
} catch (error) {
|
|
175
202
|
logger.error("Error getting workflows for agent", { agentName: agent.name, error });
|
|
176
203
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return Reflect.get(target, prop);
|
|
204
|
+
}
|
|
205
|
+
let proxyRuntimeContext = runtimeContext;
|
|
206
|
+
if (isPlayground) {
|
|
207
|
+
proxyRuntimeContext = new Proxy(runtimeContext, {
|
|
208
|
+
get(target, prop) {
|
|
209
|
+
if (prop === "get") {
|
|
210
|
+
return function(key) {
|
|
211
|
+
const value = target.get(key);
|
|
212
|
+
return value ?? `<${key}>`;
|
|
213
|
+
};
|
|
188
214
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const llm = await agent.getLLM({ runtimeContext });
|
|
193
|
-
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
|
|
194
|
-
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
|
|
195
|
-
const model = llm?.getModel();
|
|
196
|
-
const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });
|
|
197
|
-
return {
|
|
198
|
-
name: agent.name,
|
|
199
|
-
instructions,
|
|
200
|
-
tools: serializedAgentTools,
|
|
201
|
-
agents: serializedAgentAgents,
|
|
202
|
-
workflows: serializedAgentWorkflows,
|
|
203
|
-
provider: llm?.getProvider(),
|
|
204
|
-
modelId: llm?.getModelId(),
|
|
205
|
-
modelVersion: model?.specificationVersion,
|
|
206
|
-
defaultGenerateOptions,
|
|
207
|
-
defaultStreamOptions
|
|
208
|
-
};
|
|
215
|
+
return Reflect.get(target, prop);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
209
218
|
}
|
|
219
|
+
const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
|
|
220
|
+
const llm = await agent.getLLM({ runtimeContext });
|
|
221
|
+
const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
|
|
222
|
+
const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
|
|
223
|
+
const model = llm?.getModel();
|
|
224
|
+
const models = await agent.getModelList(runtimeContext);
|
|
225
|
+
const modelList = models?.map((md) => ({
|
|
226
|
+
...md,
|
|
227
|
+
model: {
|
|
228
|
+
modelId: md.model.modelId,
|
|
229
|
+
provider: md.model.provider,
|
|
230
|
+
modelVersion: md.model.specificationVersion
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
233
|
+
const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });
|
|
234
|
+
const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);
|
|
235
|
+
const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);
|
|
236
|
+
const serializedInputProcessors = getSerializedProcessors(inputProcessors);
|
|
237
|
+
const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
|
|
238
|
+
return {
|
|
239
|
+
name: agent.name,
|
|
240
|
+
instructions,
|
|
241
|
+
tools: serializedAgentTools,
|
|
242
|
+
agents: serializedAgentAgents,
|
|
243
|
+
workflows: serializedAgentWorkflows,
|
|
244
|
+
inputProcessors: serializedInputProcessors,
|
|
245
|
+
outputProcessors: serializedOutputProcessors,
|
|
246
|
+
provider: llm?.getProvider(),
|
|
247
|
+
modelId: llm?.getModelId(),
|
|
248
|
+
modelVersion: model?.specificationVersion,
|
|
249
|
+
modelList,
|
|
250
|
+
defaultGenerateOptions,
|
|
251
|
+
defaultStreamOptions
|
|
252
|
+
};
|
|
210
253
|
}
|
|
211
254
|
async function getAgentByIdHandler({
|
|
212
255
|
mastra,
|
|
@@ -262,16 +305,6 @@ async function getLiveEvalsByAgentIdHandler({
|
|
|
262
305
|
return handleError(error, "Error getting live evals");
|
|
263
306
|
}
|
|
264
307
|
}
|
|
265
|
-
function generateHandler({
|
|
266
|
-
mastra,
|
|
267
|
-
...args
|
|
268
|
-
}) {
|
|
269
|
-
const logger = mastra.getLogger();
|
|
270
|
-
logger?.warn(
|
|
271
|
-
"Deprecation NOTICE:\nGenerate method will switch to use generateVNext implementation September 23rd, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet."
|
|
272
|
-
);
|
|
273
|
-
return generateLegacyHandler({ mastra, ...args });
|
|
274
|
-
}
|
|
275
308
|
async function generateLegacyHandler({
|
|
276
309
|
mastra,
|
|
277
310
|
runtimeContext,
|
|
@@ -292,7 +325,7 @@ async function generateLegacyHandler({
|
|
|
292
325
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
293
326
|
]);
|
|
294
327
|
validateBody({ messages });
|
|
295
|
-
const result = await agent.
|
|
328
|
+
const result = await agent.generateLegacy(messages, {
|
|
296
329
|
...rest,
|
|
297
330
|
abortSignal,
|
|
298
331
|
// @ts-expect-error TODO fix types
|
|
@@ -304,7 +337,7 @@ async function generateLegacyHandler({
|
|
|
304
337
|
return handleError(error, "Error generating from agent");
|
|
305
338
|
}
|
|
306
339
|
}
|
|
307
|
-
async function
|
|
340
|
+
async function generateHandler({
|
|
308
341
|
mastra,
|
|
309
342
|
runtimeContext,
|
|
310
343
|
agentId,
|
|
@@ -323,7 +356,7 @@ async function generateVNextHandler({
|
|
|
323
356
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
324
357
|
]);
|
|
325
358
|
validateBody({ messages });
|
|
326
|
-
const result = await agent.
|
|
359
|
+
const result = await agent.generate(messages, {
|
|
327
360
|
...rest,
|
|
328
361
|
runtimeContext: finalRuntimeContext,
|
|
329
362
|
format: rest.format || "mastra",
|
|
@@ -334,16 +367,6 @@ async function generateVNextHandler({
|
|
|
334
367
|
return handleError(error, "Error generating from agent");
|
|
335
368
|
}
|
|
336
369
|
}
|
|
337
|
-
async function streamGenerateHandler({
|
|
338
|
-
mastra,
|
|
339
|
-
...args
|
|
340
|
-
}) {
|
|
341
|
-
const logger = mastra.getLogger();
|
|
342
|
-
logger?.warn(
|
|
343
|
-
"Deprecation NOTICE:\n Stream method will switch to use streamVNext implementation September 23rd, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet."
|
|
344
|
-
);
|
|
345
|
-
return streamGenerateLegacyHandler({ mastra, ...args });
|
|
346
|
-
}
|
|
347
370
|
async function streamGenerateLegacyHandler({
|
|
348
371
|
mastra,
|
|
349
372
|
runtimeContext,
|
|
@@ -363,7 +386,7 @@ async function streamGenerateLegacyHandler({
|
|
|
363
386
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
364
387
|
]);
|
|
365
388
|
validateBody({ messages });
|
|
366
|
-
const streamResult = await agent.
|
|
389
|
+
const streamResult = await agent.streamLegacy(messages, {
|
|
367
390
|
...rest,
|
|
368
391
|
abortSignal,
|
|
369
392
|
// @ts-expect-error TODO fix types
|
|
@@ -389,7 +412,7 @@ async function streamGenerateLegacyHandler({
|
|
|
389
412
|
return handleError(error, "error streaming agent response");
|
|
390
413
|
}
|
|
391
414
|
}
|
|
392
|
-
function
|
|
415
|
+
function streamGenerateHandler({
|
|
393
416
|
mastra,
|
|
394
417
|
runtimeContext,
|
|
395
418
|
agentId,
|
|
@@ -408,7 +431,7 @@ function streamVNextGenerateHandler({
|
|
|
408
431
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
409
432
|
]);
|
|
410
433
|
validateBody({ messages });
|
|
411
|
-
const streamResult = agent.
|
|
434
|
+
const streamResult = agent.stream(messages, {
|
|
412
435
|
...rest,
|
|
413
436
|
runtimeContext: finalRuntimeContext,
|
|
414
437
|
abortSignal,
|
|
@@ -419,6 +442,66 @@ function streamVNextGenerateHandler({
|
|
|
419
442
|
return handleError(error, "error streaming agent response");
|
|
420
443
|
}
|
|
421
444
|
}
|
|
445
|
+
function approveToolCallHandler({
|
|
446
|
+
mastra,
|
|
447
|
+
runtimeContext,
|
|
448
|
+
agentId,
|
|
449
|
+
body,
|
|
450
|
+
abortSignal
|
|
451
|
+
}) {
|
|
452
|
+
try {
|
|
453
|
+
const agent = mastra.getAgent(agentId);
|
|
454
|
+
if (!agent) {
|
|
455
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
456
|
+
}
|
|
457
|
+
sanitizeBody(body, ["tools"]);
|
|
458
|
+
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
459
|
+
const finalRuntimeContext = new RuntimeContext([
|
|
460
|
+
...Array.from(runtimeContext.entries()),
|
|
461
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
462
|
+
]);
|
|
463
|
+
const streamResult = agent.approveToolCall({
|
|
464
|
+
...rest,
|
|
465
|
+
runId,
|
|
466
|
+
runtimeContext: finalRuntimeContext,
|
|
467
|
+
abortSignal,
|
|
468
|
+
format: body.format ?? "mastra"
|
|
469
|
+
});
|
|
470
|
+
return streamResult;
|
|
471
|
+
} catch (error) {
|
|
472
|
+
return handleError(error, "error streaming agent response");
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
function declineToolCallHandler({
|
|
476
|
+
mastra,
|
|
477
|
+
runtimeContext,
|
|
478
|
+
agentId,
|
|
479
|
+
body,
|
|
480
|
+
abortSignal
|
|
481
|
+
}) {
|
|
482
|
+
try {
|
|
483
|
+
const agent = mastra.getAgent(agentId);
|
|
484
|
+
if (!agent) {
|
|
485
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
486
|
+
}
|
|
487
|
+
sanitizeBody(body, ["tools"]);
|
|
488
|
+
const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
|
|
489
|
+
const finalRuntimeContext = new RuntimeContext([
|
|
490
|
+
...Array.from(runtimeContext.entries()),
|
|
491
|
+
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
492
|
+
]);
|
|
493
|
+
const streamResult = agent.declineToolCall({
|
|
494
|
+
...rest,
|
|
495
|
+
runId,
|
|
496
|
+
runtimeContext: finalRuntimeContext,
|
|
497
|
+
abortSignal,
|
|
498
|
+
format: body.format ?? "mastra"
|
|
499
|
+
});
|
|
500
|
+
return streamResult;
|
|
501
|
+
} catch (error) {
|
|
502
|
+
return handleError(error, "error streaming agent response");
|
|
503
|
+
}
|
|
504
|
+
}
|
|
422
505
|
function streamNetworkHandler({
|
|
423
506
|
mastra,
|
|
424
507
|
runtimeContext,
|
|
@@ -451,7 +534,7 @@ function streamNetworkHandler({
|
|
|
451
534
|
return handleError(error, "error streaming agent loop response");
|
|
452
535
|
}
|
|
453
536
|
}
|
|
454
|
-
async function
|
|
537
|
+
async function streamUIMessageHandler({
|
|
455
538
|
mastra,
|
|
456
539
|
runtimeContext,
|
|
457
540
|
agentId,
|
|
@@ -470,7 +553,7 @@ async function streamVNextUIMessageHandler({
|
|
|
470
553
|
...Array.from(Object.entries(agentRuntimeContext ?? {}))
|
|
471
554
|
]);
|
|
472
555
|
validateBody({ messages });
|
|
473
|
-
const streamResult = await agent.
|
|
556
|
+
const streamResult = await agent.stream(messages, {
|
|
474
557
|
...rest,
|
|
475
558
|
runtimeContext: finalRuntimeContext,
|
|
476
559
|
abortSignal,
|
|
@@ -491,34 +574,89 @@ async function updateAgentModelHandler({
|
|
|
491
574
|
if (!agent) {
|
|
492
575
|
throw new HTTPException(404, { message: "Agent not found" });
|
|
493
576
|
}
|
|
494
|
-
const agentModel = await agent.getModel();
|
|
495
|
-
const modelVersion = agentModel.specificationVersion;
|
|
496
577
|
const { modelId, provider } = body;
|
|
497
|
-
const
|
|
498
|
-
|
|
499
|
-
openai: openai$1(modelId),
|
|
500
|
-
anthropic: anthropic$1(modelId),
|
|
501
|
-
groq: groq$1(modelId),
|
|
502
|
-
xai: xai$1(modelId),
|
|
503
|
-
google: google$1(modelId)
|
|
504
|
-
},
|
|
505
|
-
v2: {
|
|
506
|
-
openai: openai(modelId),
|
|
507
|
-
anthropic: anthropic(modelId),
|
|
508
|
-
groq: groq(modelId),
|
|
509
|
-
xai: xai(modelId),
|
|
510
|
-
google: google(modelId)
|
|
511
|
-
}
|
|
512
|
-
};
|
|
513
|
-
const modelVersionKey = modelVersion === "v2" ? "v2" : "v1";
|
|
514
|
-
let model = providerMap[modelVersionKey][provider];
|
|
515
|
-
agent.__updateModel({ model });
|
|
578
|
+
const newModel = `${provider}/${modelId}`;
|
|
579
|
+
agent.__updateModel({ model: newModel });
|
|
516
580
|
return { message: "Agent model updated" };
|
|
517
581
|
} catch (error) {
|
|
518
582
|
return handleError(error, "error updating agent model");
|
|
519
583
|
}
|
|
520
584
|
}
|
|
585
|
+
async function reorderAgentModelListHandler({
|
|
586
|
+
mastra,
|
|
587
|
+
agentId,
|
|
588
|
+
body
|
|
589
|
+
}) {
|
|
590
|
+
try {
|
|
591
|
+
const agent = mastra.getAgent(agentId);
|
|
592
|
+
if (!agent) {
|
|
593
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
594
|
+
}
|
|
595
|
+
const modelList = await agent.getModelList();
|
|
596
|
+
if (!modelList || modelList.length === 0) {
|
|
597
|
+
throw new HTTPException(400, { message: "Agent model list is not found or empty" });
|
|
598
|
+
}
|
|
599
|
+
agent.reorderModels(body.reorderedModelIds);
|
|
600
|
+
return { message: "Model list reordered" };
|
|
601
|
+
} catch (error) {
|
|
602
|
+
return handleError(error, "error reordering model list");
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
async function updateAgentModelInModelListHandler({
|
|
606
|
+
mastra,
|
|
607
|
+
agentId,
|
|
608
|
+
modelConfigId,
|
|
609
|
+
body
|
|
610
|
+
}) {
|
|
611
|
+
try {
|
|
612
|
+
const agent = mastra.getAgent(agentId);
|
|
613
|
+
if (!agent) {
|
|
614
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
615
|
+
}
|
|
616
|
+
const { model: bodyModel, maxRetries, enabled } = body;
|
|
617
|
+
if (!modelConfigId) {
|
|
618
|
+
throw new HTTPException(400, { message: "Model id is required" });
|
|
619
|
+
}
|
|
620
|
+
const modelList = await agent.getModelList();
|
|
621
|
+
if (!modelList || modelList.length === 0) {
|
|
622
|
+
throw new HTTPException(400, { message: "Agent model list is not found or empty" });
|
|
623
|
+
}
|
|
624
|
+
const modelToUpdate = modelList.find((m) => m.id === modelConfigId);
|
|
625
|
+
if (!modelToUpdate) {
|
|
626
|
+
throw new HTTPException(400, { message: "Model to update is not found in agent model list" });
|
|
627
|
+
}
|
|
628
|
+
let model;
|
|
629
|
+
if (bodyModel) {
|
|
630
|
+
const { modelId, provider } = bodyModel;
|
|
631
|
+
model = `${provider}/${modelId}`;
|
|
632
|
+
}
|
|
633
|
+
agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });
|
|
634
|
+
return { message: "Model list updated" };
|
|
635
|
+
} catch (error) {
|
|
636
|
+
return handleError(error, "error updating model list");
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
async function getProvidersHandler() {
|
|
640
|
+
try {
|
|
641
|
+
const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {
|
|
642
|
+
const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];
|
|
643
|
+
const connected = envVars.every((envVar) => !!process.env[envVar]);
|
|
644
|
+
return {
|
|
645
|
+
id,
|
|
646
|
+
name: provider.name,
|
|
647
|
+
envVar: provider.apiKeyEnvVar,
|
|
648
|
+
connected,
|
|
649
|
+
docUrl: provider.docUrl,
|
|
650
|
+
models: [...provider.models]
|
|
651
|
+
// Convert readonly array to regular array
|
|
652
|
+
};
|
|
653
|
+
});
|
|
654
|
+
return { providers };
|
|
655
|
+
} catch (error) {
|
|
656
|
+
return handleError(error, "error fetching providers");
|
|
657
|
+
}
|
|
658
|
+
}
|
|
521
659
|
|
|
522
|
-
export { agents_exports, generateHandler, generateLegacyHandler,
|
|
523
|
-
//# sourceMappingURL=chunk-
|
|
524
|
-
//# sourceMappingURL=chunk-
|
|
660
|
+
export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, reorderAgentModelListHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
|
|
661
|
+
//# sourceMappingURL=chunk-JSLAYFEW.js.map
|
|
662
|
+
//# sourceMappingURL=chunk-JSLAYFEW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["agent","acc","key"],"mappings":"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","file":"chunk-JSLAYFEW.js","sourcesContent":["import type { Agent, AgentModelManagerConfig } from '@mastra/core/agent';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { InputProcessor, OutputProcessor } from '@mastra/core/processors';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\nimport type {\n StreamTextOnFinishCallback,\n StreamTextOnStepFinishCallback,\n} from '../../../../core/dist/llm/model/base.types';\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\ntype GetHITLBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = Parameters<Agent[T]>[0];\n\nexport interface SerializedProcessor {\n name: string;\n}\n\nexport interface SerializedTool {\n id: string;\n description?: string;\n inputSchema?: string;\n outputSchema?: string;\n requireApproval?: boolean;\n}\n\nexport interface SerializedWorkflow {\n name: string;\n steps?: Record<string, { id: string; description?: string }>;\n}\n\nexport interface SerializedAgent {\n name: string;\n instructions?: SystemMessage;\n tools: Record<string, SerializedTool>;\n agents: Record<string, SerializedAgentDefinition>;\n workflows: Record<string, SerializedWorkflow>;\n inputProcessors: SerializedProcessor[];\n outputProcessors: SerializedProcessor[];\n provider?: string;\n modelId?: string;\n modelVersion?: string;\n modelList?: Array<\n Omit<AgentModelManagerConfig, 'model'> & {\n model: {\n modelId: string;\n provider: string;\n modelVersion: string;\n };\n }\n >;\n // We can't use the true types here because they are not serializable\n defaultGenerateOptions?: Record<string, unknown>;\n defaultStreamOptions?: Record<string, unknown>;\n}\n\nexport interface SerializedAgentWithId extends SerializedAgent {\n id: string;\n}\n\nexport async function getSerializedAgentTools(tools: Record<string, unknown>): Promise<Record<string, SerializedTool>> {\n return Object.entries(tools || {}).reduce<Record<string, SerializedTool>>((acc, [key, tool]) => {\n const _tool = tool as {\n id?: string;\n description?: string;\n inputSchema?: { jsonSchema?: unknown } | unknown;\n outputSchema?: { jsonSchema?: unknown } | unknown;\n };\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.inputSchema) {\n if (_tool.inputSchema && typeof _tool.inputSchema === 'object' && 'jsonSchema' in _tool.inputSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else if (_tool.inputSchema) {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n let outputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema && typeof _tool.outputSchema === 'object' && 'jsonSchema' in _tool.outputSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else if (_tool.outputSchema) {\n outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\nexport function getSerializedProcessors(processors: (InputProcessor | OutputProcessor)[]): SerializedProcessor[] {\n return processors.map(processor => {\n // Processors are class instances or objects with a name property\n // Use the name property if available, otherwise fall back to constructor name\n return {\n name: processor.name || processor.constructor.name,\n };\n });\n}\n\ninterface SerializedAgentDefinition {\n id: string;\n name: string;\n}\n\nasync function getSerializedAgentDefinition({\n agent,\n runtimeContext,\n}: {\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<Record<string, SerializedAgentDefinition>> {\n let serializedAgentAgents: Record<string, SerializedAgentDefinition> = {};\n\n if ('listAgents' in agent) {\n const agents = await agent.listAgents({ runtimeContext });\n serializedAgentAgents = Object.entries(agents || {}).reduce<Record<string, SerializedAgentDefinition>>(\n (acc, [key, agent]) => {\n return {\n ...acc,\n [key]: { id: agent.id, name: agent.name },\n };\n },\n {},\n );\n }\n return serializedAgentAgents;\n}\n\nasync function formatAgentList({\n id,\n mastra,\n agent,\n runtimeContext,\n}: {\n id: string;\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<SerializedAgentWithId> {\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 const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps?: Record<string, { id: string; description?: string }> }\n > = {};\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<\n Record<string, { name: string; steps?: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(runtimeContext);\n const outputProcessors = await agent.getOutputProcessors(runtimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n return {\n id,\n name: agent.name,\n instructions,\n agents: serializedAgentAgents,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions,\n defaultStreamOptions,\n modelList,\n };\n}\n\n// Agent handlers\nexport async function getAgentsHandler({\n mastra,\n runtimeContext,\n}: Context & { runtimeContext: RuntimeContext }): Promise<Record<string, SerializedAgent>> {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n return formatAgentList({ id, mastra, agent, runtimeContext });\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\nasync function formatAgent({\n mastra,\n agent,\n runtimeContext,\n isPlayground,\n}: {\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n isPlayground: boolean;\n}): Promise<SerializedAgent> {\n const tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps: Record<string, { id: string; description?: string }> }\n > = {};\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<\n Record<string, { name: string; steps: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n steps: Object.entries(workflow.steps).reduce<Record<string, { id: string; description?: string }>>(\n (acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\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 const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);\n const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n agents: serializedAgentAgents,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n modelList,\n defaultGenerateOptions,\n defaultStreamOptions,\n };\n}\n\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: string }): Promise<\n SerializedAgent | ReturnType<typeof handleError>\n> {\n try {\n const agent = mastra.getAgent(agentId);\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n return formatAgent({ mastra, agent, runtimeContext, isPlayground });\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 async function generateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateLegacy'> & {\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.generateLegacy(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 generateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generate']>> {\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.generate(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 streamGenerateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamLegacy'> & {\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.streamLegacy(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 streamGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['stream']> {\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.stream(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 function approveToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'approveToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['approveToolCall']> {\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 { runId, 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 const streamResult = agent.approveToolCall({\n ...rest,\n runId,\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 function declineToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'declineToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['declineToolCall']> {\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 { runId, 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 const streamResult = agent.declineToolCall({\n ...rest,\n runId,\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 function streamNetworkHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n // abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'network'> & {\n thread?: string;\n resourceId?: string;\n };\n // abortSignal?: AbortSignal;\n}): ReturnType<Agent['network']> {\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.network(messages, {\n ...rest,\n memory: {\n thread: rest.thread ?? '',\n resource: rest.resourceId ?? '',\n },\n runtimeContext: finalRuntimeContext,\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent loop response');\n }\n}\n\nexport async function streamUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n onStepFinish?: StreamTextOnStepFinishCallback<any>;\n onFinish?: StreamTextOnFinishCallback<any>;\n output?: undefined;\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.stream(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: string;\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 { modelId, provider } = body;\n\n // Use the universal Mastra router format: provider/model\n const newModel = `${provider}/${modelId}`;\n\n agent.__updateModel({ model: newModel });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n\nexport async function reorderAgentModelListHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n reorderedModelIds: Array<string>;\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 modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n agent.reorderModels(body.reorderedModelIds);\n\n return { message: 'Model list reordered' };\n } catch (error) {\n return handleError(error, 'error reordering model list');\n }\n}\n\nexport async function updateAgentModelInModelListHandler({\n mastra,\n agentId,\n modelConfigId,\n body,\n}: Context & {\n agentId: string;\n modelConfigId: string;\n body: {\n model?: {\n modelId: string;\n provider: string;\n };\n maxRetries?: number;\n enabled?: boolean;\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 const { model: bodyModel, maxRetries, enabled } = body;\n\n if (!modelConfigId) {\n throw new HTTPException(400, { message: 'Model id is required' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n const modelToUpdate = modelList.find(m => m.id === modelConfigId);\n if (!modelToUpdate) {\n throw new HTTPException(400, { message: 'Model to update is not found in agent model list' });\n }\n\n let model: string | undefined;\n if (bodyModel) {\n const { modelId, provider } = bodyModel;\n // Use the universal Mastra router format: provider/model\n model = `${provider}/${modelId}`;\n }\n\n agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });\n\n return { message: 'Model list updated' };\n } catch (error) {\n return handleError(error, 'error updating model list');\n }\n}\n\nexport async function getProvidersHandler() {\n try {\n const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {\n // Check if the provider is connected by checking for its API key env var(s)\n const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];\n const connected = envVars.every(envVar => !!process.env[envVar]);\n\n return {\n id,\n name: provider.name,\n envVar: provider.apiKeyEnvVar,\n connected,\n docUrl: provider.docUrl,\n models: [...provider.models], // Convert readonly array to regular array\n };\n });\n\n return { providers };\n } catch (error) {\n return handleError(error, 'error fetching providers');\n }\n}\n"]}
|