@mastra/server 0.0.0-fix-backport-setserver-20251201151948 → 0.0.0-fix-request-context-as-query-key-20251209093005
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 +977 -101
- package/README.md +1 -1
- package/dist/chunk-3SFLFUKY.js +116 -0
- package/dist/chunk-3SFLFUKY.js.map +1 -0
- package/dist/chunk-4W2SM6CG.js +294 -0
- package/dist/chunk-4W2SM6CG.js.map +1 -0
- package/dist/chunk-5W4RPVTK.cjs +49 -0
- package/dist/chunk-5W4RPVTK.cjs.map +1 -0
- package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
- package/dist/chunk-64ITUOXI.cjs.map +1 -0
- package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
- package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
- package/dist/{chunk-YWOK4F5A.js → chunk-6YWE7UPT.js} +20 -8
- package/dist/chunk-6YWE7UPT.js.map +1 -0
- package/dist/chunk-7N3PD4SV.js +196 -0
- package/dist/chunk-7N3PD4SV.js.map +1 -0
- package/dist/{chunk-7RGKOGE4.cjs → chunk-C3D3X2L5.cjs} +226 -31
- package/dist/chunk-C3D3X2L5.cjs.map +1 -0
- package/dist/chunk-C4J473OZ.js +786 -0
- package/dist/chunk-C4J473OZ.js.map +1 -0
- package/dist/{chunk-IAE7SFBS.js → chunk-CT5VG7NT.js} +220 -31
- package/dist/chunk-CT5VG7NT.js.map +1 -0
- package/dist/chunk-DHWPHLGF.cjs +211 -0
- package/dist/chunk-DHWPHLGF.cjs.map +1 -0
- package/dist/chunk-DRUNNM4C.js +328 -0
- package/dist/chunk-DRUNNM4C.js.map +1 -0
- package/dist/{chunk-TOCYBDP2.js → chunk-ER3QM7DD.js} +4 -4
- package/dist/{chunk-TOCYBDP2.js.map → chunk-ER3QM7DD.js.map} +1 -1
- package/dist/chunk-ESZ6V5WB.cjs +916 -0
- package/dist/chunk-ESZ6V5WB.cjs.map +1 -0
- package/dist/chunk-F4H7J6YV.cjs +1075 -0
- package/dist/chunk-F4H7J6YV.cjs.map +1 -0
- package/dist/chunk-FMTSLS25.cjs +810 -0
- package/dist/chunk-FMTSLS25.cjs.map +1 -0
- package/dist/chunk-FPCGLPLJ.cjs +297 -0
- package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
- package/dist/chunk-FYY54HZC.js +310 -0
- package/dist/chunk-FYY54HZC.js.map +1 -0
- package/dist/chunk-GFF2I6UD.js +354 -0
- package/dist/chunk-GFF2I6UD.js.map +1 -0
- package/dist/chunk-H2RMXG2Q.cjs +167 -0
- package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
- package/dist/chunk-HAJOEDNB.js +274 -0
- package/dist/chunk-HAJOEDNB.js.map +1 -0
- package/dist/chunk-HT4LP3BO.js +75 -0
- package/dist/chunk-HT4LP3BO.js.map +1 -0
- package/dist/chunk-I6LR6CPC.cjs +125 -0
- package/dist/chunk-I6LR6CPC.cjs.map +1 -0
- package/dist/chunk-IEYXQTUW.cjs +284 -0
- package/dist/chunk-IEYXQTUW.cjs.map +1 -0
- package/dist/chunk-LBSJWPXK.cjs +312 -0
- package/dist/chunk-LBSJWPXK.cjs.map +1 -0
- package/dist/chunk-MCYD5LW7.cjs +90 -0
- package/dist/chunk-MCYD5LW7.cjs.map +1 -0
- package/dist/{chunk-VY4ENABS.cjs → chunk-PUSD37LD.cjs} +20 -8
- package/dist/chunk-PUSD37LD.cjs.map +1 -0
- package/dist/chunk-QNVYGEJ4.js +204 -0
- package/dist/chunk-QNVYGEJ4.js.map +1 -0
- package/dist/chunk-S3TIWWQL.cjs +322 -0
- package/dist/chunk-S3TIWWQL.cjs.map +1 -0
- package/dist/chunk-SXVANU23.js +164 -0
- package/dist/chunk-SXVANU23.js.map +1 -0
- package/dist/chunk-TKL4TD2V.js +1032 -0
- package/dist/chunk-TKL4TD2V.js.map +1 -0
- package/dist/chunk-TYZ6ZISQ.cjs +368 -0
- package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
- package/dist/chunk-US6Y5RLR.cjs +205 -0
- package/dist/chunk-US6Y5RLR.cjs.map +1 -0
- package/dist/chunk-UTIOKR5C.js +887 -0
- package/dist/chunk-UTIOKR5C.js.map +1 -0
- package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
- package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
- package/dist/{chunk-QU6N55W6.cjs → chunk-V272B7RM.cjs} +11 -12
- package/dist/chunk-V272B7RM.cjs.map +1 -0
- package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
- package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
- package/dist/chunk-VD3WO2TJ.cjs +23268 -0
- package/dist/chunk-VD3WO2TJ.cjs.map +1 -0
- package/dist/chunk-VDJHDTPP.js +23226 -0
- package/dist/chunk-VDJHDTPP.js.map +1 -0
- package/dist/chunk-WE4USCF3.js +226 -0
- package/dist/chunk-WE4USCF3.js.map +1 -0
- package/dist/chunk-X43DWDXB.cjs +346 -0
- package/dist/chunk-X43DWDXB.cjs.map +1 -0
- package/dist/chunk-X4QMPCTP.cjs +259 -0
- package/dist/chunk-X4QMPCTP.cjs.map +1 -0
- package/dist/chunk-XNKZPXCY.js +302 -0
- package/dist/chunk-XNKZPXCY.js.map +1 -0
- package/dist/{chunk-X6C7BUWN.cjs → chunk-XQPJ63ZD.cjs} +4 -4
- package/dist/{chunk-X6C7BUWN.cjs.map → chunk-XQPJ63ZD.cjs.map} +1 -1
- package/dist/chunk-XWGAT2DA.js +44 -0
- package/dist/chunk-XWGAT2DA.js.map +1 -0
- package/dist/{chunk-SHWNNZBL.js → chunk-YP34EWWK.js} +9 -10
- package/dist/chunk-YP34EWWK.js.map +1 -0
- package/dist/server/auth/defaults.d.ts +3 -0
- package/dist/server/auth/defaults.d.ts.map +1 -0
- package/dist/server/auth/helpers.d.ts +14 -0
- package/dist/server/auth/helpers.d.ts.map +1 -0
- package/dist/server/auth/index.cjs +137 -0
- package/dist/server/auth/index.cjs.map +1 -0
- package/dist/server/auth/index.d.ts +3 -0
- package/dist/server/auth/index.d.ts.map +1 -0
- package/dist/server/auth/index.js +127 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/handlers/a2a.cjs +15 -7
- package/dist/server/handlers/a2a.d.ts +492 -10
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +43 -31
- package/dist/server/handlers/agent-builder.d.ts +597 -84
- 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 +49 -41
- package/dist/server/handlers/agents.d.ts +3277 -148
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +2 -2
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/logs.cjs +7 -7
- package/dist/server/handlers/logs.d.ts +135 -27
- package/dist/server/handlers/logs.d.ts.map +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp.cjs +40 -0
- package/dist/server/handlers/mcp.cjs.map +1 -0
- package/dist/server/handlers/mcp.d.ts +110 -0
- package/dist/server/handlers/mcp.d.ts.map +1 -0
- package/dist/server/handlers/mcp.js +3 -0
- package/dist/server/handlers/mcp.js.map +1 -0
- package/dist/server/handlers/memory.cjs +63 -31
- package/dist/server/handlers/memory.d.ts +934 -103
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +24 -8
- package/dist/server/handlers/observability.d.ts +128 -21
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +13 -13
- package/dist/server/handlers/scores.d.ts +110 -141
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +28 -0
- package/dist/server/handlers/stored-agents.cjs.map +1 -0
- package/dist/server/handlers/stored-agents.d.ts +289 -0
- package/dist/server/handlers/stored-agents.d.ts.map +1 -0
- package/dist/server/handlers/stored-agents.js +3 -0
- package/dist/server/handlers/stored-agents.js.map +1 -0
- package/dist/server/handlers/test-utils.cjs +15 -0
- package/dist/server/handlers/test-utils.cjs.map +1 -0
- package/dist/server/handlers/test-utils.d.ts +6 -0
- package/dist/server/handlers/test-utils.d.ts.map +1 -0
- package/dist/server/handlers/test-utils.js +13 -0
- package/dist/server/handlers/test-utils.js.map +1 -0
- package/dist/server/handlers/tools.cjs +11 -11
- package/dist/server/handlers/tools.d.ts +69 -23
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +11 -3
- package/dist/server/handlers/utils.d.ts +5 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +31 -7
- package/dist/server/handlers/vector.d.ts +93 -9
- package/dist/server/handlers/vector.d.ts.map +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +21 -9
- package/dist/server/handlers/voice.d.ts +81 -40
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +61 -41
- package/dist/server/handlers/workflows.d.ts +920 -87
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +30 -35
- package/dist/server/handlers.d.ts +1 -2
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +12 -13
- package/dist/server/http-exception.d.ts +0 -5
- package/dist/server/http-exception.d.ts.map +1 -1
- package/dist/server/schemas/a2a.d.ts +786 -0
- package/dist/server/schemas/a2a.d.ts.map +1 -0
- package/dist/server/schemas/agent-builder.d.ts +204 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -0
- package/dist/server/schemas/agents.d.ts +1375 -0
- package/dist/server/schemas/agents.d.ts.map +1 -0
- package/dist/server/schemas/common.d.ts +179 -0
- package/dist/server/schemas/common.d.ts.map +1 -0
- package/dist/server/schemas/logs.d.ts +124 -0
- package/dist/server/schemas/logs.d.ts.map +1 -0
- package/dist/server/schemas/mcp.d.ts +299 -0
- package/dist/server/schemas/mcp.d.ts.map +1 -0
- package/dist/server/schemas/memory.d.ts +998 -0
- package/dist/server/schemas/memory.d.ts.map +1 -0
- package/dist/server/schemas/observability.d.ts +402 -0
- package/dist/server/schemas/observability.d.ts.map +1 -0
- package/dist/server/schemas/scores.d.ts +259 -0
- package/dist/server/schemas/scores.d.ts.map +1 -0
- package/dist/server/schemas/stored-agents.d.ts +792 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -0
- package/dist/server/schemas/vectors.d.ts +107 -0
- package/dist/server/schemas/vectors.d.ts.map +1 -0
- package/dist/server/schemas/workflows.d.ts +602 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +486 -0
- package/dist/server/server-adapter/index.cjs.map +1 -0
- package/dist/server/server-adapter/index.d.ts +95 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -0
- package/dist/server/server-adapter/index.js +471 -0
- package/dist/server/server-adapter/index.js.map +1 -0
- package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
- package/dist/server/server-adapter/redact.d.ts +26 -0
- package/dist/server/server-adapter/redact.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/agents.d.ts +3 -0
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts +50 -0
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
- package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/logs.d.ts +3 -0
- package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
- package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/memory.d.ts +3 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/observability.d.ts +3 -0
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
- package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
- package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
- package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/tools.d.ts +3 -0
- package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
- package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
- package/dist/server/utils.d.ts +4 -3
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/token-GVZ7HRD7.js +62 -0
- package/dist/{token-C3IMNCC4.js.map → token-GVZ7HRD7.js.map} +1 -1
- package/dist/{token-C3IMNCC4.js → token-JGA3ZWAN.js} +5 -6
- package/dist/token-JGA3ZWAN.js.map +1 -0
- package/dist/token-VFONFWVS.cjs +64 -0
- package/dist/{token-375W3LEI.cjs.map → token-VFONFWVS.cjs.map} +1 -1
- package/dist/{token-375W3LEI.cjs → token-ZOD6YIQ3.cjs} +7 -8
- package/dist/token-ZOD6YIQ3.cjs.map +1 -0
- package/dist/token-util-7R2ZFIXO.js +7 -0
- package/dist/{token-util-E5QO2RCL.js.map → token-util-7R2ZFIXO.js.map} +1 -1
- package/dist/token-util-BLJZJDBZ.cjs +9 -0
- package/dist/{token-util-CV3RRG6K.cjs.map → token-util-BLJZJDBZ.cjs.map} +1 -1
- package/dist/token-util-VGZUWSNR.cjs +9 -0
- package/dist/token-util-VGZUWSNR.cjs.map +1 -0
- package/dist/token-util-VKTPZLSE.js +7 -0
- package/dist/token-util-VKTPZLSE.js.map +1 -0
- package/package.json +36 -15
- package/dist/chunk-2S4IMB6E.cjs +0 -130
- package/dist/chunk-2S4IMB6E.cjs.map +0 -1
- package/dist/chunk-3SNGNFUJ.cjs +0 -128
- package/dist/chunk-3SNGNFUJ.cjs.map +0 -1
- package/dist/chunk-4ML6U6RF.js +0 -19529
- package/dist/chunk-4ML6U6RF.js.map +0 -1
- package/dist/chunk-4QCXUEAT.js +0 -25
- package/dist/chunk-4QCXUEAT.js.map +0 -1
- package/dist/chunk-67GYDFSB.js +0 -160
- package/dist/chunk-67GYDFSB.js.map +0 -1
- package/dist/chunk-6N3HC6O4.js +0 -705
- package/dist/chunk-6N3HC6O4.js.map +0 -1
- package/dist/chunk-6ZR275MD.cjs +0 -165
- package/dist/chunk-6ZR275MD.cjs.map +0 -1
- package/dist/chunk-7RGKOGE4.cjs.map +0 -1
- package/dist/chunk-ABRFV4XP.js +0 -83
- package/dist/chunk-ABRFV4XP.js.map +0 -1
- package/dist/chunk-AHB4JCIQ.js +0 -160
- package/dist/chunk-AHB4JCIQ.js.map +0 -1
- package/dist/chunk-AW5BU3RQ.js +0 -192
- package/dist/chunk-AW5BU3RQ.js.map +0 -1
- package/dist/chunk-BATEJLED.js +0 -124
- package/dist/chunk-BATEJLED.js.map +0 -1
- package/dist/chunk-CY6R3HLM.cjs +0 -727
- package/dist/chunk-CY6R3HLM.cjs.map +0 -1
- package/dist/chunk-EP3JQDPD.cjs +0 -131
- package/dist/chunk-EP3JQDPD.cjs.map +0 -1
- package/dist/chunk-G4PUALCE.cjs +0 -28
- package/dist/chunk-G4PUALCE.cjs.map +0 -1
- package/dist/chunk-H33KYEMY.cjs +0 -720
- package/dist/chunk-H33KYEMY.cjs.map +0 -1
- package/dist/chunk-I3C4ODGV.cjs +0 -335
- package/dist/chunk-I3C4ODGV.cjs.map +0 -1
- package/dist/chunk-IAE7SFBS.js.map +0 -1
- package/dist/chunk-LLUOPR3J.js +0 -323
- package/dist/chunk-LLUOPR3J.js.map +0 -1
- package/dist/chunk-MMROOK5J.js.map +0 -1
- package/dist/chunk-MYR4PVGN.js +0 -123
- package/dist/chunk-MYR4PVGN.js.map +0 -1
- package/dist/chunk-NT5XW5PI.cjs +0 -596
- package/dist/chunk-NT5XW5PI.cjs.map +0 -1
- package/dist/chunk-PBXWFGEH.js +0 -579
- package/dist/chunk-PBXWFGEH.js.map +0 -1
- package/dist/chunk-PY2K7VNW.js +0 -698
- package/dist/chunk-PY2K7VNW.js.map +0 -1
- package/dist/chunk-QQXMIP6C.js +0 -122
- package/dist/chunk-QQXMIP6C.js.map +0 -1
- package/dist/chunk-QU6N55W6.cjs.map +0 -1
- package/dist/chunk-SHWNNZBL.js.map +0 -1
- package/dist/chunk-SPRRK3P7.cjs +0 -200
- package/dist/chunk-SPRRK3P7.cjs.map +0 -1
- package/dist/chunk-TRGAMKHX.cjs +0 -167
- package/dist/chunk-TRGAMKHX.cjs.map +0 -1
- package/dist/chunk-USGGDGWL.cjs +0 -19565
- package/dist/chunk-USGGDGWL.cjs.map +0 -1
- package/dist/chunk-VY4ENABS.cjs.map +0 -1
- package/dist/chunk-XN74I6VW.cjs +0 -88
- package/dist/chunk-XN74I6VW.cjs.map +0 -1
- package/dist/chunk-YWOK4F5A.js.map +0 -1
- package/dist/server/handlers/legacyWorkflows.cjs +0 -48
- package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
- package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
- package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
- package/dist/server/handlers/legacyWorkflows.js +0 -3
- package/dist/server/handlers/legacyWorkflows.js.map +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -20
- package/dist/server/handlers/telemetry.cjs.map +0 -1
- package/dist/server/handlers/telemetry.d.ts +0 -33
- package/dist/server/handlers/telemetry.d.ts.map +0 -1
- package/dist/server/handlers/telemetry.js +0 -3
- package/dist/server/handlers/telemetry.js.map +0 -1
- package/dist/token-util-CV3RRG6K.cjs +0 -9
- package/dist/token-util-E5QO2RCL.js +0 -7
|
@@ -21,7 +21,20 @@ function getSteps(steps, path) {
|
|
|
21
21
|
return acc;
|
|
22
22
|
}, {});
|
|
23
23
|
}
|
|
24
|
-
function getWorkflowInfo(workflow) {
|
|
24
|
+
function getWorkflowInfo(workflow, partial = false) {
|
|
25
|
+
if (partial) {
|
|
26
|
+
return {
|
|
27
|
+
name: workflow.name,
|
|
28
|
+
description: workflow.description,
|
|
29
|
+
stepCount: Object.keys(workflow.steps).length,
|
|
30
|
+
stepGraph: workflow.serializedStepGraph,
|
|
31
|
+
options: workflow.options,
|
|
32
|
+
steps: {},
|
|
33
|
+
allSteps: {},
|
|
34
|
+
inputSchema: void 0,
|
|
35
|
+
outputSchema: void 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
25
38
|
return {
|
|
26
39
|
name: workflow.name,
|
|
27
40
|
description: workflow.description,
|
|
@@ -40,7 +53,8 @@ function getWorkflowInfo(workflow) {
|
|
|
40
53
|
allSteps: getSteps(workflow.steps) || {},
|
|
41
54
|
stepGraph: workflow.serializedStepGraph,
|
|
42
55
|
inputSchema: workflow.inputSchema ? stringify(zodToJsonSchema(workflow.inputSchema)) : void 0,
|
|
43
|
-
outputSchema: workflow.outputSchema ? stringify(zodToJsonSchema(workflow.outputSchema)) : void 0
|
|
56
|
+
outputSchema: workflow.outputSchema ? stringify(zodToJsonSchema(workflow.outputSchema)) : void 0,
|
|
57
|
+
options: workflow.options
|
|
44
58
|
};
|
|
45
59
|
}
|
|
46
60
|
var WorkflowRegistry = class {
|
|
@@ -60,12 +74,10 @@ var WorkflowRegistry = class {
|
|
|
60
74
|
workflow.__registerMastra(mastra);
|
|
61
75
|
workflow.__registerPrimitives({
|
|
62
76
|
logger: mastra.getLogger(),
|
|
63
|
-
telemetry: mastra.getTelemetry(),
|
|
64
77
|
storage: mastra.getStorage(),
|
|
65
|
-
|
|
66
|
-
agents: mastra.getAgents(),
|
|
78
|
+
agents: mastra.listAgents(),
|
|
67
79
|
tts: mastra.getTTS(),
|
|
68
|
-
vectors: mastra.
|
|
80
|
+
vectors: mastra.listVectors()
|
|
69
81
|
});
|
|
70
82
|
}
|
|
71
83
|
this.additionalWorkflows[id] = workflow;
|
|
@@ -127,5 +139,5 @@ function convertInstructionsToString(message) {
|
|
|
127
139
|
}
|
|
128
140
|
|
|
129
141
|
export { WorkflowRegistry, convertInstructionsToString, getWorkflowInfo };
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-6YWE7UPT.js.map
|
|
143
|
+
//# sourceMappingURL=chunk-6YWE7UPT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/utils.ts"],"names":[],"mappings":";;;AAMA,SAAS,QAAA,CAAS,OAA0C,IAAA,EAAe;AACzE,EAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAA,CAAY,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,IAAI,CAAA,KAAM;AAC7D,IAAA,MAAM,UAAU,IAAA,GAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,GAAK,GAAA;AAC1C,IAAA,GAAA,CAAI,OAAO,CAAA,GAAI;AAAA,MACb,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,WAAA,EAAa,KAAK,WAAA,GAAc,SAAA,CAAU,gBAAgB,IAAA,CAAK,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,MAC/E,YAAA,EAAc,KAAK,YAAA,GAAe,SAAA,CAAU,gBAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI,MAAA;AAAA,MAClF,YAAA,EAAc,KAAK,YAAA,GAAe,SAAA,CAAU,gBAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI,MAAA;AAAA,MAClF,aAAA,EAAe,KAAK,aAAA,GAAgB,SAAA,CAAU,gBAAgB,IAAA,CAAK,aAAa,CAAC,CAAA,GAAI,MAAA;AAAA,MACrF,UAAA,EAAY,KAAK,SAAA,KAAc,UAAA;AAAA,MAC/B,WAAW,IAAA,CAAK;AAAA,KAClB;AAEA,IAAA,IAAI,IAAA,CAAK,SAAA,KAAc,UAAA,IAAc,IAAA,CAAK,KAAA,EAAO;AAC/C,MAAA,MAAM,cAAc,QAAA,CAAS,IAAA,CAAK,KAAA,EAAO,OAAO,KAAK,EAAC;AACtD,MAAA,GAAA,GAAM,EAAE,GAAG,GAAA,EAAK,GAAG,WAAA,EAAY;AAAA,IACjC;AAEA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACP;AAEO,SAAS,eAAA,CAAgB,QAAA,EAAoB,OAAA,GAAmB,KAAA,EAAqB;AAC1F,EAAA,IAAI,OAAA,EAAS;AAEX,IAAA,OAAO;AAAA,MACL,MAAM,QAAA,CAAS,IAAA;AAAA,MACf,aAAa,QAAA,CAAS,WAAA;AAAA,MACtB,SAAA,EAAW,MAAA,CAAO,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,CAAE,MAAA;AAAA,MACvC,WAAW,QAAA,CAAS,mBAAA;AAAA,MACpB,SAAS,QAAA,CAAS,OAAA;AAAA,MAClB,OAAO,EAAC;AAAA,MACR,UAAU,EAAC;AAAA,MACX,WAAA,EAAa,MAAA;AAAA,MACb,YAAA,EAAc;AAAA,KAChB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAM,QAAA,CAAS,IAAA;AAAA,IACf,aAAa,QAAA,CAAS,WAAA;AAAA,IACtB,KAAA,EAAO,MAAA,CAAO,OAAA,CAAQ,QAAA,CAAS,KAAK,CAAA,CAAE,MAAA,CAAY,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,IAAI,CAAA,KAAM;AACtE,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI;AAAA,QACT,IAAI,IAAA,CAAK,EAAA;AAAA,QACT,aAAa,IAAA,CAAK,WAAA;AAAA,QAClB,WAAA,EAAa,KAAK,WAAA,GAAc,SAAA,CAAU,gBAAgB,IAAA,CAAK,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,QAC/E,YAAA,EAAc,KAAK,YAAA,GAAe,SAAA,CAAU,gBAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI,MAAA;AAAA,QAClF,YAAA,EAAc,KAAK,YAAA,GAAe,SAAA,CAAU,gBAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI,MAAA;AAAA,QAClF,aAAA,EAAe,KAAK,aAAA,GAAgB,SAAA,CAAU,gBAAgB,IAAA,CAAK,aAAa,CAAC,CAAA,GAAI,MAAA;AAAA,QACrF,WAAW,IAAA,CAAK;AAAA,OAClB;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAAA,IACL,QAAA,EAAU,QAAA,CAAS,QAAA,CAAS,KAAK,KAAK,EAAC;AAAA,IACvC,WAAW,QAAA,CAAS,mBAAA;AAAA,IACpB,WAAA,EAAa,SAAS,WAAA,GAAc,SAAA,CAAU,gBAAgB,QAAA,CAAS,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,IACvF,YAAA,EAAc,SAAS,YAAA,GAAe,SAAA,CAAU,gBAAgB,QAAA,CAAS,YAAY,CAAC,CAAA,GAAI,MAAA;AAAA,IAC1F,SAAS,QAAA,CAAS;AAAA,GACpB;AACF;AAMO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,OAAe,sBAAgD,EAAC;AAAA;AAAA;AAAA;AAAA,EAKhE,OAAO,yBAAA,CAA0B,EAAA,EAAY,QAAA,EAA0B;AACrE,IAAA,IAAA,CAAK,mBAAA,CAAoB,EAAE,CAAA,GAAI,QAAA;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,0BAAA,CACL,SAAA,EACA,MAAA,EACM;AACN,IAAA,KAAA,MAAW,CAAC,EAAA,EAAI,QAAQ,KAAK,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,EAAG;AAEtD,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,QAAA,CAAS,iBAAiB,MAAM,CAAA;AAChC,QAAA,QAAA,CAAS,oBAAA,CAAqB;AAAA,UAC5B,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,UACzB,OAAA,EAAS,OAAO,UAAA,EAAW;AAAA,UAC3B,MAAA,EAAQ,OAAO,UAAA,EAAW;AAAA,UAC1B,GAAA,EAAK,OAAO,MAAA,EAAO;AAAA,UACnB,OAAA,EAAS,OAAO,WAAA;AAAY,SAC7B,CAAA;AAAA,MACH;AACA,MAAA,IAAA,CAAK,mBAAA,CAAoB,EAAE,CAAA,GAAI,QAAA;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,YAAY,UAAA,EAA0C;AAC3D,IAAA,OAAO,IAAA,CAAK,oBAAoB,UAAU,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,eAAA,GAA4C;AACjD,IAAA,OAAO,EAAE,GAAG,IAAA,CAAK,mBAAA,EAAoB;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,yBAAyB,UAAA,EAA0B;AACxD,IAAA,OAAO,IAAA,CAAK,oBAAoB,UAAU,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAA,GAAgB;AAErB,IAAA,IAAA,CAAK,sBAAsB,EAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,uBAAuB,UAAA,EAA6B;AACzD,IAAA,OAAO,cAAc,IAAA,CAAK,mBAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,wBAAA,GAAqC;AAC1C,IAAA,OAAO,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,EAC7C;AACF;AAEO,SAAS,4BAA4B,OAAA,EAAgC;AAC1E,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,IAAA,OAAO,OAAA;AAAA,EACT;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC1B,IAAA,OAAO,OAAA,CACJ,IAAI,CAAA,CAAA,KAAK;AACR,MAAA,IAAI,OAAO,MAAM,QAAA,EAAU;AACzB,QAAA,OAAO,CAAA;AAAA,MACT;AAEA,MAAA,OAAO,OAAO,CAAA,CAAE,OAAA,KAAY,QAAA,GAAW,EAAE,OAAA,GAAU,EAAA;AAAA,IACrD,CAAC,CAAA,CACA,MAAA,CAAO,aAAW,OAAO,CAAA,CACzB,KAAK,IAAI,CAAA;AAAA,EACd;AAGA,EAAA,OAAO,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,GAAW,QAAQ,OAAA,GAAU,EAAA;AACjE","file":"chunk-6YWE7UPT.js","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport type { StepWithComponent, Workflow, WorkflowInfo } from '@mastra/core/workflows';\nimport { stringify } from 'superjson';\n\nfunction getSteps(steps: Record<string, StepWithComponent>, path?: string) {\n return Object.entries(steps).reduce<any>((acc, [key, step]) => {\n const fullKey = path ? `${path}.${key}` : key;\n acc[fullKey] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(zodToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(zodToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(zodToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(zodToJsonSchema(step.suspendSchema)) : undefined,\n isWorkflow: step.component === 'WORKFLOW',\n component: step.component,\n };\n\n if (step.component === 'WORKFLOW' && step.steps) {\n const nestedSteps = getSteps(step.steps, fullKey) || {};\n acc = { ...acc, ...nestedSteps };\n }\n\n return acc;\n }, {});\n}\n\nexport function getWorkflowInfo(workflow: Workflow, partial: boolean = false): WorkflowInfo {\n if (partial) {\n // Return minimal info in partial mode\n return {\n name: workflow.name,\n description: workflow.description,\n stepCount: Object.keys(workflow.steps).length,\n stepGraph: workflow.serializedStepGraph,\n options: workflow.options,\n steps: {},\n allSteps: {},\n inputSchema: undefined,\n outputSchema: undefined,\n } as WorkflowInfo;\n }\n\n return {\n name: workflow.name,\n description: workflow.description,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n acc[key] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(zodToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(zodToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(zodToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(zodToJsonSchema(step.suspendSchema)) : undefined,\n component: step.component,\n };\n return acc;\n }, {}),\n allSteps: getSteps(workflow.steps) || {},\n stepGraph: workflow.serializedStepGraph,\n inputSchema: workflow.inputSchema ? stringify(zodToJsonSchema(workflow.inputSchema)) : undefined,\n outputSchema: workflow.outputSchema ? stringify(zodToJsonSchema(workflow.outputSchema)) : undefined,\n options: workflow.options,\n };\n}\n\n/**\n * Workflow Registry for temporarily registering additional workflows\n * that are not part of the user's Mastra instance (e.g., internal template workflows)\n */\nexport class WorkflowRegistry {\n private static additionalWorkflows: Record<string, Workflow> = {};\n\n /**\n * Register a workflow temporarily\n */\n static registerTemporaryWorkflow(id: string, workflow: Workflow): void {\n this.additionalWorkflows[id] = workflow;\n }\n\n /**\n * Register all workflows from map\n */\n static registerTemporaryWorkflows(\n workflows: Record<string, Workflow>,\n mastra?: Mastra<any, any, any, any, any, any, any, any, any>,\n ): void {\n for (const [id, workflow] of Object.entries(workflows)) {\n // Register Mastra instance with the workflow if provided\n if (mastra) {\n workflow.__registerMastra(mastra);\n workflow.__registerPrimitives({\n logger: mastra.getLogger(),\n storage: mastra.getStorage(),\n agents: mastra.listAgents(),\n tts: mastra.getTTS(),\n vectors: mastra.listVectors(),\n });\n }\n this.additionalWorkflows[id] = workflow;\n }\n }\n\n /**\n * Get a workflow by ID from the registry (returns undefined if not found)\n */\n static getWorkflow(workflowId: string): Workflow | undefined {\n return this.additionalWorkflows[workflowId];\n }\n\n /**\n * Get all workflows from the registry\n */\n static getAllWorkflows(): Record<string, Workflow> {\n return { ...this.additionalWorkflows };\n }\n\n /**\n * Clean up a temporary workflow\n */\n static cleanupTemporaryWorkflow(workflowId: string): void {\n delete this.additionalWorkflows[workflowId];\n }\n /**\n * Clean up all registered workflows\n */\n static cleanup(): void {\n // Clear all workflows (since we register all agent-builder workflows each time)\n this.additionalWorkflows = {};\n }\n\n /**\n * Check if a workflow ID is a valid agent-builder workflow\n */\n static isAgentBuilderWorkflow(workflowId: string): boolean {\n return workflowId in this.additionalWorkflows;\n }\n\n /**\n * Get all registered temporary workflow IDs (for debugging)\n */\n static getRegisteredWorkflowIds(): string[] {\n return Object.keys(this.additionalWorkflows);\n }\n}\n\nexport function convertInstructionsToString(message: SystemMessage): string {\n if (!message) {\n return '';\n }\n\n if (typeof message === 'string') {\n return message;\n }\n\n if (Array.isArray(message)) {\n return message\n .map(m => {\n if (typeof m === 'string') {\n return m;\n }\n // Safely extract content from message objects\n return typeof m.content === 'string' ? m.content : '';\n })\n .filter(content => content) // Remove empty strings\n .join('\\n');\n }\n\n // Handle single message object - safely extract content\n return typeof message.content === 'string' ? message.content : '';\n}\n"]}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { validateBody } from './chunk-XWGAT2DA.js';
|
|
2
|
+
import { voiceSpeakersResponseSchema, agentIdPathParams, speakResponseSchema, generateSpeechBodySchema, transcribeSpeechResponseSchema, transcribeSpeechBodySchema, getListenerResponseSchema } from './chunk-WE4USCF3.js';
|
|
3
|
+
import { createRoute } from './chunk-SXVANU23.js';
|
|
4
|
+
import { handleError } from './chunk-UXGQZUYZ.js';
|
|
5
|
+
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
6
|
+
import { __export } from './chunk-PR4QN5HX.js';
|
|
7
|
+
import { Readable } from 'stream';
|
|
8
|
+
import { MastraError } from '@mastra/core/error';
|
|
9
|
+
|
|
10
|
+
// src/server/handlers/voice.ts
|
|
11
|
+
var voice_exports = {};
|
|
12
|
+
__export(voice_exports, {
|
|
13
|
+
GENERATE_SPEECH_DEPRECATED_ROUTE: () => GENERATE_SPEECH_DEPRECATED_ROUTE,
|
|
14
|
+
GENERATE_SPEECH_ROUTE: () => GENERATE_SPEECH_ROUTE,
|
|
15
|
+
GET_LISTENER_ROUTE: () => GET_LISTENER_ROUTE,
|
|
16
|
+
GET_SPEAKERS_DEPRECATED_ROUTE: () => GET_SPEAKERS_DEPRECATED_ROUTE,
|
|
17
|
+
GET_SPEAKERS_ROUTE: () => GET_SPEAKERS_ROUTE,
|
|
18
|
+
TRANSCRIBE_SPEECH_DEPRECATED_ROUTE: () => TRANSCRIBE_SPEECH_DEPRECATED_ROUTE,
|
|
19
|
+
TRANSCRIBE_SPEECH_ROUTE: () => TRANSCRIBE_SPEECH_ROUTE
|
|
20
|
+
});
|
|
21
|
+
var GET_SPEAKERS_ROUTE = createRoute({
|
|
22
|
+
method: "GET",
|
|
23
|
+
path: "/api/agents/:agentId/voice/speakers",
|
|
24
|
+
responseType: "json",
|
|
25
|
+
pathParamSchema: agentIdPathParams,
|
|
26
|
+
responseSchema: voiceSpeakersResponseSchema,
|
|
27
|
+
summary: "Get voice speakers",
|
|
28
|
+
description: "Returns available voice speakers for the specified agent",
|
|
29
|
+
tags: ["Agents", "Voice"],
|
|
30
|
+
handler: async ({ mastra, agentId, requestContext }) => {
|
|
31
|
+
try {
|
|
32
|
+
if (!agentId) {
|
|
33
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
34
|
+
}
|
|
35
|
+
const agent = mastra.getAgentById(agentId);
|
|
36
|
+
if (!agent) {
|
|
37
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
38
|
+
}
|
|
39
|
+
const voice = await agent.getVoice({ requestContext });
|
|
40
|
+
const speakers = await Promise.resolve().then(() => voice.getSpeakers()).catch((err) => {
|
|
41
|
+
if (err instanceof MastraError) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
throw err;
|
|
45
|
+
});
|
|
46
|
+
return speakers;
|
|
47
|
+
} catch (error) {
|
|
48
|
+
return handleError(error, "Error getting speakers");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
var GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({
|
|
53
|
+
method: "GET",
|
|
54
|
+
path: "/api/agents/:agentId/speakers",
|
|
55
|
+
responseType: "json",
|
|
56
|
+
pathParamSchema: agentIdPathParams,
|
|
57
|
+
responseSchema: voiceSpeakersResponseSchema,
|
|
58
|
+
summary: "Get available speakers for an agent",
|
|
59
|
+
description: "[DEPRECATED] Use /api/agents/:agentId/voice/speakers instead. Get available speakers for an agent",
|
|
60
|
+
tags: ["Agents", "Voice"],
|
|
61
|
+
handler: GET_SPEAKERS_ROUTE.handler
|
|
62
|
+
});
|
|
63
|
+
var GENERATE_SPEECH_ROUTE = createRoute({
|
|
64
|
+
method: "POST",
|
|
65
|
+
path: "/api/agents/:agentId/voice/speak",
|
|
66
|
+
responseType: "stream",
|
|
67
|
+
pathParamSchema: agentIdPathParams,
|
|
68
|
+
bodySchema: generateSpeechBodySchema,
|
|
69
|
+
responseSchema: speakResponseSchema,
|
|
70
|
+
summary: "Generate speech",
|
|
71
|
+
description: "Generates speech audio from text using the agent voice configuration",
|
|
72
|
+
tags: ["Agents", "Voice"],
|
|
73
|
+
handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {
|
|
74
|
+
try {
|
|
75
|
+
if (!agentId) {
|
|
76
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
77
|
+
}
|
|
78
|
+
validateBody({ text });
|
|
79
|
+
const agent = mastra.getAgentById(agentId);
|
|
80
|
+
if (!agent) {
|
|
81
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
82
|
+
}
|
|
83
|
+
const voice = await agent.getVoice({ requestContext });
|
|
84
|
+
if (!voice) {
|
|
85
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
86
|
+
}
|
|
87
|
+
const audioStream = await Promise.resolve().then(() => voice.speak(text, { speaker: speakerId })).catch((err) => {
|
|
88
|
+
if (err instanceof MastraError) {
|
|
89
|
+
throw new HTTPException(400, { message: err.message });
|
|
90
|
+
}
|
|
91
|
+
throw err;
|
|
92
|
+
});
|
|
93
|
+
if (!audioStream) {
|
|
94
|
+
throw new HTTPException(500, { message: "Failed to generate speech" });
|
|
95
|
+
}
|
|
96
|
+
return audioStream;
|
|
97
|
+
} catch (error) {
|
|
98
|
+
return handleError(error, "Error generating speech");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
var GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({
|
|
103
|
+
method: "POST",
|
|
104
|
+
path: "/api/agents/:agentId/speak",
|
|
105
|
+
responseType: "stream",
|
|
106
|
+
pathParamSchema: agentIdPathParams,
|
|
107
|
+
bodySchema: generateSpeechBodySchema,
|
|
108
|
+
responseSchema: speakResponseSchema,
|
|
109
|
+
summary: "Convert text to speech",
|
|
110
|
+
description: "[DEPRECATED] Use /api/agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider",
|
|
111
|
+
tags: ["Agents", "Voice"],
|
|
112
|
+
handler: GENERATE_SPEECH_ROUTE.handler
|
|
113
|
+
});
|
|
114
|
+
var TRANSCRIBE_SPEECH_ROUTE = createRoute({
|
|
115
|
+
method: "POST",
|
|
116
|
+
path: "/api/agents/:agentId/voice/listen",
|
|
117
|
+
responseType: "json",
|
|
118
|
+
pathParamSchema: agentIdPathParams,
|
|
119
|
+
bodySchema: transcribeSpeechBodySchema,
|
|
120
|
+
responseSchema: transcribeSpeechResponseSchema,
|
|
121
|
+
summary: "Transcribe speech",
|
|
122
|
+
description: "Transcribes speech audio to text using the agent voice configuration",
|
|
123
|
+
tags: ["Agents", "Voice"],
|
|
124
|
+
handler: async ({ mastra, agentId, audioData, options, requestContext }) => {
|
|
125
|
+
try {
|
|
126
|
+
if (!agentId) {
|
|
127
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
128
|
+
}
|
|
129
|
+
if (!audioData) {
|
|
130
|
+
throw new HTTPException(400, { message: "Audio data is required" });
|
|
131
|
+
}
|
|
132
|
+
const agent = mastra.getAgentById(agentId);
|
|
133
|
+
if (!agent) {
|
|
134
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
135
|
+
}
|
|
136
|
+
const voice = await agent.getVoice({ requestContext });
|
|
137
|
+
if (!voice) {
|
|
138
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
139
|
+
}
|
|
140
|
+
const audioStream = new Readable();
|
|
141
|
+
audioStream.push(audioData);
|
|
142
|
+
audioStream.push(null);
|
|
143
|
+
const text = await voice.listen(audioStream, options);
|
|
144
|
+
return { text };
|
|
145
|
+
} catch (error) {
|
|
146
|
+
return handleError(error, "Error transcribing speech");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({
|
|
151
|
+
method: "POST",
|
|
152
|
+
path: "/api/agents/:agentId/listen",
|
|
153
|
+
responseType: "json",
|
|
154
|
+
pathParamSchema: agentIdPathParams,
|
|
155
|
+
bodySchema: transcribeSpeechBodySchema,
|
|
156
|
+
responseSchema: transcribeSpeechResponseSchema,
|
|
157
|
+
summary: "Convert speech to text",
|
|
158
|
+
description: "[DEPRECATED] Use /api/agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.",
|
|
159
|
+
tags: ["Agents", "Voice"],
|
|
160
|
+
handler: TRANSCRIBE_SPEECH_ROUTE.handler
|
|
161
|
+
});
|
|
162
|
+
var GET_LISTENER_ROUTE = createRoute({
|
|
163
|
+
method: "GET",
|
|
164
|
+
path: "/api/agents/:agentId/voice/listener",
|
|
165
|
+
responseType: "json",
|
|
166
|
+
pathParamSchema: agentIdPathParams,
|
|
167
|
+
responseSchema: getListenerResponseSchema,
|
|
168
|
+
summary: "Get voice listener",
|
|
169
|
+
description: "Returns the voice listener configuration for the agent",
|
|
170
|
+
tags: ["Agents", "Voice"],
|
|
171
|
+
handler: async ({ mastra, agentId, requestContext }) => {
|
|
172
|
+
try {
|
|
173
|
+
if (!agentId) {
|
|
174
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
175
|
+
}
|
|
176
|
+
const agent = mastra.getAgentById(agentId);
|
|
177
|
+
if (!agent) {
|
|
178
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
179
|
+
}
|
|
180
|
+
const voice = await agent.getVoice({ requestContext });
|
|
181
|
+
const listeners = await Promise.resolve().then(() => voice.getListener()).catch((err) => {
|
|
182
|
+
if (err instanceof MastraError) {
|
|
183
|
+
return { enabled: false };
|
|
184
|
+
}
|
|
185
|
+
throw err;
|
|
186
|
+
});
|
|
187
|
+
return listeners;
|
|
188
|
+
} catch (error) {
|
|
189
|
+
return handleError(error, "Error getting listeners");
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
export { GENERATE_SPEECH_DEPRECATED_ROUTE, GENERATE_SPEECH_ROUTE, GET_LISTENER_ROUTE, GET_SPEAKERS_DEPRECATED_ROUTE, GET_SPEAKERS_ROUTE, TRANSCRIBE_SPEECH_DEPRECATED_ROUTE, TRANSCRIBE_SPEECH_ROUTE, voice_exports };
|
|
195
|
+
//# sourceMappingURL=chunk-7N3PD4SV.js.map
|
|
196
|
+
//# sourceMappingURL=chunk-7N3PD4SV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":"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","file":"chunk-7N3PD4SV.js","sourcesContent":["import { Readable } from 'node:stream';\nimport { MastraError } from '@mastra/core/error';\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n voiceSpeakersResponseSchema,\n generateSpeechBodySchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n getListenerResponseSchema,\n} from '../schemas/agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Objects\n// ============================================================================\n\nexport const GET_SPEAKERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId/voice/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get voice speakers',\n description: 'Returns available voice speakers for the specified agent',\n tags: ['Agents', 'Voice'],\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const speakers = await Promise.resolve()\n .then(() => voice.getSpeakers())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured, return empty array\n return [];\n }\n throw err;\n });\n\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n },\n});\n\nexport const GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get available speakers for an agent',\n description: '[DEPRECATED] Use /api/agents/:agentId/voice/speakers instead. Get available speakers for an agent',\n tags: ['Agents', 'Voice'],\n handler: GET_SPEAKERS_ROUTE.handler,\n});\n\nexport const GENERATE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/voice/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Generate speech',\n description: 'Generates speech audio from text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({ text });\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(text!, { speaker: speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream as unknown as ReadableStream<any>;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n },\n});\n\nexport const GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Convert text to speech',\n description:\n \"[DEPRECATED] Use /api/agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n tags: ['Agents', 'Voice'],\n handler: GENERATE_SPEECH_ROUTE.handler,\n});\n\nexport const TRANSCRIBE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/voice/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Transcribe speech',\n description: 'Transcribes speech audio to text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n handler: async ({ mastra, agentId, audioData, options, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!audioData) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(audioData);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, options);\n return { text: text as string };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n },\n});\n\nexport const TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Convert speech to text',\n description:\n \"[DEPRECATED] Use /api/agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n tags: ['Agents', 'Voice'],\n handler: TRANSCRIBE_SPEECH_ROUTE.handler,\n});\n\nexport const GET_LISTENER_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId/voice/listener',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: getListenerResponseSchema,\n summary: 'Get voice listener',\n description: 'Returns the voice listener configuration for the agent',\n tags: ['Agents', 'Voice'],\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const listeners = await Promise.resolve()\n .then(() => voice.getListener())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured\n return { enabled: false };\n }\n throw err;\n });\n\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n },\n});\n"]}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPUSD37LD_cjs = require('./chunk-PUSD37LD.cjs');
|
|
4
|
+
var chunkH2RMXG2Q_cjs = require('./chunk-H2RMXG2Q.cjs');
|
|
4
5
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
5
6
|
var a2a = require('@mastra/core/a2a');
|
|
6
|
-
var
|
|
7
|
+
var z = require('zod');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var z__default = /*#__PURE__*/_interopDefault(z);
|
|
7
12
|
|
|
8
13
|
// src/server/handlers/a2a.ts
|
|
9
14
|
var a2a_exports = {};
|
|
10
15
|
chunkO7I5CWRX_cjs.__export(a2a_exports, {
|
|
16
|
+
AGENT_EXECUTION_ROUTE: () => AGENT_EXECUTION_ROUTE,
|
|
17
|
+
GET_AGENT_CARD_ROUTE: () => GET_AGENT_CARD_ROUTE,
|
|
11
18
|
getAgentCardByIdHandler: () => getAgentCardByIdHandler,
|
|
12
19
|
getAgentExecutionHandler: () => getAgentExecutionHandler,
|
|
13
20
|
handleMessageSend: () => handleMessageSend,
|
|
@@ -180,24 +187,138 @@ function createTaskContext({
|
|
|
180
187
|
isCancelled: () => activeCancellations.has(task.id)
|
|
181
188
|
};
|
|
182
189
|
}
|
|
190
|
+
var a2aAgentIdPathParams = z__default.default.object({
|
|
191
|
+
agentId: z__default.default.string().describe("Unique identifier for the agent")
|
|
192
|
+
});
|
|
193
|
+
a2aAgentIdPathParams.extend({
|
|
194
|
+
taskId: z__default.default.string().describe("Unique identifier for the task")
|
|
195
|
+
});
|
|
196
|
+
var pushNotificationAuthenticationInfoSchema = z__default.default.object({
|
|
197
|
+
schemes: z__default.default.array(z__default.default.string()).describe("Supported authentication schemes - e.g. Basic, Bearer"),
|
|
198
|
+
credentials: z__default.default.string().optional().describe("Optional credentials")
|
|
199
|
+
});
|
|
200
|
+
var pushNotificationConfigSchema = z__default.default.object({
|
|
201
|
+
url: z__default.default.string().describe("URL for sending the push notifications"),
|
|
202
|
+
id: z__default.default.string().optional().describe("Push Notification ID - created by server to support multiple callbacks"),
|
|
203
|
+
token: z__default.default.string().optional().describe("Token unique to this task/session"),
|
|
204
|
+
authentication: pushNotificationAuthenticationInfoSchema.optional()
|
|
205
|
+
});
|
|
206
|
+
var messageSendConfigurationSchema = z__default.default.object({
|
|
207
|
+
acceptedOutputModes: z__default.default.array(z__default.default.string()).describe("Accepted output modalities by the client"),
|
|
208
|
+
blocking: z__default.default.boolean().optional().describe("If the server should treat the client as a blocking request"),
|
|
209
|
+
historyLength: z__default.default.number().optional().describe("Number of recent messages to be retrieved"),
|
|
210
|
+
pushNotificationConfig: pushNotificationConfigSchema.optional()
|
|
211
|
+
});
|
|
212
|
+
var textPartSchema = z__default.default.object({
|
|
213
|
+
kind: z__default.default.literal("text").describe("Part type - text for TextParts"),
|
|
214
|
+
text: z__default.default.string().describe("Text content"),
|
|
215
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
216
|
+
});
|
|
217
|
+
var fileWithBytesSchema = z__default.default.object({
|
|
218
|
+
bytes: z__default.default.string().describe("base64 encoded content of the file"),
|
|
219
|
+
mimeType: z__default.default.string().optional().describe("Optional mimeType for the file"),
|
|
220
|
+
name: z__default.default.string().optional().describe("Optional name for the file")
|
|
221
|
+
});
|
|
222
|
+
var fileWithUriSchema = z__default.default.object({
|
|
223
|
+
uri: z__default.default.string().describe("URL for the File content"),
|
|
224
|
+
mimeType: z__default.default.string().optional().describe("Optional mimeType for the file"),
|
|
225
|
+
name: z__default.default.string().optional().describe("Optional name for the file")
|
|
226
|
+
});
|
|
227
|
+
var filePartSchema = z__default.default.object({
|
|
228
|
+
kind: z__default.default.literal("file").describe("Part type - file for FileParts"),
|
|
229
|
+
file: z__default.default.union([fileWithBytesSchema, fileWithUriSchema]).describe("File content either as url or bytes"),
|
|
230
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
231
|
+
});
|
|
232
|
+
var dataPartSchema = z__default.default.object({
|
|
233
|
+
kind: z__default.default.literal("data").describe("Part type - data for DataParts"),
|
|
234
|
+
data: z__default.default.record(z__default.default.unknown()).describe("Structured data content"),
|
|
235
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
236
|
+
});
|
|
237
|
+
var partSchema = z__default.default.union([textPartSchema, filePartSchema, dataPartSchema]);
|
|
238
|
+
var messageSchema = z__default.default.object({
|
|
239
|
+
kind: z__default.default.literal("message").describe("Event type"),
|
|
240
|
+
messageId: z__default.default.string().describe("Identifier created by the message creator"),
|
|
241
|
+
role: z__default.default.enum(["user", "agent"]).describe("Message sender's role"),
|
|
242
|
+
parts: z__default.default.array(partSchema).describe("Message content"),
|
|
243
|
+
contextId: z__default.default.string().optional().describe("The context the message is associated with"),
|
|
244
|
+
taskId: z__default.default.string().optional().describe("Identifier of task the message is related to"),
|
|
245
|
+
referenceTaskIds: z__default.default.array(z__default.default.string()).optional().describe("List of tasks referenced as context by this message"),
|
|
246
|
+
extensions: z__default.default.array(z__default.default.string()).optional().describe("The URIs of extensions that are present or contributed to this Message"),
|
|
247
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Extension metadata")
|
|
248
|
+
});
|
|
249
|
+
var messageSendParamsSchema = z__default.default.object({
|
|
250
|
+
message: messageSchema,
|
|
251
|
+
configuration: messageSendConfigurationSchema.optional(),
|
|
252
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Extension metadata")
|
|
253
|
+
});
|
|
254
|
+
var taskQueryParamsSchema = z__default.default.object({
|
|
255
|
+
id: z__default.default.string().describe("Task id"),
|
|
256
|
+
historyLength: z__default.default.number().optional().describe("Number of recent messages to be retrieved"),
|
|
257
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional()
|
|
258
|
+
});
|
|
259
|
+
var taskIdParamsSchema = z__default.default.object({
|
|
260
|
+
id: z__default.default.string().describe("Task id"),
|
|
261
|
+
metadata: z__default.default.record(z__default.default.unknown()).optional()
|
|
262
|
+
});
|
|
263
|
+
z__default.default.object({
|
|
264
|
+
message: messageSchema,
|
|
265
|
+
metadata: z__default.default.record(z__default.default.any()).optional()
|
|
266
|
+
});
|
|
267
|
+
z__default.default.object({
|
|
268
|
+
id: z__default.default.string()
|
|
269
|
+
});
|
|
270
|
+
var agentExecutionParamsSchema = z__default.default.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);
|
|
271
|
+
var agentExecutionBodySchema = z__default.default.object({
|
|
272
|
+
jsonrpc: z__default.default.literal("2.0"),
|
|
273
|
+
id: z__default.default.union([z__default.default.string(), z__default.default.number()]),
|
|
274
|
+
method: z__default.default.enum(["message/send", "message/stream", "tasks/get", "tasks/cancel"]),
|
|
275
|
+
params: agentExecutionParamsSchema
|
|
276
|
+
});
|
|
277
|
+
var agentCardResponseSchema = z__default.default.object({
|
|
278
|
+
name: z__default.default.string(),
|
|
279
|
+
description: z__default.default.string(),
|
|
280
|
+
url: z__default.default.string(),
|
|
281
|
+
provider: z__default.default.object({
|
|
282
|
+
organization: z__default.default.string(),
|
|
283
|
+
url: z__default.default.string()
|
|
284
|
+
}).optional(),
|
|
285
|
+
version: z__default.default.string(),
|
|
286
|
+
capabilities: z__default.default.object({
|
|
287
|
+
streaming: z__default.default.boolean().optional(),
|
|
288
|
+
pushNotifications: z__default.default.boolean().optional(),
|
|
289
|
+
stateTransitionHistory: z__default.default.boolean().optional()
|
|
290
|
+
}),
|
|
291
|
+
defaultInputModes: z__default.default.array(z__default.default.string()),
|
|
292
|
+
defaultOutputModes: z__default.default.array(z__default.default.string()),
|
|
293
|
+
skills: z__default.default.array(
|
|
294
|
+
z__default.default.object({
|
|
295
|
+
id: z__default.default.string(),
|
|
296
|
+
name: z__default.default.string(),
|
|
297
|
+
description: z__default.default.string(),
|
|
298
|
+
tags: z__default.default.array(z__default.default.string()).optional()
|
|
299
|
+
})
|
|
300
|
+
)
|
|
301
|
+
});
|
|
302
|
+
z__default.default.unknown();
|
|
303
|
+
var agentExecutionResponseSchema = z__default.default.unknown();
|
|
183
304
|
|
|
184
305
|
// src/server/handlers/a2a.ts
|
|
185
|
-
var
|
|
186
|
-
message:
|
|
187
|
-
role:
|
|
188
|
-
parts:
|
|
189
|
-
|
|
190
|
-
kind:
|
|
191
|
-
text:
|
|
306
|
+
var messageSendParamsSchema2 = z.z.object({
|
|
307
|
+
message: z.z.object({
|
|
308
|
+
role: z.z.enum(["user", "agent"]),
|
|
309
|
+
parts: z.z.array(
|
|
310
|
+
z.z.object({
|
|
311
|
+
kind: z.z.enum(["text"]),
|
|
312
|
+
text: z.z.string()
|
|
192
313
|
})
|
|
193
314
|
),
|
|
194
|
-
kind:
|
|
195
|
-
messageId:
|
|
196
|
-
contextId:
|
|
197
|
-
taskId:
|
|
198
|
-
referenceTaskIds:
|
|
199
|
-
extensions:
|
|
200
|
-
metadata:
|
|
315
|
+
kind: z.z.literal("message"),
|
|
316
|
+
messageId: z.z.string(),
|
|
317
|
+
contextId: z.z.string().optional(),
|
|
318
|
+
taskId: z.z.string().optional(),
|
|
319
|
+
referenceTaskIds: z.z.array(z.z.string()).optional(),
|
|
320
|
+
extensions: z.z.array(z.z.string()).optional(),
|
|
321
|
+
metadata: z.z.record(z.z.any()).optional()
|
|
201
322
|
})
|
|
202
323
|
});
|
|
203
324
|
async function getAgentCardByIdHandler({
|
|
@@ -209,19 +330,19 @@ async function getAgentCardByIdHandler({
|
|
|
209
330
|
url: "https://mastra.ai"
|
|
210
331
|
},
|
|
211
332
|
version = "1.0",
|
|
212
|
-
|
|
333
|
+
requestContext
|
|
213
334
|
}) {
|
|
214
335
|
const agent = mastra.getAgentById(agentId);
|
|
215
336
|
if (!agent) {
|
|
216
337
|
throw new Error(`Agent with ID ${agentId} not found`);
|
|
217
338
|
}
|
|
218
339
|
const [instructions, tools] = await Promise.all([
|
|
219
|
-
agent.getInstructions({
|
|
220
|
-
agent.
|
|
340
|
+
agent.getInstructions({ requestContext }),
|
|
341
|
+
agent.listTools({ requestContext })
|
|
221
342
|
]);
|
|
222
343
|
const agentCard = {
|
|
223
344
|
name: agent.id || agentId,
|
|
224
|
-
description:
|
|
345
|
+
description: chunkPUSD37LD_cjs.convertInstructionsToString(instructions),
|
|
225
346
|
url: executionUrl,
|
|
226
347
|
provider,
|
|
227
348
|
version,
|
|
@@ -246,9 +367,9 @@ async function getAgentCardByIdHandler({
|
|
|
246
367
|
}
|
|
247
368
|
function validateMessageSendParams(params) {
|
|
248
369
|
try {
|
|
249
|
-
|
|
370
|
+
messageSendParamsSchema2.parse(params);
|
|
250
371
|
} catch (error) {
|
|
251
|
-
if (error instanceof
|
|
372
|
+
if (error instanceof z.z.ZodError) {
|
|
252
373
|
throw a2a.MastraA2AError.invalidParams(error.errors[0].message);
|
|
253
374
|
}
|
|
254
375
|
throw error;
|
|
@@ -261,7 +382,7 @@ async function handleMessageSend({
|
|
|
261
382
|
agent,
|
|
262
383
|
agentId,
|
|
263
384
|
logger,
|
|
264
|
-
|
|
385
|
+
requestContext
|
|
265
386
|
}) {
|
|
266
387
|
validateMessageSendParams(params);
|
|
267
388
|
const { message, metadata } = params;
|
|
@@ -282,9 +403,11 @@ async function handleMessageSend({
|
|
|
282
403
|
activeCancellations: taskStore.activeCancellations
|
|
283
404
|
});
|
|
284
405
|
try {
|
|
406
|
+
const resourceId = metadata?.resourceId ?? message.metadata?.resourceId ?? agentId;
|
|
285
407
|
const { text } = await agent.generate([convertToCoreMessage(message)], {
|
|
286
408
|
runId: taskId,
|
|
287
|
-
|
|
409
|
+
requestContext,
|
|
410
|
+
...contextId ? { threadId: contextId, resourceId } : {}
|
|
288
411
|
});
|
|
289
412
|
currentData = applyUpdateToTask(currentData, {
|
|
290
413
|
state: "completed",
|
|
@@ -345,7 +468,7 @@ async function* handleMessageStream({
|
|
|
345
468
|
agent,
|
|
346
469
|
agentId,
|
|
347
470
|
logger,
|
|
348
|
-
|
|
471
|
+
requestContext
|
|
349
472
|
}) {
|
|
350
473
|
yield createSuccessResponse(requestId, {
|
|
351
474
|
state: "working",
|
|
@@ -364,7 +487,7 @@ async function* handleMessageStream({
|
|
|
364
487
|
taskStore,
|
|
365
488
|
agent,
|
|
366
489
|
agentId,
|
|
367
|
-
|
|
490
|
+
requestContext,
|
|
368
491
|
logger
|
|
369
492
|
});
|
|
370
493
|
} catch (err) {
|
|
@@ -413,7 +536,7 @@ async function getAgentExecutionHandler({
|
|
|
413
536
|
requestId,
|
|
414
537
|
mastra,
|
|
415
538
|
agentId,
|
|
416
|
-
|
|
539
|
+
requestContext,
|
|
417
540
|
method,
|
|
418
541
|
params,
|
|
419
542
|
taskStore,
|
|
@@ -431,7 +554,7 @@ async function getAgentExecutionHandler({
|
|
|
431
554
|
taskStore,
|
|
432
555
|
agent,
|
|
433
556
|
agentId,
|
|
434
|
-
|
|
557
|
+
requestContext
|
|
435
558
|
});
|
|
436
559
|
return result2;
|
|
437
560
|
}
|
|
@@ -442,7 +565,7 @@ async function getAgentExecutionHandler({
|
|
|
442
565
|
params,
|
|
443
566
|
agent,
|
|
444
567
|
agentId,
|
|
445
|
-
|
|
568
|
+
requestContext
|
|
446
569
|
});
|
|
447
570
|
return result;
|
|
448
571
|
case "tasks/get": {
|
|
@@ -473,7 +596,79 @@ async function getAgentExecutionHandler({
|
|
|
473
596
|
return normalizeError(error, requestId, taskId, logger);
|
|
474
597
|
}
|
|
475
598
|
}
|
|
599
|
+
var GET_AGENT_CARD_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
|
|
600
|
+
method: "GET",
|
|
601
|
+
path: "/.well-known/:agentId/agent-card.json",
|
|
602
|
+
responseType: "json",
|
|
603
|
+
pathParamSchema: a2aAgentIdPathParams,
|
|
604
|
+
responseSchema: agentCardResponseSchema,
|
|
605
|
+
summary: "Get agent card",
|
|
606
|
+
description: "Returns the agent card information for A2A protocol discovery",
|
|
607
|
+
tags: ["Agent-to-Agent"],
|
|
608
|
+
handler: async ({ mastra, agentId, requestContext }) => {
|
|
609
|
+
const executionUrl = `/a2a/${agentId}`;
|
|
610
|
+
const provider = {
|
|
611
|
+
organization: "Mastra",
|
|
612
|
+
url: "https://mastra.ai"
|
|
613
|
+
};
|
|
614
|
+
const version = "1.0";
|
|
615
|
+
const agent = mastra.getAgentById(agentId);
|
|
616
|
+
if (!agent) {
|
|
617
|
+
throw new Error(`Agent with ID ${agentId} not found`);
|
|
618
|
+
}
|
|
619
|
+
const [instructions, tools] = await Promise.all([
|
|
620
|
+
agent.getInstructions({ requestContext }),
|
|
621
|
+
agent.listTools({ requestContext })
|
|
622
|
+
]);
|
|
623
|
+
const agentCard = {
|
|
624
|
+
name: agent.id || agentId,
|
|
625
|
+
description: chunkPUSD37LD_cjs.convertInstructionsToString(instructions),
|
|
626
|
+
url: executionUrl,
|
|
627
|
+
provider,
|
|
628
|
+
version,
|
|
629
|
+
capabilities: {
|
|
630
|
+
streaming: true,
|
|
631
|
+
pushNotifications: false,
|
|
632
|
+
stateTransitionHistory: false
|
|
633
|
+
},
|
|
634
|
+
defaultInputModes: ["text"],
|
|
635
|
+
defaultOutputModes: ["text"],
|
|
636
|
+
skills: Object.entries(tools).map(([toolId, tool]) => ({
|
|
637
|
+
id: toolId,
|
|
638
|
+
name: toolId,
|
|
639
|
+
description: tool.description || `Tool: ${toolId}`,
|
|
640
|
+
tags: ["tool"]
|
|
641
|
+
}))
|
|
642
|
+
};
|
|
643
|
+
return agentCard;
|
|
644
|
+
}
|
|
645
|
+
});
|
|
646
|
+
var AGENT_EXECUTION_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
|
|
647
|
+
method: "POST",
|
|
648
|
+
path: "/a2a/:agentId",
|
|
649
|
+
responseType: "json",
|
|
650
|
+
pathParamSchema: a2aAgentIdPathParams,
|
|
651
|
+
bodySchema: agentExecutionBodySchema,
|
|
652
|
+
responseSchema: agentExecutionResponseSchema,
|
|
653
|
+
summary: "Execute agent",
|
|
654
|
+
description: "Executes an agent action via JSON-RPC 2.0 over A2A protocol",
|
|
655
|
+
tags: ["Agent-to-Agent"],
|
|
656
|
+
handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {
|
|
657
|
+
const { id: requestId, method, params } = bodyParams;
|
|
658
|
+
return await getAgentExecutionHandler({
|
|
659
|
+
requestId: String(requestId),
|
|
660
|
+
mastra,
|
|
661
|
+
agentId,
|
|
662
|
+
requestContext,
|
|
663
|
+
method,
|
|
664
|
+
params,
|
|
665
|
+
taskStore
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
});
|
|
476
669
|
|
|
670
|
+
exports.AGENT_EXECUTION_ROUTE = AGENT_EXECUTION_ROUTE;
|
|
671
|
+
exports.GET_AGENT_CARD_ROUTE = GET_AGENT_CARD_ROUTE;
|
|
477
672
|
exports.a2a_exports = a2a_exports;
|
|
478
673
|
exports.getAgentCardByIdHandler = getAgentCardByIdHandler;
|
|
479
674
|
exports.getAgentExecutionHandler = getAgentExecutionHandler;
|
|
@@ -481,5 +676,5 @@ exports.handleMessageSend = handleMessageSend;
|
|
|
481
676
|
exports.handleMessageStream = handleMessageStream;
|
|
482
677
|
exports.handleTaskCancel = handleTaskCancel;
|
|
483
678
|
exports.handleTaskGet = handleTaskGet;
|
|
484
|
-
//# sourceMappingURL=chunk-
|
|
485
|
-
//# sourceMappingURL=chunk-
|
|
679
|
+
//# sourceMappingURL=chunk-C3D3X2L5.cjs.map
|
|
680
|
+
//# sourceMappingURL=chunk-C3D3X2L5.cjs.map
|