@mastra/server 0.0.0-new-scorer-api-20250801075530 → 0.0.0-new-button-export-20251219133013
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 +5548 -0
- package/README.md +2 -7
- package/dist/chunk-3BXS37TQ.js +1105 -0
- package/dist/chunk-3BXS37TQ.js.map +1 -0
- package/dist/chunk-3SFLFUKY.js +116 -0
- package/dist/chunk-3SFLFUKY.js.map +1 -0
- package/dist/chunk-3XI22UQR.cjs +148 -0
- package/dist/chunk-3XI22UQR.cjs.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-6V57U52D.js +196 -0
- package/dist/chunk-6V57U52D.js.map +1 -0
- package/dist/chunk-7KOS32XA.cjs +928 -0
- package/dist/chunk-7KOS32XA.cjs.map +1 -0
- package/dist/chunk-AZIH2QEC.js +83 -0
- package/dist/chunk-AZIH2QEC.js.map +1 -0
- package/dist/chunk-BMLUV4BH.cjs +992 -0
- package/dist/chunk-BMLUV4BH.cjs.map +1 -0
- package/dist/chunk-BMYZ4DO6.cjs +269 -0
- package/dist/chunk-BMYZ4DO6.cjs.map +1 -0
- package/dist/chunk-BNGT3NIC.cjs +211 -0
- package/dist/chunk-BNGT3NIC.cjs.map +1 -0
- package/dist/chunk-C3UIIRAT.cjs +920 -0
- package/dist/chunk-C3UIIRAT.cjs.map +1 -0
- package/dist/chunk-DRUNNM4C.js +328 -0
- package/dist/chunk-DRUNNM4C.js.map +1 -0
- package/dist/chunk-DVSCJECS.js +250 -0
- package/dist/chunk-DVSCJECS.js.map +1 -0
- package/dist/chunk-DW3WE4M4.js +250 -0
- package/dist/chunk-DW3WE4M4.js.map +1 -0
- package/dist/chunk-E646Y4FQ.js +970 -0
- package/dist/chunk-E646Y4FQ.js.map +1 -0
- package/dist/chunk-EUBTCHQC.js +83 -0
- package/dist/chunk-EUBTCHQC.js.map +1 -0
- package/dist/chunk-FWSKVWS7.cjs +88 -0
- package/dist/chunk-FWSKVWS7.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-GU4EWMZB.cjs +769 -0
- package/dist/chunk-GU4EWMZB.cjs.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-JUYWLFVT.cjs +689 -0
- package/dist/chunk-JUYWLFVT.cjs.map +1 -0
- package/dist/chunk-K73YS7YB.cjs +2777 -0
- package/dist/chunk-K73YS7YB.cjs.map +1 -0
- package/dist/chunk-KPSSRYGH.js +234 -0
- package/dist/chunk-KPSSRYGH.js.map +1 -0
- package/dist/chunk-LF2ZLOFP.js +767 -0
- package/dist/chunk-LF2ZLOFP.js.map +1 -0
- package/dist/chunk-LH722MPX.cjs +27569 -0
- package/dist/chunk-LH722MPX.cjs.map +1 -0
- package/dist/chunk-LKTCAPBD.cjs +252 -0
- package/dist/chunk-LKTCAPBD.cjs.map +1 -0
- package/dist/chunk-LQSZ4FJJ.cjs +205 -0
- package/dist/chunk-LQSZ4FJJ.cjs.map +1 -0
- package/dist/chunk-MCYD5LW7.cjs +90 -0
- package/dist/chunk-MCYD5LW7.cjs.map +1 -0
- package/dist/chunk-MQLS6Z7A.js +891 -0
- package/dist/chunk-MQLS6Z7A.js.map +1 -0
- package/dist/chunk-O7I5CWRX.cjs +44 -0
- package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
- package/dist/chunk-P3H4AZKI.cjs +252 -0
- package/dist/chunk-P3H4AZKI.cjs.map +1 -0
- package/dist/chunk-P6S2HIVE.cjs +1149 -0
- package/dist/chunk-P6S2HIVE.cjs.map +1 -0
- package/dist/chunk-PR4QN5HX.js +39 -0
- package/dist/{chunk-PZ5AY32C.js.map → chunk-PR4QN5HX.js.map} +1 -1
- package/dist/chunk-PUFCKXFW.cjs +312 -0
- package/dist/chunk-PUFCKXFW.cjs.map +1 -0
- package/dist/chunk-Q7NPRJRV.cjs +88 -0
- package/dist/chunk-Q7NPRJRV.cjs.map +1 -0
- package/dist/chunk-S3TIWWQL.cjs +322 -0
- package/dist/chunk-S3TIWWQL.cjs.map +1 -0
- package/dist/chunk-S5XBFHJL.js +675 -0
- package/dist/chunk-S5XBFHJL.js.map +1 -0
- package/dist/chunk-SRQY5IWD.js +204 -0
- package/dist/chunk-SRQY5IWD.js.map +1 -0
- package/dist/chunk-SV4AUWGY.js +2774 -0
- package/dist/chunk-SV4AUWGY.js.map +1 -0
- package/dist/chunk-SXVANU23.js +164 -0
- package/dist/chunk-SXVANU23.js.map +1 -0
- package/dist/chunk-TYZ6ZISQ.cjs +368 -0
- package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
- package/dist/chunk-UWRAKVAJ.js +903 -0
- package/dist/chunk-UWRAKVAJ.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-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
- package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
- package/dist/chunk-WBLT2HL3.js +144 -0
- package/dist/chunk-WBLT2HL3.js.map +1 -0
- package/dist/chunk-X43DWDXB.cjs +346 -0
- package/dist/chunk-X43DWDXB.cjs.map +1 -0
- package/dist/chunk-XW2HXQDO.js +302 -0
- package/dist/chunk-XW2HXQDO.js.map +1 -0
- package/dist/chunk-XWGAT2DA.js +44 -0
- package/dist/chunk-XWGAT2DA.js.map +1 -0
- package/dist/chunk-ZSD2NWTP.js +27527 -0
- package/dist/chunk-ZSD2NWTP.js.map +1 -0
- package/dist/dist-2J26LQO2.cjs +16 -0
- package/dist/dist-2J26LQO2.cjs.map +1 -0
- package/dist/dist-4CMHRWC4.js +1147 -0
- package/dist/dist-4CMHRWC4.js.map +1 -0
- package/dist/dist-AEJONJSS.js +937 -0
- package/dist/dist-AEJONJSS.js.map +1 -0
- package/dist/dist-AF7EUPXA.cjs +928 -0
- package/dist/dist-AF7EUPXA.cjs.map +1 -0
- package/dist/dist-MEN73GGI.js +3 -0
- package/dist/dist-MEN73GGI.js.map +1 -0
- package/dist/dist-NVXXJWBO.cjs +940 -0
- package/dist/dist-NVXXJWBO.cjs.map +1 -0
- package/dist/dist-Q2ST4SUQ.cjs +764 -0
- package/dist/dist-Q2ST4SUQ.cjs.map +1 -0
- package/dist/dist-TE7XRSWH.js +761 -0
- package/dist/dist-TE7XRSWH.js.map +1 -0
- package/dist/dist-VPYZNWNG.js +925 -0
- package/dist/dist-VPYZNWNG.js.map +1 -0
- package/dist/dist-Y5SYUVLY.cjs +1150 -0
- package/dist/dist-Y5SYUVLY.cjs.map +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/server/a2a/store.cjs +25 -0
- package/dist/server/a2a/store.cjs.map +1 -0
- package/dist/server/a2a/store.d.ts +3 -3
- package/dist/server/a2a/store.d.ts.map +1 -1
- package/dist/server/a2a/store.js +23 -0
- package/dist/server/a2a/store.js.map +1 -0
- package/dist/server/a2a/tasks.d.ts +7 -7
- package/dist/server/a2a/tasks.d.ts.map +1 -1
- 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 +19 -11
- package/dist/server/handlers/a2a.d.ts +507 -23
- 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 +80 -0
- package/dist/server/handlers/agent-builder.cjs.map +1 -0
- package/dist/server/handlers/agent-builder.d.ts +642 -0
- package/dist/server/handlers/agent-builder.d.ts.map +1 -0
- package/dist/server/handlers/agent-builder.js +3 -0
- package/dist/server/handlers/agent-builder.js.map +1 -0
- package/dist/server/handlers/agents.cjs +79 -15
- package/dist/server/handlers/agents.d.ts +3350 -72
- 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 +65 -29
- package/dist/server/handlers/memory.d.ts +935 -99
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +40 -0
- package/dist/server/handlers/observability.cjs.map +1 -0
- package/dist/server/handlers/observability.d.ts +156 -0
- package/dist/server/handlers/observability.d.ts.map +1 -0
- package/dist/server/handlers/observability.js +3 -0
- package/dist/server/handlers/observability.js.map +1 -0
- package/dist/server/handlers/scores.cjs +13 -13
- package/dist/server/handlers/scores.d.ts +112 -40
- 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 +13 -9
- package/dist/server/handlers/tools.d.ts +69 -19
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +14 -2
- package/dist/server/handlers/utils.d.ts +11 -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 +94 -10
- 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 -38
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +75 -31
- package/dist/server/handlers/workflows.d.ts +1000 -80
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +36 -36
- package/dist/server/handlers.d.ts +12 -12
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +12 -12
- 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 +213 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -0
- package/dist/server/schemas/agents.d.ts +1401 -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 +668 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +485 -0
- package/dist/server/server-adapter/index.cjs.map +1 -0
- package/dist/server/server-adapter/index.d.ts +91 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -0
- package/dist/server/server-adapter/index.js +470 -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 +45 -0
- package/dist/server/utils.d.ts.map +1 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs +63 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs.map +1 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js +61 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js.map +1 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs +63 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs.map +1 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js +61 -0
- package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js.map +1 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs +10 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js +8 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js.map +1 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js +8 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js.map +1 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs +10 -0
- package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs.map +1 -0
- package/package.json +66 -17
- package/dist/chunk-2XIJW7SV.cjs +0 -310
- package/dist/chunk-2XIJW7SV.cjs.map +0 -1
- package/dist/chunk-4CEZIJWJ.cjs +0 -150
- package/dist/chunk-4CEZIJWJ.cjs.map +0 -1
- package/dist/chunk-4MQU6AJN.js +0 -83
- package/dist/chunk-4MQU6AJN.js.map +0 -1
- package/dist/chunk-4QSNRCOT.cjs +0 -20
- package/dist/chunk-4QSNRCOT.cjs.map +0 -1
- package/dist/chunk-4US5W7PH.cjs +0 -120
- package/dist/chunk-4US5W7PH.cjs.map +0 -1
- package/dist/chunk-7FHF55WA.js +0 -2041
- package/dist/chunk-7FHF55WA.js.map +0 -1
- package/dist/chunk-BED2O446.cjs +0 -88
- package/dist/chunk-BED2O446.cjs.map +0 -1
- package/dist/chunk-BUOJL3MN.js +0 -529
- package/dist/chunk-BUOJL3MN.js.map +0 -1
- package/dist/chunk-G7NVCO5M.js +0 -123
- package/dist/chunk-G7NVCO5M.js.map +0 -1
- package/dist/chunk-GASWM5HJ.cjs +0 -514
- package/dist/chunk-GASWM5HJ.cjs.map +0 -1
- package/dist/chunk-HWHKM67I.js +0 -114
- package/dist/chunk-HWHKM67I.js.map +0 -1
- package/dist/chunk-HXIOPAHT.js +0 -541
- package/dist/chunk-HXIOPAHT.js.map +0 -1
- package/dist/chunk-ILCWPBYQ.cjs +0 -147
- package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
- package/dist/chunk-JGVY3KWV.cjs +0 -334
- package/dist/chunk-JGVY3KWV.cjs.map +0 -1
- package/dist/chunk-LRUH33B4.cjs +0 -2044
- package/dist/chunk-LRUH33B4.cjs.map +0 -1
- package/dist/chunk-MMROOK5J.js.map +0 -1
- package/dist/chunk-NCS2OXX6.cjs +0 -131
- package/dist/chunk-NCS2OXX6.cjs.map +0 -1
- package/dist/chunk-O4I563YW.cjs +0 -130
- package/dist/chunk-O4I563YW.cjs.map +0 -1
- package/dist/chunk-OW4FX5TS.js +0 -18
- package/dist/chunk-OW4FX5TS.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -9
- package/dist/chunk-Q7SFCCGT.cjs +0 -11
- package/dist/chunk-S37KCGOR.cjs +0 -546
- package/dist/chunk-S37KCGOR.cjs.map +0 -1
- package/dist/chunk-SQ7KKIH3.js +0 -143
- package/dist/chunk-SQ7KKIH3.js.map +0 -1
- package/dist/chunk-TRWPUPGD.js +0 -506
- package/dist/chunk-TRWPUPGD.js.map +0 -1
- package/dist/chunk-TXAQU2XN.js +0 -151
- package/dist/chunk-TXAQU2XN.js.map +0 -1
- package/dist/chunk-UVOSITKU.js +0 -322
- package/dist/chunk-UVOSITKU.js.map +0 -1
- package/dist/chunk-VIGPWTDA.cjs +0 -159
- package/dist/chunk-VIGPWTDA.cjs.map +0 -1
- package/dist/chunk-VOY6MGKA.js +0 -301
- package/dist/chunk-VOY6MGKA.js.map +0 -1
- package/dist/chunk-X5SDJOY6.cjs +0 -557
- package/dist/chunk-X5SDJOY6.cjs.map +0 -1
- package/dist/chunk-Y3J45CVZ.js +0 -144
- package/dist/chunk-Y3J45CVZ.js.map +0 -1
- package/dist/chunk-YS66MFDY.js +0 -124
- package/dist/chunk-YS66MFDY.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/network.cjs +0 -24
- package/dist/server/handlers/network.cjs.map +0 -1
- package/dist/server/handlers/network.d.ts +0 -50
- package/dist/server/handlers/network.d.ts.map +0 -1
- package/dist/server/handlers/network.js +0 -3
- package/dist/server/handlers/network.js.map +0 -1
- package/dist/server/handlers/telemetry.cjs +0 -16
- package/dist/server/handlers/telemetry.cjs.map +0 -1
- package/dist/server/handlers/telemetry.d.ts +0 -32
- 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/server/handlers/vNextNetwork.cjs +0 -220
- package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
- package/dist/server/handlers/vNextNetwork.d.ts +0 -179
- 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
|
@@ -0,0 +1,675 @@
|
|
|
1
|
+
import { convertInstructionsToString } from './chunk-WBLT2HL3.js';
|
|
2
|
+
import { createRoute } from './chunk-SXVANU23.js';
|
|
3
|
+
import { __export } from './chunk-PR4QN5HX.js';
|
|
4
|
+
import { MastraA2AError } from '@mastra/core/a2a';
|
|
5
|
+
import z, { z as z$1 } from 'zod';
|
|
6
|
+
|
|
7
|
+
// src/server/handlers/a2a.ts
|
|
8
|
+
var a2a_exports = {};
|
|
9
|
+
__export(a2a_exports, {
|
|
10
|
+
AGENT_EXECUTION_ROUTE: () => AGENT_EXECUTION_ROUTE,
|
|
11
|
+
GET_AGENT_CARD_ROUTE: () => GET_AGENT_CARD_ROUTE,
|
|
12
|
+
getAgentCardByIdHandler: () => getAgentCardByIdHandler,
|
|
13
|
+
getAgentExecutionHandler: () => getAgentExecutionHandler,
|
|
14
|
+
handleMessageSend: () => handleMessageSend,
|
|
15
|
+
handleMessageStream: () => handleMessageStream,
|
|
16
|
+
handleTaskCancel: () => handleTaskCancel,
|
|
17
|
+
handleTaskGet: () => handleTaskGet
|
|
18
|
+
});
|
|
19
|
+
function normalizeError(error, reqId, taskId, logger) {
|
|
20
|
+
let a2aError;
|
|
21
|
+
if (error instanceof MastraA2AError) {
|
|
22
|
+
a2aError = error;
|
|
23
|
+
} else if (error instanceof Error) {
|
|
24
|
+
a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });
|
|
25
|
+
} else {
|
|
26
|
+
a2aError = MastraA2AError.internalError("An unknown error occurred.", error);
|
|
27
|
+
}
|
|
28
|
+
if (taskId && !a2aError.taskId) {
|
|
29
|
+
a2aError.taskId = taskId;
|
|
30
|
+
}
|
|
31
|
+
logger?.error(`Error processing request (Task: ${a2aError.taskId ?? "N/A"}, ReqID: ${reqId ?? "N/A"}):`, a2aError);
|
|
32
|
+
return createErrorResponse(reqId, a2aError.toJSONRPCError());
|
|
33
|
+
}
|
|
34
|
+
function createErrorResponse(id, error) {
|
|
35
|
+
return {
|
|
36
|
+
jsonrpc: "2.0",
|
|
37
|
+
id,
|
|
38
|
+
// Can be null if request ID was invalid/missing
|
|
39
|
+
error
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function createSuccessResponse(id, result) {
|
|
43
|
+
if (!id) {
|
|
44
|
+
throw MastraA2AError.internalError("Cannot create success response for null ID.");
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
jsonrpc: "2.0",
|
|
48
|
+
id,
|
|
49
|
+
result
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function convertToCoreMessage(message) {
|
|
53
|
+
return {
|
|
54
|
+
role: message.role === "user" ? "user" : "assistant",
|
|
55
|
+
content: message.parts.map((msg) => convertToCoreMessagePart(msg))
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function convertToCoreMessagePart(part) {
|
|
59
|
+
switch (part.kind) {
|
|
60
|
+
case "text":
|
|
61
|
+
return {
|
|
62
|
+
type: "text",
|
|
63
|
+
text: part.text
|
|
64
|
+
};
|
|
65
|
+
case "file":
|
|
66
|
+
return {
|
|
67
|
+
type: "file",
|
|
68
|
+
data: "uri" in part.file ? new URL(part.file.uri) : part.file.bytes,
|
|
69
|
+
mimeType: part.file.mimeType
|
|
70
|
+
};
|
|
71
|
+
case "data":
|
|
72
|
+
throw new Error("Data parts are not supported in core messages");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// src/server/a2a/tasks.ts
|
|
77
|
+
function isTaskStatusUpdate(update) {
|
|
78
|
+
return "state" in update && !("parts" in update);
|
|
79
|
+
}
|
|
80
|
+
function isArtifactUpdate(update) {
|
|
81
|
+
return "kind" in update && update.kind === "artifact-update";
|
|
82
|
+
}
|
|
83
|
+
function applyUpdateToTask(current, update) {
|
|
84
|
+
let newTask = structuredClone(current);
|
|
85
|
+
if (isTaskStatusUpdate(update)) {
|
|
86
|
+
newTask.status = {
|
|
87
|
+
...newTask.status,
|
|
88
|
+
// Keep existing properties if not overwritten
|
|
89
|
+
...update,
|
|
90
|
+
// Apply updates
|
|
91
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
92
|
+
};
|
|
93
|
+
} else if (isArtifactUpdate(update)) {
|
|
94
|
+
if (!newTask.artifacts) {
|
|
95
|
+
newTask.artifacts = [];
|
|
96
|
+
} else {
|
|
97
|
+
newTask.artifacts = [...newTask.artifacts];
|
|
98
|
+
}
|
|
99
|
+
const artifact = update.artifact;
|
|
100
|
+
const existingIndex = newTask.artifacts.findIndex((a) => a.name === artifact.name);
|
|
101
|
+
const existingArtifact = newTask.artifacts[existingIndex];
|
|
102
|
+
if (existingArtifact) {
|
|
103
|
+
if (update.append) {
|
|
104
|
+
const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact));
|
|
105
|
+
appendedArtifact.parts.push(...artifact.parts);
|
|
106
|
+
if (artifact.metadata) {
|
|
107
|
+
appendedArtifact.metadata = {
|
|
108
|
+
...appendedArtifact.metadata || {},
|
|
109
|
+
...artifact.metadata
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (artifact.description) appendedArtifact.description = artifact.description;
|
|
113
|
+
newTask.artifacts[existingIndex] = appendedArtifact;
|
|
114
|
+
} else {
|
|
115
|
+
newTask.artifacts[existingIndex] = { ...artifact };
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
newTask.artifacts.push({ ...artifact });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return newTask;
|
|
122
|
+
}
|
|
123
|
+
async function loadOrCreateTask({
|
|
124
|
+
agentId,
|
|
125
|
+
taskId,
|
|
126
|
+
taskStore,
|
|
127
|
+
message,
|
|
128
|
+
contextId,
|
|
129
|
+
metadata,
|
|
130
|
+
logger
|
|
131
|
+
}) {
|
|
132
|
+
const data = await taskStore.load({ agentId, taskId });
|
|
133
|
+
if (!data) {
|
|
134
|
+
const initialTask = {
|
|
135
|
+
id: taskId,
|
|
136
|
+
contextId: contextId || crypto.randomUUID(),
|
|
137
|
+
status: {
|
|
138
|
+
state: "submitted",
|
|
139
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
140
|
+
message: void 0
|
|
141
|
+
},
|
|
142
|
+
artifacts: [],
|
|
143
|
+
history: [message],
|
|
144
|
+
metadata,
|
|
145
|
+
kind: "task"
|
|
146
|
+
};
|
|
147
|
+
logger?.info(`[Task ${taskId}] Created new task.`);
|
|
148
|
+
await taskStore.save({ agentId, data: initialTask });
|
|
149
|
+
return initialTask;
|
|
150
|
+
}
|
|
151
|
+
logger?.info(`[Task ${taskId}] Loaded existing task.`);
|
|
152
|
+
let updatedData = data;
|
|
153
|
+
updatedData.history = [...data.history || [], message];
|
|
154
|
+
const { status } = data;
|
|
155
|
+
const finalStates = ["completed", "failed", "canceled"];
|
|
156
|
+
if (finalStates.includes(status.state)) {
|
|
157
|
+
logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);
|
|
158
|
+
updatedData = applyUpdateToTask(updatedData, {
|
|
159
|
+
state: "submitted",
|
|
160
|
+
message: void 0
|
|
161
|
+
});
|
|
162
|
+
} else if (status.state === "input-required") {
|
|
163
|
+
logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);
|
|
164
|
+
updatedData = applyUpdateToTask(updatedData, { state: "working" });
|
|
165
|
+
} else if (status.state === "working") {
|
|
166
|
+
logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);
|
|
167
|
+
}
|
|
168
|
+
await taskStore.save({ agentId, data: updatedData });
|
|
169
|
+
return updatedData;
|
|
170
|
+
}
|
|
171
|
+
function createTaskContext({
|
|
172
|
+
task,
|
|
173
|
+
userMessage,
|
|
174
|
+
history,
|
|
175
|
+
activeCancellations
|
|
176
|
+
}) {
|
|
177
|
+
return {
|
|
178
|
+
task: structuredClone(task),
|
|
179
|
+
userMessage,
|
|
180
|
+
history: structuredClone(history),
|
|
181
|
+
isCancelled: () => activeCancellations.has(task.id)
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
var a2aAgentIdPathParams = z.object({
|
|
185
|
+
agentId: z.string().describe("Unique identifier for the agent")
|
|
186
|
+
});
|
|
187
|
+
a2aAgentIdPathParams.extend({
|
|
188
|
+
taskId: z.string().describe("Unique identifier for the task")
|
|
189
|
+
});
|
|
190
|
+
var pushNotificationAuthenticationInfoSchema = z.object({
|
|
191
|
+
schemes: z.array(z.string()).describe("Supported authentication schemes - e.g. Basic, Bearer"),
|
|
192
|
+
credentials: z.string().optional().describe("Optional credentials")
|
|
193
|
+
});
|
|
194
|
+
var pushNotificationConfigSchema = z.object({
|
|
195
|
+
url: z.string().describe("URL for sending the push notifications"),
|
|
196
|
+
id: z.string().optional().describe("Push Notification ID - created by server to support multiple callbacks"),
|
|
197
|
+
token: z.string().optional().describe("Token unique to this task/session"),
|
|
198
|
+
authentication: pushNotificationAuthenticationInfoSchema.optional()
|
|
199
|
+
});
|
|
200
|
+
var messageSendConfigurationSchema = z.object({
|
|
201
|
+
acceptedOutputModes: z.array(z.string()).describe("Accepted output modalities by the client"),
|
|
202
|
+
blocking: z.boolean().optional().describe("If the server should treat the client as a blocking request"),
|
|
203
|
+
historyLength: z.number().optional().describe("Number of recent messages to be retrieved"),
|
|
204
|
+
pushNotificationConfig: pushNotificationConfigSchema.optional()
|
|
205
|
+
});
|
|
206
|
+
var textPartSchema = z.object({
|
|
207
|
+
kind: z.literal("text").describe("Part type - text for TextParts"),
|
|
208
|
+
text: z.string().describe("Text content"),
|
|
209
|
+
metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
|
|
210
|
+
});
|
|
211
|
+
var fileWithBytesSchema = z.object({
|
|
212
|
+
bytes: z.string().describe("base64 encoded content of the file"),
|
|
213
|
+
mimeType: z.string().optional().describe("Optional mimeType for the file"),
|
|
214
|
+
name: z.string().optional().describe("Optional name for the file")
|
|
215
|
+
});
|
|
216
|
+
var fileWithUriSchema = z.object({
|
|
217
|
+
uri: z.string().describe("URL for the File content"),
|
|
218
|
+
mimeType: z.string().optional().describe("Optional mimeType for the file"),
|
|
219
|
+
name: z.string().optional().describe("Optional name for the file")
|
|
220
|
+
});
|
|
221
|
+
var filePartSchema = z.object({
|
|
222
|
+
kind: z.literal("file").describe("Part type - file for FileParts"),
|
|
223
|
+
file: z.union([fileWithBytesSchema, fileWithUriSchema]).describe("File content either as url or bytes"),
|
|
224
|
+
metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
|
|
225
|
+
});
|
|
226
|
+
var dataPartSchema = z.object({
|
|
227
|
+
kind: z.literal("data").describe("Part type - data for DataParts"),
|
|
228
|
+
data: z.record(z.unknown()).describe("Structured data content"),
|
|
229
|
+
metadata: z.record(z.unknown()).optional().describe("Optional metadata associated with the part")
|
|
230
|
+
});
|
|
231
|
+
var partSchema = z.union([textPartSchema, filePartSchema, dataPartSchema]);
|
|
232
|
+
var messageSchema = z.object({
|
|
233
|
+
kind: z.literal("message").describe("Event type"),
|
|
234
|
+
messageId: z.string().describe("Identifier created by the message creator"),
|
|
235
|
+
role: z.enum(["user", "agent"]).describe("Message sender's role"),
|
|
236
|
+
parts: z.array(partSchema).describe("Message content"),
|
|
237
|
+
contextId: z.string().optional().describe("The context the message is associated with"),
|
|
238
|
+
taskId: z.string().optional().describe("Identifier of task the message is related to"),
|
|
239
|
+
referenceTaskIds: z.array(z.string()).optional().describe("List of tasks referenced as context by this message"),
|
|
240
|
+
extensions: z.array(z.string()).optional().describe("The URIs of extensions that are present or contributed to this Message"),
|
|
241
|
+
metadata: z.record(z.unknown()).optional().describe("Extension metadata")
|
|
242
|
+
});
|
|
243
|
+
var messageSendParamsSchema = z.object({
|
|
244
|
+
message: messageSchema,
|
|
245
|
+
configuration: messageSendConfigurationSchema.optional(),
|
|
246
|
+
metadata: z.record(z.unknown()).optional().describe("Extension metadata")
|
|
247
|
+
});
|
|
248
|
+
var taskQueryParamsSchema = z.object({
|
|
249
|
+
id: z.string().describe("Task id"),
|
|
250
|
+
historyLength: z.number().optional().describe("Number of recent messages to be retrieved"),
|
|
251
|
+
metadata: z.record(z.unknown()).optional()
|
|
252
|
+
});
|
|
253
|
+
var taskIdParamsSchema = z.object({
|
|
254
|
+
id: z.string().describe("Task id"),
|
|
255
|
+
metadata: z.record(z.unknown()).optional()
|
|
256
|
+
});
|
|
257
|
+
z.object({
|
|
258
|
+
message: messageSchema,
|
|
259
|
+
metadata: z.record(z.any()).optional()
|
|
260
|
+
});
|
|
261
|
+
z.object({
|
|
262
|
+
id: z.string()
|
|
263
|
+
});
|
|
264
|
+
var agentExecutionParamsSchema = z.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);
|
|
265
|
+
var agentExecutionBodySchema = z.object({
|
|
266
|
+
jsonrpc: z.literal("2.0"),
|
|
267
|
+
id: z.union([z.string(), z.number()]),
|
|
268
|
+
method: z.enum(["message/send", "message/stream", "tasks/get", "tasks/cancel"]),
|
|
269
|
+
params: agentExecutionParamsSchema
|
|
270
|
+
});
|
|
271
|
+
var agentCardResponseSchema = z.object({
|
|
272
|
+
name: z.string(),
|
|
273
|
+
description: z.string(),
|
|
274
|
+
url: z.string(),
|
|
275
|
+
provider: z.object({
|
|
276
|
+
organization: z.string(),
|
|
277
|
+
url: z.string()
|
|
278
|
+
}).optional(),
|
|
279
|
+
version: z.string(),
|
|
280
|
+
capabilities: z.object({
|
|
281
|
+
streaming: z.boolean().optional(),
|
|
282
|
+
pushNotifications: z.boolean().optional(),
|
|
283
|
+
stateTransitionHistory: z.boolean().optional()
|
|
284
|
+
}),
|
|
285
|
+
defaultInputModes: z.array(z.string()),
|
|
286
|
+
defaultOutputModes: z.array(z.string()),
|
|
287
|
+
skills: z.array(
|
|
288
|
+
z.object({
|
|
289
|
+
id: z.string(),
|
|
290
|
+
name: z.string(),
|
|
291
|
+
description: z.string(),
|
|
292
|
+
tags: z.array(z.string()).optional()
|
|
293
|
+
})
|
|
294
|
+
)
|
|
295
|
+
});
|
|
296
|
+
z.unknown();
|
|
297
|
+
var agentExecutionResponseSchema = z.unknown();
|
|
298
|
+
|
|
299
|
+
// src/server/handlers/a2a.ts
|
|
300
|
+
var messageSendParamsSchema2 = z$1.object({
|
|
301
|
+
message: z$1.object({
|
|
302
|
+
role: z$1.enum(["user", "agent"]),
|
|
303
|
+
parts: z$1.array(
|
|
304
|
+
z$1.object({
|
|
305
|
+
kind: z$1.enum(["text"]),
|
|
306
|
+
text: z$1.string()
|
|
307
|
+
})
|
|
308
|
+
),
|
|
309
|
+
kind: z$1.literal("message"),
|
|
310
|
+
messageId: z$1.string(),
|
|
311
|
+
contextId: z$1.string().optional(),
|
|
312
|
+
taskId: z$1.string().optional(),
|
|
313
|
+
referenceTaskIds: z$1.array(z$1.string()).optional(),
|
|
314
|
+
extensions: z$1.array(z$1.string()).optional(),
|
|
315
|
+
metadata: z$1.record(z$1.any()).optional()
|
|
316
|
+
})
|
|
317
|
+
});
|
|
318
|
+
async function getAgentCardByIdHandler({
|
|
319
|
+
mastra,
|
|
320
|
+
agentId,
|
|
321
|
+
executionUrl = `/a2a/${agentId}`,
|
|
322
|
+
provider = {
|
|
323
|
+
organization: "Mastra",
|
|
324
|
+
url: "https://mastra.ai"
|
|
325
|
+
},
|
|
326
|
+
version = "1.0",
|
|
327
|
+
requestContext
|
|
328
|
+
}) {
|
|
329
|
+
const agent = mastra.getAgentById(agentId);
|
|
330
|
+
if (!agent) {
|
|
331
|
+
throw new Error(`Agent with ID ${agentId} not found`);
|
|
332
|
+
}
|
|
333
|
+
const [instructions, tools] = await Promise.all([
|
|
334
|
+
agent.getInstructions({ requestContext }),
|
|
335
|
+
agent.listTools({ requestContext })
|
|
336
|
+
]);
|
|
337
|
+
const agentCard = {
|
|
338
|
+
name: agent.id || agentId,
|
|
339
|
+
description: convertInstructionsToString(instructions),
|
|
340
|
+
url: executionUrl,
|
|
341
|
+
provider,
|
|
342
|
+
version,
|
|
343
|
+
capabilities: {
|
|
344
|
+
streaming: true,
|
|
345
|
+
// All agents support streaming
|
|
346
|
+
pushNotifications: false,
|
|
347
|
+
stateTransitionHistory: false
|
|
348
|
+
},
|
|
349
|
+
defaultInputModes: ["text"],
|
|
350
|
+
defaultOutputModes: ["text"],
|
|
351
|
+
// Convert agent tools to skills format for A2A protocol
|
|
352
|
+
skills: Object.entries(tools).map(([toolId, tool]) => ({
|
|
353
|
+
id: toolId,
|
|
354
|
+
name: toolId,
|
|
355
|
+
description: tool.description || `Tool: ${toolId}`,
|
|
356
|
+
// Optional fields
|
|
357
|
+
tags: ["tool"]
|
|
358
|
+
}))
|
|
359
|
+
};
|
|
360
|
+
return agentCard;
|
|
361
|
+
}
|
|
362
|
+
function validateMessageSendParams(params) {
|
|
363
|
+
try {
|
|
364
|
+
messageSendParamsSchema2.parse(params);
|
|
365
|
+
} catch (error) {
|
|
366
|
+
if (error instanceof z$1.ZodError) {
|
|
367
|
+
throw MastraA2AError.invalidParams(error.errors[0].message);
|
|
368
|
+
}
|
|
369
|
+
throw error;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
async function handleMessageSend({
|
|
373
|
+
requestId,
|
|
374
|
+
params,
|
|
375
|
+
taskStore,
|
|
376
|
+
agent,
|
|
377
|
+
agentId,
|
|
378
|
+
logger,
|
|
379
|
+
requestContext
|
|
380
|
+
}) {
|
|
381
|
+
validateMessageSendParams(params);
|
|
382
|
+
const { message, metadata } = params;
|
|
383
|
+
const { contextId } = message;
|
|
384
|
+
const taskId = message.taskId || crypto.randomUUID();
|
|
385
|
+
let currentData = await loadOrCreateTask({
|
|
386
|
+
taskId,
|
|
387
|
+
taskStore,
|
|
388
|
+
agentId,
|
|
389
|
+
message,
|
|
390
|
+
contextId,
|
|
391
|
+
metadata
|
|
392
|
+
});
|
|
393
|
+
createTaskContext({
|
|
394
|
+
task: currentData,
|
|
395
|
+
userMessage: message,
|
|
396
|
+
history: currentData.history || [],
|
|
397
|
+
activeCancellations: taskStore.activeCancellations
|
|
398
|
+
});
|
|
399
|
+
try {
|
|
400
|
+
const resourceId = metadata?.resourceId ?? message.metadata?.resourceId ?? agentId;
|
|
401
|
+
const result = await agent.generate([convertToCoreMessage(message)], {
|
|
402
|
+
runId: taskId,
|
|
403
|
+
requestContext,
|
|
404
|
+
...contextId ? { threadId: contextId, resourceId } : {}
|
|
405
|
+
});
|
|
406
|
+
currentData = applyUpdateToTask(currentData, {
|
|
407
|
+
state: "completed",
|
|
408
|
+
message: {
|
|
409
|
+
messageId: crypto.randomUUID(),
|
|
410
|
+
role: "agent",
|
|
411
|
+
parts: [
|
|
412
|
+
{
|
|
413
|
+
kind: "text",
|
|
414
|
+
text: result.text
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
kind: "message"
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
currentData.metadata = {
|
|
421
|
+
...currentData.metadata,
|
|
422
|
+
execution: {
|
|
423
|
+
toolCalls: result.toolCalls,
|
|
424
|
+
toolResults: result.toolResults,
|
|
425
|
+
usage: result.usage,
|
|
426
|
+
finishReason: result.finishReason
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
await taskStore.save({ agentId, data: currentData });
|
|
430
|
+
} catch (handlerError) {
|
|
431
|
+
const failureStatusUpdate = {
|
|
432
|
+
state: "failed",
|
|
433
|
+
message: {
|
|
434
|
+
messageId: crypto.randomUUID(),
|
|
435
|
+
role: "agent",
|
|
436
|
+
parts: [
|
|
437
|
+
{
|
|
438
|
+
kind: "text",
|
|
439
|
+
text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`
|
|
440
|
+
}
|
|
441
|
+
],
|
|
442
|
+
kind: "message"
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
currentData = applyUpdateToTask(currentData, failureStatusUpdate);
|
|
446
|
+
try {
|
|
447
|
+
await taskStore.save({ agentId, data: currentData });
|
|
448
|
+
} catch (saveError) {
|
|
449
|
+
logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);
|
|
450
|
+
}
|
|
451
|
+
return normalizeError(handlerError, requestId, currentData.id, logger);
|
|
452
|
+
}
|
|
453
|
+
return createSuccessResponse(requestId, currentData);
|
|
454
|
+
}
|
|
455
|
+
async function handleTaskGet({
|
|
456
|
+
requestId,
|
|
457
|
+
taskStore,
|
|
458
|
+
agentId,
|
|
459
|
+
taskId
|
|
460
|
+
}) {
|
|
461
|
+
const task = await taskStore.load({ agentId, taskId });
|
|
462
|
+
if (!task) {
|
|
463
|
+
throw MastraA2AError.taskNotFound(taskId);
|
|
464
|
+
}
|
|
465
|
+
return createSuccessResponse(requestId, task);
|
|
466
|
+
}
|
|
467
|
+
async function* handleMessageStream({
|
|
468
|
+
requestId,
|
|
469
|
+
params,
|
|
470
|
+
taskStore,
|
|
471
|
+
agent,
|
|
472
|
+
agentId,
|
|
473
|
+
logger,
|
|
474
|
+
requestContext
|
|
475
|
+
}) {
|
|
476
|
+
yield createSuccessResponse(requestId, {
|
|
477
|
+
state: "working",
|
|
478
|
+
message: {
|
|
479
|
+
messageId: crypto.randomUUID(),
|
|
480
|
+
kind: "message",
|
|
481
|
+
role: "agent",
|
|
482
|
+
parts: [{ kind: "text", text: "Generating response..." }]
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
let result;
|
|
486
|
+
try {
|
|
487
|
+
result = await handleMessageSend({
|
|
488
|
+
requestId,
|
|
489
|
+
params,
|
|
490
|
+
taskStore,
|
|
491
|
+
agent,
|
|
492
|
+
agentId,
|
|
493
|
+
requestContext,
|
|
494
|
+
logger
|
|
495
|
+
});
|
|
496
|
+
} catch (err) {
|
|
497
|
+
if (!(err instanceof MastraA2AError)) {
|
|
498
|
+
throw err;
|
|
499
|
+
}
|
|
500
|
+
result = createErrorResponse(requestId, err.toJSONRPCError());
|
|
501
|
+
}
|
|
502
|
+
yield result;
|
|
503
|
+
}
|
|
504
|
+
async function handleTaskCancel({
|
|
505
|
+
requestId,
|
|
506
|
+
taskStore,
|
|
507
|
+
agentId,
|
|
508
|
+
taskId,
|
|
509
|
+
logger
|
|
510
|
+
}) {
|
|
511
|
+
let data = await taskStore.load({
|
|
512
|
+
agentId,
|
|
513
|
+
taskId
|
|
514
|
+
});
|
|
515
|
+
if (!data) {
|
|
516
|
+
throw MastraA2AError.taskNotFound(taskId);
|
|
517
|
+
}
|
|
518
|
+
const finalStates = ["completed", "failed", "canceled"];
|
|
519
|
+
if (finalStates.includes(data.status.state)) {
|
|
520
|
+
logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);
|
|
521
|
+
return createSuccessResponse(requestId, data);
|
|
522
|
+
}
|
|
523
|
+
taskStore.activeCancellations.add(taskId);
|
|
524
|
+
const cancelUpdate = {
|
|
525
|
+
state: "canceled",
|
|
526
|
+
message: {
|
|
527
|
+
role: "agent",
|
|
528
|
+
parts: [{ kind: "text", text: "Task cancelled by request." }],
|
|
529
|
+
kind: "message",
|
|
530
|
+
messageId: crypto.randomUUID()
|
|
531
|
+
}
|
|
532
|
+
};
|
|
533
|
+
data = applyUpdateToTask(data, cancelUpdate);
|
|
534
|
+
await taskStore.save({ agentId, data });
|
|
535
|
+
taskStore.activeCancellations.delete(taskId);
|
|
536
|
+
return createSuccessResponse(requestId, data);
|
|
537
|
+
}
|
|
538
|
+
async function getAgentExecutionHandler({
|
|
539
|
+
requestId,
|
|
540
|
+
mastra,
|
|
541
|
+
agentId,
|
|
542
|
+
requestContext,
|
|
543
|
+
method,
|
|
544
|
+
params,
|
|
545
|
+
taskStore,
|
|
546
|
+
logger
|
|
547
|
+
}) {
|
|
548
|
+
const agent = mastra.getAgentById(agentId);
|
|
549
|
+
let taskId;
|
|
550
|
+
try {
|
|
551
|
+
taskId = "id" in params ? params.id : params.message?.taskId || "No task ID provided";
|
|
552
|
+
switch (method) {
|
|
553
|
+
case "message/send": {
|
|
554
|
+
const result2 = await handleMessageSend({
|
|
555
|
+
requestId,
|
|
556
|
+
params,
|
|
557
|
+
taskStore,
|
|
558
|
+
agent,
|
|
559
|
+
agentId,
|
|
560
|
+
requestContext
|
|
561
|
+
});
|
|
562
|
+
return result2;
|
|
563
|
+
}
|
|
564
|
+
case "message/stream":
|
|
565
|
+
const result = await handleMessageStream({
|
|
566
|
+
requestId,
|
|
567
|
+
taskStore,
|
|
568
|
+
params,
|
|
569
|
+
agent,
|
|
570
|
+
agentId,
|
|
571
|
+
requestContext
|
|
572
|
+
});
|
|
573
|
+
return result;
|
|
574
|
+
case "tasks/get": {
|
|
575
|
+
const result2 = await handleTaskGet({
|
|
576
|
+
requestId,
|
|
577
|
+
taskStore,
|
|
578
|
+
agentId,
|
|
579
|
+
taskId
|
|
580
|
+
});
|
|
581
|
+
return result2;
|
|
582
|
+
}
|
|
583
|
+
case "tasks/cancel": {
|
|
584
|
+
const result2 = await handleTaskCancel({
|
|
585
|
+
requestId,
|
|
586
|
+
taskStore,
|
|
587
|
+
agentId,
|
|
588
|
+
taskId
|
|
589
|
+
});
|
|
590
|
+
return result2;
|
|
591
|
+
}
|
|
592
|
+
default:
|
|
593
|
+
throw MastraA2AError.methodNotFound(method);
|
|
594
|
+
}
|
|
595
|
+
} catch (error) {
|
|
596
|
+
if (error instanceof MastraA2AError && taskId && !error.taskId) {
|
|
597
|
+
error.taskId = taskId;
|
|
598
|
+
}
|
|
599
|
+
return normalizeError(error, requestId, taskId, logger);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
var GET_AGENT_CARD_ROUTE = createRoute({
|
|
603
|
+
method: "GET",
|
|
604
|
+
path: "/.well-known/:agentId/agent-card.json",
|
|
605
|
+
responseType: "json",
|
|
606
|
+
pathParamSchema: a2aAgentIdPathParams,
|
|
607
|
+
responseSchema: agentCardResponseSchema,
|
|
608
|
+
summary: "Get agent card",
|
|
609
|
+
description: "Returns the agent card information for A2A protocol discovery",
|
|
610
|
+
tags: ["Agent-to-Agent"],
|
|
611
|
+
handler: async ({ mastra, agentId, requestContext }) => {
|
|
612
|
+
const executionUrl = `/a2a/${agentId}`;
|
|
613
|
+
const provider = {
|
|
614
|
+
organization: "Mastra",
|
|
615
|
+
url: "https://mastra.ai"
|
|
616
|
+
};
|
|
617
|
+
const version = "1.0";
|
|
618
|
+
const agent = mastra.getAgentById(agentId);
|
|
619
|
+
if (!agent) {
|
|
620
|
+
throw new Error(`Agent with ID ${agentId} not found`);
|
|
621
|
+
}
|
|
622
|
+
const [instructions, tools] = await Promise.all([
|
|
623
|
+
agent.getInstructions({ requestContext }),
|
|
624
|
+
agent.listTools({ requestContext })
|
|
625
|
+
]);
|
|
626
|
+
const agentCard = {
|
|
627
|
+
name: agent.id || agentId,
|
|
628
|
+
description: convertInstructionsToString(instructions),
|
|
629
|
+
url: executionUrl,
|
|
630
|
+
provider,
|
|
631
|
+
version,
|
|
632
|
+
capabilities: {
|
|
633
|
+
streaming: true,
|
|
634
|
+
pushNotifications: false,
|
|
635
|
+
stateTransitionHistory: false
|
|
636
|
+
},
|
|
637
|
+
defaultInputModes: ["text"],
|
|
638
|
+
defaultOutputModes: ["text"],
|
|
639
|
+
skills: Object.entries(tools).map(([toolId, tool]) => ({
|
|
640
|
+
id: toolId,
|
|
641
|
+
name: toolId,
|
|
642
|
+
description: tool.description || `Tool: ${toolId}`,
|
|
643
|
+
tags: ["tool"]
|
|
644
|
+
}))
|
|
645
|
+
};
|
|
646
|
+
return agentCard;
|
|
647
|
+
}
|
|
648
|
+
});
|
|
649
|
+
var AGENT_EXECUTION_ROUTE = createRoute({
|
|
650
|
+
method: "POST",
|
|
651
|
+
path: "/a2a/:agentId",
|
|
652
|
+
responseType: "json",
|
|
653
|
+
pathParamSchema: a2aAgentIdPathParams,
|
|
654
|
+
bodySchema: agentExecutionBodySchema,
|
|
655
|
+
responseSchema: agentExecutionResponseSchema,
|
|
656
|
+
summary: "Execute agent",
|
|
657
|
+
description: "Executes an agent action via JSON-RPC 2.0 over A2A protocol",
|
|
658
|
+
tags: ["Agent-to-Agent"],
|
|
659
|
+
handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {
|
|
660
|
+
const { id: requestId, method, params } = bodyParams;
|
|
661
|
+
return await getAgentExecutionHandler({
|
|
662
|
+
requestId: String(requestId),
|
|
663
|
+
mastra,
|
|
664
|
+
agentId,
|
|
665
|
+
requestContext,
|
|
666
|
+
method,
|
|
667
|
+
params,
|
|
668
|
+
taskStore
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
});
|
|
672
|
+
|
|
673
|
+
export { AGENT_EXECUTION_ROUTE, GET_AGENT_CARD_ROUTE, a2a_exports, getAgentCardByIdHandler, getAgentExecutionHandler, handleMessageSend, handleMessageStream, handleTaskCancel, handleTaskGet };
|
|
674
|
+
//# sourceMappingURL=chunk-S5XBFHJL.js.map
|
|
675
|
+
//# sourceMappingURL=chunk-S5XBFHJL.js.map
|