@mastra/server 0.0.0-sidebar-window-undefined-fix-20251029233656 → 0.0.0-standard-schema-20260123120255
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 +2492 -3
- package/README.md +2 -2
- package/a2a/store.d.ts +1 -0
- package/auth.d.ts +1 -0
- package/dist/{chunk-SHWNNZBL.js → chunk-24SISJRB.js} +13 -17
- package/dist/chunk-24SISJRB.js.map +1 -0
- package/dist/chunk-2JNW2CLE.js +180 -0
- package/dist/chunk-2JNW2CLE.js.map +1 -0
- package/dist/chunk-2UHOWYFV.js +184 -0
- package/dist/chunk-2UHOWYFV.js.map +1 -0
- package/dist/chunk-3W67K7YE.js +13 -0
- package/dist/chunk-3W67K7YE.js.map +1 -0
- package/dist/chunk-4HFYR562.cjs +82 -0
- package/dist/chunk-4HFYR562.cjs.map +1 -0
- package/dist/chunk-55TH4ME5.js +170 -0
- package/dist/chunk-55TH4ME5.js.map +1 -0
- package/dist/chunk-55XIQCGI.cjs +1128 -0
- package/dist/chunk-55XIQCGI.cjs.map +1 -0
- package/dist/chunk-5NQ3GWUJ.cjs +1118 -0
- package/dist/chunk-5NQ3GWUJ.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-QU6N55W6.cjs → chunk-6G2RQWKA.cjs} +17 -21
- package/dist/chunk-6G2RQWKA.cjs.map +1 -0
- package/dist/chunk-6NLJ5YC3.cjs +216 -0
- package/dist/chunk-6NLJ5YC3.cjs.map +1 -0
- package/dist/chunk-6OFKRQQL.js +45 -0
- package/dist/chunk-6OFKRQQL.js.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-7AINN3FK.js +26 -0
- package/dist/chunk-7AINN3FK.js.map +1 -0
- package/dist/chunk-7D3UAMQM.cjs +82 -0
- package/dist/chunk-7D3UAMQM.cjs.map +1 -0
- package/dist/chunk-7ERB6H6K.js +334 -0
- package/dist/chunk-7ERB6H6K.js.map +1 -0
- package/dist/chunk-AEMLCRS5.cjs +1140 -0
- package/dist/chunk-AEMLCRS5.cjs.map +1 -0
- package/dist/chunk-BLCHLNBT.js +442 -0
- package/dist/chunk-BLCHLNBT.js.map +1 -0
- package/dist/chunk-BSOLG32W.js +1089 -0
- package/dist/chunk-BSOLG32W.js.map +1 -0
- package/dist/chunk-CQUWREB2.js +332 -0
- package/dist/chunk-CQUWREB2.js.map +1 -0
- package/dist/chunk-CRCXQW5R.cjs +47 -0
- package/dist/chunk-CRCXQW5R.cjs.map +1 -0
- package/dist/{chunk-MN2TZQ7I.js → chunk-CT7S7VRG.js} +232 -38
- package/dist/chunk-CT7S7VRG.js.map +1 -0
- package/dist/chunk-D23WBCJ6.js +227 -0
- package/dist/chunk-D23WBCJ6.js.map +1 -0
- package/dist/chunk-DOU5IGJB.js +242 -0
- package/dist/chunk-DOU5IGJB.js.map +1 -0
- package/dist/chunk-DUTGH2DM.js +31748 -0
- package/dist/chunk-DUTGH2DM.js.map +1 -0
- package/dist/chunk-E2SZSFGZ.cjs +128 -0
- package/dist/chunk-E2SZSFGZ.cjs.map +1 -0
- package/dist/chunk-EH45MGLR.cjs +322 -0
- package/dist/chunk-EH45MGLR.cjs.map +1 -0
- package/dist/chunk-FRRHYZR6.cjs +88 -0
- package/dist/chunk-FRRHYZR6.cjs.map +1 -0
- package/dist/{chunk-ZULZ2752.js → chunk-FXW7MD4U.js} +3 -3
- package/dist/chunk-FXW7MD4U.js.map +1 -0
- package/dist/chunk-GGAV65A7.cjs +352 -0
- package/dist/chunk-GGAV65A7.cjs.map +1 -0
- package/dist/chunk-HT4LP3BO.js +75 -0
- package/dist/chunk-HT4LP3BO.js.map +1 -0
- package/dist/chunk-HZINLMHL.cjs +252 -0
- package/dist/chunk-HZINLMHL.cjs.map +1 -0
- package/dist/{chunk-RQK4FQUD.js → chunk-IGXRQWNN.js} +6 -48
- package/dist/chunk-IGXRQWNN.js.map +1 -0
- package/dist/chunk-IROUDQSO.js +246 -0
- package/dist/chunk-IROUDQSO.js.map +1 -0
- package/dist/chunk-IS3HHGL4.js +250 -0
- package/dist/chunk-IS3HHGL4.js.map +1 -0
- package/dist/chunk-JJLEVKG7.js +576 -0
- package/dist/chunk-JJLEVKG7.js.map +1 -0
- package/dist/chunk-K34R4R2T.cjs +233 -0
- package/dist/chunk-K34R4R2T.cjs.map +1 -0
- package/dist/chunk-K4HSW5ZF.js +77 -0
- package/dist/chunk-K4HSW5ZF.js.map +1 -0
- package/dist/chunk-L2U75ERO.cjs +344 -0
- package/dist/chunk-L2U75ERO.cjs.map +1 -0
- package/dist/chunk-L2VZFGWH.cjs +31787 -0
- package/dist/chunk-L2VZFGWH.cjs.map +1 -0
- package/dist/chunk-L7LB66KK.cjs +450 -0
- package/dist/chunk-L7LB66KK.cjs.map +1 -0
- package/dist/chunk-LJ6YRVDI.cjs +15 -0
- package/dist/chunk-LJ6YRVDI.cjs.map +1 -0
- package/dist/chunk-MCYD5LW7.cjs +90 -0
- package/dist/chunk-MCYD5LW7.cjs.map +1 -0
- package/dist/chunk-MF4PZE2D.js +119 -0
- package/dist/chunk-MF4PZE2D.js.map +1 -0
- package/dist/chunk-MP6TNZXA.cjs +212 -0
- package/dist/chunk-MP6TNZXA.cjs.map +1 -0
- package/dist/chunk-MPM2W4IS.js +312 -0
- package/dist/chunk-MPM2W4IS.js.map +1 -0
- package/dist/chunk-NE4CLM6P.cjs +190 -0
- package/dist/chunk-NE4CLM6P.cjs.map +1 -0
- package/dist/chunk-NL6ELCFS.cjs +603 -0
- package/dist/chunk-NL6ELCFS.cjs.map +1 -0
- package/dist/chunk-OD6Y7FEM.cjs +280 -0
- package/dist/chunk-OD6Y7FEM.cjs.map +1 -0
- package/dist/chunk-OS7SAIRA.js +250 -0
- package/dist/chunk-OS7SAIRA.js.map +1 -0
- package/dist/chunk-PWXUI3OG.cjs +252 -0
- package/dist/chunk-PWXUI3OG.cjs.map +1 -0
- package/dist/chunk-QAXO2LQT.js +1098 -0
- package/dist/chunk-QAXO2LQT.js.map +1 -0
- package/dist/chunk-RIX6WEJ2.js +83 -0
- package/dist/chunk-RIX6WEJ2.js.map +1 -0
- package/dist/chunk-RRVA4RVW.js +203 -0
- package/dist/chunk-RRVA4RVW.js.map +1 -0
- package/dist/{chunk-LPM6BBAX.cjs → chunk-SLDAFSKJ.cjs} +5 -56
- package/dist/chunk-SLDAFSKJ.cjs.map +1 -0
- package/dist/{chunk-2PLXW4ZX.cjs → chunk-T6YYVQHJ.cjs} +74 -74
- package/dist/chunk-T6YYVQHJ.cjs.map +1 -0
- package/dist/chunk-TF4LSD27.cjs +180 -0
- package/dist/chunk-TF4LSD27.cjs.map +1 -0
- package/dist/chunk-TM6IOINJ.cjs +252 -0
- package/dist/chunk-TM6IOINJ.cjs.map +1 -0
- package/dist/chunk-UVE6SV6I.js +209 -0
- package/dist/chunk-UVE6SV6I.js.map +1 -0
- package/dist/chunk-UWYAL2Z3.cjs +29 -0
- package/dist/chunk-UWYAL2Z3.cjs.map +1 -0
- package/dist/{chunk-CJFKRVED.cjs → chunk-VES6QKOW.cjs} +66 -16
- package/dist/chunk-VES6QKOW.cjs.map +1 -0
- package/dist/chunk-W7HAZD2A.js +1098 -0
- package/dist/chunk-W7HAZD2A.js.map +1 -0
- package/dist/{chunk-K5T5A3AL.cjs → chunk-WNQUNLRT.cjs} +238 -38
- package/dist/chunk-WNQUNLRT.cjs.map +1 -0
- package/dist/chunk-XKLJYRAA.js +77 -0
- package/dist/chunk-XKLJYRAA.js.map +1 -0
- package/dist/chunk-XWGAT2DA.js +44 -0
- package/dist/chunk-XWGAT2DA.js.map +1 -0
- package/dist/{dist-G2BYZJOC.cjs → dist-2GQKYJ34.cjs} +28 -28
- package/dist/dist-2GQKYJ34.cjs.map +1 -0
- package/dist/{dist-X7XR3M3Z.js → dist-C6BUHOEE.js} +3 -3
- package/dist/dist-C6BUHOEE.js.map +1 -0
- package/dist/dist-DGOEFPQD.cjs +16 -0
- package/dist/{dist-P4MXBQ3U.cjs.map → dist-DGOEFPQD.cjs.map} +1 -1
- package/dist/dist-FT2OR7OS.js +3 -0
- package/dist/{dist-YREX2TJT.js.map → dist-FT2OR7OS.js.map} +1 -1
- package/dist/{dist-XVBSOGFK.js → dist-G4CR4WYY.js} +3 -3
- package/dist/dist-G4CR4WYY.js.map +1 -0
- package/dist/{dist-PQZUVLPC.js → dist-G5QFRYLQ.js} +3 -3
- package/dist/dist-G5QFRYLQ.js.map +1 -0
- package/dist/{dist-4MVGNSRL.cjs → dist-JPQK5S4K.cjs} +20 -20
- package/dist/dist-JPQK5S4K.cjs.map +1 -0
- package/dist/{dist-R7WYX6LC.js → dist-MIDN25GT.js} +3 -3
- package/dist/dist-MIDN25GT.js.map +1 -0
- package/dist/{dist-RFMYFILX.cjs → dist-SNKH6NS2.cjs} +30 -30
- package/dist/dist-SNKH6NS2.cjs.map +1 -0
- package/dist/{dist-FZYCV3VB.cjs → dist-XBQPKAO4.cjs} +26 -26
- package/dist/dist-XBQPKAO4.cjs.map +1 -0
- package/dist/docs/README.md +31 -0
- package/dist/docs/SKILL.md +32 -0
- package/dist/docs/SOURCE_MAP.json +6 -0
- package/dist/docs/server/01-custom-adapters.md +380 -0
- package/dist/docs/server/02-reference.md +819 -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 +44 -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 +3 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/auth/path-pattern.d.ts +43 -0
- package/dist/server/auth/path-pattern.d.ts.map +1 -0
- package/dist/server/handlers/a2a.cjs +15 -7
- package/dist/server/handlers/a2a.d.ts +106 -10
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +31 -31
- package/dist/server/handlers/agent-builder.d.ts +289 -87
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +60 -0
- package/dist/server/handlers/agent-versions.cjs.map +1 -0
- package/dist/server/handlers/agent-versions.d.ts +425 -0
- package/dist/server/handlers/agent-versions.d.ts.map +1 -0
- package/dist/server/handlers/agent-versions.js +3 -0
- package/dist/server/handlers/agent-versions.js.map +1 -0
- package/dist/server/handlers/agents.cjs +71 -39
- package/dist/server/handlers/agents.d.ts +730 -151
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +6 -2
- package/dist/server/handlers/error.d.ts +22 -0
- package/dist/server/handlers/error.d.ts.map +1 -1
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/logs.cjs +7 -7
- package/dist/server/handlers/logs.d.ts +87 -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 +92 -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 +67 -31
- package/dist/server/handlers/memory.d.ts +424 -105
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +9 -9
- package/dist/server/handlers/observability.d.ts +133 -43
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/processors.cjs +20 -0
- package/dist/server/handlers/processors.cjs.map +1 -0
- package/dist/server/handlers/processors.d.ts +90 -0
- package/dist/server/handlers/processors.d.ts.map +1 -0
- package/dist/server/handlers/processors.js +3 -0
- package/dist/server/handlers/processors.js.map +1 -0
- package/dist/server/handlers/scores.cjs +13 -13
- package/dist/server/handlers/scores.d.ts +78 -145
- 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 +214 -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/system.cjs +12 -0
- package/dist/server/handlers/system.cjs.map +1 -0
- package/dist/server/handlers/system.d.ts +7 -0
- package/dist/server/handlers/system.d.ts.map +1 -0
- package/dist/server/handlers/system.js +3 -0
- package/dist/server/handlers/system.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 +41 -24
- 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 +52 -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 +42 -39
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +53 -41
- package/dist/server/handlers/workflows.d.ts +425 -86
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +34 -34
- package/dist/server/handlers.d.ts +1 -1
- 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 +142 -0
- package/dist/server/schemas/a2a.d.ts.map +1 -0
- package/dist/server/schemas/agent-builder.d.ts +78 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -0
- package/dist/server/schemas/agent-versions.d.ts +379 -0
- package/dist/server/schemas/agent-versions.d.ts.map +1 -0
- package/dist/server/schemas/agents.d.ts +496 -0
- package/dist/server/schemas/agents.d.ts.map +1 -0
- package/dist/server/schemas/common.d.ts +99 -0
- package/dist/server/schemas/common.d.ts.map +1 -0
- package/dist/server/schemas/logs.d.ts +56 -0
- package/dist/server/schemas/logs.d.ts.map +1 -0
- package/dist/server/schemas/mcp.d.ts +91 -0
- package/dist/server/schemas/mcp.d.ts.map +1 -0
- package/dist/server/schemas/memory.d.ts +455 -0
- package/dist/server/schemas/memory.d.ts.map +1 -0
- package/dist/server/schemas/processors.d.ts +162 -0
- package/dist/server/schemas/processors.d.ts.map +1 -0
- package/dist/server/schemas/scores.d.ts +77 -0
- package/dist/server/schemas/scores.d.ts.map +1 -0
- package/dist/server/schemas/stored-agents.d.ts +274 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -0
- package/dist/server/schemas/system.d.ts +14 -0
- package/dist/server/schemas/system.d.ts.map +1 -0
- package/dist/server/schemas/vectors.d.ts +47 -0
- package/dist/server/schemas/vectors.d.ts.map +1 -0
- package/dist/server/schemas/workflows.d.ts +371 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +627 -0
- package/dist/server/server-adapter/index.cjs.map +1 -0
- package/dist/server/server-adapter/index.d.ts +130 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -0
- package/dist/server/server-adapter/index.js +599 -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 +52 -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/processors.d.ts +3 -0
- package/dist/server/server-adapter/routes/processors.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/route-builder.d.ts +112 -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/system.d.ts +12 -0
- package/dist/server/server-adapter/routes/system.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-375W3LEI.cjs → token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs} +11 -12
- package/dist/token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs.map +1 -0
- package/dist/{token-C3IMNCC4.js → token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js} +8 -9
- package/dist/token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js.map +1 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs +63 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs.map +1 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js +61 -0
- package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js.map +1 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs +63 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs.map +1 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js +61 -0
- package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js.map +1 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js +8 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js.map +1 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs +10 -0
- package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js +8 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js.map +1 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs +10 -0
- package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs +10 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js +8 -0
- package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js.map +1 -0
- package/handlers/server/handlers.d.ts +1 -0
- package/handlers.d.ts +1 -0
- package/package.json +46 -16
- package/server-adapter.d.ts +1 -0
- package/dist/chunk-2P4VRXBT.js +0 -533
- package/dist/chunk-2P4VRXBT.js.map +0 -1
- package/dist/chunk-2PLXW4ZX.cjs.map +0 -1
- 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-4QCXUEAT.js +0 -25
- package/dist/chunk-4QCXUEAT.js.map +0 -1
- package/dist/chunk-6VPAV4ZV.js +0 -692
- package/dist/chunk-6VPAV4ZV.js.map +0 -1
- package/dist/chunk-7HCPO76Z.js +0 -19548
- package/dist/chunk-7HCPO76Z.js.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-B7QWVGQQ.cjs +0 -729
- package/dist/chunk-B7QWVGQQ.cjs.map +0 -1
- package/dist/chunk-BATEJLED.js +0 -124
- package/dist/chunk-BATEJLED.js.map +0 -1
- package/dist/chunk-CJFKRVED.cjs.map +0 -1
- package/dist/chunk-CY4TP3FK.js +0 -16
- package/dist/chunk-CY4TP3FK.js.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-GDUKGVFI.cjs +0 -550
- package/dist/chunk-GDUKGVFI.cjs.map +0 -1
- package/dist/chunk-I3C4ODGV.cjs +0 -335
- package/dist/chunk-I3C4ODGV.cjs.map +0 -1
- package/dist/chunk-K5T5A3AL.cjs.map +0 -1
- package/dist/chunk-KDUHLUK4.cjs +0 -19584
- package/dist/chunk-KDUHLUK4.cjs.map +0 -1
- package/dist/chunk-KSFLUEWV.js +0 -130
- package/dist/chunk-KSFLUEWV.js.map +0 -1
- package/dist/chunk-LLUOPR3J.js +0 -323
- package/dist/chunk-LLUOPR3J.js.map +0 -1
- package/dist/chunk-LPM6BBAX.cjs.map +0 -1
- package/dist/chunk-MMROOK5J.js.map +0 -1
- package/dist/chunk-MN2TZQ7I.js.map +0 -1
- package/dist/chunk-MYR4PVGN.js +0 -123
- package/dist/chunk-MYR4PVGN.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-RE4RPXT2.cjs +0 -18
- package/dist/chunk-RE4RPXT2.cjs.map +0 -1
- package/dist/chunk-RQK4FQUD.js.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-TOCYBDP2.js +0 -46
- package/dist/chunk-TOCYBDP2.js.map +0 -1
- package/dist/chunk-TRGAMKHX.cjs +0 -167
- package/dist/chunk-TRGAMKHX.cjs.map +0 -1
- package/dist/chunk-X6C7BUWN.cjs +0 -48
- package/dist/chunk-X6C7BUWN.cjs.map +0 -1
- package/dist/chunk-XN74I6VW.cjs +0 -88
- package/dist/chunk-XN74I6VW.cjs.map +0 -1
- package/dist/chunk-YSHNCC6F.cjs +0 -713
- package/dist/chunk-YSHNCC6F.cjs.map +0 -1
- package/dist/chunk-ZLBL4NQC.js +0 -707
- package/dist/chunk-ZLBL4NQC.js.map +0 -1
- package/dist/chunk-ZULZ2752.js.map +0 -1
- package/dist/dist-4MVGNSRL.cjs.map +0 -1
- package/dist/dist-FZYCV3VB.cjs.map +0 -1
- package/dist/dist-G2BYZJOC.cjs.map +0 -1
- package/dist/dist-P4MXBQ3U.cjs +0 -16
- package/dist/dist-PQZUVLPC.js.map +0 -1
- package/dist/dist-R7WYX6LC.js.map +0 -1
- package/dist/dist-RFMYFILX.cjs.map +0 -1
- package/dist/dist-X7XR3M3Z.js.map +0 -1
- package/dist/dist-XVBSOGFK.js.map +0 -1
- package/dist/dist-YREX2TJT.js +0 -3
- 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/token-375W3LEI.cjs.map +0 -1
- package/dist/token-C3IMNCC4.js.map +0 -1
- package/dist/token-util-CV3RRG6K.cjs +0 -9
- package/dist/token-util-CV3RRG6K.cjs.map +0 -1
- package/dist/token-util-E5QO2RCL.js +0 -7
- package/dist/token-util-E5QO2RCL.js.map +0 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/server/auth/defaults.ts
|
|
4
|
+
var defaultAuthConfig = {
|
|
5
|
+
protected: ["/api/*"],
|
|
6
|
+
public: ["/api"],
|
|
7
|
+
// Simple rule system
|
|
8
|
+
rules: [
|
|
9
|
+
// Admin users can do anything
|
|
10
|
+
{
|
|
11
|
+
condition: (user) => {
|
|
12
|
+
if (typeof user === "object" && user !== null) {
|
|
13
|
+
if ("isAdmin" in user) {
|
|
14
|
+
return !!user.isAdmin;
|
|
15
|
+
}
|
|
16
|
+
if ("role" in user) {
|
|
17
|
+
return user.role === "admin";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
},
|
|
22
|
+
allow: true
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// src/server/auth/path-pattern.ts
|
|
28
|
+
function parse(input, loose) {
|
|
29
|
+
if (input instanceof RegExp) return { keys: false, pattern: input };
|
|
30
|
+
let c;
|
|
31
|
+
let o;
|
|
32
|
+
let tmp;
|
|
33
|
+
let ext;
|
|
34
|
+
const keys = [];
|
|
35
|
+
let pattern = "";
|
|
36
|
+
const arr = input.split("/");
|
|
37
|
+
arr[0] || arr.shift();
|
|
38
|
+
while (tmp = arr.shift()) {
|
|
39
|
+
c = tmp[0];
|
|
40
|
+
if (c === "*") {
|
|
41
|
+
keys.push(c);
|
|
42
|
+
pattern += tmp[1] === "?" ? "(?:/(.*))?" : "/(.*)";
|
|
43
|
+
} else if (c === ":") {
|
|
44
|
+
o = tmp.indexOf("?", 1);
|
|
45
|
+
ext = tmp.indexOf(".", 1);
|
|
46
|
+
keys.push(tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length));
|
|
47
|
+
pattern += !!~o && !~ext ? "(?:/([^/]+?))?" : "/([^/]+?)";
|
|
48
|
+
if (!!~ext) pattern += (!!~o ? "?" : "") + "\\" + tmp.substring(ext);
|
|
49
|
+
} else {
|
|
50
|
+
pattern += "/" + tmp;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
keys,
|
|
55
|
+
pattern: new RegExp("^" + pattern + ("/?$"), "i")
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/server/auth/helpers.ts
|
|
60
|
+
var isDevPlaygroundRequest = (path, method, getHeader, authConfig) => {
|
|
61
|
+
const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
|
|
62
|
+
return process.env.MASTRA_DEV === "true" && (!isAnyMatch(path, method, protectedAccess) || getHeader("x-mastra-dev-playground") === "true");
|
|
63
|
+
};
|
|
64
|
+
var isCustomRoutePublic = (path, method, customRouteAuthConfig) => {
|
|
65
|
+
if (!customRouteAuthConfig) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
const exactRouteKey = `${method}:${path}`;
|
|
69
|
+
if (customRouteAuthConfig.has(exactRouteKey)) {
|
|
70
|
+
return !customRouteAuthConfig.get(exactRouteKey);
|
|
71
|
+
}
|
|
72
|
+
const allRouteKey = `ALL:${path}`;
|
|
73
|
+
if (customRouteAuthConfig.has(allRouteKey)) {
|
|
74
|
+
return !customRouteAuthConfig.get(allRouteKey);
|
|
75
|
+
}
|
|
76
|
+
for (const [routeKey, requiresAuth] of customRouteAuthConfig.entries()) {
|
|
77
|
+
const colonIndex = routeKey.indexOf(":");
|
|
78
|
+
if (colonIndex === -1) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const routeMethod = routeKey.substring(0, colonIndex);
|
|
82
|
+
const routePattern = routeKey.substring(colonIndex + 1);
|
|
83
|
+
if (routeMethod !== method && routeMethod !== "ALL") {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (pathMatchesPattern(path, routePattern)) {
|
|
87
|
+
return !requiresAuth;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
};
|
|
92
|
+
var isProtectedPath = (path, method, authConfig, customRouteAuthConfig) => {
|
|
93
|
+
const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
|
|
94
|
+
return isAnyMatch(path, method, protectedAccess) || !isCustomRoutePublic(path, method, customRouteAuthConfig);
|
|
95
|
+
};
|
|
96
|
+
var canAccessPublicly = (path, method, authConfig) => {
|
|
97
|
+
const publicAccess = [...defaultAuthConfig.public || [], ...authConfig.public || []];
|
|
98
|
+
return isAnyMatch(path, method, publicAccess);
|
|
99
|
+
};
|
|
100
|
+
var isAnyMatch = (path, method, patterns) => {
|
|
101
|
+
if (!patterns) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
for (const patternPathOrMethod of patterns) {
|
|
105
|
+
if (patternPathOrMethod instanceof RegExp) {
|
|
106
|
+
if (patternPathOrMethod.test(path)) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (typeof patternPathOrMethod === "string" && pathMatchesPattern(path, patternPathOrMethod)) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(patternPathOrMethod) && patternPathOrMethod.length === 2) {
|
|
114
|
+
const [pattern, methodOrMethods] = patternPathOrMethod;
|
|
115
|
+
if (pathMatchesPattern(path, pattern) && matchesOrIncludes(methodOrMethods, method)) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
};
|
|
122
|
+
var pathMatchesPattern = (path, pattern) => {
|
|
123
|
+
const { pattern: regex } = parse(pattern);
|
|
124
|
+
return regex.test(path);
|
|
125
|
+
};
|
|
126
|
+
var pathMatchesRule = (path, rulePath) => {
|
|
127
|
+
if (!rulePath) return true;
|
|
128
|
+
if (typeof rulePath === "string") {
|
|
129
|
+
return pathMatchesPattern(path, rulePath);
|
|
130
|
+
}
|
|
131
|
+
if (rulePath instanceof RegExp) {
|
|
132
|
+
return rulePath.test(path);
|
|
133
|
+
}
|
|
134
|
+
if (Array.isArray(rulePath)) {
|
|
135
|
+
return rulePath.some((p) => pathMatchesPattern(path, p));
|
|
136
|
+
}
|
|
137
|
+
return false;
|
|
138
|
+
};
|
|
139
|
+
var matchesOrIncludes = (values, value) => {
|
|
140
|
+
if (typeof values === "string") {
|
|
141
|
+
return values === value;
|
|
142
|
+
}
|
|
143
|
+
if (Array.isArray(values)) {
|
|
144
|
+
return values.includes(value);
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
};
|
|
148
|
+
var checkRules = async (rules, path, method, user) => {
|
|
149
|
+
for (const i in rules || []) {
|
|
150
|
+
const rule = rules?.[i];
|
|
151
|
+
if (!pathMatchesRule(path, rule.path)) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (rule.methods && !matchesOrIncludes(rule.methods, method)) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const condition = rule.condition;
|
|
158
|
+
if (typeof condition === "function") {
|
|
159
|
+
const allowed = await Promise.resolve().then(() => condition(user)).catch(() => false);
|
|
160
|
+
if (allowed) {
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
} else if (rule.allow) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
exports.canAccessPublicly = canAccessPublicly;
|
|
171
|
+
exports.checkRules = checkRules;
|
|
172
|
+
exports.defaultAuthConfig = defaultAuthConfig;
|
|
173
|
+
exports.isCustomRoutePublic = isCustomRoutePublic;
|
|
174
|
+
exports.isDevPlaygroundRequest = isDevPlaygroundRequest;
|
|
175
|
+
exports.isProtectedPath = isProtectedPath;
|
|
176
|
+
exports.matchesOrIncludes = matchesOrIncludes;
|
|
177
|
+
exports.pathMatchesPattern = pathMatchesPattern;
|
|
178
|
+
exports.pathMatchesRule = pathMatchesRule;
|
|
179
|
+
//# sourceMappingURL=chunk-TF4LSD27.cjs.map
|
|
180
|
+
//# sourceMappingURL=chunk-TF4LSD27.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/auth/defaults.ts","../src/server/auth/path-pattern.ts","../src/server/auth/helpers.ts"],"names":[],"mappings":"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","file":"chunk-TF4LSD27.cjs","sourcesContent":["import type { MastraAuthConfig } from '@mastra/core/server';\n\n// Default configuration that can be extended by clients\nexport const defaultAuthConfig: MastraAuthConfig = {\n protected: ['/api/*'],\n public: ['/api'],\n // Simple rule system\n rules: [\n // Admin users can do anything\n {\n condition: user => {\n if (typeof user === 'object' && user !== null) {\n if ('isAdmin' in user) {\n return !!user.isAdmin;\n }\n\n if ('role' in user) {\n return user.role === 'admin';\n }\n }\n return false;\n },\n allow: true,\n },\n ],\n};\n","/**\n * Path pattern matching utility\n * Inlined from regexparam v3.0.0 (MIT License)\n * https://github.com/lukeed/regexparam\n *\n * Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\nexport interface ParsedPattern {\n keys: string[] | false;\n pattern: RegExp;\n}\n\n/**\n * Parse a route pattern into a RegExp\n * Supports:\n * - Named parameters: /users/:id\n * - Optional parameters: /users/:id?\n * - Wildcards: /files/*\n * - Mixed patterns: /api/:version/users/:id\n */\nexport function parse(input: string | RegExp, loose?: boolean): ParsedPattern {\n if (input instanceof RegExp) return { keys: false, pattern: input };\n\n let c: string;\n let o: number;\n let tmp: string | undefined;\n let ext: number;\n const keys: string[] = [];\n let pattern = '';\n const arr = input.split('/');\n\n arr[0] || arr.shift();\n\n while ((tmp = arr.shift())) {\n c = tmp[0]!;\n if (c === '*') {\n keys.push(c);\n pattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)';\n } else if (c === ':') {\n o = tmp.indexOf('?', 1);\n ext = tmp.indexOf('.', 1);\n keys.push(tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length));\n pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n if (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n } else {\n pattern += '/' + tmp;\n }\n }\n\n return {\n keys: keys,\n pattern: new RegExp('^' + pattern + (loose ? '(?=$|/)' : '/?$'), 'i'),\n };\n}\n\n/**\n * Test if a path matches a pattern\n */\nexport function matchPath(path: string, pattern: string | RegExp): boolean {\n const { pattern: regex } = parse(pattern);\n return regex.test(path);\n}\n","import type { MastraAuthConfig } from '@mastra/core/server';\n\nimport { defaultAuthConfig } from './defaults';\nimport { parse } from './path-pattern';\n\n/**\n * Check if request is from dev playground\n * @param getHeader - Function to get header value from request\n */\nexport const isDevPlaygroundRequest = (\n path: string,\n method: string,\n getHeader: (name: string) => string | undefined,\n authConfig: MastraAuthConfig,\n): boolean => {\n const protectedAccess = [...(defaultAuthConfig.protected || []), ...(authConfig.protected || [])];\n return (\n process.env.MASTRA_DEV === 'true' &&\n (!isAnyMatch(path, method, protectedAccess) || getHeader('x-mastra-dev-playground') === 'true')\n );\n};\n\nexport const isCustomRoutePublic = (\n path: string,\n method: string,\n customRouteAuthConfig?: Map<string, boolean>,\n): boolean => {\n if (!customRouteAuthConfig) {\n return false;\n }\n\n // Check exact match first (fast path for static routes)\n const exactRouteKey = `${method}:${path}`;\n if (customRouteAuthConfig.has(exactRouteKey)) {\n return !customRouteAuthConfig.get(exactRouteKey); // True when route opts out of auth\n }\n\n // Check exact match for ALL method\n const allRouteKey = `ALL:${path}`;\n if (customRouteAuthConfig.has(allRouteKey)) {\n return !customRouteAuthConfig.get(allRouteKey);\n }\n\n // Check pattern matches for dynamic routes (e.g., '/users/:id')\n for (const [routeKey, requiresAuth] of customRouteAuthConfig.entries()) {\n const colonIndex = routeKey.indexOf(':');\n if (colonIndex === -1) {\n continue; // Skip malformed keys\n }\n\n const routeMethod = routeKey.substring(0, colonIndex);\n const routePattern = routeKey.substring(colonIndex + 1);\n\n // Check if method matches (exact match or ALL)\n if (routeMethod !== method && routeMethod !== 'ALL') {\n continue;\n }\n\n // Check if path matches the pattern\n if (pathMatchesPattern(path, routePattern)) {\n return !requiresAuth; // True when route opts out of auth\n }\n }\n\n return false;\n};\n\nexport const isProtectedPath = (\n path: string,\n method: string,\n authConfig: MastraAuthConfig,\n customRouteAuthConfig?: Map<string, boolean>,\n): boolean => {\n const protectedAccess = [...(defaultAuthConfig.protected || []), ...(authConfig.protected || [])];\n return isAnyMatch(path, method, protectedAccess) || !isCustomRoutePublic(path, method, customRouteAuthConfig);\n};\n\nexport const canAccessPublicly = (path: string, method: string, authConfig: MastraAuthConfig): boolean => {\n // Check if this path+method combination is publicly accessible\n const publicAccess = [...(defaultAuthConfig.public || []), ...(authConfig.public || [])];\n\n return isAnyMatch(path, method, publicAccess);\n};\n\nconst isAnyMatch = (\n path: string,\n method: string,\n patterns: MastraAuthConfig['protected'] | MastraAuthConfig['public'],\n): boolean => {\n if (!patterns) {\n return false;\n }\n\n for (const patternPathOrMethod of patterns) {\n if (patternPathOrMethod instanceof RegExp) {\n if (patternPathOrMethod.test(path)) {\n return true;\n }\n }\n\n if (typeof patternPathOrMethod === 'string' && pathMatchesPattern(path, patternPathOrMethod)) {\n return true;\n }\n\n if (Array.isArray(patternPathOrMethod) && patternPathOrMethod.length === 2) {\n const [pattern, methodOrMethods] = patternPathOrMethod;\n if (pathMatchesPattern(path, pattern) && matchesOrIncludes(methodOrMethods, method)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport const pathMatchesPattern = (path: string, pattern: string): boolean => {\n // Use regexparam for battle-tested path matching\n // Supports:\n // - Exact paths: '/api/users'\n // - Wildcards: '/api/agents/*' matches '/api/agents/123'\n // - Path parameters: '/users/:id' matches '/users/123'\n // - Optional parameters: '/users/:id?' matches '/users' and '/users/123'\n // - Mixed patterns: '/api/:version/users/:id/profile'\n const { pattern: regex } = parse(pattern);\n return regex.test(path);\n};\n\nexport const pathMatchesRule = (path: string, rulePath: string | RegExp | string[] | undefined): boolean => {\n if (!rulePath) return true; // No path specified means all paths\n\n if (typeof rulePath === 'string') {\n return pathMatchesPattern(path, rulePath);\n }\n\n if (rulePath instanceof RegExp) {\n return rulePath.test(path);\n }\n\n if (Array.isArray(rulePath)) {\n return rulePath.some(p => pathMatchesPattern(path, p));\n }\n\n return false;\n};\n\nexport const matchesOrIncludes = (values: string | string[], value: string): boolean => {\n if (typeof values === 'string') {\n return values === value;\n }\n\n if (Array.isArray(values)) {\n return values.includes(value);\n }\n\n return false;\n};\n\n// Check authorization rules\nexport const checkRules = async (\n rules: MastraAuthConfig['rules'],\n path: string,\n method: string,\n user: unknown,\n): Promise<boolean> => {\n // Go through rules in order (first match wins)\n for (const i in rules || []) {\n const rule = rules?.[i]!;\n // Check if rule applies to this path\n if (!pathMatchesRule(path, rule.path)) {\n continue;\n }\n\n // Check if rule applies to this method\n if (rule.methods && !matchesOrIncludes(rule.methods, method)) {\n continue;\n }\n\n // Rule matches, check conditions\n const condition = rule.condition;\n if (typeof condition === 'function') {\n const allowed = await Promise.resolve()\n .then(() => condition(user))\n .catch(() => false);\n\n if (allowed) {\n return true;\n }\n } else if (rule.allow) {\n return true;\n }\n }\n\n // No matching rules, deny by default\n return false;\n};\n"]}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkNL6ELCFS_cjs = require('./chunk-NL6ELCFS.cjs');
|
|
4
|
+
var chunkUWYAL2Z3_cjs = require('./chunk-UWYAL2Z3.cjs');
|
|
5
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
6
|
+
var chunkK34R4R2T_cjs = require('./chunk-K34R4R2T.cjs');
|
|
7
|
+
|
|
8
|
+
// src/server/handlers/stored-agents.ts
|
|
9
|
+
var LIST_STORED_AGENTS_ROUTE = chunkK34R4R2T_cjs.createRoute({
|
|
10
|
+
method: "GET",
|
|
11
|
+
path: "/stored/agents",
|
|
12
|
+
responseType: "json",
|
|
13
|
+
queryParamSchema: chunkNL6ELCFS_cjs.listStoredAgentsQuerySchema,
|
|
14
|
+
responseSchema: chunkNL6ELCFS_cjs.listStoredAgentsResponseSchema,
|
|
15
|
+
summary: "List stored agents",
|
|
16
|
+
description: "Returns a paginated list of all agents stored in the database",
|
|
17
|
+
tags: ["Stored Agents"],
|
|
18
|
+
requiresAuth: true,
|
|
19
|
+
handler: async ({ mastra, page, perPage, orderBy, ownerId, metadata }) => {
|
|
20
|
+
try {
|
|
21
|
+
const storage = mastra.getStorage();
|
|
22
|
+
if (!storage) {
|
|
23
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not configured" });
|
|
24
|
+
}
|
|
25
|
+
const agentsStore = await storage.getStore("agents");
|
|
26
|
+
if (!agentsStore) {
|
|
27
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
28
|
+
}
|
|
29
|
+
const result = await agentsStore.listAgents({
|
|
30
|
+
page,
|
|
31
|
+
perPage,
|
|
32
|
+
orderBy,
|
|
33
|
+
ownerId,
|
|
34
|
+
metadata
|
|
35
|
+
});
|
|
36
|
+
return result;
|
|
37
|
+
} catch (error) {
|
|
38
|
+
return chunkUWYAL2Z3_cjs.handleError(error, "Error listing stored agents");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var GET_STORED_AGENT_ROUTE = chunkK34R4R2T_cjs.createRoute({
|
|
43
|
+
method: "GET",
|
|
44
|
+
path: "/stored/agents/:storedAgentId",
|
|
45
|
+
responseType: "json",
|
|
46
|
+
pathParamSchema: chunkNL6ELCFS_cjs.storedAgentIdPathParams,
|
|
47
|
+
responseSchema: chunkNL6ELCFS_cjs.getStoredAgentResponseSchema,
|
|
48
|
+
summary: "Get stored agent by ID",
|
|
49
|
+
description: "Returns a specific agent from storage by its unique identifier",
|
|
50
|
+
tags: ["Stored Agents"],
|
|
51
|
+
requiresAuth: true,
|
|
52
|
+
handler: async ({ mastra, storedAgentId }) => {
|
|
53
|
+
try {
|
|
54
|
+
const storage = mastra.getStorage();
|
|
55
|
+
if (!storage) {
|
|
56
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not configured" });
|
|
57
|
+
}
|
|
58
|
+
const agentsStore = await storage.getStore("agents");
|
|
59
|
+
if (!agentsStore) {
|
|
60
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
61
|
+
}
|
|
62
|
+
const agent = await agentsStore.getAgentByIdResolved({ id: storedAgentId });
|
|
63
|
+
if (!agent) {
|
|
64
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });
|
|
65
|
+
}
|
|
66
|
+
return agent;
|
|
67
|
+
} catch (error) {
|
|
68
|
+
return chunkUWYAL2Z3_cjs.handleError(error, "Error getting stored agent");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var CREATE_STORED_AGENT_ROUTE = chunkK34R4R2T_cjs.createRoute({
|
|
73
|
+
method: "POST",
|
|
74
|
+
path: "/stored/agents",
|
|
75
|
+
responseType: "json",
|
|
76
|
+
bodySchema: chunkNL6ELCFS_cjs.createStoredAgentBodySchema,
|
|
77
|
+
responseSchema: chunkNL6ELCFS_cjs.createStoredAgentResponseSchema,
|
|
78
|
+
summary: "Create stored agent",
|
|
79
|
+
description: "Creates a new agent in storage with the provided configuration",
|
|
80
|
+
tags: ["Stored Agents"],
|
|
81
|
+
requiresAuth: true,
|
|
82
|
+
handler: async ({
|
|
83
|
+
mastra,
|
|
84
|
+
id,
|
|
85
|
+
name,
|
|
86
|
+
description,
|
|
87
|
+
instructions,
|
|
88
|
+
model,
|
|
89
|
+
tools,
|
|
90
|
+
defaultOptions,
|
|
91
|
+
workflows,
|
|
92
|
+
agents,
|
|
93
|
+
integrationTools,
|
|
94
|
+
inputProcessors,
|
|
95
|
+
outputProcessors,
|
|
96
|
+
memory,
|
|
97
|
+
scorers,
|
|
98
|
+
metadata,
|
|
99
|
+
ownerId
|
|
100
|
+
}) => {
|
|
101
|
+
try {
|
|
102
|
+
const storage = mastra.getStorage();
|
|
103
|
+
if (!storage) {
|
|
104
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not configured" });
|
|
105
|
+
}
|
|
106
|
+
const agentsStore = await storage.getStore("agents");
|
|
107
|
+
if (!agentsStore) {
|
|
108
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
109
|
+
}
|
|
110
|
+
const existing = await agentsStore.getAgentById({ id });
|
|
111
|
+
if (existing) {
|
|
112
|
+
throw new chunk64ITUOXI_cjs.HTTPException(409, { message: `Agent with id ${id} already exists` });
|
|
113
|
+
}
|
|
114
|
+
const toolsFromBody = Array.isArray(tools) ? tools : void 0;
|
|
115
|
+
const integrationToolsFromBody = Array.isArray(integrationTools) ? integrationTools : void 0;
|
|
116
|
+
const agent = await agentsStore.createAgent({
|
|
117
|
+
agent: {
|
|
118
|
+
id,
|
|
119
|
+
name,
|
|
120
|
+
description,
|
|
121
|
+
instructions,
|
|
122
|
+
model,
|
|
123
|
+
tools: toolsFromBody,
|
|
124
|
+
defaultOptions,
|
|
125
|
+
workflows,
|
|
126
|
+
agents,
|
|
127
|
+
integrationTools: integrationToolsFromBody,
|
|
128
|
+
inputProcessors,
|
|
129
|
+
outputProcessors,
|
|
130
|
+
memory,
|
|
131
|
+
scorers,
|
|
132
|
+
metadata,
|
|
133
|
+
ownerId
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
return agent;
|
|
137
|
+
} catch (error) {
|
|
138
|
+
return chunkUWYAL2Z3_cjs.handleError(error, "Error creating stored agent");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
var UPDATE_STORED_AGENT_ROUTE = chunkK34R4R2T_cjs.createRoute({
|
|
143
|
+
method: "PATCH",
|
|
144
|
+
path: "/stored/agents/:storedAgentId",
|
|
145
|
+
responseType: "json",
|
|
146
|
+
pathParamSchema: chunkNL6ELCFS_cjs.storedAgentIdPathParams,
|
|
147
|
+
bodySchema: chunkNL6ELCFS_cjs.updateStoredAgentBodySchema,
|
|
148
|
+
responseSchema: chunkNL6ELCFS_cjs.updateStoredAgentResponseSchema,
|
|
149
|
+
summary: "Update stored agent",
|
|
150
|
+
description: "Updates an existing agent in storage with the provided fields",
|
|
151
|
+
tags: ["Stored Agents"],
|
|
152
|
+
requiresAuth: true,
|
|
153
|
+
handler: async ({
|
|
154
|
+
mastra,
|
|
155
|
+
storedAgentId,
|
|
156
|
+
name,
|
|
157
|
+
description,
|
|
158
|
+
instructions,
|
|
159
|
+
model,
|
|
160
|
+
tools,
|
|
161
|
+
defaultOptions,
|
|
162
|
+
workflows,
|
|
163
|
+
agents,
|
|
164
|
+
integrationTools,
|
|
165
|
+
inputProcessors,
|
|
166
|
+
outputProcessors,
|
|
167
|
+
memory,
|
|
168
|
+
scorers,
|
|
169
|
+
metadata,
|
|
170
|
+
ownerId
|
|
171
|
+
}) => {
|
|
172
|
+
try {
|
|
173
|
+
const storage = mastra.getStorage();
|
|
174
|
+
if (!storage) {
|
|
175
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not configured" });
|
|
176
|
+
}
|
|
177
|
+
const agentsStore = await storage.getStore("agents");
|
|
178
|
+
if (!agentsStore) {
|
|
179
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
180
|
+
}
|
|
181
|
+
const existing = await agentsStore.getAgentById({ id: storedAgentId });
|
|
182
|
+
if (!existing) {
|
|
183
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });
|
|
184
|
+
}
|
|
185
|
+
const toolsFromBody = Array.isArray(tools) ? tools : void 0;
|
|
186
|
+
const integrationToolsFromBody = Array.isArray(integrationTools) ? integrationTools : void 0;
|
|
187
|
+
const updatedAgent = await agentsStore.updateAgent({
|
|
188
|
+
id: storedAgentId,
|
|
189
|
+
name,
|
|
190
|
+
description,
|
|
191
|
+
instructions,
|
|
192
|
+
model,
|
|
193
|
+
tools: toolsFromBody,
|
|
194
|
+
defaultOptions,
|
|
195
|
+
workflows,
|
|
196
|
+
agents,
|
|
197
|
+
integrationTools: integrationToolsFromBody,
|
|
198
|
+
inputProcessors,
|
|
199
|
+
outputProcessors,
|
|
200
|
+
memory,
|
|
201
|
+
scorers,
|
|
202
|
+
metadata,
|
|
203
|
+
ownerId
|
|
204
|
+
});
|
|
205
|
+
const { agent } = await chunkNL6ELCFS_cjs.handleAutoVersioning(agentsStore, storedAgentId, existing, updatedAgent);
|
|
206
|
+
mastra.clearStoredAgentCache(storedAgentId);
|
|
207
|
+
return agent;
|
|
208
|
+
} catch (error) {
|
|
209
|
+
return chunkUWYAL2Z3_cjs.handleError(error, "Error updating stored agent");
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
var DELETE_STORED_AGENT_ROUTE = chunkK34R4R2T_cjs.createRoute({
|
|
214
|
+
method: "DELETE",
|
|
215
|
+
path: "/stored/agents/:storedAgentId",
|
|
216
|
+
responseType: "json",
|
|
217
|
+
pathParamSchema: chunkNL6ELCFS_cjs.storedAgentIdPathParams,
|
|
218
|
+
responseSchema: chunkNL6ELCFS_cjs.deleteStoredAgentResponseSchema,
|
|
219
|
+
summary: "Delete stored agent",
|
|
220
|
+
description: "Deletes an agent from storage by its unique identifier",
|
|
221
|
+
tags: ["Stored Agents"],
|
|
222
|
+
requiresAuth: true,
|
|
223
|
+
handler: async ({ mastra, storedAgentId }) => {
|
|
224
|
+
try {
|
|
225
|
+
const storage = mastra.getStorage();
|
|
226
|
+
if (!storage) {
|
|
227
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Storage is not configured" });
|
|
228
|
+
}
|
|
229
|
+
const agentsStore = await storage.getStore("agents");
|
|
230
|
+
if (!agentsStore) {
|
|
231
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
232
|
+
}
|
|
233
|
+
const existing = await agentsStore.getAgentById({ id: storedAgentId });
|
|
234
|
+
if (!existing) {
|
|
235
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });
|
|
236
|
+
}
|
|
237
|
+
await agentsStore.deleteAgent({ id: storedAgentId });
|
|
238
|
+
mastra.clearStoredAgentCache(storedAgentId);
|
|
239
|
+
return { success: true, message: `Agent ${storedAgentId} deleted successfully` };
|
|
240
|
+
} catch (error) {
|
|
241
|
+
return chunkUWYAL2Z3_cjs.handleError(error, "Error deleting stored agent");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
exports.CREATE_STORED_AGENT_ROUTE = CREATE_STORED_AGENT_ROUTE;
|
|
247
|
+
exports.DELETE_STORED_AGENT_ROUTE = DELETE_STORED_AGENT_ROUTE;
|
|
248
|
+
exports.GET_STORED_AGENT_ROUTE = GET_STORED_AGENT_ROUTE;
|
|
249
|
+
exports.LIST_STORED_AGENTS_ROUTE = LIST_STORED_AGENTS_ROUTE;
|
|
250
|
+
exports.UPDATE_STORED_AGENT_ROUTE = UPDATE_STORED_AGENT_ROUTE;
|
|
251
|
+
//# sourceMappingURL=chunk-TM6IOINJ.cjs.map
|
|
252
|
+
//# sourceMappingURL=chunk-TM6IOINJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["createRoute","listStoredAgentsQuerySchema","listStoredAgentsResponseSchema","HTTPException","handleError","storedAgentIdPathParams","getStoredAgentResponseSchema","createStoredAgentBodySchema","createStoredAgentResponseSchema","updateStoredAgentBodySchema","updateStoredAgentResponseSchema","handleAutoVersioning","deleteStoredAgentResponseSchema"],"mappings":";;;;;;;;AAwBO,IAAM,2BAA2BA,6BAAA,CAAY;AAAA,EAClD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,gBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,gBAAA,EAAkBC,6CAAA;AAAA,EAClB,cAAA,EAAgBC,gDAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,EACtB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,MAAM,OAAA,EAAS,OAAA,EAAS,OAAA,EAAS,QAAA,EAAS,KAAM;AACxE,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAIC,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,WAAA,CAAY,UAAA,CAAW;AAAA,QAC1C,IAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAKM,IAAM,yBAAyBJ,6BAAA,CAAY;AAAA,EAChD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,+BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBK,yCAAA;AAAA,EACjB,cAAA,EAAgBC,8CAAA;AAAA,EAChB,OAAA,EAAS,wBAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,EACtB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,eAAc,KAAM;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAIH,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAGA,MAAA,MAAM,QAAQ,MAAM,WAAA,CAAY,qBAAqB,EAAE,EAAA,EAAI,eAAe,CAAA;AAE1E,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,qBAAA,EAAwB,aAAa,cAAc,CAAA;AAAA,MAC7F;AAEA,MAAA,OAAO,KAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,4BAA4B,CAAA;AAAA,IACxD;AAAA,EACF;AACF,CAAC;AAKM,IAAM,4BAA4BJ,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,gBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,UAAA,EAAYO,6CAAA;AAAA,EACZ,cAAA,EAAgBC,iDAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,EACtB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO;AAAA,IACd,MAAA;AAAA,IACA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAIL,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAGA,MAAA,MAAM,WAAW,MAAM,WAAA,CAAY,YAAA,CAAa,EAAE,IAAI,CAAA;AACtD,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,EAAE,mBAAmB,CAAA;AAAA,MAChF;AAGA,MAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,KAAA,GAAQ,MAAA;AACrD,MAAA,MAAM,wBAAA,GAA2B,KAAA,CAAM,OAAA,CAAQ,gBAAgB,IAAI,gBAAA,GAAmB,MAAA;AAEtF,MAAA,MAAM,KAAA,GAAQ,MAAM,WAAA,CAAY,WAAA,CAAY;AAAA,QAC1C,KAAA,EAAO;AAAA,UACL,EAAA;AAAA,UACA,IAAA;AAAA,UACA,WAAA;AAAA,UACA,YAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA,EAAO,aAAA;AAAA,UACP,cAAA;AAAA,UACA,SAAA;AAAA,UACA,MAAA;AAAA,UACA,gBAAA,EAAkB,wBAAA;AAAA,UAClB,eAAA;AAAA,UACA,gBAAA;AAAA,UACA,MAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA;AAED,MAAA,OAAO,KAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAKM,IAAM,4BAA4BJ,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,OAAA;AAAA,EACR,IAAA,EAAM,+BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBK,yCAAA;AAAA,EACjB,UAAA,EAAYI,6CAAA;AAAA,EACZ,cAAA,EAAgBC,iDAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,EACtB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO;AAAA,IACd,MAAA;AAAA,IACA,aAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAIP,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAGA,MAAA,MAAM,WAAW,MAAM,WAAA,CAAY,aAAa,EAAE,EAAA,EAAI,eAAe,CAAA;AACrE,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,qBAAA,EAAwB,aAAa,cAAc,CAAA;AAAA,MAC7F;AAGA,MAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,KAAK,IAAI,KAAA,GAAQ,MAAA;AACrD,MAAA,MAAM,wBAAA,GAA2B,KAAA,CAAM,OAAA,CAAQ,gBAAgB,IAAI,gBAAA,GAAmB,MAAA;AAEtF,MAAA,MAAM,YAAA,GAAe,MAAM,WAAA,CAAY,WAAA,CAAY;AAAA,QACjD,EAAA,EAAI,aAAA;AAAA,QACJ,IAAA;AAAA,QACA,WAAA;AAAA,QACA,YAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,cAAA;AAAA,QACA,SAAA;AAAA,QACA,MAAA;AAAA,QACA,gBAAA,EAAkB,wBAAA;AAAA,QAClB,eAAA;AAAA,QACA,gBAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACD,CAAA;AAID,MAAA,MAAM,EAAE,OAAM,GAAI,MAAMQ,uCAAqB,WAAA,EAAa,aAAA,EAAe,UAAU,YAAY,CAAA;AAG/F,MAAA,MAAA,CAAO,sBAAsB,aAAa,CAAA;AAE1C,MAAA,OAAO,KAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOP,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAKM,IAAM,4BAA4BJ,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,+BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBK,yCAAA;AAAA,EACjB,cAAA,EAAgBO,iDAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,wDAAA;AAAA,EACb,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,EACtB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,eAAc,KAAM;AAC5C,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAIT,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,6BAA6B,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAGA,MAAA,MAAM,WAAW,MAAM,WAAA,CAAY,aAAa,EAAE,EAAA,EAAI,eAAe,CAAA;AACrE,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,qBAAA,EAAwB,aAAa,cAAc,CAAA;AAAA,MAC7F;AAEA,MAAA,MAAM,WAAA,CAAY,WAAA,CAAY,EAAE,EAAA,EAAI,eAAe,CAAA;AAGnD,MAAA,MAAA,CAAO,sBAAsB,aAAa,CAAA;AAE1C,MAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,CAAA,MAAA,EAAS,aAAa,CAAA,qBAAA,CAAA,EAAwB;AAAA,IACjF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC","file":"chunk-TM6IOINJ.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedAgentIdPathParams,\n listStoredAgentsQuerySchema,\n createStoredAgentBodySchema,\n updateStoredAgentBodySchema,\n listStoredAgentsResponseSchema,\n getStoredAgentResponseSchema,\n createStoredAgentResponseSchema,\n updateStoredAgentResponseSchema,\n deleteStoredAgentResponseSchema,\n} from '../schemas/stored-agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleAutoVersioning } from './agent-versions';\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents - List all stored agents\n */\nexport const LIST_STORED_AGENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents',\n responseType: 'json',\n queryParamSchema: listStoredAgentsQuerySchema,\n responseSchema: listStoredAgentsResponseSchema,\n summary: 'List stored agents',\n description: 'Returns a paginated list of all agents stored in the database',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, ownerId, metadata }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const result = await agentsStore.listAgents({\n page,\n perPage,\n orderBy,\n ownerId,\n metadata,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\n/**\n * GET /stored/agents/:storedAgentId - Get a stored agent by ID\n */\nexport const GET_STORED_AGENT_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: getStoredAgentResponseSchema,\n summary: 'Get stored agent by ID',\n description: 'Returns a specific agent from storage by its unique identifier',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Use getAgentByIdResolved to automatically resolve from active version\n const agent = await agentsStore.getAgentByIdResolved({ id: storedAgentId });\n\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n return agent;\n } catch (error) {\n return handleError(error, 'Error getting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents - Create a new stored agent\n */\nexport const CREATE_STORED_AGENT_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents',\n responseType: 'json',\n bodySchema: createStoredAgentBodySchema,\n responseSchema: createStoredAgentResponseSchema,\n summary: 'Create stored agent',\n description: 'Creates a new agent in storage with the provided configuration',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n metadata,\n ownerId,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent with this ID already exists\n const existing = await agentsStore.getAgentById({ id });\n if (existing) {\n throw new HTTPException(409, { message: `Agent with id ${id} already exists` });\n }\n\n // Only include tools if it's actually an array from the body (not {} from adapter)\n const toolsFromBody = Array.isArray(tools) ? tools : undefined;\n const integrationToolsFromBody = Array.isArray(integrationTools) ? integrationTools : undefined;\n\n const agent = await agentsStore.createAgent({\n agent: {\n id,\n name,\n description,\n instructions,\n model,\n tools: toolsFromBody,\n defaultOptions,\n workflows,\n agents,\n integrationTools: integrationToolsFromBody,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n metadata,\n ownerId,\n },\n });\n\n return agent;\n } catch (error) {\n return handleError(error, 'Error creating stored agent');\n }\n },\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update a stored agent\n */\nexport const UPDATE_STORED_AGENT_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: updateStoredAgentBodySchema,\n responseSchema: updateStoredAgentResponseSchema,\n summary: 'Update stored agent',\n description: 'Updates an existing agent in storage with the provided fields',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedAgentId,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n metadata,\n ownerId,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getAgentById({ id: storedAgentId });\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n // Only include tools/integrationTools if they're actually arrays from the body (not {} from adapter)\n const toolsFromBody = Array.isArray(tools) ? tools : undefined;\n const integrationToolsFromBody = Array.isArray(integrationTools) ? integrationTools : undefined;\n\n const updatedAgent = await agentsStore.updateAgent({\n id: storedAgentId,\n name,\n description,\n instructions,\n model,\n tools: toolsFromBody,\n defaultOptions,\n workflows,\n agents,\n integrationTools: integrationToolsFromBody,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n metadata,\n ownerId,\n });\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a version if there are meaningful changes and updates activeVersionId\n const { agent } = await handleAutoVersioning(agentsStore, storedAgentId, existing, updatedAgent);\n\n // Clear the cached agent instance so the next request gets the updated config\n mastra.clearStoredAgentCache(storedAgentId);\n\n return agent;\n } catch (error) {\n return handleError(error, 'Error updating stored agent');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:storedAgentId - Delete a stored agent\n */\nexport const DELETE_STORED_AGENT_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: deleteStoredAgentResponseSchema,\n summary: 'Delete stored agent',\n description: 'Deletes an agent from storage by its unique identifier',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getAgentById({ id: storedAgentId });\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n await agentsStore.deleteAgent({ id: storedAgentId });\n\n // Clear the cached agent instance\n mastra.clearStoredAgentCache(storedAgentId);\n\n return { success: true, message: `Agent ${storedAgentId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored agent');\n }\n },\n});\n"]}
|