@mastra/server 1.78.1-alpha.0 → 1.79.0-alpha.10
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/dist/_types/@internal_core/dist/storage/index.d.ts +11 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/schemas.d.ts +3 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/util.d.ts +2 -0
- package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +206 -873
- package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-v6/dist/index.d.ts +851 -1176
- package/dist/{a2a-D5CGFO8W.cjs → a2a-B465DD1u.cjs} +3 -3
- package/dist/a2a-B465DD1u.cjs.map +1 -0
- package/dist/{a2a-Dg3ylOKc.js → a2a-CHBSYHxu.js} +3 -3
- package/dist/{a2a-D5CGFO8W.cjs.map → a2a-CHBSYHxu.js.map} +1 -1
- package/dist/{agents-D9vpLghy.cjs → agents-DoNMSCMt.cjs} +4 -2
- package/dist/agents-DoNMSCMt.cjs.map +1 -0
- package/dist/{agents-DNWDET4U.js → agents-X1E7fW3p.js} +4 -2
- package/dist/agents-X1E7fW3p.js.map +1 -0
- package/dist/{api-schema-manifest-aur2BK6a.js → api-schema-manifest-CWRIJP-B.js} +9 -3
- package/dist/api-schema-manifest-CWRIJP-B.js.map +1 -0
- package/dist/{api-schema-manifest-Dr8PM4Qj.cjs → api-schema-manifest-DUseI2VG.cjs} +9 -3
- package/dist/api-schema-manifest-DUseI2VG.cjs.map +1 -0
- package/dist/{background-tasks-BbYzMhlD.cjs → background-tasks-CabImVak.cjs} +3 -3
- package/dist/{background-tasks-BbYzMhlD.cjs.map → background-tasks-CabImVak.cjs.map} +1 -1
- package/dist/{background-tasks-zvlIcbhg.js → background-tasks-oBaLtnCn.js} +3 -3
- package/dist/{background-tasks-zvlIcbhg.js.map → background-tasks-oBaLtnCn.js.map} +1 -1
- package/dist/{builder-registry-DagCZI4A.cjs → builder-registry-D0frV8lQ.cjs} +3 -3
- package/dist/{builder-registry-DagCZI4A.cjs.map → builder-registry-D0frV8lQ.cjs.map} +1 -1
- package/dist/{builder-registry-1GwmVVwr.js → builder-registry-DOkLe8ES.js} +3 -3
- package/dist/{builder-registry-1GwmVVwr.js.map → builder-registry-DOkLe8ES.js.map} +1 -1
- package/dist/{channels-B3aoI-f1.js → channels-BOxgHvzI.js} +2 -2
- package/dist/{channels-B3aoI-f1.js.map → channels-BOxgHvzI.js.map} +1 -1
- package/dist/{channels-5J7CTFyY.cjs → channels-CBIopVWd.cjs} +2 -2
- package/dist/{channels-5J7CTFyY.cjs.map → channels-CBIopVWd.cjs.map} +1 -1
- package/dist/{datasets-BdD8JWhx.cjs → datasets-BUC5T-fd.cjs} +6 -1
- package/dist/datasets-BUC5T-fd.cjs.map +1 -0
- package/dist/{datasets-CKwh-k4I.js → datasets-CCWuznUu.js} +6 -1
- package/dist/datasets-CCWuznUu.js.map +1 -0
- package/dist/{dist-D5O8s1u2.cjs → dist-3FPW9nVj.cjs} +3 -3
- package/dist/{dist-D5O8s1u2.cjs.map → dist-3FPW9nVj.cjs.map} +1 -1
- package/dist/{dist-B8rA8_Wt.cjs → dist-9c3PXXpk.cjs} +36612 -30313
- package/dist/dist-9c3PXXpk.cjs.map +1 -0
- package/dist/{dist-Bw2XgCSY.cjs → dist-B5OwHWTo.cjs} +3 -3
- package/dist/{dist-Bw2XgCSY.cjs.map → dist-B5OwHWTo.cjs.map} +1 -1
- package/dist/{dist-C5TZXkhS.js → dist-B_bet8uz.js} +2 -2
- package/dist/{dist-C5TZXkhS.js.map → dist-B_bet8uz.js.map} +1 -1
- package/dist/{dist-8fx1_bLF.js → dist-BwYL7Ykb.js} +3 -3
- package/dist/{dist-8fx1_bLF.js.map → dist-BwYL7Ykb.js.map} +1 -1
- package/dist/{dist-_RnqhYfY.js → dist-BxMmGD3n.js} +3 -3
- package/dist/{dist-_RnqhYfY.js.map → dist-BxMmGD3n.js.map} +1 -1
- package/dist/{dist-D1oSHJhK.js → dist-CBRJax5e.js} +3 -3
- package/dist/{dist-D1oSHJhK.js.map → dist-CBRJax5e.js.map} +1 -1
- package/dist/{dist-D5mpJHHH.cjs → dist-CQ3FSKT-.cjs} +3 -3
- package/dist/{dist-D5mpJHHH.cjs.map → dist-CQ3FSKT-.cjs.map} +1 -1
- package/dist/{dist-CgemVduI.cjs → dist-DC1Pewf5.cjs} +4 -4
- package/dist/{dist-CgemVduI.cjs.map → dist-DC1Pewf5.cjs.map} +1 -1
- package/dist/{dist-CdMzvOLk.js → dist-DGCnbhNe.js} +36547 -30248
- package/dist/dist-DGCnbhNe.js.map +1 -0
- package/dist/{dist-BCTqy9i3.js → dist-DOWsEmo6.js} +4 -4
- package/dist/{dist-BCTqy9i3.js.map → dist-DOWsEmo6.js.map} +1 -1
- package/dist/{dist-Bz4l8I_x.js → dist-DcoIg_tp.js} +3 -3
- package/dist/{dist-Bz4l8I_x.js.map → dist-DcoIg_tp.js.map} +1 -1
- package/dist/{dist-UACuV_1t.cjs → dist-UKEksCGq.cjs} +3 -3
- package/dist/{dist-UACuV_1t.cjs.map → dist-UKEksCGq.cjs.map} +1 -1
- package/dist/{dist-tYOY8gEs.cjs → dist-rDRetJVY.cjs} +2 -2
- package/dist/{dist-tYOY8gEs.cjs.map → dist-rDRetJVY.cjs.map} +1 -1
- package/dist/docs/SKILL.md +2 -2
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-guides-mcp-authentication-authorization.md +2 -2
- package/dist/docs/references/{reference-observability-tracing-trace-query.md → reference-observability-tracing-advanced-queries.md} +486 -158
- package/dist/{dynamic-workflows-BL3eD0zL.cjs → dynamic-workflows-DXlkr-jK.cjs} +2 -2
- package/dist/{dynamic-workflows-BL3eD0zL.cjs.map → dynamic-workflows-DXlkr-jK.cjs.map} +1 -1
- package/dist/{dynamic-workflows-BJfoQMo8.js → dynamic-workflows-Rr_6ac1y.js} +2 -2
- package/dist/{dynamic-workflows-BJfoQMo8.js.map → dynamic-workflows-Rr_6ac1y.js.map} +1 -1
- package/dist/{editor-builder-DqHKoEDx.cjs → editor-builder-BclcHxN6.cjs} +2 -2
- package/dist/{editor-builder-DqHKoEDx.cjs.map → editor-builder-BclcHxN6.cjs.map} +1 -1
- package/dist/{editor-builder-CeLVu_FT.js → editor-builder-D16kc1P6.js} +3 -3
- package/dist/{editor-builder-CeLVu_FT.js.map → editor-builder-D16kc1P6.js.map} +1 -1
- package/dist/{editor-builder-BOmAPurW.cjs → editor-builder-DXHiPX1A.cjs} +3 -3
- package/dist/{editor-builder-BOmAPurW.cjs.map → editor-builder-DXHiPX1A.cjs.map} +1 -1
- package/dist/{editor-builder-DHqCWGd2.js → editor-builder-s9WqPJgA.js} +2 -2
- package/dist/{editor-builder-DHqCWGd2.js.map → editor-builder-s9WqPJgA.js.map} +1 -1
- package/dist/{observability-new-endpoints-BoALDMSi.cjs → observability-new-endpoints-AMp9bnMV.cjs} +85 -17
- package/dist/observability-new-endpoints-AMp9bnMV.cjs.map +1 -0
- package/dist/{observability-new-endpoints-CB7T6Z7c.js → observability-new-endpoints-BU8JYPfh.js} +86 -18
- package/dist/observability-new-endpoints-BU8JYPfh.js.map +1 -0
- package/dist/{route-builder-2yrD15TL.cjs → route-builder-BNZs643f.cjs} +123 -17
- package/dist/{route-builder-2yrD15TL.cjs.map → route-builder-BNZs643f.cjs.map} +1 -1
- package/dist/{route-builder-lBil8Cvo.js → route-builder-BfQYtclb.js} +125 -19
- package/dist/route-builder-BfQYtclb.js.map +1 -0
- package/dist/{routes-CuJPLAh8.cjs → routes-DPojsNf1.cjs} +16 -15
- package/dist/routes-DPojsNf1.cjs.map +1 -0
- package/dist/{routes-BhI1lW_W.js → routes-rwufkyUe.js} +17 -16
- package/dist/routes-rwufkyUe.js.map +1 -0
- package/dist/{schedules-CrAmZ2gu.js → schedules-BQYgaz66.js} +3 -3
- package/dist/{schedules-CrAmZ2gu.js.map → schedules-BQYgaz66.js.map} +1 -1
- package/dist/{schedules-B0g72u5Y.cjs → schedules-Bj-giFbc.cjs} +3 -3
- package/dist/{schedules-B0g72u5Y.cjs.map → schedules-Bj-giFbc.cjs.map} +1 -1
- package/dist/schema-Drf2W04o.js +2 -0
- package/dist/schema-EQanefYq.cjs +1 -0
- package/dist/{schema-e0VHpMt0-BS9KHnuT.cjs → schema-e0VHpMt0-C0452jOk.cjs} +2 -2
- package/dist/{schema-e0VHpMt0-BS9KHnuT.cjs.map → schema-e0VHpMt0-C0452jOk.cjs.map} +1 -1
- package/dist/{schema-e0VHpMt0-CvPvLS06.js → schema-e0VHpMt0-CVP5Hnxy.js} +2 -2
- package/dist/{schema-e0VHpMt0-CvPvLS06.js.map → schema-e0VHpMt0-CVP5Hnxy.js.map} +1 -1
- package/dist/server/a2a/tasks.d.ts +2 -2
- package/dist/server/a2a/tasks.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.d.ts +2 -2
- 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 +4 -4
- package/dist/server/handlers/agent-builder.js +4 -4
- package/dist/server/handlers/agent-controller.cjs +259 -156
- package/dist/server/handlers/agent-controller.cjs.map +1 -1
- package/dist/server/handlers/agent-controller.d.ts +201 -150
- package/dist/server/handlers/agent-controller.d.ts.map +1 -1
- package/dist/server/handlers/agent-controller.js +259 -157
- package/dist/server/handlers/agent-controller.js.map +1 -1
- package/dist/server/handlers/agent-versions.cjs +2 -2
- package/dist/server/handlers/agent-versions.js +2 -2
- package/dist/server/handlers/agents.cjs +47 -27
- package/dist/server/handlers/agents.cjs.map +1 -1
- package/dist/server/handlers/agents.d.ts +14 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +47 -27
- package/dist/server/handlers/agents.js.map +1 -1
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +2 -2
- package/dist/server/handlers/conversations.js +2 -2
- package/dist/server/handlers/datasets.cjs +12 -6
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +4 -0
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +12 -6
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/dynamic-workflows.cjs +1 -1
- package/dist/server/handlers/dynamic-workflows.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/error.cjs +14 -5
- package/dist/server/handlers/error.cjs.map +1 -1
- package/dist/server/handlers/error.d.ts.map +1 -1
- package/dist/server/handlers/error.js +14 -5
- package/dist/server/handlers/error.js.map +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +2 -2
- package/dist/server/handlers/logs.js +2 -2
- package/dist/server/handlers/mcp-client-versions.cjs +2 -2
- package/dist/server/handlers/mcp-client-versions.js +2 -2
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +2 -2
- package/dist/server/handlers/memory.js +2 -2
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +443 -83
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +125 -9
- package/dist/server/handlers/observability-shared.cjs.map +1 -1
- package/dist/server/handlers/observability-shared.d.ts +38 -2
- package/dist/server/handlers/observability-shared.d.ts.map +1 -1
- package/dist/server/handlers/observability-shared.js +118 -10
- package/dist/server/handlers/observability-shared.js.map +1 -1
- package/dist/server/handlers/observability.cjs +2 -2
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/plans.cjs +3 -3
- package/dist/server/handlers/plans.js +3 -3
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +2 -2
- package/dist/server/handlers/prompt-block-versions.js +2 -2
- package/dist/server/handlers/responses.cjs +2 -2
- package/dist/server/handlers/responses.js +2 -2
- package/dist/server/handlers/responses.storage.cjs +1 -1
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +2 -2
- package/dist/server/handlers/scorer-versions.js +2 -2
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +3 -3
- package/dist/server/handlers/stored-agents.cjs +3 -3
- package/dist/server/handlers/stored-agents.js +3 -3
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.js +2 -2
- package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +2 -2
- package/dist/server/handlers/stored-scorers.js +2 -2
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +3 -3
- package/dist/server/handlers/stored-skills.cjs +3 -3
- package/dist/server/handlers/stored-skills.js +3 -3
- package/dist/server/handlers/stored-workspaces.cjs +2 -2
- package/dist/server/handlers/stored-workspaces.js +2 -2
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.d.ts +12 -0
- package/dist/server/handlers/system.d.ts.map +1 -1
- package/dist/server/handlers/system.js +3 -3
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +6 -6
- package/dist/server/handlers/utils.cjs +2 -1
- package/dist/server/handlers/utils.d.ts +9 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +2 -2
- package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
- package/dist/server/handlers/validate-agent-instructions.js +1 -1
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +1 -1
- package/dist/server/handlers/workflow-builder.d.ts.map +1 -1
- package/dist/server/handlers/workflow-builder.js +1 -1
- package/dist/server/handlers/workflows.cjs +4 -4
- package/dist/server/handlers/workflows.js +4 -4
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +2 -2
- package/dist/server/schemas/agents.d.ts +5 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/datasets.d.ts +2 -0
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +8 -8
- package/dist/server/schemas/index.js +8 -8
- package/dist/server/schemas/system.d.ts +12 -0
- package/dist/server/schemas/system.d.ts.map +1 -1
- package/dist/server/server-adapter/api-schema-manifest.d.ts +2 -0
- package/dist/server/server-adapter/api-schema-manifest.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +9 -4
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +9 -4
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/openapi-utils.d.ts +19 -1
- package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agent-controller.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/datasets.d.ts +4 -0
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +221 -41
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/system.d.ts +12 -0
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
- package/dist/{system-DY6UweSl.cjs → system-BvpFMIJB.cjs} +7 -1
- package/dist/system-BvpFMIJB.cjs.map +1 -0
- package/dist/{system-MGpkVA20.js → system-CpzPxRRq.js} +7 -1
- package/dist/system-CpzPxRRq.js.map +1 -0
- package/dist/{utils-D5DHrO3K.js → utils-BBJlS81s.js} +19 -2
- package/dist/{utils-D5DHrO3K.js.map → utils-BBJlS81s.js.map} +1 -1
- package/dist/{utils-tmrFs-gf.js → utils-DCAUeb6M.js} +3 -3
- package/dist/{utils-tmrFs-gf.js.map → utils-DCAUeb6M.js.map} +1 -1
- package/dist/{utils-BZdnPmsW.cjs → utils-DCgeTrq2.cjs} +3 -3
- package/dist/{utils-BZdnPmsW.cjs.map → utils-DCgeTrq2.cjs.map} +1 -1
- package/dist/{utils-CczRcgHQ.cjs → utils-Du-EpvDs.cjs} +24 -1
- package/dist/{utils-CczRcgHQ.cjs.map → utils-Du-EpvDs.cjs.map} +1 -1
- package/dist/{workflow-builder-DdSutoga.cjs → workflow-builder-Brj3IArM.cjs} +6 -6
- package/dist/workflow-builder-Brj3IArM.cjs.map +1 -0
- package/dist/{workflow-builder-DJ0eeJuG.js → workflow-builder-DOa1Vx6w.js} +6 -6
- package/dist/workflow-builder-DOa1Vx6w.js.map +1 -0
- package/package.json +10 -11
- package/dist/a2a-Dg3ylOKc.js.map +0 -1
- package/dist/agents-D9vpLghy.cjs.map +0 -1
- package/dist/agents-DNWDET4U.js.map +0 -1
- package/dist/api-schema-manifest-Dr8PM4Qj.cjs.map +0 -1
- package/dist/api-schema-manifest-aur2BK6a.js.map +0 -1
- package/dist/datasets-BdD8JWhx.cjs.map +0 -1
- package/dist/datasets-CKwh-k4I.js.map +0 -1
- package/dist/dist-B8rA8_Wt.cjs.map +0 -1
- package/dist/dist-CdMzvOLk.js.map +0 -1
- package/dist/observability-new-endpoints-BoALDMSi.cjs.map +0 -1
- package/dist/observability-new-endpoints-CB7T6Z7c.js.map +0 -1
- package/dist/route-builder-lBil8Cvo.js.map +0 -1
- package/dist/routes-BhI1lW_W.js.map +0 -1
- package/dist/routes-CuJPLAh8.cjs.map +0 -1
- package/dist/schema-BVcoNfni.cjs +0 -1
- package/dist/schema-Xxr5X5Je.js +0 -2
- package/dist/system-DY6UweSl.cjs.map +0 -1
- package/dist/system-MGpkVA20.js.map +0 -1
- package/dist/workflow-builder-DJ0eeJuG.js.map +0 -1
- package/dist/workflow-builder-DdSutoga.cjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
|
|
2
|
-
import { n as createRoute } from "../../route-builder-
|
|
2
|
+
import { n as createRoute } from "../../route-builder-BfQYtclb.js";
|
|
3
3
|
import { l as MASTRA_USER_KEY } from "../../constants-DazK_RZj.js";
|
|
4
4
|
import { handleError } from "./error.js";
|
|
5
|
-
import {
|
|
5
|
+
import { g as MastraFGAPermissions, n as enforceThreadAccess } from "../../utils-BBJlS81s.js";
|
|
6
6
|
import { E as includeSchema, F as messageOrderBySchema, h as filterSchema } from "../../memory-B58Q2LgU.js";
|
|
7
7
|
import { z } from "zod/v4";
|
|
8
8
|
//#region src/server/handlers/agent-controller.ts
|
|
@@ -13,8 +13,9 @@ import { z } from "zod/v4";
|
|
|
13
13
|
* `new Mastra({ agentControllers })`) exposes its sessions over HTTP so
|
|
14
14
|
* non-terminal clients — e.g. a browser-based MastraCode — can create sessions,
|
|
15
15
|
* send messages, stream events, and drive run-control. Each route resolves its
|
|
16
|
-
* target AgentController by id, then operates on
|
|
17
|
-
* `
|
|
16
|
+
* target AgentController by id, then operates on the session addressed by
|
|
17
|
+
* `sessionId` (which works on the threads and memory of its `resourceId`).
|
|
18
|
+
* Mutating routes use get-or-create resolution so reconnects
|
|
18
19
|
* resume rather than fork the conversation; read routes only inspect existing
|
|
19
20
|
* live sessions.
|
|
20
21
|
*/
|
|
@@ -61,25 +62,51 @@ function getAgentControllerOrThrow(mastra, controllerId) {
|
|
|
61
62
|
if (!controller) throw new HTTPException(404, { message: `agent controller "${controllerId}" not found` });
|
|
62
63
|
return controller;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
+
/**
|
|
66
|
+
* The resource of the session addressed by `sessionId`, without materializing
|
|
67
|
+
* it: the live session's resource, else the resource of the thread sharing the
|
|
68
|
+
* session's id, else `sessionId` itself (the default when a session is created
|
|
69
|
+
* without a `sessionId`).
|
|
70
|
+
*/
|
|
71
|
+
async function resolveSessionResourceId(controller, sessionId) {
|
|
72
|
+
const live = await controller.getSession(sessionId);
|
|
73
|
+
if (live) return live.identity.getResourceId();
|
|
74
|
+
return (await controller.queryThreadById({ threadId: sessionId }))?.resourceId ?? sessionId;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resolve the session addressed by `sessionId` that every route other than create acts on: the live one, or a
|
|
78
|
+
* lost one (e.g. after a restart) rebuilt from storage. When a thread with the session's id exists, the session
|
|
79
|
+
* resumes on that thread under the thread's resource (hosts that use `sessionId === threadId` recover their own
|
|
80
|
+
* thread even when many sessions share one resource); otherwise it resumes on `resourceId = sessionId`, the
|
|
81
|
+
* default `POST /sessions` applies when no `sessionId` is sent. Never starts a conversation, so a write that
|
|
82
|
+
* arrives before the session was started fails instead of landing on a thread nobody reads.
|
|
83
|
+
*/
|
|
84
|
+
async function getSession(controller, sessionId, requestContext) {
|
|
65
85
|
await controller.init();
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
86
|
+
const live = await controller.getSession(sessionId);
|
|
87
|
+
const thread = live ? null : await controller.queryThreadById({ threadId: sessionId });
|
|
88
|
+
try {
|
|
89
|
+
return await controller.createSession({
|
|
90
|
+
id: sessionId,
|
|
91
|
+
resourceId: live?.identity.getResourceId() ?? thread?.resourceId ?? sessionId,
|
|
92
|
+
ownerId: controller.id,
|
|
93
|
+
threadId: thread ? sessionId : void 0,
|
|
94
|
+
resumeOnly: true,
|
|
95
|
+
requestContext
|
|
96
|
+
});
|
|
97
|
+
} catch (error) {
|
|
98
|
+
if (error instanceof Error && error.code === "SESSION_NOT_STARTED") throw new HTTPException(404, {
|
|
99
|
+
message: `No session "${sessionId}" has been started. Create it with POST /agent-controller/:controllerId/sessions first.`,
|
|
100
|
+
cause: error
|
|
101
|
+
});
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
77
104
|
}
|
|
78
|
-
async function getExistingSession(controller,
|
|
105
|
+
async function getExistingSession(controller, sessionId, requestContext) {
|
|
79
106
|
await controller.init();
|
|
80
|
-
const session = await controller.
|
|
107
|
+
const session = await controller.getSession(sessionId, requestContext);
|
|
81
108
|
if (session) return session;
|
|
82
|
-
return getSession(controller,
|
|
109
|
+
return getSession(controller, sessionId, requestContext);
|
|
83
110
|
}
|
|
84
111
|
/**
|
|
85
112
|
* Acknowledges a session operation that keeps running after the response is
|
|
@@ -116,22 +143,29 @@ function ackBackgroundSessionWork({ work, session, mastra, operation }) {
|
|
|
116
143
|
const controllerIdPathParams = z.object({ controllerId: z.string() });
|
|
117
144
|
const sessionPathParams = z.object({
|
|
118
145
|
controllerId: z.string(),
|
|
119
|
-
|
|
146
|
+
sessionId: z.string()
|
|
120
147
|
});
|
|
121
148
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* sessions (e.g. one per git worktree). Sent as a `sessionScope` query param
|
|
125
|
-
* on session routes; named to avoid colliding with the model-switch `scope`.
|
|
149
|
+
* Sessions used to be addressed by `resourceId` plus `sessionScope`. The param is gone: reject it
|
|
150
|
+
* rather than drop it, so an older client's scoped session can't quietly merge into another one.
|
|
126
151
|
*/
|
|
127
|
-
const
|
|
128
|
-
const
|
|
152
|
+
const removedSessionScope = z.never({ error: "sessionScope was removed; address the session by sessionId" }).optional();
|
|
153
|
+
const sessionQuerySchema = z.object({ sessionScope: removedSessionScope });
|
|
154
|
+
const sessionStateQuerySchema = sessionQuerySchema.extend({ threadId: z.string().optional() });
|
|
129
155
|
const createSessionBodySchema = z.object({
|
|
130
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Whose threads and memory the session works on. Optional when `sessionId` is
|
|
158
|
+
* sent: the session then resumes on the resource it already has (the live
|
|
159
|
+
* session's, or the resource of the thread with the session's id), falling
|
|
160
|
+
* back to the session id.
|
|
161
|
+
*/
|
|
162
|
+
resourceId: z.string().optional(),
|
|
163
|
+
/** Address of the session. Defaults to `resourceId`. */
|
|
164
|
+
sessionId: z.string().optional(),
|
|
165
|
+
sessionScope: removedSessionScope,
|
|
131
166
|
tags: z.record(z.string(), z.string()).optional(),
|
|
132
|
-
threadId: z.string().optional()
|
|
133
|
-
|
|
134
|
-
});
|
|
167
|
+
threadId: z.string().optional()
|
|
168
|
+
}).refine((body) => body.resourceId !== void 0 || body.sessionId !== void 0, { message: "resourceId or sessionId is required" });
|
|
135
169
|
const MAX_FILE_DATA_LENGTH = 14 * 1024 * 1024;
|
|
136
170
|
const MAX_TOTAL_FILE_DATA_LENGTH = 28 * 1024 * 1024;
|
|
137
171
|
/**
|
|
@@ -159,7 +193,16 @@ const steerBodySchema = z.object({
|
|
|
159
193
|
const toolApprovalBodySchema = z.object({
|
|
160
194
|
toolCallId: z.string(),
|
|
161
195
|
approved: z.boolean(),
|
|
196
|
+
/**
|
|
197
|
+
* Grants the gated tool's category to the thread that owns the call, then
|
|
198
|
+
* approves — the same "always allow" the in-process TUI offers. Requires
|
|
199
|
+
* `approved: true`.
|
|
200
|
+
*/
|
|
201
|
+
alwaysAllowCategory: z.boolean().optional(),
|
|
162
202
|
requestContext: bodyRequestContextSchema
|
|
203
|
+
}).refine((body) => !body.alwaysAllowCategory || body.approved, {
|
|
204
|
+
message: "alwaysAllowCategory requires approved: true",
|
|
205
|
+
path: ["alwaysAllowCategory"]
|
|
163
206
|
});
|
|
164
207
|
const toolSuspensionBodySchema = z.object({
|
|
165
208
|
toolCallId: z.string().min(1),
|
|
@@ -184,7 +227,7 @@ const createThreadBodySchema = z.object({ title: z.string().optional() });
|
|
|
184
227
|
const renameThreadBodySchema = z.object({ title: z.string() });
|
|
185
228
|
const threadPathParams = z.object({
|
|
186
229
|
controllerId: z.string(),
|
|
187
|
-
|
|
230
|
+
sessionId: z.string(),
|
|
188
231
|
threadId: z.string()
|
|
189
232
|
});
|
|
190
233
|
const cloneThreadBodySchema = z.object({
|
|
@@ -193,14 +236,14 @@ const cloneThreadBodySchema = z.object({
|
|
|
193
236
|
});
|
|
194
237
|
const controllerPaginationNumber = z.coerce.number().int().min(0);
|
|
195
238
|
const listMessagesQuerySchema = z.object({
|
|
239
|
+
sessionScope: removedSessionScope,
|
|
196
240
|
/** @deprecated Use page and perPage instead. */
|
|
197
241
|
limit: controllerPaginationNumber.optional(),
|
|
198
242
|
page: controllerPaginationNumber.optional(),
|
|
199
243
|
perPage: z.preprocess((value) => value === "false" ? false : value, z.union([z.literal(false), controllerPaginationNumber])).optional(),
|
|
200
244
|
orderBy: messageOrderBySchema,
|
|
201
245
|
include: includeSchema,
|
|
202
|
-
filter: filterSchema
|
|
203
|
-
sessionScope: z.string().optional()
|
|
246
|
+
filter: filterSchema
|
|
204
247
|
}).superRefine((value, ctx) => {
|
|
205
248
|
if (value.limit === void 0) return;
|
|
206
249
|
for (const field of [
|
|
@@ -221,8 +264,8 @@ const listMessagesQuerySchema = z.object({
|
|
|
221
264
|
* only their own threads. Malformed JSON is treated as "no filter".
|
|
222
265
|
*/
|
|
223
266
|
const listThreadsQuerySchema = z.object({
|
|
267
|
+
sessionScope: removedSessionScope,
|
|
224
268
|
limit: z.coerce.number().optional(),
|
|
225
|
-
sessionScope: z.string().optional(),
|
|
226
269
|
tags: z.preprocess((value) => {
|
|
227
270
|
if (typeof value !== "string" || value.length === 0) return void 0;
|
|
228
271
|
try {
|
|
@@ -257,10 +300,12 @@ const sendNotificationBodySchema = z.object({
|
|
|
257
300
|
const listAgentControllersResponseSchema = z.object({ agentControllers: z.array(z.object({ id: z.string() })) });
|
|
258
301
|
const createSessionResponseSchema = z.object({
|
|
259
302
|
controllerId: z.string(),
|
|
303
|
+
sessionId: z.string(),
|
|
260
304
|
resourceId: z.string(),
|
|
261
305
|
threadId: z.string().optional()
|
|
262
306
|
});
|
|
263
307
|
const ackResponseSchema = z.object({ ok: z.boolean() });
|
|
308
|
+
const transferOwnershipResponseSchema = ackResponseSchema.extend({ ownerId: z.string() });
|
|
264
309
|
const toolCommandAckResponseSchema = z.object({
|
|
265
310
|
ok: z.boolean(),
|
|
266
311
|
reason: z.enum([
|
|
@@ -331,6 +376,7 @@ const taskSnapshotSchema = z.object({
|
|
|
331
376
|
});
|
|
332
377
|
const sessionStateResponseSchema = z.object({
|
|
333
378
|
controllerId: z.string(),
|
|
379
|
+
sessionId: z.string(),
|
|
334
380
|
resourceId: z.string(),
|
|
335
381
|
threadId: z.string().optional(),
|
|
336
382
|
modeId: z.string(),
|
|
@@ -447,25 +493,34 @@ const LIST_AGENT_CONTROLLERS_ROUTE = createRoute({
|
|
|
447
493
|
const CREATE_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
448
494
|
method: "POST",
|
|
449
495
|
path: "/agent-controller/:controllerId/sessions",
|
|
496
|
+
queryParamSchema: sessionQuerySchema,
|
|
450
497
|
responseType: "json",
|
|
451
498
|
pathParamSchema: controllerIdPathParams,
|
|
452
499
|
bodySchema: createSessionBodySchema,
|
|
453
500
|
responseSchema: createSessionResponseSchema,
|
|
454
501
|
summary: "Create or resume a controller session",
|
|
455
|
-
description: "Creates
|
|
502
|
+
description: "Creates the session addressed by `sessionId` on the given resourceId, or returns the existing one (get-or-create), so reconnects resume the conversation. Without a `sessionId` the session is addressed by `resourceId`; without a `resourceId` it resumes on the resource it already has. Every other session route requires a started session and returns 404 until one exists or can be recovered from a stored thread.",
|
|
456
503
|
tags: ["AgentController"],
|
|
457
504
|
requiresAuth: true,
|
|
458
505
|
requiresPermission: "agent-controller:execute",
|
|
459
|
-
handler: async ({ mastra, controllerId, resourceId,
|
|
506
|
+
handler: async ({ mastra, controllerId, resourceId, sessionId, tags, threadId, requestContext }) => {
|
|
460
507
|
try {
|
|
508
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
509
|
+
await controller.init();
|
|
510
|
+
const id = sessionId ?? resourceId;
|
|
511
|
+
const session = await controller.createSession({
|
|
512
|
+
id,
|
|
513
|
+
resourceId: resourceId ?? await resolveSessionResourceId(controller, id),
|
|
514
|
+
ownerId: controller.id,
|
|
515
|
+
tags,
|
|
516
|
+
threadId,
|
|
517
|
+
requestContext
|
|
518
|
+
});
|
|
461
519
|
return {
|
|
462
520
|
controllerId,
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
scope: sessionScope,
|
|
467
|
-
threadId
|
|
468
|
-
}, requestContext)).thread.getId() ?? void 0
|
|
521
|
+
sessionId: session.identity.getId(),
|
|
522
|
+
resourceId: session.identity.getResourceId(),
|
|
523
|
+
threadId: session.thread.getId() ?? void 0
|
|
469
524
|
};
|
|
470
525
|
} catch (error) {
|
|
471
526
|
return handleError(error, "error creating controller session");
|
|
@@ -512,20 +567,20 @@ function toWireEvent(event) {
|
|
|
512
567
|
}
|
|
513
568
|
const STREAM_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
514
569
|
method: "GET",
|
|
515
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
570
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/stream",
|
|
571
|
+
queryParamSchema: sessionQuerySchema,
|
|
516
572
|
responseType: "stream",
|
|
517
573
|
streamFormat: "sse",
|
|
518
574
|
sseFlushOnConnect: true,
|
|
519
575
|
pathParamSchema: sessionPathParams,
|
|
520
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
521
576
|
summary: "Stream controller session events",
|
|
522
577
|
description: "Subscribes to a session’s event bus and streams events to the client over SSE.",
|
|
523
578
|
tags: ["AgentController", "Streaming"],
|
|
524
579
|
requiresAuth: true,
|
|
525
580
|
requiresPermission: "agent-controller:read",
|
|
526
|
-
handler: async ({ mastra, controllerId,
|
|
581
|
+
handler: async ({ mastra, controllerId, sessionId, abortSignal, requestContext }) => {
|
|
527
582
|
try {
|
|
528
|
-
const session = await getExistingSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
583
|
+
const session = await getExistingSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
529
584
|
let cleanedUp = false;
|
|
530
585
|
let heartbeat;
|
|
531
586
|
let unsubscribe;
|
|
@@ -594,10 +649,10 @@ const STREAM_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
594
649
|
});
|
|
595
650
|
const SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
596
651
|
method: "POST",
|
|
597
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
652
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/messages",
|
|
653
|
+
queryParamSchema: sessionQuerySchema,
|
|
598
654
|
responseType: "json",
|
|
599
655
|
pathParamSchema: sessionPathParams,
|
|
600
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
601
656
|
bodySchema: sendMessageBodySchema,
|
|
602
657
|
responseSchema: ackResponseSchema,
|
|
603
658
|
summary: "Send a message to a controller session",
|
|
@@ -605,9 +660,9 @@ const SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
|
605
660
|
tags: ["AgentController", "Streaming"],
|
|
606
661
|
requiresAuth: true,
|
|
607
662
|
requiresPermission: "agent-controller:execute",
|
|
608
|
-
handler: async ({ mastra, controllerId,
|
|
663
|
+
handler: async ({ mastra, controllerId, sessionId, message, files, requestContext }) => {
|
|
609
664
|
try {
|
|
610
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
665
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
611
666
|
const author = getRequestMessageAuthor(requestContext);
|
|
612
667
|
ackBackgroundSessionWork({
|
|
613
668
|
work: session.sendMessage({
|
|
@@ -628,19 +683,19 @@ const SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
|
628
683
|
});
|
|
629
684
|
const ABORT_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
630
685
|
method: "POST",
|
|
631
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
686
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/abort",
|
|
687
|
+
queryParamSchema: sessionQuerySchema,
|
|
632
688
|
responseType: "json",
|
|
633
689
|
pathParamSchema: sessionPathParams,
|
|
634
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
635
690
|
responseSchema: ackResponseSchema,
|
|
636
691
|
summary: "Abort a controller session run",
|
|
637
692
|
description: "Aborts the in-flight run for the session, if any.",
|
|
638
693
|
tags: ["AgentController"],
|
|
639
694
|
requiresAuth: true,
|
|
640
695
|
requiresPermission: "agent-controller:execute",
|
|
641
|
-
handler: async ({ mastra, controllerId,
|
|
696
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
642
697
|
try {
|
|
643
|
-
(await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
698
|
+
(await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).abort();
|
|
644
699
|
return { ok: true };
|
|
645
700
|
} catch (error) {
|
|
646
701
|
return handleError(error, "error aborting controller session");
|
|
@@ -649,10 +704,10 @@ const ABORT_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
649
704
|
});
|
|
650
705
|
const AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
651
706
|
method: "POST",
|
|
652
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
707
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/tool-approval",
|
|
708
|
+
queryParamSchema: sessionQuerySchema,
|
|
653
709
|
responseType: "json",
|
|
654
710
|
pathParamSchema: sessionPathParams,
|
|
655
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
656
711
|
bodySchema: toolApprovalBodySchema,
|
|
657
712
|
responseSchema: toolCommandAckResponseSchema,
|
|
658
713
|
summary: "Respond to a controller tool approval",
|
|
@@ -660,13 +715,13 @@ const AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
|
660
715
|
tags: ["AgentController"],
|
|
661
716
|
requiresAuth: true,
|
|
662
717
|
requiresPermission: "agent-controller:execute",
|
|
663
|
-
handler: async ({ mastra, controllerId,
|
|
718
|
+
handler: async ({ mastra, controllerId, sessionId, toolCallId, approved, alwaysAllowCategory, requestContext }) => {
|
|
664
719
|
try {
|
|
665
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
720
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
666
721
|
if ((toolCallId ? session.approval.isArmed({ toolCallId }) : session.approval.isArmed()) || !toolCallId) {
|
|
667
722
|
const result = session.respondToToolApproval({
|
|
668
723
|
toolCallId,
|
|
669
|
-
decision: approved ? "
|
|
724
|
+
decision: !approved ? "decline" : alwaysAllowCategory ? "always_allow_category" : "approve",
|
|
670
725
|
requestContext
|
|
671
726
|
});
|
|
672
727
|
if (!result.accepted) return {
|
|
@@ -686,6 +741,7 @@ const AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
|
686
741
|
work: session.respondToPersistedToolApproval({
|
|
687
742
|
toolCallId,
|
|
688
743
|
approved,
|
|
744
|
+
alwaysAllowCategory,
|
|
689
745
|
requestContext
|
|
690
746
|
}).finally(() => session.releaseToolResponse(toolCallId)),
|
|
691
747
|
session,
|
|
@@ -701,10 +757,10 @@ const AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
|
701
757
|
});
|
|
702
758
|
const AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
703
759
|
method: "POST",
|
|
704
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
760
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/tool-suspension",
|
|
761
|
+
queryParamSchema: sessionQuerySchema,
|
|
705
762
|
responseType: "json",
|
|
706
763
|
pathParamSchema: sessionPathParams,
|
|
707
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
708
764
|
bodySchema: toolSuspensionBodySchema,
|
|
709
765
|
responseSchema: toolCommandAckResponseSchema,
|
|
710
766
|
summary: "Respond to a suspended controller tool",
|
|
@@ -712,9 +768,9 @@ const AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
|
712
768
|
tags: ["AgentController"],
|
|
713
769
|
requiresAuth: true,
|
|
714
770
|
requiresPermission: "agent-controller:execute",
|
|
715
|
-
handler: async ({ mastra, controllerId,
|
|
771
|
+
handler: async ({ mastra, controllerId, sessionId, toolCallId, runId, resumeData, requestContext }) => {
|
|
716
772
|
try {
|
|
717
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
773
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
718
774
|
const claim = session.claimToolSuspension(toolCallId, runId);
|
|
719
775
|
if (!claim.accepted) return {
|
|
720
776
|
ok: false,
|
|
@@ -738,10 +794,10 @@ const AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
|
738
794
|
});
|
|
739
795
|
const STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
740
796
|
method: "POST",
|
|
741
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
797
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/steer",
|
|
798
|
+
queryParamSchema: sessionQuerySchema,
|
|
742
799
|
responseType: "json",
|
|
743
800
|
pathParamSchema: sessionPathParams,
|
|
744
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
745
801
|
bodySchema: steerBodySchema,
|
|
746
802
|
responseSchema: ackResponseSchema,
|
|
747
803
|
summary: "Steer the in-flight run",
|
|
@@ -749,9 +805,9 @@ const STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
749
805
|
tags: ["AgentController"],
|
|
750
806
|
requiresAuth: true,
|
|
751
807
|
requiresPermission: "agent-controller:execute",
|
|
752
|
-
handler: async ({ mastra, controllerId,
|
|
808
|
+
handler: async ({ mastra, controllerId, sessionId, message, files, requestContext }) => {
|
|
753
809
|
try {
|
|
754
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
810
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
755
811
|
const author = getRequestMessageAuthor(requestContext);
|
|
756
812
|
ackBackgroundSessionWork({
|
|
757
813
|
work: session.steer({
|
|
@@ -772,10 +828,10 @@ const STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
772
828
|
});
|
|
773
829
|
const SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
774
830
|
method: "POST",
|
|
775
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
831
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/mode",
|
|
832
|
+
queryParamSchema: sessionQuerySchema,
|
|
776
833
|
responseType: "json",
|
|
777
834
|
pathParamSchema: sessionPathParams,
|
|
778
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
779
835
|
bodySchema: switchModeBodySchema,
|
|
780
836
|
responseSchema: ackResponseSchema,
|
|
781
837
|
summary: "Switch the session mode",
|
|
@@ -783,9 +839,9 @@ const SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
|
783
839
|
tags: ["AgentController"],
|
|
784
840
|
requiresAuth: true,
|
|
785
841
|
requiresPermission: "agent-controller:execute",
|
|
786
|
-
handler: async ({ mastra, controllerId,
|
|
842
|
+
handler: async ({ mastra, controllerId, sessionId, modeId, requestContext }) => {
|
|
787
843
|
try {
|
|
788
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
844
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).mode.switch({ modeId });
|
|
789
845
|
return { ok: true };
|
|
790
846
|
} catch (error) {
|
|
791
847
|
return handleError(error, "error switching controller mode");
|
|
@@ -794,10 +850,10 @@ const SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
|
794
850
|
});
|
|
795
851
|
const SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
796
852
|
method: "POST",
|
|
797
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
853
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/model",
|
|
854
|
+
queryParamSchema: sessionQuerySchema,
|
|
798
855
|
responseType: "json",
|
|
799
856
|
pathParamSchema: sessionPathParams,
|
|
800
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
801
857
|
bodySchema: switchModelBodySchema,
|
|
802
858
|
responseSchema: ackResponseSchema,
|
|
803
859
|
summary: "Switch the session model",
|
|
@@ -805,9 +861,9 @@ const SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
|
805
861
|
tags: ["AgentController"],
|
|
806
862
|
requiresAuth: true,
|
|
807
863
|
requiresPermission: "agent-controller:execute",
|
|
808
|
-
handler: async ({ mastra, controllerId,
|
|
864
|
+
handler: async ({ mastra, controllerId, sessionId, modelId, thinkingLevel, requestContext }) => {
|
|
809
865
|
try {
|
|
810
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
866
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).model.switch(modelId, { thinkingLevel });
|
|
811
867
|
return { ok: true };
|
|
812
868
|
} catch (error) {
|
|
813
869
|
return handleError(error, "error switching controller model");
|
|
@@ -816,10 +872,10 @@ const SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
|
816
872
|
});
|
|
817
873
|
const SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
818
874
|
method: "POST",
|
|
819
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
875
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/thread",
|
|
876
|
+
queryParamSchema: sessionQuerySchema,
|
|
820
877
|
responseType: "json",
|
|
821
878
|
pathParamSchema: sessionPathParams,
|
|
822
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
823
879
|
bodySchema: switchThreadBodySchema,
|
|
824
880
|
responseSchema: ackResponseSchema,
|
|
825
881
|
summary: "Switch the session thread",
|
|
@@ -827,9 +883,9 @@ const SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
827
883
|
tags: ["AgentController"],
|
|
828
884
|
requiresAuth: true,
|
|
829
885
|
requiresPermission: "agent-controller:execute",
|
|
830
|
-
handler: async ({ mastra, controllerId,
|
|
886
|
+
handler: async ({ mastra, controllerId, sessionId, threadId, requestContext }) => {
|
|
831
887
|
try {
|
|
832
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
888
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
833
889
|
if (session.thread.getId() !== threadId) await session.thread.switch({
|
|
834
890
|
threadId,
|
|
835
891
|
requestContext
|
|
@@ -840,9 +896,51 @@ const SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
840
896
|
}
|
|
841
897
|
}
|
|
842
898
|
});
|
|
899
|
+
const TRANSFER_AGENT_CONTROLLER_THREAD_OWNERSHIP_ROUTE = createRoute({
|
|
900
|
+
method: "POST",
|
|
901
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads/:threadId/owner",
|
|
902
|
+
queryParamSchema: sessionQuerySchema,
|
|
903
|
+
responseType: "json",
|
|
904
|
+
pathParamSchema: threadPathParams,
|
|
905
|
+
responseSchema: transferOwnershipResponseSchema,
|
|
906
|
+
summary: "Take ownership of a thread",
|
|
907
|
+
description: "Transfers ownership of the specified thread to the authenticated user from the request context. The thread must belong to the session's resource, and the caller needs memory write access to it. The session's active thread does not change.",
|
|
908
|
+
tags: ["AgentController", "Threads"],
|
|
909
|
+
requiresAuth: true,
|
|
910
|
+
requiresPermission: "agent-controller:execute",
|
|
911
|
+
handler: async ({ mastra, controllerId, sessionId, threadId, requestContext }) => {
|
|
912
|
+
try {
|
|
913
|
+
const ownerId = getRequestMessageAuthor(requestContext)?.id;
|
|
914
|
+
if (!ownerId) throw new HTTPException(401, { message: "An authenticated user is required to transfer thread ownership" });
|
|
915
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
916
|
+
await controller.init();
|
|
917
|
+
const resourceId = await resolveSessionResourceId(controller, sessionId);
|
|
918
|
+
const thread = await controller.queryThreadById({ threadId });
|
|
919
|
+
if (!thread || thread.resourceId !== resourceId) throw new HTTPException(404, { message: "Thread not found" });
|
|
920
|
+
await enforceThreadAccess({
|
|
921
|
+
mastra,
|
|
922
|
+
requestContext,
|
|
923
|
+
threadId,
|
|
924
|
+
thread,
|
|
925
|
+
effectiveResourceId: resourceId,
|
|
926
|
+
permission: MastraFGAPermissions.MEMORY_WRITE
|
|
927
|
+
});
|
|
928
|
+
await (await getSession(controller, sessionId, requestContext)).thread.transferOwnership({
|
|
929
|
+
toOwnerId: ownerId,
|
|
930
|
+
threadId
|
|
931
|
+
});
|
|
932
|
+
return {
|
|
933
|
+
ok: true,
|
|
934
|
+
ownerId
|
|
935
|
+
};
|
|
936
|
+
} catch (error) {
|
|
937
|
+
return handleError(error, "error transferring controller thread ownership");
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
});
|
|
843
941
|
const GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
844
942
|
method: "GET",
|
|
845
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
943
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId",
|
|
846
944
|
responseType: "json",
|
|
847
945
|
pathParamSchema: sessionPathParams,
|
|
848
946
|
queryParamSchema: sessionStateQuerySchema,
|
|
@@ -852,9 +950,10 @@ const GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
852
950
|
tags: ["AgentController"],
|
|
853
951
|
requiresAuth: true,
|
|
854
952
|
requiresPermission: "agent-controller:read",
|
|
855
|
-
handler: async ({ mastra, controllerId,
|
|
953
|
+
handler: async ({ mastra, controllerId, sessionId, threadId: requestedThreadId, requestContext }) => {
|
|
856
954
|
try {
|
|
857
|
-
const session = await getExistingSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
955
|
+
const session = await getExistingSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
956
|
+
const resourceId = session.identity.getResourceId();
|
|
858
957
|
const ds = session.displayState.get();
|
|
859
958
|
const threadId = requestedThreadId ?? session.thread.getId() ?? void 0;
|
|
860
959
|
const storage = mastra.getStorage();
|
|
@@ -878,6 +977,7 @@ const GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
878
977
|
const oneOfOptional = (value, allowed) => allowed.includes(value) ? value : void 0;
|
|
879
978
|
return {
|
|
880
979
|
controllerId,
|
|
980
|
+
sessionId: session.identity.getId(),
|
|
881
981
|
resourceId,
|
|
882
982
|
threadId,
|
|
883
983
|
modeId: session.mode.get(),
|
|
@@ -967,19 +1067,20 @@ const LIST_AGENT_CONTROLLER_ACTIVE_RUNS_ROUTE = createRoute({
|
|
|
967
1067
|
});
|
|
968
1068
|
const LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
969
1069
|
method: "GET",
|
|
970
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1070
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads",
|
|
971
1071
|
responseType: "json",
|
|
972
1072
|
pathParamSchema: sessionPathParams,
|
|
973
1073
|
queryParamSchema: listThreadsQuerySchema,
|
|
974
1074
|
responseSchema: listThreadsResponseSchema,
|
|
975
1075
|
summary: "List session threads",
|
|
976
|
-
description: "Lists the
|
|
1076
|
+
description: "Lists every thread of the session’s resource (not only the session’s own threads), most-recently-updated first. Pass `limit` to return only the newest N (e.g. for a sidebar). Pass `tags` (a JSON-encoded object) to scope the list to threads matching every tag — e.g. `{ projectPath }` so git worktrees sharing a resourceId each see only their own threads.",
|
|
977
1077
|
tags: ["AgentController"],
|
|
978
1078
|
requiresAuth: true,
|
|
979
1079
|
requiresPermission: "agent-controller:read",
|
|
980
|
-
handler: async ({ mastra, controllerId,
|
|
1080
|
+
handler: async ({ mastra, controllerId, sessionId, limit, tags }) => {
|
|
981
1081
|
try {
|
|
982
1082
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1083
|
+
const resourceId = await resolveSessionResourceId(controller, sessionId);
|
|
983
1084
|
const threads = await controller.queryThreads({ resourceId });
|
|
984
1085
|
const getTags = (t) => {
|
|
985
1086
|
const metadata = t.metadata ?? {};
|
|
@@ -1014,10 +1115,10 @@ const LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
|
1014
1115
|
});
|
|
1015
1116
|
const SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
1016
1117
|
method: "POST",
|
|
1017
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1118
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/notifications",
|
|
1119
|
+
queryParamSchema: sessionQuerySchema,
|
|
1018
1120
|
responseType: "json",
|
|
1019
1121
|
pathParamSchema: sessionPathParams,
|
|
1020
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1021
1122
|
bodySchema: sendNotificationBodySchema,
|
|
1022
1123
|
responseSchema: z.object({
|
|
1023
1124
|
accepted: z.boolean(),
|
|
@@ -1030,9 +1131,9 @@ const SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
|
1030
1131
|
tags: ["AgentController"],
|
|
1031
1132
|
requiresAuth: true,
|
|
1032
1133
|
requiresPermission: "agent-controller:execute",
|
|
1033
|
-
handler: async ({ mastra, controllerId,
|
|
1134
|
+
handler: async ({ mastra, controllerId, sessionId, source, kind, summary, priority, payload, sourceId, dedupeKey, coalesceKey, attributes, metadata, requestContext }) => {
|
|
1034
1135
|
try {
|
|
1035
|
-
const result = await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1136
|
+
const result = await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).sendNotificationSignal({
|
|
1036
1137
|
source,
|
|
1037
1138
|
kind,
|
|
1038
1139
|
summary,
|
|
@@ -1057,10 +1158,10 @@ const SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
|
1057
1158
|
});
|
|
1058
1159
|
const CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
1059
1160
|
method: "POST",
|
|
1060
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1161
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads",
|
|
1162
|
+
queryParamSchema: sessionQuerySchema,
|
|
1061
1163
|
responseType: "json",
|
|
1062
1164
|
pathParamSchema: sessionPathParams,
|
|
1063
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1064
1165
|
bodySchema: createThreadBodySchema,
|
|
1065
1166
|
responseSchema: threadResponseSchema,
|
|
1066
1167
|
summary: "Create a new thread",
|
|
@@ -1068,9 +1169,9 @@ const CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1068
1169
|
tags: ["AgentController", "Threads"],
|
|
1069
1170
|
requiresAuth: true,
|
|
1070
1171
|
requiresPermission: "agent-controller:execute",
|
|
1071
|
-
handler: async ({ mastra, controllerId,
|
|
1172
|
+
handler: async ({ mastra, controllerId, sessionId, title, requestContext }) => {
|
|
1072
1173
|
try {
|
|
1073
|
-
const thread = await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1174
|
+
const thread = await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).thread.create({
|
|
1074
1175
|
title,
|
|
1075
1176
|
requestContext
|
|
1076
1177
|
});
|
|
@@ -1088,19 +1189,19 @@ const CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1088
1189
|
});
|
|
1089
1190
|
const DELETE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
1090
1191
|
method: "DELETE",
|
|
1091
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1192
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads/:threadId",
|
|
1193
|
+
queryParamSchema: sessionQuerySchema,
|
|
1092
1194
|
responseType: "json",
|
|
1093
1195
|
pathParamSchema: threadPathParams,
|
|
1094
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1095
1196
|
responseSchema: ackResponseSchema,
|
|
1096
1197
|
summary: "Delete a thread",
|
|
1097
1198
|
description: "Deletes a thread. If the deleted thread is the active one, the session is unbound.",
|
|
1098
1199
|
tags: ["AgentController", "Threads"],
|
|
1099
1200
|
requiresAuth: true,
|
|
1100
1201
|
requiresPermission: "agent-controller:execute",
|
|
1101
|
-
handler: async ({ mastra, controllerId,
|
|
1202
|
+
handler: async ({ mastra, controllerId, sessionId, threadId, requestContext }) => {
|
|
1102
1203
|
try {
|
|
1103
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1204
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).thread.delete({
|
|
1104
1205
|
threadId,
|
|
1105
1206
|
requestContext
|
|
1106
1207
|
});
|
|
@@ -1112,10 +1213,10 @@ const DELETE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1112
1213
|
});
|
|
1113
1214
|
const RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
1114
1215
|
method: "PUT",
|
|
1115
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1216
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads/:threadId",
|
|
1217
|
+
queryParamSchema: sessionQuerySchema,
|
|
1116
1218
|
responseType: "json",
|
|
1117
1219
|
pathParamSchema: threadPathParams,
|
|
1118
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1119
1220
|
bodySchema: renameThreadBodySchema,
|
|
1120
1221
|
responseSchema: ackResponseSchema,
|
|
1121
1222
|
summary: "Rename a thread",
|
|
@@ -1123,9 +1224,9 @@ const RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1123
1224
|
tags: ["AgentController", "Threads"],
|
|
1124
1225
|
requiresAuth: true,
|
|
1125
1226
|
requiresPermission: "agent-controller:execute",
|
|
1126
|
-
handler: async ({ mastra, controllerId,
|
|
1227
|
+
handler: async ({ mastra, controllerId, sessionId, threadId, title, requestContext }) => {
|
|
1127
1228
|
try {
|
|
1128
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1229
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
1129
1230
|
if (session.thread.getId() !== threadId) await session.thread.switch({
|
|
1130
1231
|
threadId,
|
|
1131
1232
|
requestContext
|
|
@@ -1139,10 +1240,10 @@ const RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1139
1240
|
});
|
|
1140
1241
|
const CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
1141
1242
|
method: "POST",
|
|
1142
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1243
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads/clone",
|
|
1244
|
+
queryParamSchema: sessionQuerySchema,
|
|
1143
1245
|
responseType: "json",
|
|
1144
1246
|
pathParamSchema: sessionPathParams,
|
|
1145
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1146
1247
|
bodySchema: cloneThreadBodySchema,
|
|
1147
1248
|
responseSchema: threadResponseSchema,
|
|
1148
1249
|
summary: "Clone a thread",
|
|
@@ -1150,9 +1251,9 @@ const CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1150
1251
|
tags: ["AgentController", "Threads"],
|
|
1151
1252
|
requiresAuth: true,
|
|
1152
1253
|
requiresPermission: "agent-controller:execute",
|
|
1153
|
-
handler: async ({ mastra, controllerId,
|
|
1254
|
+
handler: async ({ mastra, controllerId, sessionId, sourceThreadId, title, requestContext }) => {
|
|
1154
1255
|
try {
|
|
1155
|
-
const thread = await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1256
|
+
const thread = await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).thread.clone({
|
|
1156
1257
|
sourceThreadId,
|
|
1157
1258
|
title,
|
|
1158
1259
|
requestContext
|
|
@@ -1171,7 +1272,7 @@ const CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
|
1171
1272
|
});
|
|
1172
1273
|
const LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
|
|
1173
1274
|
method: "GET",
|
|
1174
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1275
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/threads/:threadId/messages",
|
|
1175
1276
|
responseType: "json",
|
|
1176
1277
|
pathParamSchema: threadPathParams,
|
|
1177
1278
|
queryParamSchema: listMessagesQuerySchema,
|
|
@@ -1181,12 +1282,13 @@ const LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
|
|
|
1181
1282
|
tags: ["AgentController", "Threads"],
|
|
1182
1283
|
requiresAuth: true,
|
|
1183
1284
|
requiresPermission: "agent-controller:read",
|
|
1184
|
-
handler: async ({ mastra, controllerId,
|
|
1285
|
+
handler: async ({ mastra, controllerId, sessionId, threadId, limit, page, perPage, orderBy, include, filter, requestContext }) => {
|
|
1185
1286
|
try {
|
|
1186
1287
|
if (limit !== void 0 && (perPage !== void 0 || orderBy !== void 0 || include !== void 0 || filter !== void 0)) throw new HTTPException(400, { message: "limit can only be combined with page; use perPage instead" });
|
|
1187
1288
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1289
|
+
const resourceId = await resolveSessionResourceId(controller, sessionId);
|
|
1188
1290
|
const thread = await controller.queryThreadById({ threadId });
|
|
1189
|
-
if (!thread ||
|
|
1291
|
+
if (!thread || thread.resourceId && thread.resourceId !== resourceId) throw new HTTPException(404, { message: "Thread not found" });
|
|
1190
1292
|
await enforceThreadAccess({
|
|
1191
1293
|
mastra,
|
|
1192
1294
|
requestContext,
|
|
@@ -1233,10 +1335,10 @@ const LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
|
|
|
1233
1335
|
});
|
|
1234
1336
|
const FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
1235
1337
|
method: "POST",
|
|
1236
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1338
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/follow-up",
|
|
1339
|
+
queryParamSchema: sessionQuerySchema,
|
|
1237
1340
|
responseType: "json",
|
|
1238
1341
|
pathParamSchema: sessionPathParams,
|
|
1239
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1240
1342
|
bodySchema: followUpBodySchema,
|
|
1241
1343
|
responseSchema: ackResponseSchema,
|
|
1242
1344
|
summary: "Queue a follow-up message",
|
|
@@ -1244,9 +1346,9 @@ const FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
|
1244
1346
|
tags: ["AgentController"],
|
|
1245
1347
|
requiresAuth: true,
|
|
1246
1348
|
requiresPermission: "agent-controller:execute",
|
|
1247
|
-
handler: async ({ mastra, controllerId,
|
|
1349
|
+
handler: async ({ mastra, controllerId, sessionId, message, files, requestContext }) => {
|
|
1248
1350
|
try {
|
|
1249
|
-
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1351
|
+
const session = await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext);
|
|
1250
1352
|
ackBackgroundSessionWork({
|
|
1251
1353
|
work: session.followUp({
|
|
1252
1354
|
content: message,
|
|
@@ -1316,20 +1418,20 @@ const GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE = createRoute({
|
|
|
1316
1418
|
});
|
|
1317
1419
|
const GET_AGENT_CONTROLLER_OM_RECORD_ROUTE = createRoute({
|
|
1318
1420
|
method: "GET",
|
|
1319
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1421
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/om",
|
|
1422
|
+
queryParamSchema: sessionQuerySchema,
|
|
1320
1423
|
responseType: "json",
|
|
1321
1424
|
pathParamSchema: sessionPathParams,
|
|
1322
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1323
1425
|
responseSchema: omRecordResponseSchema,
|
|
1324
1426
|
summary: "Get observational memory record",
|
|
1325
1427
|
description: "Returns the current observational memory record for the session’s thread/resource.",
|
|
1326
1428
|
tags: ["AgentController"],
|
|
1327
1429
|
requiresAuth: true,
|
|
1328
1430
|
requiresPermission: "agent-controller:read",
|
|
1329
|
-
handler: async ({ mastra, controllerId,
|
|
1431
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
1330
1432
|
try {
|
|
1331
1433
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1332
|
-
const session = await getExistingSession(controller,
|
|
1434
|
+
const session = await getExistingSession(controller, sessionId, requestContext);
|
|
1333
1435
|
return { record: await controller.getObservationalMemoryRecord(session) ?? void 0 };
|
|
1334
1436
|
} catch (error) {
|
|
1335
1437
|
return handleError(error, "error reading controller OM record");
|
|
@@ -1338,10 +1440,10 @@ const GET_AGENT_CONTROLLER_OM_RECORD_ROUTE = createRoute({
|
|
|
1338
1440
|
});
|
|
1339
1441
|
const SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
1340
1442
|
method: "POST",
|
|
1341
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1443
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/resource",
|
|
1444
|
+
queryParamSchema: sessionQuerySchema,
|
|
1342
1445
|
responseType: "json",
|
|
1343
1446
|
pathParamSchema: sessionPathParams,
|
|
1344
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1345
1447
|
bodySchema: z.object({ newResourceId: z.string() }),
|
|
1346
1448
|
responseSchema: ackResponseSchema,
|
|
1347
1449
|
summary: "Change the session resource ID",
|
|
@@ -1349,10 +1451,10 @@ const SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
|
1349
1451
|
tags: ["AgentController"],
|
|
1350
1452
|
requiresAuth: true,
|
|
1351
1453
|
requiresPermission: "agent-controller:execute",
|
|
1352
|
-
handler: async ({ mastra, controllerId,
|
|
1454
|
+
handler: async ({ mastra, controllerId, sessionId, newResourceId, requestContext }) => {
|
|
1353
1455
|
try {
|
|
1354
1456
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1355
|
-
const session = await getSession(controller,
|
|
1457
|
+
const session = await getSession(controller, sessionId, requestContext);
|
|
1356
1458
|
await controller.setResourceId(session, { resourceId: newResourceId });
|
|
1357
1459
|
return { ok: true };
|
|
1358
1460
|
} catch (error) {
|
|
@@ -1362,20 +1464,20 @@ const SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
|
1362
1464
|
});
|
|
1363
1465
|
const GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE = createRoute({
|
|
1364
1466
|
method: "GET",
|
|
1365
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1467
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/resources",
|
|
1468
|
+
queryParamSchema: sessionQuerySchema,
|
|
1366
1469
|
responseType: "json",
|
|
1367
1470
|
pathParamSchema: sessionPathParams,
|
|
1368
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1369
1471
|
responseSchema: z.object({ resourceIds: z.array(z.string()) }),
|
|
1370
1472
|
summary: "Get known resource IDs",
|
|
1371
1473
|
description: "Lists the resource IDs known to this session (from threads).",
|
|
1372
1474
|
tags: ["AgentController"],
|
|
1373
1475
|
requiresAuth: true,
|
|
1374
1476
|
requiresPermission: "agent-controller:read",
|
|
1375
|
-
handler: async ({ mastra, controllerId,
|
|
1477
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
1376
1478
|
try {
|
|
1377
1479
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1378
|
-
const session = await getExistingSession(controller,
|
|
1480
|
+
const session = await getExistingSession(controller, sessionId, requestContext);
|
|
1379
1481
|
return { resourceIds: await controller.getKnownResourceIds(session) };
|
|
1380
1482
|
} catch (error) {
|
|
1381
1483
|
return handleError(error, "error listing controller resource IDs");
|
|
@@ -1417,20 +1519,20 @@ function getAgentForSession(controller, session) {
|
|
|
1417
1519
|
}
|
|
1418
1520
|
const GET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1419
1521
|
method: "GET",
|
|
1420
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1522
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/goal",
|
|
1523
|
+
queryParamSchema: sessionQuerySchema,
|
|
1421
1524
|
responseType: "json",
|
|
1422
1525
|
pathParamSchema: sessionPathParams,
|
|
1423
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1424
1526
|
responseSchema: goalResponseSchema,
|
|
1425
1527
|
summary: "Get the current goal",
|
|
1426
1528
|
description: "Returns the active/paused/done goal objective for the session’s thread, if any.",
|
|
1427
1529
|
tags: ["AgentController", "Goals"],
|
|
1428
1530
|
requiresAuth: true,
|
|
1429
1531
|
requiresPermission: "agent-controller:read",
|
|
1430
|
-
handler: async ({ mastra, controllerId,
|
|
1532
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
1431
1533
|
try {
|
|
1432
1534
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1433
|
-
const session = await getExistingSession(controller,
|
|
1535
|
+
const session = await getExistingSession(controller, sessionId, requestContext);
|
|
1434
1536
|
const threadId = session.thread.getId();
|
|
1435
1537
|
if (!threadId) return { goal: void 0 };
|
|
1436
1538
|
return { goal: await getAgentForSession(controller, session).getObjective({ threadId }) ?? void 0 };
|
|
@@ -1441,10 +1543,10 @@ const GET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1441
1543
|
});
|
|
1442
1544
|
const SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1443
1545
|
method: "POST",
|
|
1444
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1546
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/goal",
|
|
1547
|
+
queryParamSchema: sessionQuerySchema,
|
|
1445
1548
|
responseType: "json",
|
|
1446
1549
|
pathParamSchema: sessionPathParams,
|
|
1447
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1448
1550
|
bodySchema: setGoalBodySchema,
|
|
1449
1551
|
responseSchema: goalResponseSchema,
|
|
1450
1552
|
summary: "Set a goal",
|
|
@@ -1452,10 +1554,10 @@ const SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1452
1554
|
tags: ["AgentController", "Goals"],
|
|
1453
1555
|
requiresAuth: true,
|
|
1454
1556
|
requiresPermission: "agent-controller:execute",
|
|
1455
|
-
handler: async ({ mastra, controllerId,
|
|
1557
|
+
handler: async ({ mastra, controllerId, sessionId, objective, judgeModelId, maxRuns, requestContext }) => {
|
|
1456
1558
|
try {
|
|
1457
1559
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1458
|
-
const session = await getSession(controller,
|
|
1560
|
+
const session = await getSession(controller, sessionId, requestContext);
|
|
1459
1561
|
const threadId = session.thread.getId();
|
|
1460
1562
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1461
1563
|
return { goal: await getAgentForSession(controller, session).setObjective(objective, {
|
|
@@ -1471,10 +1573,10 @@ const SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1471
1573
|
});
|
|
1472
1574
|
const UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1473
1575
|
method: "PUT",
|
|
1474
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1576
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/goal",
|
|
1577
|
+
queryParamSchema: sessionQuerySchema,
|
|
1475
1578
|
responseType: "json",
|
|
1476
1579
|
pathParamSchema: sessionPathParams,
|
|
1477
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1478
1580
|
bodySchema: updateGoalBodySchema,
|
|
1479
1581
|
responseSchema: goalResponseSchema,
|
|
1480
1582
|
summary: "Update goal options",
|
|
@@ -1482,10 +1584,10 @@ const UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1482
1584
|
tags: ["AgentController", "Goals"],
|
|
1483
1585
|
requiresAuth: true,
|
|
1484
1586
|
requiresPermission: "agent-controller:execute",
|
|
1485
|
-
handler: async ({ mastra, controllerId,
|
|
1587
|
+
handler: async ({ mastra, controllerId, sessionId, judgeModelId, maxRuns, status, requestContext }) => {
|
|
1486
1588
|
try {
|
|
1487
1589
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1488
|
-
const session = await getSession(controller,
|
|
1590
|
+
const session = await getSession(controller, sessionId, requestContext);
|
|
1489
1591
|
const threadId = session.thread.getId();
|
|
1490
1592
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1491
1593
|
return { goal: await getAgentForSession(controller, session).updateObjectiveOptions({
|
|
@@ -1501,20 +1603,20 @@ const UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1501
1603
|
});
|
|
1502
1604
|
const CLEAR_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1503
1605
|
method: "DELETE",
|
|
1504
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1606
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/goal",
|
|
1607
|
+
queryParamSchema: sessionQuerySchema,
|
|
1505
1608
|
responseType: "json",
|
|
1506
1609
|
pathParamSchema: sessionPathParams,
|
|
1507
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1508
1610
|
responseSchema: ackResponseSchema,
|
|
1509
1611
|
summary: "Clear the goal",
|
|
1510
1612
|
description: "Removes the active goal from the session’s thread.",
|
|
1511
1613
|
tags: ["AgentController", "Goals"],
|
|
1512
1614
|
requiresAuth: true,
|
|
1513
1615
|
requiresPermission: "agent-controller:execute",
|
|
1514
|
-
handler: async ({ mastra, controllerId,
|
|
1616
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
1515
1617
|
try {
|
|
1516
1618
|
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1517
|
-
const session = await getSession(controller,
|
|
1619
|
+
const session = await getSession(controller, sessionId, requestContext);
|
|
1518
1620
|
const threadId = session.thread.getId();
|
|
1519
1621
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1520
1622
|
await getAgentForSession(controller, session).clearObjective({ threadId });
|
|
@@ -1526,19 +1628,19 @@ const CLEAR_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
|
1526
1628
|
});
|
|
1527
1629
|
const GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE = createRoute({
|
|
1528
1630
|
method: "GET",
|
|
1529
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1631
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/permissions",
|
|
1632
|
+
queryParamSchema: sessionQuerySchema,
|
|
1530
1633
|
responseType: "json",
|
|
1531
1634
|
pathParamSchema: sessionPathParams,
|
|
1532
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1533
1635
|
responseSchema: permissionRulesResponseSchema,
|
|
1534
1636
|
summary: "Get permission rules",
|
|
1535
1637
|
description: "Returns the current permission rules (per-category and per-tool policies) for the session.",
|
|
1536
1638
|
tags: ["AgentController", "Permissions"],
|
|
1537
1639
|
requiresAuth: true,
|
|
1538
1640
|
requiresPermission: "agent-controller:read",
|
|
1539
|
-
handler: async ({ mastra, controllerId,
|
|
1641
|
+
handler: async ({ mastra, controllerId, sessionId, requestContext }) => {
|
|
1540
1642
|
try {
|
|
1541
|
-
const rules = (await getExistingSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1643
|
+
const rules = (await getExistingSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).permissions.getRules();
|
|
1542
1644
|
return {
|
|
1543
1645
|
categories: rules.categories,
|
|
1544
1646
|
tools: rules.tools
|
|
@@ -1550,10 +1652,10 @@ const GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE = createRoute({
|
|
|
1550
1652
|
});
|
|
1551
1653
|
const SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
1552
1654
|
method: "PUT",
|
|
1553
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1655
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/permissions/category",
|
|
1656
|
+
queryParamSchema: sessionQuerySchema,
|
|
1554
1657
|
responseType: "json",
|
|
1555
1658
|
pathParamSchema: sessionPathParams,
|
|
1556
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1557
1659
|
bodySchema: setCategoryPermissionBodySchema,
|
|
1558
1660
|
responseSchema: ackResponseSchema,
|
|
1559
1661
|
summary: "Set permission for a tool category",
|
|
@@ -1561,9 +1663,9 @@ const SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
|
1561
1663
|
tags: ["AgentController", "Permissions"],
|
|
1562
1664
|
requiresAuth: true,
|
|
1563
1665
|
requiresPermission: "agent-controller:execute",
|
|
1564
|
-
handler: async ({ mastra, controllerId,
|
|
1666
|
+
handler: async ({ mastra, controllerId, sessionId, category, policy, requestContext }) => {
|
|
1565
1667
|
try {
|
|
1566
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1668
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).permissions.setForCategory({
|
|
1567
1669
|
category,
|
|
1568
1670
|
policy
|
|
1569
1671
|
});
|
|
@@ -1575,10 +1677,10 @@ const SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
|
1575
1677
|
});
|
|
1576
1678
|
const SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
1577
1679
|
method: "PUT",
|
|
1578
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1680
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/permissions/tool",
|
|
1681
|
+
queryParamSchema: sessionQuerySchema,
|
|
1579
1682
|
responseType: "json",
|
|
1580
1683
|
pathParamSchema: sessionPathParams,
|
|
1581
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1582
1684
|
bodySchema: setToolPermissionBodySchema,
|
|
1583
1685
|
responseSchema: ackResponseSchema,
|
|
1584
1686
|
summary: "Set permission for a specific tool",
|
|
@@ -1586,9 +1688,9 @@ const SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
|
1586
1688
|
tags: ["AgentController", "Permissions"],
|
|
1587
1689
|
requiresAuth: true,
|
|
1588
1690
|
requiresPermission: "agent-controller:execute",
|
|
1589
|
-
handler: async ({ mastra, controllerId,
|
|
1691
|
+
handler: async ({ mastra, controllerId, sessionId, toolName, policy, requestContext }) => {
|
|
1590
1692
|
try {
|
|
1591
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1693
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).permissions.setForTool({
|
|
1592
1694
|
toolName,
|
|
1593
1695
|
policy
|
|
1594
1696
|
});
|
|
@@ -1600,10 +1702,10 @@ const SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
|
1600
1702
|
});
|
|
1601
1703
|
const SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
1602
1704
|
method: "PUT",
|
|
1603
|
-
path: "/agent-controller/:controllerId/sessions/:
|
|
1705
|
+
path: "/agent-controller/:controllerId/sessions/:sessionId/state",
|
|
1706
|
+
queryParamSchema: sessionQuerySchema,
|
|
1604
1707
|
responseType: "json",
|
|
1605
1708
|
pathParamSchema: sessionPathParams,
|
|
1606
|
-
queryParamSchema: sessionScopeQuerySchema,
|
|
1607
1709
|
bodySchema: z.object({ state: z.record(z.string(), z.unknown()) }),
|
|
1608
1710
|
responseSchema: ackResponseSchema,
|
|
1609
1711
|
summary: "Set session state",
|
|
@@ -1611,9 +1713,9 @@ const SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
1611
1713
|
tags: ["AgentController"],
|
|
1612
1714
|
requiresAuth: true,
|
|
1613
1715
|
requiresPermission: "agent-controller:execute",
|
|
1614
|
-
handler: async ({ mastra, controllerId,
|
|
1716
|
+
handler: async ({ mastra, controllerId, sessionId, state, requestContext }) => {
|
|
1615
1717
|
try {
|
|
1616
|
-
await (await getSession(getAgentControllerOrThrow(mastra, controllerId),
|
|
1718
|
+
await (await getSession(getAgentControllerOrThrow(mastra, controllerId), sessionId, requestContext)).state.set(state);
|
|
1617
1719
|
return { ok: true };
|
|
1618
1720
|
} catch (error) {
|
|
1619
1721
|
return handleError(error, "error setting controller session state");
|
|
@@ -1621,6 +1723,6 @@ const SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
|
1621
1723
|
}
|
|
1622
1724
|
});
|
|
1623
1725
|
//#endregion
|
|
1624
|
-
export { ABORT_AGENT_CONTROLLER_SESSION_ROUTE, AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE, AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE, CLEAR_AGENT_CONTROLLER_GOAL_ROUTE, CLONE_AGENT_CONTROLLER_THREAD_ROUTE, CREATE_AGENT_CONTROLLER_SESSION_ROUTE, CREATE_AGENT_CONTROLLER_THREAD_ROUTE, DELETE_AGENT_CONTROLLER_THREAD_ROUTE, FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE, GET_AGENT_CONTROLLER_GOAL_ROUTE, GET_AGENT_CONTROLLER_OM_RECORD_ROUTE, GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE, GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE, GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE, LIST_AGENT_CONTROLLERS_ROUTE, LIST_AGENT_CONTROLLER_ACTIVE_RUNS_ROUTE, LIST_AGENT_CONTROLLER_MODELS_ROUTE, LIST_AGENT_CONTROLLER_MODES_ROUTE, LIST_AGENT_CONTROLLER_THREADS_ROUTE, LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE, RENAME_AGENT_CONTROLLER_THREAD_ROUTE, SEND_AGENT_CONTROLLER_MESSAGE_ROUTE, SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE, SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE, SET_AGENT_CONTROLLER_GOAL_ROUTE, SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE, SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE, STEER_AGENT_CONTROLLER_SESSION_ROUTE, STREAM_AGENT_CONTROLLER_SESSION_ROUTE, SWITCH_AGENT_CONTROLLER_MODEL_ROUTE, SWITCH_AGENT_CONTROLLER_MODE_ROUTE, SWITCH_AGENT_CONTROLLER_THREAD_ROUTE, UPDATE_AGENT_CONTROLLER_GOAL_ROUTE };
|
|
1726
|
+
export { ABORT_AGENT_CONTROLLER_SESSION_ROUTE, AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE, AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE, CLEAR_AGENT_CONTROLLER_GOAL_ROUTE, CLONE_AGENT_CONTROLLER_THREAD_ROUTE, CREATE_AGENT_CONTROLLER_SESSION_ROUTE, CREATE_AGENT_CONTROLLER_THREAD_ROUTE, DELETE_AGENT_CONTROLLER_THREAD_ROUTE, FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE, GET_AGENT_CONTROLLER_GOAL_ROUTE, GET_AGENT_CONTROLLER_OM_RECORD_ROUTE, GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE, GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE, GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE, LIST_AGENT_CONTROLLERS_ROUTE, LIST_AGENT_CONTROLLER_ACTIVE_RUNS_ROUTE, LIST_AGENT_CONTROLLER_MODELS_ROUTE, LIST_AGENT_CONTROLLER_MODES_ROUTE, LIST_AGENT_CONTROLLER_THREADS_ROUTE, LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE, RENAME_AGENT_CONTROLLER_THREAD_ROUTE, SEND_AGENT_CONTROLLER_MESSAGE_ROUTE, SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE, SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE, SET_AGENT_CONTROLLER_GOAL_ROUTE, SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE, SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE, SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE, STEER_AGENT_CONTROLLER_SESSION_ROUTE, STREAM_AGENT_CONTROLLER_SESSION_ROUTE, SWITCH_AGENT_CONTROLLER_MODEL_ROUTE, SWITCH_AGENT_CONTROLLER_MODE_ROUTE, SWITCH_AGENT_CONTROLLER_THREAD_ROUTE, TRANSFER_AGENT_CONTROLLER_THREAD_OWNERSHIP_ROUTE, UPDATE_AGENT_CONTROLLER_GOAL_ROUTE };
|
|
1625
1727
|
|
|
1626
1728
|
//# sourceMappingURL=agent-controller.js.map
|