@mastra/server 1.47.0-alpha.5 → 1.47.0-alpha.6
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 +31 -0
- package/dist/_types/@mastra_schema-compat/dist/schema.types.d.ts +4 -1
- package/dist/{api-schema-manifest-OQOZ53HZ.js → api-schema-manifest-LT57YVGI.js} +3 -3
- package/dist/{api-schema-manifest-OQOZ53HZ.js.map → api-schema-manifest-LT57YVGI.js.map} +1 -1
- package/dist/{api-schema-manifest-SYCCXMOC.cjs → api-schema-manifest-SJMFHZHR.cjs} +4 -4
- package/dist/{api-schema-manifest-SYCCXMOC.cjs.map → api-schema-manifest-SJMFHZHR.cjs.map} +1 -1
- package/dist/{chunk-XOQEKMY2.cjs → chunk-2NGSYVI3.cjs} +34 -34
- package/dist/{chunk-XOQEKMY2.cjs.map → chunk-2NGSYVI3.cjs.map} +1 -1
- package/dist/{chunk-S2HKHYJ3.cjs → chunk-2R52ZPSI.cjs} +9 -9
- package/dist/{chunk-S2HKHYJ3.cjs.map → chunk-2R52ZPSI.cjs.map} +1 -1
- package/dist/{chunk-ZZOHO2FT.js → chunk-34WNPIGV.js} +5 -5
- package/dist/{chunk-ZZOHO2FT.js.map → chunk-34WNPIGV.js.map} +1 -1
- package/dist/{chunk-UZ43QCIA.cjs → chunk-3KBURDTO.cjs} +12 -12
- package/dist/{chunk-UZ43QCIA.cjs.map → chunk-3KBURDTO.cjs.map} +1 -1
- package/dist/{chunk-RVD3DGBZ.cjs → chunk-42M6Y2OD.cjs} +3 -3
- package/dist/{chunk-RVD3DGBZ.cjs.map → chunk-42M6Y2OD.cjs.map} +1 -1
- package/dist/{chunk-Q7EQLQS5.js → chunk-43T7OG7P.js} +16 -9
- package/dist/chunk-43T7OG7P.js.map +1 -0
- package/dist/{chunk-5V2QWK2S.js → chunk-4E7VGBSM.js} +5 -5
- package/dist/{chunk-5V2QWK2S.js.map → chunk-4E7VGBSM.js.map} +1 -1
- package/dist/{chunk-PLWZVSGT.js → chunk-4UZTUQYZ.js} +5 -5
- package/dist/{chunk-PLWZVSGT.js.map → chunk-4UZTUQYZ.js.map} +1 -1
- package/dist/{chunk-V23ANIEC.cjs → chunk-4WRZ6BK4.cjs} +4 -4
- package/dist/{chunk-V23ANIEC.cjs.map → chunk-4WRZ6BK4.cjs.map} +1 -1
- package/dist/{chunk-VRERZRJQ.js → chunk-4ZD4KLXD.js} +4 -4
- package/dist/{chunk-VRERZRJQ.js.map → chunk-4ZD4KLXD.js.map} +1 -1
- package/dist/{chunk-K3FM6RLZ.cjs → chunk-5JVILML3.cjs} +9 -9
- package/dist/{chunk-K3FM6RLZ.cjs.map → chunk-5JVILML3.cjs.map} +1 -1
- package/dist/{chunk-7FIDKZUG.cjs → chunk-6CUVVNHE.cjs} +6 -6
- package/dist/{chunk-7FIDKZUG.cjs.map → chunk-6CUVVNHE.cjs.map} +1 -1
- package/dist/{chunk-QQCQV7ZF.cjs → chunk-7GNT5KQE.cjs} +3 -2
- package/dist/chunk-7GNT5KQE.cjs.map +1 -0
- package/dist/{chunk-4ZHHKMDQ.cjs → chunk-AC4YST2M.cjs} +3 -3
- package/dist/{chunk-4ZHHKMDQ.cjs.map → chunk-AC4YST2M.cjs.map} +1 -1
- package/dist/{chunk-R4O5HVDI.js → chunk-AGWL3ZLU.js} +3 -3
- package/dist/{chunk-R4O5HVDI.js.map → chunk-AGWL3ZLU.js.map} +1 -1
- package/dist/{chunk-C2A2BZFY.js → chunk-AMWGBQZU.js} +4 -4
- package/dist/{chunk-C2A2BZFY.js.map → chunk-AMWGBQZU.js.map} +1 -1
- package/dist/{chunk-TPZFGGU4.cjs → chunk-CCUQDEQW.cjs} +283 -283
- package/dist/chunk-CCUQDEQW.cjs.map +1 -0
- package/dist/{chunk-E2JNW3QM.js → chunk-D6RO4IFO.js} +3 -3
- package/dist/{chunk-E2JNW3QM.js.map → chunk-D6RO4IFO.js.map} +1 -1
- package/dist/{chunk-DULEYONH.cjs → chunk-D7YMTEPI.cjs} +13 -13
- package/dist/{chunk-DULEYONH.cjs.map → chunk-D7YMTEPI.cjs.map} +1 -1
- package/dist/{chunk-2Z3TLC4L.js → chunk-DSHITLJ4.js} +4 -4
- package/dist/{chunk-2Z3TLC4L.js.map → chunk-DSHITLJ4.js.map} +1 -1
- package/dist/{chunk-SJPWXUKZ.js → chunk-DVCCSRFP.js} +3 -3
- package/dist/{chunk-SJPWXUKZ.js.map → chunk-DVCCSRFP.js.map} +1 -1
- package/dist/{chunk-Y3MYKCTO.cjs → chunk-EBUK5R3S.cjs} +13 -13
- package/dist/{chunk-Y3MYKCTO.cjs.map → chunk-EBUK5R3S.cjs.map} +1 -1
- package/dist/{chunk-JY2LHUT4.cjs → chunk-EKRIVYU4.cjs} +22 -22
- package/dist/{chunk-JY2LHUT4.cjs.map → chunk-EKRIVYU4.cjs.map} +1 -1
- package/dist/{chunk-IBUJJIRW.js → chunk-EOGTJIPF.js} +3 -3
- package/dist/{chunk-IBUJJIRW.js.map → chunk-EOGTJIPF.js.map} +1 -1
- package/dist/{chunk-ONBABU5V.cjs → chunk-EYCW4Z4H.cjs} +10 -10
- package/dist/{chunk-ONBABU5V.cjs.map → chunk-EYCW4Z4H.cjs.map} +1 -1
- package/dist/{chunk-GU4AEOGA.cjs → chunk-F6VL25IA.cjs} +7 -7
- package/dist/{chunk-GU4AEOGA.cjs.map → chunk-F6VL25IA.cjs.map} +1 -1
- package/dist/{chunk-JZJ3PP2H.cjs → chunk-GOD4LLZT.cjs} +10 -10
- package/dist/{chunk-JZJ3PP2H.cjs.map → chunk-GOD4LLZT.cjs.map} +1 -1
- package/dist/{chunk-NEPOKWAA.js → chunk-GQI4NKKD.js} +5 -5
- package/dist/{chunk-NEPOKWAA.js.map → chunk-GQI4NKKD.js.map} +1 -1
- package/dist/{chunk-KGUHJRHZ.cjs → chunk-HDIYJI2Z.cjs} +3 -3
- package/dist/{chunk-KGUHJRHZ.cjs.map → chunk-HDIYJI2Z.cjs.map} +1 -1
- package/dist/{chunk-TPGA2ZTS.js → chunk-IEONDWGQ.js} +4 -4
- package/dist/{chunk-TPGA2ZTS.js.map → chunk-IEONDWGQ.js.map} +1 -1
- package/dist/{chunk-6HRGFBAF.cjs → chunk-IY4MNGI3.cjs} +63 -63
- package/dist/{chunk-6HRGFBAF.cjs.map → chunk-IY4MNGI3.cjs.map} +1 -1
- package/dist/{chunk-3ENQND57.js → chunk-JBSUT5XF.js} +3 -3
- package/dist/{chunk-3ENQND57.js.map → chunk-JBSUT5XF.js.map} +1 -1
- package/dist/{chunk-VNWPOCOT.cjs → chunk-JJDLXVWR.cjs} +19 -19
- package/dist/{chunk-VNWPOCOT.cjs.map → chunk-JJDLXVWR.cjs.map} +1 -1
- package/dist/{chunk-F5EEKLC4.js → chunk-KA6FUBC5.js} +6 -6
- package/dist/{chunk-F5EEKLC4.js.map → chunk-KA6FUBC5.js.map} +1 -1
- package/dist/{chunk-E345K7K7.js → chunk-KGJGR6GO.js} +5 -5
- package/dist/{chunk-E345K7K7.js.map → chunk-KGJGR6GO.js.map} +1 -1
- package/dist/{chunk-YLWKZ3VK.cjs → chunk-KIDHIRVO.cjs} +7 -7
- package/dist/{chunk-YLWKZ3VK.cjs.map → chunk-KIDHIRVO.cjs.map} +1 -1
- package/dist/{chunk-T32FQPWH.cjs → chunk-KR7FUFVK.cjs} +10 -10
- package/dist/{chunk-T32FQPWH.cjs.map → chunk-KR7FUFVK.cjs.map} +1 -1
- package/dist/{chunk-RY5RETAD.js → chunk-L4DD3HSB.js} +3 -3
- package/dist/{chunk-RY5RETAD.js.map → chunk-L4DD3HSB.js.map} +1 -1
- package/dist/{chunk-BB6RVOJY.js → chunk-LA4AQGZA.js} +3 -3
- package/dist/{chunk-BB6RVOJY.js.map → chunk-LA4AQGZA.js.map} +1 -1
- package/dist/{chunk-MMY24AC4.js → chunk-LUPNAVPL.js} +3 -3
- package/dist/{chunk-MMY24AC4.js.map → chunk-LUPNAVPL.js.map} +1 -1
- package/dist/{chunk-PSC3HAPW.cjs → chunk-MM7ONP57.cjs} +59 -59
- package/dist/{chunk-PSC3HAPW.cjs.map → chunk-MM7ONP57.cjs.map} +1 -1
- package/dist/{chunk-CIWN2JM4.js → chunk-MX3JQ3ZU.js} +3 -3
- package/dist/{chunk-CIWN2JM4.js.map → chunk-MX3JQ3ZU.js.map} +1 -1
- package/dist/{chunk-M5DAKMVZ.cjs → chunk-OE3KATAT.cjs} +4 -4
- package/dist/{chunk-M5DAKMVZ.cjs.map → chunk-OE3KATAT.cjs.map} +1 -1
- package/dist/{chunk-OT2JWWCT.cjs → chunk-OU4L45LL.cjs} +8 -8
- package/dist/{chunk-OT2JWWCT.cjs.map → chunk-OU4L45LL.cjs.map} +1 -1
- package/dist/{chunk-IRJJ2JJG.cjs → chunk-OZ64QWKA.cjs} +12 -12
- package/dist/{chunk-IRJJ2JJG.cjs.map → chunk-OZ64QWKA.cjs.map} +1 -1
- package/dist/{chunk-PUW3RA3B.js → chunk-P6TSZJ4I.js} +4 -4
- package/dist/{chunk-PUW3RA3B.js.map → chunk-P6TSZJ4I.js.map} +1 -1
- package/dist/{chunk-M25LVAUH.js → chunk-P7HCBIOK.js} +4 -4
- package/dist/{chunk-M25LVAUH.js.map → chunk-P7HCBIOK.js.map} +1 -1
- package/dist/{chunk-3ZV6GYQI.cjs → chunk-PVZX6FFO.cjs} +16 -9
- package/dist/chunk-PVZX6FFO.cjs.map +1 -0
- package/dist/{chunk-UXO4GWPT.js → chunk-Q6TDIK2A.js} +6 -6
- package/dist/{chunk-UXO4GWPT.js.map → chunk-Q6TDIK2A.js.map} +1 -1
- package/dist/{chunk-4BJSE3LM.js → chunk-QECRXNAM.js} +3 -3
- package/dist/{chunk-4BJSE3LM.js.map → chunk-QECRXNAM.js.map} +1 -1
- package/dist/{chunk-RM4ITWAQ.cjs → chunk-QRTZCP42.cjs} +10 -10
- package/dist/{chunk-RM4ITWAQ.cjs.map → chunk-QRTZCP42.cjs.map} +1 -1
- package/dist/{chunk-KBOC52HT.js → chunk-RETWAY24.js} +3 -3
- package/dist/{chunk-KBOC52HT.js.map → chunk-RETWAY24.js.map} +1 -1
- package/dist/{chunk-3WE5YAL5.js → chunk-RLAOC73C.js} +330 -327
- package/dist/chunk-RLAOC73C.js.map +1 -0
- package/dist/{chunk-MLLGO6XZ.js → chunk-S57DVRYK.js} +3 -3
- package/dist/{chunk-MLLGO6XZ.js.map → chunk-S57DVRYK.js.map} +1 -1
- package/dist/{chunk-XQ5INMFW.js → chunk-SK2BQPVT.js} +5 -5
- package/dist/{chunk-XQ5INMFW.js.map → chunk-SK2BQPVT.js.map} +1 -1
- package/dist/{chunk-7DKSWNOM.cjs → chunk-SOQPH6H2.cjs} +182 -182
- package/dist/{chunk-7DKSWNOM.cjs.map → chunk-SOQPH6H2.cjs.map} +1 -1
- package/dist/{chunk-56AYHXOU.js → chunk-SXZS6VZ3.js} +3 -3
- package/dist/{chunk-56AYHXOU.js.map → chunk-SXZS6VZ3.js.map} +1 -1
- package/dist/{chunk-OHWAEEZJ.js → chunk-UACKERCG.js} +3 -3
- package/dist/{chunk-OHWAEEZJ.js.map → chunk-UACKERCG.js.map} +1 -1
- package/dist/{chunk-4LQSGGSH.cjs → chunk-UGI45E76.cjs} +363 -360
- package/dist/chunk-UGI45E76.cjs.map +1 -0
- package/dist/{chunk-DEK4ZGUR.cjs → chunk-UQWJQWSK.cjs} +15 -15
- package/dist/{chunk-DEK4ZGUR.cjs.map → chunk-UQWJQWSK.cjs.map} +1 -1
- package/dist/{chunk-46Y4Y2RB.js → chunk-VEKFI5QZ.js} +3 -3
- package/dist/{chunk-46Y4Y2RB.js.map → chunk-VEKFI5QZ.js.map} +1 -1
- package/dist/{chunk-4JILES3G.js → chunk-VJYMPHQQ.js} +3 -2
- package/dist/chunk-VJYMPHQQ.js.map +1 -0
- package/dist/{chunk-C4U5EL4H.js → chunk-VQQSMW6M.js} +7 -7
- package/dist/{chunk-C4U5EL4H.js.map → chunk-VQQSMW6M.js.map} +1 -1
- package/dist/{chunk-BTMYAVRX.cjs → chunk-WUT3UHD6.cjs} +12 -12
- package/dist/{chunk-BTMYAVRX.cjs.map → chunk-WUT3UHD6.cjs.map} +1 -1
- package/dist/{chunk-HZWJL5Y4.js → chunk-XILM7MA7.js} +4 -4
- package/dist/{chunk-HZWJL5Y4.js.map → chunk-XILM7MA7.js.map} +1 -1
- package/dist/{chunk-73MURMD2.cjs → chunk-XLSJQAEP.cjs} +6 -6
- package/dist/{chunk-73MURMD2.cjs.map → chunk-XLSJQAEP.cjs.map} +1 -1
- package/dist/{chunk-WKSF3TVK.js → chunk-XRE4KFIZ.js} +7 -7
- package/dist/{chunk-WKSF3TVK.js.map → chunk-XRE4KFIZ.js.map} +1 -1
- package/dist/{chunk-TCWIDHH6.cjs → chunk-XTRPN52A.cjs} +3 -3
- package/dist/{chunk-TCWIDHH6.cjs.map → chunk-XTRPN52A.cjs.map} +1 -1
- package/dist/{chunk-UD7JBYUI.cjs → chunk-YIBM2OYI.cjs} +38 -38
- package/dist/{chunk-UD7JBYUI.cjs.map → chunk-YIBM2OYI.cjs.map} +1 -1
- package/dist/{chunk-UITLSJUW.cjs → chunk-YOHMEY6Q.cjs} +24 -24
- package/dist/{chunk-UITLSJUW.cjs.map → chunk-YOHMEY6Q.cjs.map} +1 -1
- package/dist/{chunk-56TEDJND.js → chunk-YUQSGB5C.js} +3 -3
- package/dist/{chunk-56TEDJND.js.map → chunk-YUQSGB5C.js.map} +1 -1
- package/dist/{chunk-GZ4HWZWE.cjs → chunk-YWUVDFQZ.cjs} +3 -3
- package/dist/{chunk-GZ4HWZWE.cjs.map → chunk-YWUVDFQZ.cjs.map} +1 -1
- package/dist/{chunk-EQ7LRJEB.cjs → chunk-Z6YXO2T6.cjs} +48 -48
- package/dist/{chunk-EQ7LRJEB.cjs.map → chunk-Z6YXO2T6.cjs.map} +1 -1
- package/dist/{chunk-TS5QYSEZ.js → chunk-Z7C226TD.js} +6 -6
- package/dist/{chunk-TS5QYSEZ.js.map → chunk-Z7C226TD.js.map} +1 -1
- package/dist/{chunk-M43CP74T.js → chunk-ZQSX425Q.js} +70 -70
- package/dist/chunk-ZQSX425Q.js.map +1 -0
- package/dist/{chunk-BTIK5TXF.cjs → chunk-ZVZBZOBY.cjs} +8 -8
- package/dist/{chunk-BTIK5TXF.cjs.map → chunk-ZVZBZOBY.cjs.map} +1 -1
- package/dist/{dist-OWZWIJZY.js → dist-EWY5C2JK.js} +5 -5
- package/dist/{dist-OWZWIJZY.js.map → dist-EWY5C2JK.js.map} +1 -1
- package/dist/{dist-TXDLPF66.cjs → dist-VNWFQ5X6.cjs} +20 -20
- package/dist/{dist-TXDLPF66.cjs.map → dist-VNWFQ5X6.cjs.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-Y5T2OR2Y-XDEBXWNA.cjs → observational-memory-NC6DQQWD-JNRVNM7E.cjs} +26 -26
- package/dist/{observational-memory-Y5T2OR2Y-XDEBXWNA.cjs.map → observational-memory-NC6DQQWD-JNRVNM7E.cjs.map} +1 -1
- package/dist/{observational-memory-Y5T2OR2Y-QDHR4QEU.js → observational-memory-NC6DQQWD-WWE3XZFF.js} +3 -3
- package/dist/{observational-memory-Y5T2OR2Y-QDHR4QEU.js.map → observational-memory-NC6DQQWD-WWE3XZFF.js.map} +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +17 -17
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-controller.cjs +144 -0
- package/dist/server/handlers/agent-controller.cjs.map +1 -0
- package/dist/server/handlers/{harness.d.ts → agent-controller.d.ts} +141 -141
- package/dist/server/handlers/agent-controller.d.ts.map +1 -0
- package/dist/server/handlers/agent-controller.js +3 -0
- package/dist/server/handlers/agent-controller.js.map +1 -0
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +46 -46
- package/dist/server/handlers/agents.d.ts +2 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +13 -13
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/authorship.cjs +12 -12
- package/dist/server/handlers/authorship.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +6 -6
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +5 -5
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +6 -6
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +4 -4
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +8 -8
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +8 -8
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/responses.storage.cjs +8 -8
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- 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 +1 -1
- package/dist/server/handlers/stored-agents.cjs +10 -10
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
- package/dist/server/handlers/stored-mcp-clients.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- package/dist/server/handlers/stored-prompt-blocks.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tool-providers.cjs +14 -14
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +10 -10
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/workflows.cjs +27 -27
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +22 -22
- package/dist/server/handlers.js +10 -10
- package/dist/server/schemas/agents.d.ts +1 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +536 -536
- package/dist/server/schemas/index.js +9 -9
- package/dist/server/server-adapter/index.cjs +42 -42
- package/dist/server/server-adapter/index.js +6 -6
- package/dist/server/server-adapter/routes/agent-controller.d.ts +6 -0
- package/dist/server/server-adapter/routes/agent-controller.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-3WE5YAL5.js.map +0 -1
- package/dist/chunk-3ZV6GYQI.cjs.map +0 -1
- package/dist/chunk-4JILES3G.js.map +0 -1
- package/dist/chunk-4LQSGGSH.cjs.map +0 -1
- package/dist/chunk-M43CP74T.js.map +0 -1
- package/dist/chunk-Q7EQLQS5.js.map +0 -1
- package/dist/chunk-QQCQV7ZF.cjs.map +0 -1
- package/dist/chunk-TPZFGGU4.cjs.map +0 -1
- package/dist/server/handlers/harness.cjs +0 -144
- package/dist/server/handlers/harness.cjs.map +0 -1
- package/dist/server/handlers/harness.d.ts.map +0 -1
- package/dist/server/handlers/harness.js +0 -3
- package/dist/server/handlers/harness.js.map +0 -1
- package/dist/server/server-adapter/routes/harness.d.ts +0 -3
- package/dist/server/server-adapter/routes/harness.d.ts.map +0 -1
|
@@ -6,19 +6,19 @@ import { z } from 'zod/v4';
|
|
|
6
6
|
function isReservedThreadMetadataKey(key) {
|
|
7
7
|
return key === "currentModelId" || key === "currentModeId" || key === "observerModelId" || key === "reflectorModelId" || key === "observationThreshold" || key === "reflectionThreshold" || key === "tokenUsage" || key.startsWith("modeModelId_");
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
const
|
|
11
|
-
if (!
|
|
12
|
-
throw new HTTPException(404, { message: `
|
|
9
|
+
function getAgentControllerOrThrow(mastra, controllerId) {
|
|
10
|
+
const controller = mastra.getAgentController?.(controllerId);
|
|
11
|
+
if (!controller) {
|
|
12
|
+
throw new HTTPException(404, { message: `agent controller "${controllerId}" not found` });
|
|
13
13
|
}
|
|
14
|
-
return
|
|
14
|
+
return controller;
|
|
15
15
|
}
|
|
16
|
-
async function getSession(
|
|
17
|
-
await
|
|
18
|
-
return
|
|
16
|
+
async function getSession(controller, resourceId, tags) {
|
|
17
|
+
await controller.init();
|
|
18
|
+
return controller.createSession({ resourceId, id: resourceId, ownerId: controller.id, tags });
|
|
19
19
|
}
|
|
20
|
-
var
|
|
21
|
-
var sessionPathParams = z.object({
|
|
20
|
+
var controllerIdPathParams = z.object({ controllerId: z.string() });
|
|
21
|
+
var sessionPathParams = z.object({ controllerId: z.string(), resourceId: z.string() });
|
|
22
22
|
var createSessionBodySchema = z.object({
|
|
23
23
|
resourceId: z.string(),
|
|
24
24
|
tags: z.record(z.string(), z.string()).optional()
|
|
@@ -45,7 +45,7 @@ var switchModelBodySchema = z.object({
|
|
|
45
45
|
var switchThreadBodySchema = z.object({ threadId: z.string() });
|
|
46
46
|
var createThreadBodySchema = z.object({ title: z.string().optional() });
|
|
47
47
|
var renameThreadBodySchema = z.object({ title: z.string() });
|
|
48
|
-
var threadPathParams = z.object({
|
|
48
|
+
var threadPathParams = z.object({ controllerId: z.string(), resourceId: z.string(), threadId: z.string() });
|
|
49
49
|
var cloneThreadBodySchema = z.object({
|
|
50
50
|
sourceThreadId: z.string().optional(),
|
|
51
51
|
title: z.string().optional()
|
|
@@ -75,11 +75,11 @@ var sendNotificationBodySchema = z.object({
|
|
|
75
75
|
attributes: z.record(z.string(), z.unknown()).optional(),
|
|
76
76
|
metadata: z.record(z.string(), z.unknown()).optional()
|
|
77
77
|
});
|
|
78
|
-
var
|
|
79
|
-
|
|
78
|
+
var listAgentControllersResponseSchema = z.object({
|
|
79
|
+
agentControllers: z.array(z.object({ id: z.string() }))
|
|
80
80
|
});
|
|
81
81
|
var createSessionResponseSchema = z.object({
|
|
82
|
-
|
|
82
|
+
controllerId: z.string(),
|
|
83
83
|
resourceId: z.string(),
|
|
84
84
|
threadId: z.string().optional()
|
|
85
85
|
});
|
|
@@ -104,7 +104,7 @@ var sessionSettingsSchema = z.object({
|
|
|
104
104
|
smartEditing: z.boolean()
|
|
105
105
|
});
|
|
106
106
|
var sessionStateResponseSchema = z.object({
|
|
107
|
-
|
|
107
|
+
controllerId: z.string(),
|
|
108
108
|
resourceId: z.string(),
|
|
109
109
|
threadId: z.string().optional(),
|
|
110
110
|
modeId: z.string(),
|
|
@@ -179,67 +179,70 @@ var setToolPermissionBodySchema = z.object({
|
|
|
179
179
|
toolName: z.string(),
|
|
180
180
|
policy: permissionPolicyEnum
|
|
181
181
|
});
|
|
182
|
-
var
|
|
182
|
+
var LIST_AGENT_CONTROLLERS_ROUTE = createRoute({
|
|
183
183
|
method: "GET",
|
|
184
|
-
path: "/
|
|
184
|
+
path: "/agent-controller",
|
|
185
185
|
responseType: "json",
|
|
186
|
-
responseSchema:
|
|
187
|
-
summary: "List
|
|
188
|
-
description: "Lists the
|
|
189
|
-
tags: ["
|
|
186
|
+
responseSchema: listAgentControllersResponseSchema,
|
|
187
|
+
summary: "List agent controllers",
|
|
188
|
+
description: "Lists the agent controllers hosted on this Mastra instance.",
|
|
189
|
+
tags: ["AgentController"],
|
|
190
190
|
requiresAuth: true,
|
|
191
|
-
requiresPermission: "
|
|
191
|
+
requiresPermission: "agent-controller:read",
|
|
192
192
|
handler: async ({ mastra }) => {
|
|
193
193
|
try {
|
|
194
|
-
const
|
|
195
|
-
|
|
194
|
+
const ids = /* @__PURE__ */ new Set();
|
|
195
|
+
if (mastra.listAgentControllers) {
|
|
196
|
+
for (const id of Object.keys(mastra.listAgentControllers())) ids.add(id);
|
|
197
|
+
}
|
|
198
|
+
return { agentControllers: Array.from(ids).map((id) => ({ id })) };
|
|
196
199
|
} catch (error) {
|
|
197
|
-
return handleError(error, "error listing
|
|
200
|
+
return handleError(error, "error listing agent controllers");
|
|
198
201
|
}
|
|
199
202
|
}
|
|
200
203
|
});
|
|
201
|
-
var
|
|
204
|
+
var CREATE_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
202
205
|
method: "POST",
|
|
203
|
-
path: "/
|
|
206
|
+
path: "/agent-controller/:controllerId/sessions",
|
|
204
207
|
responseType: "json",
|
|
205
|
-
pathParamSchema:
|
|
208
|
+
pathParamSchema: controllerIdPathParams,
|
|
206
209
|
bodySchema: createSessionBodySchema,
|
|
207
210
|
responseSchema: createSessionResponseSchema,
|
|
208
|
-
summary: "Create or resume a
|
|
211
|
+
summary: "Create or resume a controller session",
|
|
209
212
|
description: "Creates a session for the given resourceId, or returns the existing one (get-or-create), so reconnects resume the conversation.",
|
|
210
|
-
tags: ["
|
|
213
|
+
tags: ["AgentController"],
|
|
211
214
|
requiresAuth: true,
|
|
212
|
-
requiresPermission: "
|
|
213
|
-
handler: async ({ mastra,
|
|
215
|
+
requiresPermission: "agent-controller:execute",
|
|
216
|
+
handler: async ({ mastra, controllerId, resourceId, tags }) => {
|
|
214
217
|
try {
|
|
215
|
-
const
|
|
216
|
-
const session = await getSession(
|
|
218
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
219
|
+
const session = await getSession(controller, resourceId, tags);
|
|
217
220
|
return {
|
|
218
|
-
|
|
221
|
+
controllerId,
|
|
219
222
|
resourceId,
|
|
220
223
|
threadId: session.thread.getId() ?? void 0
|
|
221
224
|
};
|
|
222
225
|
} catch (error) {
|
|
223
|
-
return handleError(error, "error creating
|
|
226
|
+
return handleError(error, "error creating controller session");
|
|
224
227
|
}
|
|
225
228
|
}
|
|
226
229
|
});
|
|
227
|
-
var
|
|
230
|
+
var STREAM_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
228
231
|
method: "GET",
|
|
229
|
-
path: "/
|
|
232
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/stream",
|
|
230
233
|
responseType: "stream",
|
|
231
234
|
streamFormat: "sse",
|
|
232
235
|
sseFlushOnConnect: true,
|
|
233
236
|
pathParamSchema: sessionPathParams,
|
|
234
|
-
summary: "Stream
|
|
237
|
+
summary: "Stream controller session events",
|
|
235
238
|
description: "Subscribes to a session\u2019s event bus and streams events to the client over SSE.",
|
|
236
|
-
tags: ["
|
|
239
|
+
tags: ["AgentController", "Streaming"],
|
|
237
240
|
requiresAuth: true,
|
|
238
|
-
requiresPermission: "
|
|
239
|
-
handler: async ({ mastra,
|
|
241
|
+
requiresPermission: "agent-controller:read",
|
|
242
|
+
handler: async ({ mastra, controllerId, resourceId, abortSignal }) => {
|
|
240
243
|
try {
|
|
241
|
-
const
|
|
242
|
-
const session = await getSession(
|
|
244
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
245
|
+
const session = await getSession(controller, resourceId);
|
|
243
246
|
let cleanedUp = false;
|
|
244
247
|
let heartbeat;
|
|
245
248
|
let unsubscribe;
|
|
@@ -249,20 +252,20 @@ var STREAM_HARNESS_SESSION_ROUTE = createRoute({
|
|
|
249
252
|
heartbeat = void 0;
|
|
250
253
|
}
|
|
251
254
|
};
|
|
252
|
-
const cleanup = (
|
|
255
|
+
const cleanup = (controller2) => {
|
|
253
256
|
if (cleanedUp) return;
|
|
254
257
|
cleanedUp = true;
|
|
255
258
|
clearHeartbeat();
|
|
256
259
|
unsubscribe?.();
|
|
257
|
-
if (
|
|
260
|
+
if (controller2) {
|
|
258
261
|
try {
|
|
259
|
-
|
|
262
|
+
controller2.close();
|
|
260
263
|
} catch {
|
|
261
264
|
}
|
|
262
265
|
}
|
|
263
266
|
};
|
|
264
267
|
return new ReadableStream({
|
|
265
|
-
start(
|
|
268
|
+
start(controller2) {
|
|
266
269
|
const scheduleHeartbeat = () => {
|
|
267
270
|
if (cleanedUp) return;
|
|
268
271
|
clearHeartbeat();
|
|
@@ -270,7 +273,7 @@ var STREAM_HARNESS_SESSION_ROUTE = createRoute({
|
|
|
270
273
|
heartbeat = void 0;
|
|
271
274
|
if (cleanedUp) return;
|
|
272
275
|
try {
|
|
273
|
-
|
|
276
|
+
controller2.enqueue(": heartbeat\n\n");
|
|
274
277
|
} catch {
|
|
275
278
|
cleanup();
|
|
276
279
|
return;
|
|
@@ -281,13 +284,13 @@ var STREAM_HARNESS_SESSION_ROUTE = createRoute({
|
|
|
281
284
|
unsubscribe = session.subscribe((event) => {
|
|
282
285
|
if (cleanedUp) return;
|
|
283
286
|
try {
|
|
284
|
-
|
|
287
|
+
controller2.enqueue(event);
|
|
285
288
|
scheduleHeartbeat();
|
|
286
289
|
} catch {
|
|
287
290
|
cleanup();
|
|
288
291
|
}
|
|
289
292
|
});
|
|
290
|
-
const abortCleanup = () => cleanup(
|
|
293
|
+
const abortCleanup = () => cleanup(controller2);
|
|
291
294
|
abortSignal?.addEventListener("abort", abortCleanup, { once: true });
|
|
292
295
|
scheduleHeartbeat();
|
|
293
296
|
},
|
|
@@ -296,215 +299,215 @@ var STREAM_HARNESS_SESSION_ROUTE = createRoute({
|
|
|
296
299
|
}
|
|
297
300
|
});
|
|
298
301
|
} catch (error) {
|
|
299
|
-
return handleError(error, "error streaming
|
|
302
|
+
return handleError(error, "error streaming controller session");
|
|
300
303
|
}
|
|
301
304
|
}
|
|
302
305
|
});
|
|
303
|
-
var
|
|
306
|
+
var SEND_AGENT_CONTROLLER_MESSAGE_ROUTE = createRoute({
|
|
304
307
|
method: "POST",
|
|
305
|
-
path: "/
|
|
308
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/messages",
|
|
306
309
|
responseType: "json",
|
|
307
310
|
pathParamSchema: sessionPathParams,
|
|
308
311
|
bodySchema: sendMessageBodySchema,
|
|
309
312
|
responseSchema: ackResponseSchema,
|
|
310
|
-
summary: "Send a message to a
|
|
313
|
+
summary: "Send a message to a controller session",
|
|
311
314
|
description: "Sends a user message to the session. The reply streams as events on the session\u2019s SSE stream.",
|
|
312
|
-
tags: ["
|
|
315
|
+
tags: ["AgentController", "Streaming"],
|
|
313
316
|
requiresAuth: true,
|
|
314
|
-
requiresPermission: "
|
|
315
|
-
handler: async ({ mastra,
|
|
317
|
+
requiresPermission: "agent-controller:execute",
|
|
318
|
+
handler: async ({ mastra, controllerId, resourceId, message }) => {
|
|
316
319
|
try {
|
|
317
|
-
const
|
|
318
|
-
const session = await getSession(
|
|
320
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
321
|
+
const session = await getSession(controller, resourceId);
|
|
319
322
|
void session.sendMessage({ content: message });
|
|
320
323
|
return { ok: true };
|
|
321
324
|
} catch (error) {
|
|
322
|
-
return handleError(error, "error sending
|
|
325
|
+
return handleError(error, "error sending controller message");
|
|
323
326
|
}
|
|
324
327
|
}
|
|
325
328
|
});
|
|
326
|
-
var
|
|
329
|
+
var ABORT_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
327
330
|
method: "POST",
|
|
328
|
-
path: "/
|
|
331
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/abort",
|
|
329
332
|
responseType: "json",
|
|
330
333
|
pathParamSchema: sessionPathParams,
|
|
331
334
|
responseSchema: ackResponseSchema,
|
|
332
|
-
summary: "Abort a
|
|
335
|
+
summary: "Abort a controller session run",
|
|
333
336
|
description: "Aborts the in-flight run for the session, if any.",
|
|
334
|
-
tags: ["
|
|
337
|
+
tags: ["AgentController"],
|
|
335
338
|
requiresAuth: true,
|
|
336
|
-
requiresPermission: "
|
|
337
|
-
handler: async ({ mastra,
|
|
339
|
+
requiresPermission: "agent-controller:execute",
|
|
340
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
338
341
|
try {
|
|
339
|
-
const
|
|
340
|
-
const session = await getSession(
|
|
342
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
343
|
+
const session = await getSession(controller, resourceId);
|
|
341
344
|
session.abort();
|
|
342
345
|
return { ok: true };
|
|
343
346
|
} catch (error) {
|
|
344
|
-
return handleError(error, "error aborting
|
|
347
|
+
return handleError(error, "error aborting controller session");
|
|
345
348
|
}
|
|
346
349
|
}
|
|
347
350
|
});
|
|
348
|
-
var
|
|
351
|
+
var AGENT_CONTROLLER_TOOL_APPROVAL_ROUTE = createRoute({
|
|
349
352
|
method: "POST",
|
|
350
|
-
path: "/
|
|
353
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/tool-approval",
|
|
351
354
|
responseType: "json",
|
|
352
355
|
pathParamSchema: sessionPathParams,
|
|
353
356
|
bodySchema: toolApprovalBodySchema,
|
|
354
357
|
responseSchema: ackResponseSchema,
|
|
355
|
-
summary: "Respond to a
|
|
358
|
+
summary: "Respond to a controller tool approval",
|
|
356
359
|
description: "Approves or declines a pending tool call surfaced by the session.",
|
|
357
|
-
tags: ["
|
|
360
|
+
tags: ["AgentController"],
|
|
358
361
|
requiresAuth: true,
|
|
359
|
-
requiresPermission: "
|
|
360
|
-
handler: async ({ mastra,
|
|
362
|
+
requiresPermission: "agent-controller:execute",
|
|
363
|
+
handler: async ({ mastra, controllerId, resourceId, toolCallId, approved }) => {
|
|
361
364
|
try {
|
|
362
|
-
const
|
|
363
|
-
const session = await getSession(
|
|
365
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
366
|
+
const session = await getSession(controller, resourceId);
|
|
364
367
|
session.respondToToolApproval({ toolCallId, decision: approved ? "approve" : "decline" });
|
|
365
368
|
return { ok: true };
|
|
366
369
|
} catch (error) {
|
|
367
|
-
return handleError(error, "error responding to
|
|
370
|
+
return handleError(error, "error responding to controller tool approval");
|
|
368
371
|
}
|
|
369
372
|
}
|
|
370
373
|
});
|
|
371
|
-
var
|
|
374
|
+
var AGENT_CONTROLLER_TOOL_SUSPENSION_ROUTE = createRoute({
|
|
372
375
|
method: "POST",
|
|
373
|
-
path: "/
|
|
376
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/tool-suspension",
|
|
374
377
|
responseType: "json",
|
|
375
378
|
pathParamSchema: sessionPathParams,
|
|
376
379
|
bodySchema: toolSuspensionBodySchema,
|
|
377
380
|
responseSchema: ackResponseSchema,
|
|
378
|
-
summary: "Respond to a suspended
|
|
381
|
+
summary: "Respond to a suspended controller tool",
|
|
379
382
|
description: "Resumes a suspended interactive tool (ask_user, request_access, submit_plan) with the provided resume data.",
|
|
380
|
-
tags: ["
|
|
383
|
+
tags: ["AgentController"],
|
|
381
384
|
requiresAuth: true,
|
|
382
|
-
requiresPermission: "
|
|
383
|
-
handler: async ({ mastra,
|
|
385
|
+
requiresPermission: "agent-controller:execute",
|
|
386
|
+
handler: async ({ mastra, controllerId, resourceId, toolCallId, resumeData }) => {
|
|
384
387
|
try {
|
|
385
|
-
const
|
|
386
|
-
const session = await getSession(
|
|
388
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
389
|
+
const session = await getSession(controller, resourceId);
|
|
387
390
|
await session.respondToToolSuspension({ toolCallId, resumeData });
|
|
388
391
|
return { ok: true };
|
|
389
392
|
} catch (error) {
|
|
390
|
-
return handleError(error, "error responding to
|
|
393
|
+
return handleError(error, "error responding to controller tool suspension");
|
|
391
394
|
}
|
|
392
395
|
}
|
|
393
396
|
});
|
|
394
|
-
var
|
|
397
|
+
var STEER_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
395
398
|
method: "POST",
|
|
396
|
-
path: "/
|
|
399
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/steer",
|
|
397
400
|
responseType: "json",
|
|
398
401
|
pathParamSchema: sessionPathParams,
|
|
399
402
|
bodySchema: steerBodySchema,
|
|
400
403
|
responseSchema: ackResponseSchema,
|
|
401
404
|
summary: "Steer the in-flight run",
|
|
402
405
|
description: "Injects a message into the running turn (interjection) without starting a new run.",
|
|
403
|
-
tags: ["
|
|
406
|
+
tags: ["AgentController"],
|
|
404
407
|
requiresAuth: true,
|
|
405
|
-
requiresPermission: "
|
|
406
|
-
handler: async ({ mastra,
|
|
408
|
+
requiresPermission: "agent-controller:execute",
|
|
409
|
+
handler: async ({ mastra, controllerId, resourceId, message }) => {
|
|
407
410
|
try {
|
|
408
|
-
const
|
|
409
|
-
const session = await getSession(
|
|
411
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
412
|
+
const session = await getSession(controller, resourceId);
|
|
410
413
|
void session.steer({ content: message });
|
|
411
414
|
return { ok: true };
|
|
412
415
|
} catch (error) {
|
|
413
|
-
return handleError(error, "error steering
|
|
416
|
+
return handleError(error, "error steering controller session");
|
|
414
417
|
}
|
|
415
418
|
}
|
|
416
419
|
});
|
|
417
|
-
var
|
|
420
|
+
var SWITCH_AGENT_CONTROLLER_MODE_ROUTE = createRoute({
|
|
418
421
|
method: "POST",
|
|
419
|
-
path: "/
|
|
422
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/mode",
|
|
420
423
|
responseType: "json",
|
|
421
424
|
pathParamSchema: sessionPathParams,
|
|
422
425
|
bodySchema: switchModeBodySchema,
|
|
423
426
|
responseSchema: ackResponseSchema,
|
|
424
427
|
summary: "Switch the session mode",
|
|
425
428
|
description: "Switches the active mode (e.g. build, plan) for the session.",
|
|
426
|
-
tags: ["
|
|
429
|
+
tags: ["AgentController"],
|
|
427
430
|
requiresAuth: true,
|
|
428
|
-
requiresPermission: "
|
|
429
|
-
handler: async ({ mastra,
|
|
431
|
+
requiresPermission: "agent-controller:execute",
|
|
432
|
+
handler: async ({ mastra, controllerId, resourceId, modeId }) => {
|
|
430
433
|
try {
|
|
431
|
-
const
|
|
432
|
-
const session = await getSession(
|
|
434
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
435
|
+
const session = await getSession(controller, resourceId);
|
|
433
436
|
await session.mode.switch({ modeId });
|
|
434
437
|
return { ok: true };
|
|
435
438
|
} catch (error) {
|
|
436
|
-
return handleError(error, "error switching
|
|
439
|
+
return handleError(error, "error switching controller mode");
|
|
437
440
|
}
|
|
438
441
|
}
|
|
439
442
|
});
|
|
440
|
-
var
|
|
443
|
+
var SWITCH_AGENT_CONTROLLER_MODEL_ROUTE = createRoute({
|
|
441
444
|
method: "POST",
|
|
442
|
-
path: "/
|
|
445
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/model",
|
|
443
446
|
responseType: "json",
|
|
444
447
|
pathParamSchema: sessionPathParams,
|
|
445
448
|
bodySchema: switchModelBodySchema,
|
|
446
449
|
responseSchema: ackResponseSchema,
|
|
447
450
|
summary: "Switch the session model",
|
|
448
451
|
description: "Switches the model for the session, scoped to the thread by default.",
|
|
449
|
-
tags: ["
|
|
452
|
+
tags: ["AgentController"],
|
|
450
453
|
requiresAuth: true,
|
|
451
|
-
requiresPermission: "
|
|
452
|
-
handler: async ({ mastra,
|
|
454
|
+
requiresPermission: "agent-controller:execute",
|
|
455
|
+
handler: async ({ mastra, controllerId, resourceId, modelId, scope, modeId }) => {
|
|
453
456
|
try {
|
|
454
|
-
const
|
|
455
|
-
const session = await getSession(
|
|
457
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
458
|
+
const session = await getSession(controller, resourceId);
|
|
456
459
|
await session.model.switch({ modelId, scope, modeId });
|
|
457
460
|
return { ok: true };
|
|
458
461
|
} catch (error) {
|
|
459
|
-
return handleError(error, "error switching
|
|
462
|
+
return handleError(error, "error switching controller model");
|
|
460
463
|
}
|
|
461
464
|
}
|
|
462
465
|
});
|
|
463
|
-
var
|
|
466
|
+
var SWITCH_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
464
467
|
method: "POST",
|
|
465
|
-
path: "/
|
|
468
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/thread",
|
|
466
469
|
responseType: "json",
|
|
467
470
|
pathParamSchema: sessionPathParams,
|
|
468
471
|
bodySchema: switchThreadBodySchema,
|
|
469
472
|
responseSchema: ackResponseSchema,
|
|
470
473
|
summary: "Switch the session thread",
|
|
471
474
|
description: "Switches the session to an existing thread (rebinding its stream and state).",
|
|
472
|
-
tags: ["
|
|
475
|
+
tags: ["AgentController"],
|
|
473
476
|
requiresAuth: true,
|
|
474
|
-
requiresPermission: "
|
|
475
|
-
handler: async ({ mastra,
|
|
477
|
+
requiresPermission: "agent-controller:execute",
|
|
478
|
+
handler: async ({ mastra, controllerId, resourceId, threadId }) => {
|
|
476
479
|
try {
|
|
477
|
-
const
|
|
478
|
-
const session = await getSession(
|
|
480
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
481
|
+
const session = await getSession(controller, resourceId);
|
|
479
482
|
await session.thread.switch({ threadId });
|
|
480
483
|
return { ok: true };
|
|
481
484
|
} catch (error) {
|
|
482
|
-
return handleError(error, "error switching
|
|
485
|
+
return handleError(error, "error switching controller thread");
|
|
483
486
|
}
|
|
484
487
|
}
|
|
485
488
|
});
|
|
486
|
-
var
|
|
489
|
+
var GET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
487
490
|
method: "GET",
|
|
488
|
-
path: "/
|
|
491
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId",
|
|
489
492
|
responseType: "json",
|
|
490
493
|
pathParamSchema: sessionPathParams,
|
|
491
494
|
responseSchema: sessionStateResponseSchema,
|
|
492
495
|
summary: "Get session state",
|
|
493
496
|
description: "Returns the current mode, model, and thread for the session (for initial UI hydration).",
|
|
494
|
-
tags: ["
|
|
497
|
+
tags: ["AgentController"],
|
|
495
498
|
requiresAuth: true,
|
|
496
|
-
requiresPermission: "
|
|
497
|
-
handler: async ({ mastra,
|
|
499
|
+
requiresPermission: "agent-controller:read",
|
|
500
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
498
501
|
try {
|
|
499
|
-
const
|
|
500
|
-
const session = await getSession(
|
|
502
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
503
|
+
const session = await getSession(controller, resourceId);
|
|
501
504
|
const ds = session.displayState.get();
|
|
502
505
|
const om = ds.omProgress;
|
|
503
506
|
const reflectionSavings = om.buffered.reflection.inputObservationTokens - om.buffered.reflection.observationTokens;
|
|
504
507
|
const st = session.state.get();
|
|
505
508
|
const oneOf = (value, allowed, fallback) => allowed.includes(value) ? value : fallback;
|
|
506
509
|
return {
|
|
507
|
-
|
|
510
|
+
controllerId,
|
|
508
511
|
resourceId,
|
|
509
512
|
threadId: session.thread.getId() ?? void 0,
|
|
510
513
|
modeId: session.mode.get(),
|
|
@@ -529,48 +532,48 @@ var GET_HARNESS_SESSION_STATE_ROUTE = createRoute({
|
|
|
529
532
|
}
|
|
530
533
|
};
|
|
531
534
|
} catch (error) {
|
|
532
|
-
return handleError(error, "error reading
|
|
535
|
+
return handleError(error, "error reading controller session state");
|
|
533
536
|
}
|
|
534
537
|
}
|
|
535
538
|
});
|
|
536
|
-
var
|
|
539
|
+
var LIST_AGENT_CONTROLLER_MODES_ROUTE = createRoute({
|
|
537
540
|
method: "GET",
|
|
538
|
-
path: "/
|
|
541
|
+
path: "/agent-controller/:controllerId/modes",
|
|
539
542
|
responseType: "json",
|
|
540
|
-
pathParamSchema:
|
|
543
|
+
pathParamSchema: controllerIdPathParams,
|
|
541
544
|
responseSchema: listModesResponseSchema,
|
|
542
|
-
summary: "List
|
|
543
|
-
description: "Lists the modes configured on the
|
|
544
|
-
tags: ["
|
|
545
|
+
summary: "List controller modes",
|
|
546
|
+
description: "Lists the modes configured on the controller (e.g. build, plan).",
|
|
547
|
+
tags: ["AgentController"],
|
|
545
548
|
requiresAuth: true,
|
|
546
|
-
requiresPermission: "
|
|
547
|
-
handler: async ({ mastra,
|
|
549
|
+
requiresPermission: "agent-controller:read",
|
|
550
|
+
handler: async ({ mastra, controllerId }) => {
|
|
548
551
|
try {
|
|
549
|
-
const
|
|
552
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
550
553
|
return {
|
|
551
|
-
modes:
|
|
554
|
+
modes: controller.listModes().map((mode) => ({ id: mode.id, name: mode.name }))
|
|
552
555
|
};
|
|
553
556
|
} catch (error) {
|
|
554
|
-
return handleError(error, "error listing
|
|
557
|
+
return handleError(error, "error listing controller modes");
|
|
555
558
|
}
|
|
556
559
|
}
|
|
557
560
|
});
|
|
558
|
-
var
|
|
561
|
+
var LIST_AGENT_CONTROLLER_THREADS_ROUTE = createRoute({
|
|
559
562
|
method: "GET",
|
|
560
|
-
path: "/
|
|
563
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads",
|
|
561
564
|
responseType: "json",
|
|
562
565
|
pathParamSchema: sessionPathParams,
|
|
563
566
|
queryParamSchema: listThreadsQuerySchema,
|
|
564
567
|
responseSchema: listThreadsResponseSchema,
|
|
565
568
|
summary: "List session threads",
|
|
566
569
|
description: "Lists the threads for the session\u2019s resource, 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 \u2014 e.g. `{ projectPath }` so git worktrees sharing a resourceId each see only their own threads.",
|
|
567
|
-
tags: ["
|
|
570
|
+
tags: ["AgentController"],
|
|
568
571
|
requiresAuth: true,
|
|
569
|
-
requiresPermission: "
|
|
570
|
-
handler: async ({ mastra,
|
|
572
|
+
requiresPermission: "agent-controller:read",
|
|
573
|
+
handler: async ({ mastra, controllerId, resourceId, limit, tags }) => {
|
|
571
574
|
try {
|
|
572
|
-
const
|
|
573
|
-
const session = await getSession(
|
|
575
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
576
|
+
const session = await getSession(controller, resourceId);
|
|
574
577
|
const threads = await session.thread.list();
|
|
575
578
|
const getTags = (t) => {
|
|
576
579
|
const metadata = t.metadata ?? {};
|
|
@@ -601,13 +604,13 @@ var LIST_HARNESS_THREADS_ROUTE = createRoute({
|
|
|
601
604
|
})
|
|
602
605
|
};
|
|
603
606
|
} catch (error) {
|
|
604
|
-
return handleError(error, "error listing
|
|
607
|
+
return handleError(error, "error listing controller threads");
|
|
605
608
|
}
|
|
606
609
|
}
|
|
607
610
|
});
|
|
608
|
-
var
|
|
611
|
+
var SEND_AGENT_CONTROLLER_NOTIFICATION_ROUTE = createRoute({
|
|
609
612
|
method: "POST",
|
|
610
|
-
path: "/
|
|
613
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/notifications",
|
|
611
614
|
responseType: "json",
|
|
612
615
|
pathParamSchema: sessionPathParams,
|
|
613
616
|
bodySchema: sendNotificationBodySchema,
|
|
@@ -619,12 +622,12 @@ var SEND_HARNESS_NOTIFICATION_ROUTE = createRoute({
|
|
|
619
622
|
}),
|
|
620
623
|
summary: "Send a notification signal to a session",
|
|
621
624
|
description: "Delivers a notification to the session\u2019s current agent/thread. The agent\u2019s delivery policy determines whether the notification wakes an idle thread, is summarised, or is persisted for later.",
|
|
622
|
-
tags: ["
|
|
625
|
+
tags: ["AgentController"],
|
|
623
626
|
requiresAuth: true,
|
|
624
|
-
requiresPermission: "
|
|
627
|
+
requiresPermission: "agent-controller:execute",
|
|
625
628
|
handler: async ({
|
|
626
629
|
mastra,
|
|
627
|
-
|
|
630
|
+
controllerId,
|
|
628
631
|
resourceId,
|
|
629
632
|
source,
|
|
630
633
|
kind,
|
|
@@ -638,8 +641,8 @@ var SEND_HARNESS_NOTIFICATION_ROUTE = createRoute({
|
|
|
638
641
|
metadata
|
|
639
642
|
}) => {
|
|
640
643
|
try {
|
|
641
|
-
const
|
|
642
|
-
const session = await getSession(
|
|
644
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
645
|
+
const session = await getSession(controller, resourceId);
|
|
643
646
|
const result = await session.sendNotificationSignal({
|
|
644
647
|
source,
|
|
645
648
|
kind,
|
|
@@ -659,26 +662,26 @@ var SEND_HARNESS_NOTIFICATION_ROUTE = createRoute({
|
|
|
659
662
|
runId: result.runId
|
|
660
663
|
};
|
|
661
664
|
} catch (error) {
|
|
662
|
-
return handleError(error, "error sending
|
|
665
|
+
return handleError(error, "error sending controller notification");
|
|
663
666
|
}
|
|
664
667
|
}
|
|
665
668
|
});
|
|
666
|
-
var
|
|
669
|
+
var CREATE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
667
670
|
method: "POST",
|
|
668
|
-
path: "/
|
|
671
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads",
|
|
669
672
|
responseType: "json",
|
|
670
673
|
pathParamSchema: sessionPathParams,
|
|
671
674
|
bodySchema: createThreadBodySchema,
|
|
672
675
|
responseSchema: threadResponseSchema,
|
|
673
676
|
summary: "Create a new thread",
|
|
674
677
|
description: "Creates a new thread in the session (unbinds the previous thread, binds the new one).",
|
|
675
|
-
tags: ["
|
|
678
|
+
tags: ["AgentController", "Threads"],
|
|
676
679
|
requiresAuth: true,
|
|
677
|
-
requiresPermission: "
|
|
678
|
-
handler: async ({ mastra,
|
|
680
|
+
requiresPermission: "agent-controller:execute",
|
|
681
|
+
handler: async ({ mastra, controllerId, resourceId, title }) => {
|
|
679
682
|
try {
|
|
680
|
-
const
|
|
681
|
-
const session = await getSession(
|
|
683
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
684
|
+
const session = await getSession(controller, resourceId);
|
|
682
685
|
const thread = await session.thread.create({ title });
|
|
683
686
|
return {
|
|
684
687
|
id: thread.id,
|
|
@@ -688,74 +691,74 @@ var CREATE_HARNESS_THREAD_ROUTE = createRoute({
|
|
|
688
691
|
updatedAt: thread.updatedAt instanceof Date ? thread.updatedAt.toISOString() : void 0
|
|
689
692
|
};
|
|
690
693
|
} catch (error) {
|
|
691
|
-
return handleError(error, "error creating
|
|
694
|
+
return handleError(error, "error creating controller thread");
|
|
692
695
|
}
|
|
693
696
|
}
|
|
694
697
|
});
|
|
695
|
-
var
|
|
698
|
+
var DELETE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
696
699
|
method: "DELETE",
|
|
697
|
-
path: "/
|
|
700
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId",
|
|
698
701
|
responseType: "json",
|
|
699
702
|
pathParamSchema: threadPathParams,
|
|
700
703
|
responseSchema: ackResponseSchema,
|
|
701
704
|
summary: "Delete a thread",
|
|
702
705
|
description: "Deletes a thread. If the deleted thread is the active one, the session is unbound.",
|
|
703
|
-
tags: ["
|
|
706
|
+
tags: ["AgentController", "Threads"],
|
|
704
707
|
requiresAuth: true,
|
|
705
|
-
requiresPermission: "
|
|
706
|
-
handler: async ({ mastra,
|
|
708
|
+
requiresPermission: "agent-controller:execute",
|
|
709
|
+
handler: async ({ mastra, controllerId, resourceId, threadId }) => {
|
|
707
710
|
try {
|
|
708
|
-
const
|
|
709
|
-
const session = await getSession(
|
|
711
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
712
|
+
const session = await getSession(controller, resourceId);
|
|
710
713
|
await session.thread.delete({ threadId });
|
|
711
714
|
return { ok: true };
|
|
712
715
|
} catch (error) {
|
|
713
|
-
return handleError(error, "error deleting
|
|
716
|
+
return handleError(error, "error deleting controller thread");
|
|
714
717
|
}
|
|
715
718
|
}
|
|
716
719
|
});
|
|
717
|
-
var
|
|
720
|
+
var RENAME_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
718
721
|
method: "PUT",
|
|
719
|
-
path: "/
|
|
722
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId",
|
|
720
723
|
responseType: "json",
|
|
721
724
|
pathParamSchema: threadPathParams,
|
|
722
725
|
bodySchema: renameThreadBodySchema,
|
|
723
726
|
responseSchema: ackResponseSchema,
|
|
724
727
|
summary: "Rename a thread",
|
|
725
728
|
description: "Renames the specified thread.",
|
|
726
|
-
tags: ["
|
|
729
|
+
tags: ["AgentController", "Threads"],
|
|
727
730
|
requiresAuth: true,
|
|
728
|
-
requiresPermission: "
|
|
729
|
-
handler: async ({ mastra,
|
|
731
|
+
requiresPermission: "agent-controller:execute",
|
|
732
|
+
handler: async ({ mastra, controllerId, resourceId, threadId, title }) => {
|
|
730
733
|
try {
|
|
731
|
-
const
|
|
732
|
-
const session = await getSession(
|
|
734
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
735
|
+
const session = await getSession(controller, resourceId);
|
|
733
736
|
if (session.thread.getId() !== threadId) {
|
|
734
737
|
await session.thread.switch({ threadId });
|
|
735
738
|
}
|
|
736
739
|
await session.thread.rename({ title });
|
|
737
740
|
return { ok: true };
|
|
738
741
|
} catch (error) {
|
|
739
|
-
return handleError(error, "error renaming
|
|
742
|
+
return handleError(error, "error renaming controller thread");
|
|
740
743
|
}
|
|
741
744
|
}
|
|
742
745
|
});
|
|
743
|
-
var
|
|
746
|
+
var CLONE_AGENT_CONTROLLER_THREAD_ROUTE = createRoute({
|
|
744
747
|
method: "POST",
|
|
745
|
-
path: "/
|
|
748
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/clone",
|
|
746
749
|
responseType: "json",
|
|
747
750
|
pathParamSchema: sessionPathParams,
|
|
748
751
|
bodySchema: cloneThreadBodySchema,
|
|
749
752
|
responseSchema: threadResponseSchema,
|
|
750
753
|
summary: "Clone a thread",
|
|
751
754
|
description: "Clones a thread (and its messages). The session binds to the new clone.",
|
|
752
|
-
tags: ["
|
|
755
|
+
tags: ["AgentController", "Threads"],
|
|
753
756
|
requiresAuth: true,
|
|
754
|
-
requiresPermission: "
|
|
755
|
-
handler: async ({ mastra,
|
|
757
|
+
requiresPermission: "agent-controller:execute",
|
|
758
|
+
handler: async ({ mastra, controllerId, resourceId, sourceThreadId, title }) => {
|
|
756
759
|
try {
|
|
757
|
-
const
|
|
758
|
-
const session = await getSession(
|
|
760
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
761
|
+
const session = await getSession(controller, resourceId);
|
|
759
762
|
const thread = await session.thread.clone({ sourceThreadId, title });
|
|
760
763
|
return {
|
|
761
764
|
id: thread.id,
|
|
@@ -765,26 +768,26 @@ var CLONE_HARNESS_THREAD_ROUTE = createRoute({
|
|
|
765
768
|
updatedAt: thread.updatedAt instanceof Date ? thread.updatedAt.toISOString() : void 0
|
|
766
769
|
};
|
|
767
770
|
} catch (error) {
|
|
768
|
-
return handleError(error, "error cloning
|
|
771
|
+
return handleError(error, "error cloning controller thread");
|
|
769
772
|
}
|
|
770
773
|
}
|
|
771
774
|
});
|
|
772
|
-
var
|
|
775
|
+
var LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
|
|
773
776
|
method: "GET",
|
|
774
|
-
path: "/
|
|
777
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/threads/:threadId/messages",
|
|
775
778
|
responseType: "json",
|
|
776
779
|
pathParamSchema: threadPathParams,
|
|
777
780
|
queryParamSchema: listMessagesQuerySchema,
|
|
778
781
|
responseSchema: listMessagesResponseSchema,
|
|
779
782
|
summary: "List thread messages",
|
|
780
783
|
description: "Lists messages for a specific thread. Returns most recent messages first.",
|
|
781
|
-
tags: ["
|
|
784
|
+
tags: ["AgentController", "Threads"],
|
|
782
785
|
requiresAuth: true,
|
|
783
|
-
requiresPermission: "
|
|
784
|
-
handler: async ({ mastra,
|
|
786
|
+
requiresPermission: "agent-controller:read",
|
|
787
|
+
handler: async ({ mastra, controllerId, resourceId, threadId, limit }) => {
|
|
785
788
|
try {
|
|
786
|
-
const
|
|
787
|
-
const session = await getSession(
|
|
789
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
790
|
+
const session = await getSession(controller, resourceId);
|
|
788
791
|
const messages = await session.thread.listMessages({ threadId, limit });
|
|
789
792
|
return {
|
|
790
793
|
messages: messages.map((m) => ({
|
|
@@ -795,49 +798,49 @@ var LIST_HARNESS_THREAD_MESSAGES_ROUTE = createRoute({
|
|
|
795
798
|
}))
|
|
796
799
|
};
|
|
797
800
|
} catch (error) {
|
|
798
|
-
return handleError(error, "error listing
|
|
801
|
+
return handleError(error, "error listing controller thread messages");
|
|
799
802
|
}
|
|
800
803
|
}
|
|
801
804
|
});
|
|
802
|
-
var
|
|
805
|
+
var FOLLOW_UP_AGENT_CONTROLLER_SESSION_ROUTE = createRoute({
|
|
803
806
|
method: "POST",
|
|
804
|
-
path: "/
|
|
807
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/follow-up",
|
|
805
808
|
responseType: "json",
|
|
806
809
|
pathParamSchema: sessionPathParams,
|
|
807
810
|
bodySchema: followUpBodySchema,
|
|
808
811
|
responseSchema: ackResponseSchema,
|
|
809
812
|
summary: "Queue a follow-up message",
|
|
810
813
|
description: "Queues a follow-up message. If the session is idle it sends immediately; if a run is active it queues for after completion.",
|
|
811
|
-
tags: ["
|
|
814
|
+
tags: ["AgentController"],
|
|
812
815
|
requiresAuth: true,
|
|
813
|
-
requiresPermission: "
|
|
814
|
-
handler: async ({ mastra,
|
|
816
|
+
requiresPermission: "agent-controller:execute",
|
|
817
|
+
handler: async ({ mastra, controllerId, resourceId, message }) => {
|
|
815
818
|
try {
|
|
816
|
-
const
|
|
817
|
-
const session = await getSession(
|
|
819
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
820
|
+
const session = await getSession(controller, resourceId);
|
|
818
821
|
void session.followUp({ content: message });
|
|
819
822
|
return { ok: true };
|
|
820
823
|
} catch (error) {
|
|
821
|
-
return handleError(error, "error queuing
|
|
824
|
+
return handleError(error, "error queuing controller follow-up");
|
|
822
825
|
}
|
|
823
826
|
}
|
|
824
827
|
});
|
|
825
|
-
var
|
|
828
|
+
var LIST_AGENT_CONTROLLER_MODELS_ROUTE = createRoute({
|
|
826
829
|
method: "GET",
|
|
827
|
-
path: "/
|
|
830
|
+
path: "/agent-controller/:controllerId/models",
|
|
828
831
|
responseType: "json",
|
|
829
|
-
pathParamSchema:
|
|
832
|
+
pathParamSchema: controllerIdPathParams,
|
|
830
833
|
responseSchema: listModelsResponseSchema,
|
|
831
834
|
summary: "List available models",
|
|
832
|
-
description: "Lists all models available on this
|
|
833
|
-
tags: ["
|
|
835
|
+
description: "Lists all models available on this controller (with auth status and use counts).",
|
|
836
|
+
tags: ["AgentController"],
|
|
834
837
|
requiresAuth: true,
|
|
835
|
-
requiresPermission: "
|
|
836
|
-
handler: async ({ mastra,
|
|
838
|
+
requiresPermission: "agent-controller:read",
|
|
839
|
+
handler: async ({ mastra, controllerId }) => {
|
|
837
840
|
try {
|
|
838
|
-
const
|
|
839
|
-
await
|
|
840
|
-
const models = await
|
|
841
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
842
|
+
await controller.init();
|
|
843
|
+
const models = await controller.listAvailableModels();
|
|
841
844
|
return {
|
|
842
845
|
models: models.map((m) => ({
|
|
843
846
|
id: m.id,
|
|
@@ -848,98 +851,98 @@ var LIST_HARNESS_MODELS_ROUTE = createRoute({
|
|
|
848
851
|
}))
|
|
849
852
|
};
|
|
850
853
|
} catch (error) {
|
|
851
|
-
return handleError(error, "error listing
|
|
854
|
+
return handleError(error, "error listing controller models");
|
|
852
855
|
}
|
|
853
856
|
}
|
|
854
857
|
});
|
|
855
|
-
var
|
|
858
|
+
var GET_AGENT_CONTROLLER_WORKSPACE_STATUS_ROUTE = createRoute({
|
|
856
859
|
method: "GET",
|
|
857
|
-
path: "/
|
|
860
|
+
path: "/agent-controller/:controllerId/workspace",
|
|
858
861
|
responseType: "json",
|
|
859
|
-
pathParamSchema:
|
|
862
|
+
pathParamSchema: controllerIdPathParams,
|
|
860
863
|
responseSchema: workspaceStatusResponseSchema,
|
|
861
864
|
summary: "Get workspace status",
|
|
862
|
-
description: "Returns whether the
|
|
863
|
-
tags: ["
|
|
865
|
+
description: "Returns whether the controller has a workspace configured and whether it is ready.",
|
|
866
|
+
tags: ["AgentController"],
|
|
864
867
|
requiresAuth: true,
|
|
865
|
-
requiresPermission: "
|
|
866
|
-
handler: async ({ mastra,
|
|
868
|
+
requiresPermission: "agent-controller:read",
|
|
869
|
+
handler: async ({ mastra, controllerId }) => {
|
|
867
870
|
try {
|
|
868
|
-
const
|
|
869
|
-
await
|
|
871
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
872
|
+
await controller.init();
|
|
870
873
|
return {
|
|
871
|
-
hasWorkspace:
|
|
872
|
-
isReady:
|
|
874
|
+
hasWorkspace: controller.hasWorkspace(),
|
|
875
|
+
isReady: controller.isWorkspaceReady()
|
|
873
876
|
};
|
|
874
877
|
} catch (error) {
|
|
875
|
-
return handleError(error, "error reading
|
|
878
|
+
return handleError(error, "error reading controller workspace status");
|
|
876
879
|
}
|
|
877
880
|
}
|
|
878
881
|
});
|
|
879
|
-
var
|
|
882
|
+
var GET_AGENT_CONTROLLER_OM_RECORD_ROUTE = createRoute({
|
|
880
883
|
method: "GET",
|
|
881
|
-
path: "/
|
|
884
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/om",
|
|
882
885
|
responseType: "json",
|
|
883
886
|
pathParamSchema: sessionPathParams,
|
|
884
887
|
responseSchema: omRecordResponseSchema,
|
|
885
888
|
summary: "Get observational memory record",
|
|
886
889
|
description: "Returns the current observational memory record for the session\u2019s thread/resource.",
|
|
887
|
-
tags: ["
|
|
890
|
+
tags: ["AgentController"],
|
|
888
891
|
requiresAuth: true,
|
|
889
|
-
requiresPermission: "
|
|
890
|
-
handler: async ({ mastra,
|
|
892
|
+
requiresPermission: "agent-controller:read",
|
|
893
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
891
894
|
try {
|
|
892
|
-
const
|
|
893
|
-
const session = await getSession(
|
|
894
|
-
const record = await
|
|
895
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
896
|
+
const session = await getSession(controller, resourceId);
|
|
897
|
+
const record = await controller.getObservationalMemoryRecord(session);
|
|
895
898
|
return { record: record ?? void 0 };
|
|
896
899
|
} catch (error) {
|
|
897
|
-
return handleError(error, "error reading
|
|
900
|
+
return handleError(error, "error reading controller OM record");
|
|
898
901
|
}
|
|
899
902
|
}
|
|
900
903
|
});
|
|
901
|
-
var
|
|
904
|
+
var SET_AGENT_CONTROLLER_RESOURCE_ID_ROUTE = createRoute({
|
|
902
905
|
method: "POST",
|
|
903
|
-
path: "/
|
|
906
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/resource",
|
|
904
907
|
responseType: "json",
|
|
905
908
|
pathParamSchema: sessionPathParams,
|
|
906
909
|
bodySchema: z.object({ newResourceId: z.string() }),
|
|
907
910
|
responseSchema: ackResponseSchema,
|
|
908
911
|
summary: "Change the session resource ID",
|
|
909
912
|
description: "Updates the session\u2019s resource identity (e.g. when a user logs in).",
|
|
910
|
-
tags: ["
|
|
913
|
+
tags: ["AgentController"],
|
|
911
914
|
requiresAuth: true,
|
|
912
|
-
requiresPermission: "
|
|
913
|
-
handler: async ({ mastra,
|
|
915
|
+
requiresPermission: "agent-controller:execute",
|
|
916
|
+
handler: async ({ mastra, controllerId, resourceId, newResourceId }) => {
|
|
914
917
|
try {
|
|
915
|
-
const
|
|
916
|
-
const session = await getSession(
|
|
917
|
-
await
|
|
918
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
919
|
+
const session = await getSession(controller, resourceId);
|
|
920
|
+
await controller.setResourceId(session, { resourceId: newResourceId });
|
|
918
921
|
return { ok: true };
|
|
919
922
|
} catch (error) {
|
|
920
|
-
return handleError(error, "error setting
|
|
923
|
+
return handleError(error, "error setting controller resource ID");
|
|
921
924
|
}
|
|
922
925
|
}
|
|
923
926
|
});
|
|
924
|
-
var
|
|
927
|
+
var GET_AGENT_CONTROLLER_RESOURCE_IDS_ROUTE = createRoute({
|
|
925
928
|
method: "GET",
|
|
926
|
-
path: "/
|
|
929
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/resources",
|
|
927
930
|
responseType: "json",
|
|
928
931
|
pathParamSchema: sessionPathParams,
|
|
929
932
|
responseSchema: z.object({ resourceIds: z.array(z.string()) }),
|
|
930
933
|
summary: "Get known resource IDs",
|
|
931
934
|
description: "Lists the resource IDs known to this session (from threads).",
|
|
932
|
-
tags: ["
|
|
935
|
+
tags: ["AgentController"],
|
|
933
936
|
requiresAuth: true,
|
|
934
|
-
requiresPermission: "
|
|
935
|
-
handler: async ({ mastra,
|
|
937
|
+
requiresPermission: "agent-controller:read",
|
|
938
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
936
939
|
try {
|
|
937
|
-
const
|
|
938
|
-
const session = await getSession(
|
|
939
|
-
const resourceIds = await
|
|
940
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
941
|
+
const session = await getSession(controller, resourceId);
|
|
942
|
+
const resourceIds = await controller.getKnownResourceIds(session);
|
|
940
943
|
return { resourceIds };
|
|
941
944
|
} catch (error) {
|
|
942
|
-
return handleError(error, "error listing
|
|
945
|
+
return handleError(error, "error listing controller resource IDs");
|
|
943
946
|
}
|
|
944
947
|
}
|
|
945
948
|
});
|
|
@@ -965,53 +968,53 @@ var goalRecordSchema = z.object({
|
|
|
965
968
|
pausedReason: z.string().optional()
|
|
966
969
|
});
|
|
967
970
|
var goalResponseSchema = z.object({ goal: goalRecordSchema.optional() });
|
|
968
|
-
function getAgentForSession(
|
|
969
|
-
return
|
|
971
|
+
function getAgentForSession(controller, session) {
|
|
972
|
+
return controller.getCurrentAgent(session);
|
|
970
973
|
}
|
|
971
|
-
var
|
|
974
|
+
var GET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
972
975
|
method: "GET",
|
|
973
|
-
path: "/
|
|
976
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
974
977
|
responseType: "json",
|
|
975
978
|
pathParamSchema: sessionPathParams,
|
|
976
979
|
responseSchema: goalResponseSchema,
|
|
977
980
|
summary: "Get the current goal",
|
|
978
981
|
description: "Returns the active/paused/done goal objective for the session\u2019s thread, if any.",
|
|
979
|
-
tags: ["
|
|
982
|
+
tags: ["AgentController", "Goals"],
|
|
980
983
|
requiresAuth: true,
|
|
981
|
-
requiresPermission: "
|
|
982
|
-
handler: async ({ mastra,
|
|
984
|
+
requiresPermission: "agent-controller:read",
|
|
985
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
983
986
|
try {
|
|
984
|
-
const
|
|
985
|
-
const session = await getSession(
|
|
987
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
988
|
+
const session = await getSession(controller, resourceId);
|
|
986
989
|
const threadId = session.thread.getId();
|
|
987
990
|
if (!threadId) return { goal: void 0 };
|
|
988
|
-
const agent = getAgentForSession(
|
|
991
|
+
const agent = getAgentForSession(controller, session);
|
|
989
992
|
const record = await agent.getObjective({ threadId });
|
|
990
993
|
return { goal: record ?? void 0 };
|
|
991
994
|
} catch (error) {
|
|
992
|
-
return handleError(error, "error reading
|
|
995
|
+
return handleError(error, "error reading controller goal");
|
|
993
996
|
}
|
|
994
997
|
}
|
|
995
998
|
});
|
|
996
|
-
var
|
|
999
|
+
var SET_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
997
1000
|
method: "POST",
|
|
998
|
-
path: "/
|
|
1001
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
999
1002
|
responseType: "json",
|
|
1000
1003
|
pathParamSchema: sessionPathParams,
|
|
1001
1004
|
bodySchema: setGoalBodySchema,
|
|
1002
1005
|
responseSchema: goalResponseSchema,
|
|
1003
1006
|
summary: "Set a goal",
|
|
1004
1007
|
description: "Sets a new objective for the session\u2019s thread. The agent\u2019s in-loop goal judge evaluates progress after each turn.",
|
|
1005
|
-
tags: ["
|
|
1008
|
+
tags: ["AgentController", "Goals"],
|
|
1006
1009
|
requiresAuth: true,
|
|
1007
|
-
requiresPermission: "
|
|
1008
|
-
handler: async ({ mastra,
|
|
1010
|
+
requiresPermission: "agent-controller:execute",
|
|
1011
|
+
handler: async ({ mastra, controllerId, resourceId, objective, judgeModelId, maxRuns }) => {
|
|
1009
1012
|
try {
|
|
1010
|
-
const
|
|
1011
|
-
const session = await getSession(
|
|
1013
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1014
|
+
const session = await getSession(controller, resourceId);
|
|
1012
1015
|
const threadId = session.thread.getId();
|
|
1013
1016
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1014
|
-
const agent = getAgentForSession(
|
|
1017
|
+
const agent = getAgentForSession(controller, session);
|
|
1015
1018
|
const record = await agent.setObjective(objective, {
|
|
1016
1019
|
threadId,
|
|
1017
1020
|
resourceId: session.identity.getResourceId(),
|
|
@@ -1020,29 +1023,29 @@ var SET_HARNESS_GOAL_ROUTE = createRoute({
|
|
|
1020
1023
|
});
|
|
1021
1024
|
return { goal: record ?? void 0 };
|
|
1022
1025
|
} catch (error) {
|
|
1023
|
-
return handleError(error, "error setting
|
|
1026
|
+
return handleError(error, "error setting controller goal");
|
|
1024
1027
|
}
|
|
1025
1028
|
}
|
|
1026
1029
|
});
|
|
1027
|
-
var
|
|
1030
|
+
var UPDATE_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1028
1031
|
method: "PUT",
|
|
1029
|
-
path: "/
|
|
1032
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
1030
1033
|
responseType: "json",
|
|
1031
1034
|
pathParamSchema: sessionPathParams,
|
|
1032
1035
|
bodySchema: updateGoalBodySchema,
|
|
1033
1036
|
responseSchema: goalResponseSchema,
|
|
1034
1037
|
summary: "Update goal options",
|
|
1035
1038
|
description: "Updates the judge model, max runs, or status of the active goal. No-op when no goal is set.",
|
|
1036
|
-
tags: ["
|
|
1039
|
+
tags: ["AgentController", "Goals"],
|
|
1037
1040
|
requiresAuth: true,
|
|
1038
|
-
requiresPermission: "
|
|
1039
|
-
handler: async ({ mastra,
|
|
1041
|
+
requiresPermission: "agent-controller:execute",
|
|
1042
|
+
handler: async ({ mastra, controllerId, resourceId, judgeModelId, maxRuns, status }) => {
|
|
1040
1043
|
try {
|
|
1041
|
-
const
|
|
1042
|
-
const session = await getSession(
|
|
1044
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1045
|
+
const session = await getSession(controller, resourceId);
|
|
1043
1046
|
const threadId = session.thread.getId();
|
|
1044
1047
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1045
|
-
const agent = getAgentForSession(
|
|
1048
|
+
const agent = getAgentForSession(controller, session);
|
|
1046
1049
|
const record = await agent.updateObjectiveOptions({
|
|
1047
1050
|
threadId,
|
|
1048
1051
|
...judgeModelId !== void 0 ? { judgeModelId } : {},
|
|
@@ -1051,131 +1054,131 @@ var UPDATE_HARNESS_GOAL_ROUTE = createRoute({
|
|
|
1051
1054
|
});
|
|
1052
1055
|
return { goal: record ?? void 0 };
|
|
1053
1056
|
} catch (error) {
|
|
1054
|
-
return handleError(error, "error updating
|
|
1057
|
+
return handleError(error, "error updating controller goal");
|
|
1055
1058
|
}
|
|
1056
1059
|
}
|
|
1057
1060
|
});
|
|
1058
|
-
var
|
|
1061
|
+
var CLEAR_AGENT_CONTROLLER_GOAL_ROUTE = createRoute({
|
|
1059
1062
|
method: "DELETE",
|
|
1060
|
-
path: "/
|
|
1063
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/goal",
|
|
1061
1064
|
responseType: "json",
|
|
1062
1065
|
pathParamSchema: sessionPathParams,
|
|
1063
1066
|
responseSchema: ackResponseSchema,
|
|
1064
1067
|
summary: "Clear the goal",
|
|
1065
1068
|
description: "Removes the active goal from the session\u2019s thread.",
|
|
1066
|
-
tags: ["
|
|
1069
|
+
tags: ["AgentController", "Goals"],
|
|
1067
1070
|
requiresAuth: true,
|
|
1068
|
-
requiresPermission: "
|
|
1069
|
-
handler: async ({ mastra,
|
|
1071
|
+
requiresPermission: "agent-controller:execute",
|
|
1072
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
1070
1073
|
try {
|
|
1071
|
-
const
|
|
1072
|
-
const session = await getSession(
|
|
1074
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1075
|
+
const session = await getSession(controller, resourceId);
|
|
1073
1076
|
const threadId = session.thread.getId();
|
|
1074
1077
|
if (!threadId) throw new HTTPException(400, { message: "session has no active thread" });
|
|
1075
|
-
const agent = getAgentForSession(
|
|
1078
|
+
const agent = getAgentForSession(controller, session);
|
|
1076
1079
|
await agent.clearObjective({ threadId });
|
|
1077
1080
|
return { ok: true };
|
|
1078
1081
|
} catch (error) {
|
|
1079
|
-
return handleError(error, "error clearing
|
|
1082
|
+
return handleError(error, "error clearing controller goal");
|
|
1080
1083
|
}
|
|
1081
1084
|
}
|
|
1082
1085
|
});
|
|
1083
|
-
var
|
|
1086
|
+
var GET_AGENT_CONTROLLER_PERMISSIONS_ROUTE = createRoute({
|
|
1084
1087
|
method: "GET",
|
|
1085
|
-
path: "/
|
|
1088
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions",
|
|
1086
1089
|
responseType: "json",
|
|
1087
1090
|
pathParamSchema: sessionPathParams,
|
|
1088
1091
|
responseSchema: permissionRulesResponseSchema,
|
|
1089
1092
|
summary: "Get permission rules",
|
|
1090
1093
|
description: "Returns the current permission rules (per-category and per-tool policies) for the session.",
|
|
1091
|
-
tags: ["
|
|
1094
|
+
tags: ["AgentController", "Permissions"],
|
|
1092
1095
|
requiresAuth: true,
|
|
1093
|
-
requiresPermission: "
|
|
1094
|
-
handler: async ({ mastra,
|
|
1096
|
+
requiresPermission: "agent-controller:read",
|
|
1097
|
+
handler: async ({ mastra, controllerId, resourceId }) => {
|
|
1095
1098
|
try {
|
|
1096
|
-
const
|
|
1097
|
-
const session = await getSession(
|
|
1099
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1100
|
+
const session = await getSession(controller, resourceId);
|
|
1098
1101
|
const rules = session.permissions.getRules();
|
|
1099
1102
|
return {
|
|
1100
1103
|
categories: rules.categories,
|
|
1101
1104
|
tools: rules.tools
|
|
1102
1105
|
};
|
|
1103
1106
|
} catch (error) {
|
|
1104
|
-
return handleError(error, "error getting
|
|
1107
|
+
return handleError(error, "error getting controller permissions");
|
|
1105
1108
|
}
|
|
1106
1109
|
}
|
|
1107
1110
|
});
|
|
1108
|
-
var
|
|
1111
|
+
var SET_AGENT_CONTROLLER_CATEGORY_PERMISSION_ROUTE = createRoute({
|
|
1109
1112
|
method: "PUT",
|
|
1110
|
-
path: "/
|
|
1113
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions/category",
|
|
1111
1114
|
responseType: "json",
|
|
1112
1115
|
pathParamSchema: sessionPathParams,
|
|
1113
1116
|
bodySchema: setCategoryPermissionBodySchema,
|
|
1114
1117
|
responseSchema: ackResponseSchema,
|
|
1115
1118
|
summary: "Set permission for a tool category",
|
|
1116
1119
|
description: "Sets the approval policy (allow/ask/deny) for all tools in a category.",
|
|
1117
|
-
tags: ["
|
|
1120
|
+
tags: ["AgentController", "Permissions"],
|
|
1118
1121
|
requiresAuth: true,
|
|
1119
|
-
requiresPermission: "
|
|
1120
|
-
handler: async ({ mastra,
|
|
1122
|
+
requiresPermission: "agent-controller:execute",
|
|
1123
|
+
handler: async ({ mastra, controllerId, resourceId, category, policy }) => {
|
|
1121
1124
|
try {
|
|
1122
|
-
const
|
|
1123
|
-
const session = await getSession(
|
|
1125
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1126
|
+
const session = await getSession(controller, resourceId);
|
|
1124
1127
|
await session.permissions.setForCategory({ category, policy });
|
|
1125
1128
|
return { ok: true };
|
|
1126
1129
|
} catch (error) {
|
|
1127
|
-
return handleError(error, "error setting
|
|
1130
|
+
return handleError(error, "error setting controller category permission");
|
|
1128
1131
|
}
|
|
1129
1132
|
}
|
|
1130
1133
|
});
|
|
1131
|
-
var
|
|
1134
|
+
var SET_AGENT_CONTROLLER_TOOL_PERMISSION_ROUTE = createRoute({
|
|
1132
1135
|
method: "PUT",
|
|
1133
|
-
path: "/
|
|
1136
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/permissions/tool",
|
|
1134
1137
|
responseType: "json",
|
|
1135
1138
|
pathParamSchema: sessionPathParams,
|
|
1136
1139
|
bodySchema: setToolPermissionBodySchema,
|
|
1137
1140
|
responseSchema: ackResponseSchema,
|
|
1138
1141
|
summary: "Set permission for a specific tool",
|
|
1139
1142
|
description: "Sets the approval policy (allow/ask/deny) for a specific tool by name. Per-tool overrides take precedence over category policies.",
|
|
1140
|
-
tags: ["
|
|
1143
|
+
tags: ["AgentController", "Permissions"],
|
|
1141
1144
|
requiresAuth: true,
|
|
1142
|
-
requiresPermission: "
|
|
1143
|
-
handler: async ({ mastra,
|
|
1145
|
+
requiresPermission: "agent-controller:execute",
|
|
1146
|
+
handler: async ({ mastra, controllerId, resourceId, toolName, policy }) => {
|
|
1144
1147
|
try {
|
|
1145
|
-
const
|
|
1146
|
-
const session = await getSession(
|
|
1148
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1149
|
+
const session = await getSession(controller, resourceId);
|
|
1147
1150
|
await session.permissions.setForTool({ toolName, policy });
|
|
1148
1151
|
return { ok: true };
|
|
1149
1152
|
} catch (error) {
|
|
1150
|
-
return handleError(error, "error setting
|
|
1153
|
+
return handleError(error, "error setting controller tool permission");
|
|
1151
1154
|
}
|
|
1152
1155
|
}
|
|
1153
1156
|
});
|
|
1154
1157
|
var setSessionStateBodySchema = z.object({ state: z.record(z.string(), z.unknown()) });
|
|
1155
|
-
var
|
|
1158
|
+
var SET_AGENT_CONTROLLER_SESSION_STATE_ROUTE = createRoute({
|
|
1156
1159
|
method: "PUT",
|
|
1157
|
-
path: "/
|
|
1160
|
+
path: "/agent-controller/:controllerId/sessions/:resourceId/state",
|
|
1158
1161
|
responseType: "json",
|
|
1159
1162
|
pathParamSchema: sessionPathParams,
|
|
1160
1163
|
bodySchema: setSessionStateBodySchema,
|
|
1161
1164
|
responseSchema: ackResponseSchema,
|
|
1162
1165
|
summary: "Set session state",
|
|
1163
1166
|
description: "Merges the provided key-value pairs into the session state. Existing keys not in the payload are preserved.",
|
|
1164
|
-
tags: ["
|
|
1167
|
+
tags: ["AgentController"],
|
|
1165
1168
|
requiresAuth: true,
|
|
1166
|
-
requiresPermission: "
|
|
1167
|
-
handler: async ({ mastra,
|
|
1169
|
+
requiresPermission: "agent-controller:execute",
|
|
1170
|
+
handler: async ({ mastra, controllerId, resourceId, state }) => {
|
|
1168
1171
|
try {
|
|
1169
|
-
const
|
|
1170
|
-
const session = await getSession(
|
|
1172
|
+
const controller = getAgentControllerOrThrow(mastra, controllerId);
|
|
1173
|
+
const session = await getSession(controller, resourceId);
|
|
1171
1174
|
await session.state.set(state);
|
|
1172
1175
|
return { ok: true };
|
|
1173
1176
|
} catch (error) {
|
|
1174
|
-
return handleError(error, "error setting
|
|
1177
|
+
return handleError(error, "error setting controller session state");
|
|
1175
1178
|
}
|
|
1176
1179
|
}
|
|
1177
1180
|
});
|
|
1178
1181
|
|
|
1179
|
-
export {
|
|
1180
|
-
//# sourceMappingURL=chunk-
|
|
1181
|
-
//# sourceMappingURL=chunk-
|
|
1182
|
+
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_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 };
|
|
1183
|
+
//# sourceMappingURL=chunk-RLAOC73C.js.map
|
|
1184
|
+
//# sourceMappingURL=chunk-RLAOC73C.js.map
|