@mastra/server 1.38.0-alpha.3 → 1.38.0-alpha.4
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 +113 -0
- package/dist/{api-schema-manifest-DV7H6SLV.cjs → api-schema-manifest-JTQHOGKZ.cjs} +4 -4
- package/dist/{api-schema-manifest-DV7H6SLV.cjs.map → api-schema-manifest-JTQHOGKZ.cjs.map} +1 -1
- package/dist/{api-schema-manifest-2HZM3JT7.js → api-schema-manifest-MIQHCYPS.js} +3 -3
- package/dist/{api-schema-manifest-2HZM3JT7.js.map → api-schema-manifest-MIQHCYPS.js.map} +1 -1
- package/dist/{chunk-VJHJY3AS.js → chunk-234HJ3C3.js} +9 -30
- package/dist/chunk-234HJ3C3.js.map +1 -0
- package/dist/{chunk-YUTVYY3X.js → chunk-2DTOYQQ4.js} +3 -3
- package/dist/{chunk-YUTVYY3X.js.map → chunk-2DTOYQQ4.js.map} +1 -1
- package/dist/{chunk-FQIFYDKU.js → chunk-5SM6OBSO.js} +3 -3
- package/dist/{chunk-FQIFYDKU.js.map → chunk-5SM6OBSO.js.map} +1 -1
- package/dist/{chunk-2WUP6QIZ.cjs → chunk-65ZS7YK4.cjs} +5 -5
- package/dist/{chunk-2WUP6QIZ.cjs.map → chunk-65ZS7YK4.cjs.map} +1 -1
- package/dist/{chunk-TDAAXXUA.cjs → chunk-67X7UIDG.cjs} +9 -5
- package/dist/chunk-67X7UIDG.cjs.map +1 -0
- package/dist/chunk-6FHJAHQJ.cjs +234 -0
- package/dist/chunk-6FHJAHQJ.cjs.map +1 -0
- package/dist/{chunk-7N5OFQB3.cjs → chunk-6KPE7KSJ.cjs} +14 -14
- package/dist/{chunk-7N5OFQB3.cjs.map → chunk-6KPE7KSJ.cjs.map} +1 -1
- package/dist/{chunk-WQMMOPJQ.cjs → chunk-ANFNDHDM.cjs} +16 -16
- package/dist/{chunk-WQMMOPJQ.cjs.map → chunk-ANFNDHDM.cjs.map} +1 -1
- package/dist/{chunk-EFMN6TTT.js → chunk-APGJQAJ7.js} +3 -3
- package/dist/{chunk-EFMN6TTT.js.map → chunk-APGJQAJ7.js.map} +1 -1
- package/dist/{chunk-GII2QWIN.cjs → chunk-BO3KDJW5.cjs} +5 -5
- package/dist/{chunk-GII2QWIN.cjs.map → chunk-BO3KDJW5.cjs.map} +1 -1
- package/dist/{chunk-XHPUK2PC.cjs → chunk-CZM46CXF.cjs} +20 -20
- package/dist/{chunk-XHPUK2PC.cjs.map → chunk-CZM46CXF.cjs.map} +1 -1
- package/dist/chunk-DEYP5MF7.cjs +605 -0
- package/dist/chunk-DEYP5MF7.cjs.map +1 -0
- package/dist/{chunk-HNPFUM7G.js → chunk-EN3XZKLJ.js} +24 -16
- package/dist/chunk-EN3XZKLJ.js.map +1 -0
- package/dist/{chunk-3MCPTOLN.cjs → chunk-EQF2PRTA.cjs} +4 -4
- package/dist/{chunk-3MCPTOLN.cjs.map → chunk-EQF2PRTA.cjs.map} +1 -1
- package/dist/{chunk-PN3LDOLZ.js → chunk-FYCTKP2F.js} +9 -2
- package/dist/chunk-FYCTKP2F.js.map +1 -0
- package/dist/chunk-G7N4TLWZ.js +206 -0
- package/dist/chunk-G7N4TLWZ.js.map +1 -0
- package/dist/{chunk-TJ7OH3RN.cjs → chunk-HR5UNJF7.cjs} +3 -3
- package/dist/{chunk-TJ7OH3RN.cjs.map → chunk-HR5UNJF7.cjs.map} +1 -1
- package/dist/{chunk-HAT56AXO.cjs → chunk-JV2TL2NQ.cjs} +5 -5
- package/dist/{chunk-HAT56AXO.cjs.map → chunk-JV2TL2NQ.cjs.map} +1 -1
- package/dist/{chunk-FLBKRRNC.js → chunk-LJRCDF42.js} +3 -3
- package/dist/{chunk-FLBKRRNC.js.map → chunk-LJRCDF42.js.map} +1 -1
- package/dist/{chunk-NTXMKBCU.js → chunk-MCRZYWPS.js} +3 -3
- package/dist/{chunk-NTXMKBCU.js.map → chunk-MCRZYWPS.js.map} +1 -1
- package/dist/{chunk-QBMOXGFZ.js → chunk-MZ3EAJXG.js} +8 -4
- package/dist/chunk-MZ3EAJXG.js.map +1 -0
- package/dist/{chunk-6GNMUI4P.js → chunk-OGJFOIOH.js} +3 -3
- package/dist/{chunk-6GNMUI4P.js.map → chunk-OGJFOIOH.js.map} +1 -1
- package/dist/{chunk-C3E5C74L.cjs → chunk-OM7HESYA.cjs} +4 -4
- package/dist/{chunk-C3E5C74L.cjs.map → chunk-OM7HESYA.cjs.map} +1 -1
- package/dist/{chunk-R6CMAAEQ.js → chunk-PJI3MJPX.js} +3 -3
- package/dist/{chunk-R6CMAAEQ.js.map → chunk-PJI3MJPX.js.map} +1 -1
- package/dist/{chunk-N42WTSJL.cjs → chunk-Q5NDXAZ2.cjs} +104 -96
- package/dist/chunk-Q5NDXAZ2.cjs.map +1 -0
- package/dist/chunk-QB5CXFV7.js +592 -0
- package/dist/chunk-QB5CXFV7.js.map +1 -0
- package/dist/{chunk-3E2YDRGM.js → chunk-QCCJOLRZ.js} +3 -3
- package/dist/{chunk-3E2YDRGM.js.map → chunk-QCCJOLRZ.js.map} +1 -1
- package/dist/{chunk-X5NKEO7W.cjs → chunk-R6HOWZFY.cjs} +5 -5
- package/dist/{chunk-X5NKEO7W.cjs.map → chunk-R6HOWZFY.cjs.map} +1 -1
- package/dist/{chunk-OJ2LSGSK.js → chunk-R6SXN4ZF.js} +3 -3
- package/dist/{chunk-OJ2LSGSK.js.map → chunk-R6SXN4ZF.js.map} +1 -1
- package/dist/{chunk-MWJ6ISO7.cjs → chunk-RZ5J47R2.cjs} +4 -4
- package/dist/{chunk-MWJ6ISO7.cjs.map → chunk-RZ5J47R2.cjs.map} +1 -1
- package/dist/{chunk-QWT4ON3B.cjs → chunk-T254JS3B.cjs} +9 -2
- package/dist/chunk-T254JS3B.cjs.map +1 -0
- package/dist/{chunk-4FHOUNUN.js → chunk-TNRHBPDN.js} +3 -3
- package/dist/{chunk-4FHOUNUN.js.map → chunk-TNRHBPDN.js.map} +1 -1
- package/dist/{chunk-FYMY45UE.cjs → chunk-URLWJKB6.cjs} +15 -15
- package/dist/{chunk-FYMY45UE.cjs.map → chunk-URLWJKB6.cjs.map} +1 -1
- package/dist/{chunk-YF6SK4WY.cjs → chunk-UTBBNDFB.cjs} +22 -43
- package/dist/chunk-UTBBNDFB.cjs.map +1 -0
- package/dist/{chunk-3SSPJA4Y.js → chunk-UWETKNZ3.js} +3 -3
- package/dist/{chunk-3SSPJA4Y.js.map → chunk-UWETKNZ3.js.map} +1 -1
- package/dist/{chunk-ICYY6O53.cjs → chunk-VYDWPLTW.cjs} +4 -4
- package/dist/{chunk-ICYY6O53.cjs.map → chunk-VYDWPLTW.cjs.map} +1 -1
- package/dist/{chunk-LPB5BN2D.js → chunk-XVLL5IGQ.js} +3 -3
- package/dist/{chunk-LPB5BN2D.js.map → chunk-XVLL5IGQ.js.map} +1 -1
- package/dist/{chunk-VI7ODS36.js → chunk-ZIBWBUTB.js} +3 -3
- package/dist/{chunk-VI7ODS36.js.map → chunk-ZIBWBUTB.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +43 -43
- package/dist/server/handlers/agents.d.ts +162 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.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 +7 -7
- package/dist/server/handlers/stored-agents.d.ts +324 -0
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.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/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tool-providers.cjs +37 -5
- package/dist/server/handlers/tool-providers.d.ts +276 -4
- package/dist/server/handlers/tool-providers.d.ts.map +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 +1 -1
- package/dist/server/handlers.cjs +12 -12
- package/dist/server/handlers.js +6 -6
- package/dist/server/schemas/index.cjs +174 -94
- package/dist/server/schemas/index.js +5 -5
- package/dist/server/schemas/stored-agents.d.ts +904 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -1
- package/dist/server/schemas/tool-providers.d.ts +207 -0
- package/dist/server/schemas/tool-providers.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +13 -13
- package/dist/server/server-adapter/index.js +2 -2
- package/dist/server/server-adapter/routes/tool-providers.d.ts +232 -1
- package/dist/server/server-adapter/routes/tool-providers.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-37G66LYP.cjs +0 -65
- package/dist/chunk-37G66LYP.cjs.map +0 -1
- package/dist/chunk-ACESWSVL.cjs +0 -131
- package/dist/chunk-ACESWSVL.cjs.map +0 -1
- package/dist/chunk-HNPFUM7G.js.map +0 -1
- package/dist/chunk-MXUQJDLY.js +0 -126
- package/dist/chunk-MXUQJDLY.js.map +0 -1
- package/dist/chunk-N42WTSJL.cjs.map +0 -1
- package/dist/chunk-NIKW5NHG.js +0 -57
- package/dist/chunk-NIKW5NHG.js.map +0 -1
- package/dist/chunk-PN3LDOLZ.js.map +0 -1
- package/dist/chunk-QBMOXGFZ.js.map +0 -1
- package/dist/chunk-QWT4ON3B.cjs.map +0 -1
- package/dist/chunk-TDAAXXUA.cjs.map +0 -1
- package/dist/chunk-VJHJY3AS.js.map +0 -1
- package/dist/chunk-YF6SK4WY.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":[],"mappings":";;;;;;;;AAuCA,IAAM,uBAAA,GAA0B,gBAAA;AAOhC,IAAM,gBAAA,GAAmB,QAAA;AAezB,IAAI,mBAAA;AACJ,eAAe,sBAAA,GAAyB;AACtC,EAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,IAAA,mBAAA,GAAsB,MAAM,OAAO,4BAA4B,CAAA;AAAA,EACjE;AACA,EAAA,OAAO,mBAAA;AACT;AAEA,SAAS,cAAc,MAAA,EAAkD;AACvE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,EACtE;AACA,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,eAAA,CAAgB,QAAuB,UAAA,EAA2C;AAC/F,EAAA,IAAI;AACF,IAAA,OAAO,MAAA,CAAO,uBAAuB,UAAU,CAAA;AAAA,EACjD,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,EAAE,wBAAA,EAAyB,GAAI,MAAM,sBAAA,EAAuB;AAClE,IAAA,IAAI,iBAAiB,wBAAA,EAA0B;AAC7C,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAAA,IACzD;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAMA,IAAI,mBAAA,GAAsB,KAAA;AAC1B,SAAS,0BAA0B,MAAA,EAAyC;AAC1E,EAAA,IAAI,mBAAA,EAAqB;AACzB,EAAA,mBAAA,GAAsB,IAAA;AACtB,EAAA,MAAA,EAAQ,IAAA;AAAA,IACN;AAAA,GAEF;AACF;AAOA,SAAS,cAAA,CAAe,gBAA4C,MAAA,EAA2C;AAC7G,EAAA,MAAM,UAAA,GAAa,cAAA,EAAgB,GAAA,CAAI,sBAAsB,CAAA;AAC7D,EAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,CAAW,SAAS,CAAA,EAAG;AAC3D,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAO,cAAA,EAAgB,GAAA,CAAI,eAAe,CAAA;AAChD,EAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,QAAQ,IAAA,EAAM;AACpD,IAAA,MAAM,KAAM,IAAA,CAAyB,EAAA;AACrC,IAAA,IAAI,OAAO,EAAA,KAAO,QAAA,IAAY,EAAA,CAAG,SAAS,CAAA,EAAG;AAC3C,MAAA,OAAO,EAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,yBAAA,CAA0B,MAAM,CAAA;AAChC,EAAA,OAAO,SAAA;AACT;AAUO,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,+BAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,SAAA,GAAY,OAAO,gBAAA,EAAiB;AAC1C,MAAA,OAAO;AAAA,QACL,WAAW,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAI,CAAA,QAAA,MAAa;AAAA,UACnD,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,GAAI,SAAS,WAAA,GAAc,EAAE,aAAa,QAAA,CAAS,WAAA,KAAgB,EAAC;AAAA,UACpE,GAAI,SAAS,YAAA,GAAe,EAAE,cAAc,QAAA,CAAS,YAAA,KAAiB;AAAC,SACzE,CAAE;AAAA,OACJ;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,8BAA8B,CAAA;AAAA,IAC1D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,oCAAoC,WAAA,CAAY;AAAA,EAC3D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,cAAA,EAAgB,sCAAA;AAAA,EAChB,OAAA,EAAS,6BAAA;AAAA,EACT,WAAA,EAAa,8DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,SAAS,iBAAA,EAAmB;AAC9B,QAAA,OAAO,MAAM,SAAS,iBAAA,EAAkB;AAAA,MAC1C;AACA,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,MAAM,SAAS,YAAA,EAAa;AAAA,MACrC;AACA,MAAA,OAAO,EAAE,IAAA,EAAM,EAAC,EAAE;AAAA,IACpB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,sCAAsC,CAAA;AAAA,IAClE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,cAAA,EAAgB,mCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,oFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,OAAA,EAAS,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ,KAAM;AACzE,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,OAA+E,EAAC;AACtF,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,IAAA,CAAK,OAAA,GAAU,OAAA;AAC1C,MAAA,IAAI,MAAA,KAAW,MAAA,EAAW,IAAA,CAAK,MAAA,GAAS,MAAA;AACxC,MAAA,IAAI,IAAA,KAAS,MAAA,EAAW,IAAA,CAAK,IAAA,GAAO,IAAA;AACpC,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,IAAA,CAAK,OAAA,GAAU,OAAA;AAC1C,MAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,QAAA,OAAO,MAAM,QAAA,CAAS,cAAA,CAAe,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAS,CAAA;AAAA,MACtF;AACA,MAAA,OAAO,MAAM,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAS,CAAA;AAAA,IACjF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,sCAAsC,WAAA,CAAY;AAAA,EAC7D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,kBAAA;AAAA,EACjB,cAAA,EAAgB,uCAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,6DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,UAAS,KAAM;AACnD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,aAAA,EAAe;AAC3B,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,mCAAmC,CAAA;AAAA,MACxG;AACA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AACpD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,mBAAmB,QAAQ,CAAA,uBAAA,EAA0B,UAAU,CAAA,CAAA,EAAI,CAAA;AAAA,MAC7G;AACA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAMM,IAAM,gCAAgC,WAAA,CAAY;AAAA,EACvD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,uCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,UAAA,EAAY,+BAAA;AAAA,EACZ,cAAA,EAAgB,mCAAA;AAAA,EAChB,OAAA,EAAS,oCAAA;AAAA,EACT,WAAA,EAAa,sEAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,YAAA,EAAc,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAO,cAAA,EAAe,KAAM;AAChH,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,+BAA+B,CAAA;AAAA,MACpG;AAKA,MAAA,MAAM,cAAA,GACJ,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,oBAAoB,KAAA,GAAQ,YAAA;AAC9D,MAAA,MAAM,gBAAA,GAAmB,cAAA,EAAgB,GAAA,CAAI,sBAAsB,CAAA;AACnE,MAAA,IAAI,mBAAmB,iBAAA,EAAmB;AACxC,QAAA,IAAI,OAAO,gBAAA,KAAqB,QAAA,IAAY,gBAAA,CAAiB,WAAW,CAAA,EAAG;AACzE,UAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,YAC3B,OAAA,EAAS,CAAA,qEAAA,EAAwE,sBAAsB,CAAA,2BAAA,EAA8B,sBAAsB,CAAA,uCAAA;AAAA,WAC5J,CAAA;AAAA,QACH;AAAA,MACF;AACA,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,gBACJ,cAAA,KAAmB,QAAA,GACf,gBAAA,GACA,cAAA,KAAmB,oBAChB,gBAAA,GACD,cAAA;AAMR,MAAA,MAAM,MAAA,GAAS,YAAA,IAAgB,YAAA,CAAa,MAAA,GAAS,IAAI,YAAA,GAAe,aAAA;AACxE,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,SAAA,CAAU,EAAE,SAAS,YAAA,EAAc,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,CAAA;AAI3F,MAAA,MAAM,wBAAwB,YAAA,IAAgB,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,eAAe,MAAA,CAAO,MAAA;AAC9F,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,QAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAC/D,QAAA,IAAI,SAAS,qBAAA,EAAuB;AAClC,UAAA,MAAM,MAAM,gBAAA,CAAiB;AAAA,YAC3B,QAAA,EAAU,aAAA;AAAA,YACV,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,YAC1B,OAAA;AAAA,YACA,YAAA,EAAc,qBAAA;AAAA,YACd,OAAO,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,MAAA,GAAS,IAAI,KAAA,GAAQ,IAAA;AAAA,YAC/D,KAAA,EAAO;AAAA,WACR,CAAA;AAAA,QACH;AAAA,MACF,SAAS,WAAA,EAAa;AACpB,QAAA,MAAA,CAAO,SAAA,IAAY,EAAG,IAAA,GAAO,mEAAA,EAAqE;AAAA,UAChG,OAAO,WAAA,YAAuB,KAAA,GAAQ,WAAA,CAAY,OAAA,GAAU,OAAO,WAAW,CAAA;AAAA,UAC9E,UAAA;AAAA,UACA,OAAA;AAAA,UACA,YAAA,EAAc;AAAA,SACf,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,iCAAiC,CAAA;AAAA,IAC7D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,sCAAsC,WAAA,CAAY;AAAA,EAC7D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gCAAA;AAAA,EACjB,cAAA,EAAgB,oCAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAO,KAAM;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,aAAA,EAAe;AAC3B,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,mCAAmC,CAAA;AAAA,MACxG;AACA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAClD,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,wCAAwC,WAAA,CAAY;AAAA,EAC/D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,+CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,UAAA,EAAY,sCAAA;AAAA,EACZ,cAAA,EAAgB,0CAAA;AAAA,EAChB,OAAA,EAAS,sCAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,OAAM,KAAM;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,mBAAA,EAAqB;AACjC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,yCAAyC,CAAA;AAAA,MAC9G;AACA,MAAA,MAAM,SAAS,MAAM,QAAA,CAAS,mBAAA,CAAoB,EAAE,OAAO,CAAA;AAC3D,MAAA,OAAO,EAAE,OAAO,MAAA,EAAO;AAAA,IACzB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,iCAAiC,CAAA;AAAA,IAC7D;AAAA,EACF;AACF,CAAC;AAOM,IAAM,uCAAuC,WAAA,CAAY;AAAA,EAC9D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,yCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,gBAAA,EAAkB,0BAAA;AAAA,EAClB,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,2BAAA;AAAA,EACT,WAAA,EACE,uHAAA;AAAA,EACF,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO;AAAA,IACd,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA,EAAU,aAAA;AAAA,IACV,KAAA,EAAO,UAAA;AAAA,IACP,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,eAAA,EAAiB;AAC7B,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,qCAAqC,CAAA;AAAA,MAC1G;AACA,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAE3F,MAAA,MAAM,iBAAA,GACJ,WAAW,OAAO,aAAA,KAAkB,YAAY,aAAA,CAAc,MAAA,GAAS,IAAI,aAAA,GAAgB,MAAA;AAC7F,MAAA,MAAM,iBAAA,GAAoB,UAAU,iBAAA,GAAoB,cAAA;AAExD,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAI/D,MAAA,IAAI,YAKC,EAAC;AACN,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB;AAAA,YAC/C,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,YAC1B;AAAA,WACD,CAAA;AACD,UAAA,SAAA,GAAY,IAAA,CAAK,IAAI,CAAA,CAAA,MAAM;AAAA,YACzB,UAAU,CAAA,CAAE,QAAA;AAAA,YACZ,cAAc,CAAA,CAAE,YAAA;AAAA,YAChB,OAAO,CAAA,CAAE,KAAA;AAAA,YACT,KAAA,EAAO,EAAE,KAAA,IAAS;AAAA,WACpB,CAAE,CAAA;AAAA,QACJ,SAAS,SAAA,EAAW;AAClB,UAAA,MAAA,CAAO,SAAA,IAAY,EAAG,IAAA,GAAO,kEAAA,EAAoE;AAAA,YAC/F,OAAO,SAAA,YAAqB,KAAA,GAAQ,SAAA,CAAU,OAAA,GAAU,OAAO,SAAS,CAAA;AAAA,YACxE,UAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA,QACH;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,uBAAgB,GAAA,EAAY;AAClC,MAAA,MAAM,UAAA,GAAa,CAAC,UAAA,IAAc,UAAA,KAAe,QAAA;AACjD,MAAA,MAAM,aAAA,GAAgB,CAAC,UAAA,IAAc,UAAA,KAAe,YAAA;AACpD,MAAA,MAAM,kBAAA,GAAqB,CAAC,UAAA,IAAc,UAAA,KAAe,iBAAA;AACzD,MAAA,MAAM,eAAe,SAAA,CAAU,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,UAAU,QAAQ,CAAA;AAC7D,MAAA,IAAI,OAAA,IAAW,sBAAsB,MAAA,EAAW;AAC9C,QAAA,KAAA,MAAW,KAAK,SAAA,EAAW;AACzB,UAAA,IAAI,EAAE,KAAA,KAAU,QAAA,IAAY,YAAY,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AAChE,UAAA,IAAI,EAAE,KAAA,KAAU,YAAA,IAAgB,eAAe,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AACvE,UAAA,IAAI,EAAE,KAAA,KAAU,iBAAA,IAAqB,oBAAoB,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AAAA,QACnF;AAAA,MACF,CAAA,MAAA,IAAW,WAAW,iBAAA,EAAmB;AACvC,QAAA,IAAI,aAAA,IAAiB,kBAAA,EAAoB,SAAA,CAAU,GAAA,CAAI,iBAAiB,CAAA;AACxE,QAAA,IAAI,UAAA,IAAc,YAAA,EAAc,SAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,MAChE,CAAA,MAAO;AACL,QAAA,IAAI,aAAA,EAAe,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAC/C,QAAA,IAAI,UAAA,IAAc,YAAA,EAAc,SAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,MAEhE;AAEA,MAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA;AACpC,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,OAAO;AAAA,UACL,OAAO,EAAC;AAAA,UACR,YAAY,EAAE,IAAA,EAAM,QAAQ,CAAA,EAAG,OAAA,EAAS,SAAS,KAAA;AAAM,SACzD;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,QAAA,CAAS,eAAA,CAAgB;AAAA,QACnD,OAAA;AAAA,QACA,OAAA;AAAA,QACA,GAAI,OAAO,IAAA,KAAS,WAAW,EAAE,IAAA,KAAS,EAAC;AAAA,QAC3C,GAAI,OAAO,OAAA,KAAY,WAAW,EAAE,OAAA,KAAY;AAAC,OAClD,CAAA;AAED,MAAA,MAAM,WAAA,GAAc,IAAI,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,CAAA,CAAE,YAAA,EAAc,CAAC,CAAC,CAAC,CAAA;AAEnE,MAAA,MAAM,YAAA,GAAe,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,CAAA,IAAA,KAAQ;AACtD,QAAA,IAAI,CAAC,YAAY,OAAO,IAAA;AACxB,QAAA,MAAM,QAAQ,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAY,GAAG,KAAA,IAAS,YAAA;AAC3D,QAAA,OAAO,KAAA,KAAU,UAAA;AAAA,MACnB,CAAC,CAAA;AAED,MAAA,OAAO;AAAA,QACL,KAAA,EAAO,YAAA,CAAa,GAAA,CAAI,CAAA,IAAA,KAAQ;AAC9B,UAAA,MAAM,GAAA,GAAM,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAY,CAAA;AAC7C,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,KAAA,EAAO,KAAK,KAAA,IAAS,IAAA;AAAA,YACrB,GAAI,KAAK,KAAA,GAAQ,EAAE,OAAO,GAAA,CAAI,KAAA,KAAU;AAAC,WAC3C;AAAA,QACF,CAAC,CAAA;AAAA,QACD,YAAY,aAAA,CAAc;AAAA,OAC5B;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAMM,IAAM,6CAA6C,WAAA,CAAY;AAAA,EACpE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,+CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,gBAAA,EAAkB,+BAAA;AAAA,EAClB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,8BAAA;AAAA,EACT,WAAA,EAAa,sGAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,SAAQ,KAAM;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,oBAAA,EAAsB;AAClC,QAAA,OAAO,EAAE,MAAA,EAAQ,EAAC,EAAE;AAAA,MACtB;AACA,MAAA,MAAM,SAAS,MAAM,QAAA,CAAS,oBAAA,CAAqB,EAAE,SAAS,CAAA;AAC9D,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,+CAA+C,CAAA;AAAA,IAC3E;AAAA,EACF;AACF,CAAC;AAQM,IAAM,4CAA4C,WAAA,CAAY;AAAA,EACnE,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,uDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gCAAA;AAAA,EACjB,gBAAA,EAAkB,+BAAA;AAAA,EAClB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EACE,wJAAA;AAAA,EACF,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,YAAA,EAAc,KAAA,EAAO,gBAAe,KAAM;AAC9E,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAC3F,MAAA,MAAM,OAAA,GAAU,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE5C,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAE/D,MAAA,IAAI,aAAA;AACJ,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,CAAA;AACjF,QAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY,CAAA;AAC5D,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAA,GAAU,IAAA;AACV,UAAA,aAAA,GAAgB,KAAA,CAAM,QAAA;AACtB,UAAA,UAAA,GAAa,KAAA,CAAM,KAAA;AAAA,QACrB;AAAA,MACF;AAMA,MAAA,IAAI,KAAA,IAAS,CAAC,OAAA,IAAW,CAAC,OAAA,EAAS;AACjC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,iBAAiB,aAAA,IAAiB,cAAA;AACxC,MAAA,MAAM,WAAW,UAAA,KAAe,QAAA;AAChC,MAAA,IAAI,CAAC,QAAA,IAAY,cAAA,KAAmB,cAAA,IAAkB,CAAC,OAAA,EAAS;AAC9D,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,KAAA,GAAQ,MAAM,oBAAA,CAAqB,MAAA,EAAQ,YAAY,CAAA;AAC7D,QAAA,IAAI,QAAQ,CAAA,EAAG;AACb,UAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,YAC3B,OAAA,EAAS,CAAA,WAAA,EAAc,YAAY,CAAA,oBAAA,EAAuB,KAAK,CAAA,iDAAA;AAAA,WAChE,CAAA;AAAA,QACH;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,SAAS,YAAA,EAAc,cAAA,IAAkB,OAAO,QAAA,CAAS,qBAAqB,UAAA,EAAY;AAC5F,QAAA,MAAM,QAAA,CAAS,iBAAiB,YAAY,CAAA;AAC5C,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ;AAEA,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,MAAM,gBAAA,CAAiB;AAAA,UAC3B,QAAA,EAAU,cAAA;AAAA,UACV,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,UAC1B;AAAA,SACD,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAe,OAAA,EAAQ;AAAA,IACtC,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,8CAA8C,CAAA;AAAA,IAC1E;AAAA,EACF;AACF,CAAC;AAMM,IAAM,2CAA2C,WAAA,CAAY;AAAA,EAClE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,6DAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gCAAA;AAAA,EACjB,gBAAA,EAAkB,0BAAA;AAAA,EAClB,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,gCAAA;AAAA,EACT,WAAA,EAAa,2EAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,YAAA,EAAc,OAAA,EAAS,gBAAe,KAAM;AAChF,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAE3F,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAC/D,MAAA,IAAI,aAAA;AACJ,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,CAAA;AACjF,QAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY,CAAA;AAC5D,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAA,GAAU,IAAA;AACV,UAAA,aAAA,GAAgB,KAAA,CAAM,QAAA;AACtB,UAAA,UAAA,GAAa,KAAA,CAAM,KAAA;AAAA,QACrB;AAAA,MACF;AAKA,MAAA,IAAI,KAAA,IAAS,CAAC,OAAA,IAAW,CAAC,OAAA,EAAS;AACjC,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,iBAAiB,aAAA,IAAiB,cAAA;AACxC,MAAA,MAAM,WAAW,UAAA,KAAe,QAAA;AAChC,MAAA,IAAI,CAAC,QAAA,IAAY,cAAA,KAAmB,cAAA,IAAkB,CAAC,OAAA,EAAS;AAC9D,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,CAAoB,MAAA,EAAQ,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,YAAA,EAAc,OAAA,EAAS,CAAA;AACxG,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,8CAA8C,CAAA;AAAA,IAC1E;AAAA,EACF;AACF,CAAC;AAKM,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,cAAA,EAAgB,gCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,4DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,QAAA,OAAO,EAAE,IAAI,IAAA,EAAK;AAAA,MACpB;AACA,MAAA,OAAO,MAAM,SAAS,SAAA,EAAU;AAAA,IAClC,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oCAAoC,CAAA;AAAA,IAChE;AAAA,EACF;AACF,CAAC;AAMD,eAAe,mBAAA,CACb,QACA,IAAA,EAC8C;AAC9C,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,EAAA,MAAM,WAAA,GAAc,MAAM,OAAA,EAAS,QAAA,CAAS,QAAQ,CAAA;AACpD,EAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAC;AAE1B,EAAA,MAAM,EAAE,QAAO,GAAI,MAAM,YAAY,YAAA,CAAa,EAAE,OAAA,EAAS,KAAA,EAAO,CAAA;AACpE,EAAA,MAAM,MAA2C,EAAC;AAClD,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,MAAA,GAAS,KAAA,EAAO,aAAA,GAAgB,IAAA,CAAK,UAAU,CAAA;AACrD,IAAA,IAAI,CAAC,QAAQ,WAAA,EAAa;AAC1B,IAAA,KAAA,MAAW,CAAC,SAAS,WAAW,CAAA,IAAK,OAAO,OAAA,CAAQ,MAAA,CAAO,WAAW,CAAA,EAAG;AACvE,MAAA,IAAI,IAAA,CAAK,OAAA,IAAW,OAAA,KAAY,IAAA,CAAK,OAAA,EAAS;AAC9C,MAAA,MAAM,QAAS,WAAA,CAAgD,IAAA,CAAK,OAAK,CAAA,CAAE,YAAA,KAAiB,KAAK,YAAY,CAAA;AAC7G,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,GAAA,CAAI,IAAA,CAAK,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA,EAAI,MAAM,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,EAAA,EAAI,CAAA;AACvD,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AAEA,eAAe,oBAAA,CAAqB,QAAa,YAAA,EAAuC;AACtF,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,EAAA,MAAM,WAAA,GAAc,MAAM,OAAA,EAAS,QAAA,CAAS,QAAQ,CAAA;AACpD,EAAA,IAAI,CAAC,aAAa,OAAO,CAAA;AACzB,EAAA,MAAM,EAAE,QAAO,GAAI,MAAM,YAAY,YAAA,CAAa,EAAE,OAAA,EAAS,KAAA,EAAO,CAAA;AACpE,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,KAAK,KAAA,EAAO,aAAA;AAClB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,KAAA,MAAW,MAAA,IAAU,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA,EAEjC;AACF,MAAA,MAAM,SAAS,MAAA,CAAO,MAAA,CAAO,QAAQ,WAAA,IAAe,EAAE,CAAA,CAAE,IAAA;AAAA,QAAK,SAC3D,GAAA,CAAI,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY;AAAA,OAC/C;AACA,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,KAAA,IAAS,CAAA;AACT,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT","file":"chunk-QB5CXFV7.js","sourcesContent":["import type { IMastraEditor } from '@mastra/core/editor';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport { MASTRA_RESOURCE_ID_KEY } from '@mastra/core/request-context';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type * as ToolProviderModule from '@mastra/core/tool-provider';\nimport type { ToolProvider } from '@mastra/core/tool-provider';\n\nimport { MASTRA_USER_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\nimport {\n authorizeToolProviderBodySchema,\n authorizeToolProviderResponseSchema,\n authStatusToolProviderResponseSchema,\n connectionStatusToolProviderBodySchema,\n connectionStatusToolProviderResponseSchema,\n connectionUsageQuerySchema,\n connectionUsageResponseSchema,\n disconnectConnectionQuerySchema,\n disconnectConnectionResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n listConnectionFieldsQuerySchema,\n listConnectionFieldsResponseSchema,\n listConnectionsQuerySchema,\n listConnectionsResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsQuerySchema,\n listToolProviderToolsResponseSchema,\n listToolProvidersResponseSchema,\n toolProviderAuthStatusPathParams,\n toolProviderConnectionPathParams,\n toolProviderHealthResponseSchema,\n toolProviderIdPathParams,\n toolSlugPathParams,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { hasAdminBypass } from './authorship';\nimport { handleError } from './error';\n\nconst TOOL_PROVIDERS_RESOURCE = 'tool-providers' as const;\n\n/**\n * Mirrors `@mastra/core/tool-provider#SHARED_BUCKET_ID`. Inlined locally so this\n * module evaluates under any peer-compatible core; a regression test in\n * `tool-providers.test.ts` verifies the literal stays in lockstep with core.\n */\nconst SHARED_BUCKET_ID = 'shared' as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Lazily import `@mastra/core/tool-provider` so this server module can evaluate\n * under any peer-compatible core. The new value exports (`UnknownToolProviderError`,\n * `SHARED_BUCKET_ID`) ship in core `>=1.39.0-0`; users on older cores who never\n * configure a `MastraEditor` short-circuit via `requireEditor` long before this\n * runs. ESM caches one module instance per resolved specifier so the\n * `instanceof` check below sees the same class identity that `@mastra/editor`\n * throws.\n */\nlet _toolProviderModule: typeof ToolProviderModule | undefined;\nasync function loadToolProviderModule() {\n if (!_toolProviderModule) {\n _toolProviderModule = await import('@mastra/core/tool-provider');\n }\n return _toolProviderModule;\n}\n\nfunction requireEditor(editor: IMastraEditor | undefined): IMastraEditor {\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n return editor;\n}\n\nasync function resolveProvider(editor: IMastraEditor, providerId: string): Promise<ToolProvider> {\n try {\n return editor.getToolProviderOrThrow(providerId);\n } catch (error) {\n const { UnknownToolProviderError } = await loadToolProviderModule();\n if (error instanceof UnknownToolProviderError) {\n throw new HTTPException(404, { message: error.message });\n }\n throw error;\n }\n}\n\n// Emit a single warn per process when the connection-owner fallback fires.\n// Multi-tenant deployments that forget to wire `mapUserToResourceId` (or\n// `MASTRA_USER_KEY`) silently funnel every `caller-supplied` pin into one\n// shared OAuth account — surface that misconfiguration once.\nlet defaultBucketWarned = false;\nfunction warnDefaultBucketFallback(logger: IMastraLogger | undefined): void {\n if (defaultBucketWarned) return;\n defaultBucketWarned = true;\n logger?.warn(\n '[tool-providers] caller-supplied scope falling back to shared \"default\" bucket — ' +\n 'wire mapUserToResourceId or set MASTRA_USER_KEY to avoid cross-tenant OAuth sharing',\n );\n}\n\n/**\n * Resolve the connection owner (provider `userId` bucket) from the caller's\n * `RequestContext`. Mirrors the runtime fan-out fallback to `'default'` when\n * no auth context is present so OSS deployments still work.\n */\nfunction resolveOwnerId(requestContext: RequestContext | undefined, logger: IMastraLogger | undefined): string {\n const resourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (typeof resourceId === 'string' && resourceId.length > 0) {\n return resourceId;\n }\n\n const user = requestContext?.get(MASTRA_USER_KEY);\n if (user && typeof user === 'object' && 'id' in user) {\n const id = (user as { id: unknown }).id;\n if (typeof id === 'string' && id.length > 0) {\n return id;\n }\n }\n\n warnDefaultBucketFallback(logger);\n return 'default';\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers — List all registered tool providers with their\n * capabilities (when the provider exposes them).\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info and capabilities',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const providers = editor.getToolProviders();\n return {\n providers: Object.values(providers).map(provider => ({\n ...provider.info,\n ...(provider.displayName ? { displayName: provider.displayName } : {}),\n ...(provider.capabilities ? { capabilities: provider.capabilities } : {}),\n })),\n };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits — Toolkits exposed by a provider.\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (provider.listToolkitsVNext) {\n return await provider.listToolkitsVNext();\n }\n if (provider.listToolkits) {\n return await provider.listToolkits();\n }\n return { data: [] };\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools — List tools, optionally filtered.\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const opts: { toolkit?: string; search?: string; page?: number; perPage?: number } = {};\n if (toolkit !== undefined) opts.toolkit = toolkit;\n if (search !== undefined) opts.search = search;\n if (page !== undefined) opts.page = page;\n if (perPage !== undefined) opts.perPage = perPage;\n if (provider.listToolsVNext) {\n return await provider.listToolsVNext(Object.keys(opts).length > 0 ? opts : undefined);\n }\n return await provider.listTools(Object.keys(opts).length > 0 ? opts : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema — Tool schema.\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n const schema = await provider.getToolSchema(toolSlug);\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/authorize — Start an OAuth flow and persist\n * a `tool_provider_connections` row for label / scope joins.\n */\nexport const AUTHORIZE_TOOL_PROVIDER_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/authorize',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: authorizeToolProviderBodySchema,\n responseSchema: authorizeToolProviderResponseSchema,\n summary: 'Authorize tool provider connection',\n description: 'Starts an OAuth flow and returns a redirect URL + opaque auth handle',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, connectionId, toolName, config, label, scope, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.authorize) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support authorize` });\n }\n // Per-pin scope:\n // - 'shared' buckets under SHARED_BUCKET_ID.\n // - 'caller-supplied' buckets under request-context resourceId (400 if missing).\n // - 'per-author' (default) buckets under the caller's resolved authorId.\n const effectiveScope: 'shared' | 'per-author' | 'caller-supplied' =\n scope === 'shared' || scope === 'caller-supplied' ? scope : 'per-author';\n const callerResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (effectiveScope === 'caller-supplied') {\n if (typeof callerResourceId !== 'string' || callerResourceId.length === 0) {\n throw new HTTPException(400, {\n message: `Cannot authorize caller-supplied connection: request context has no '${MASTRA_RESOURCE_ID_KEY}'. Set requestContext.set('${MASTRA_RESOURCE_ID_KEY}', <userId>) before calling /authorize.`,\n });\n }\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const ownerAuthorId =\n effectiveScope === 'shared'\n ? SHARED_BUCKET_ID\n : effectiveScope === 'caller-supplied'\n ? (callerResourceId as string)\n : callerAuthorId;\n\n // Fresh connect (no connectionId) uses the resolved owner id as the\n // provider bucket so the adapter creates the connection under the same\n // userId the runtime will resolve to at execution time. Re-auth (caller\n // passed an existing connectionId) is left untouched.\n const bucket = connectionId && connectionId.length > 0 ? connectionId : ownerAuthorId;\n const result = await provider.authorize({ toolkit, connectionId: bucket, toolName, config });\n\n // Persist label + scope. Upsert even when label is null/undefined so the\n // row exists for later list-join in the picker.\n const persistedConnectionId = connectionId && connectionId.length > 0 ? connectionId : result.authId;\n try {\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n if (store && persistedConnectionId) {\n await store.upsertConnection({\n authorId: ownerAuthorId,\n providerId: provider.info.id,\n toolkit,\n connectionId: persistedConnectionId,\n label: typeof label === 'string' && label.length > 0 ? label : null,\n scope: effectiveScope,\n });\n }\n } catch (upsertError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to upsert tool_provider_connections label', {\n error: upsertError instanceof Error ? upsertError.message : String(upsertError),\n providerId,\n toolkit,\n connectionId: persistedConnectionId,\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error authorizing tool provider');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/auth-status/:authId — Poll OAuth flow status.\n */\nexport const GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/auth-status/:authId',\n responseType: 'json',\n pathParamSchema: toolProviderAuthStatusPathParams,\n responseSchema: authStatusToolProviderResponseSchema,\n summary: 'Get tool provider auth status',\n description: 'Polls the OAuth flow status for an outstanding authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, authId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getAuthStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getAuthStatus` });\n }\n const status = await provider.getAuthStatus(authId);\n return { status };\n } catch (error) {\n return handleError(error, 'Error getting tool provider auth status');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/connection-status — Batch-check connection liveness.\n */\nexport const TOOL_PROVIDER_CONNECTION_STATUS_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/connection-status',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: connectionStatusToolProviderBodySchema,\n responseSchema: connectionStatusToolProviderResponseSchema,\n summary: 'Get connection status for a provider',\n description: 'Batch-checks whether a set of (connectionId, toolkit) tuples are still connected',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, items }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getConnectionStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getConnectionStatus` });\n }\n const result = await provider.getConnectionStatus({ items });\n return { items: result };\n } catch (error) {\n return handleError(error, 'Error getting connection status');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections — Existing provider connections\n * scoped to a toolkit. Admin callers can pass `authorId` and `scope` filters;\n * non-admins always see only their own + shared rows.\n */\nexport const LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionsQuerySchema,\n responseSchema: listConnectionsResponseSchema,\n summary: 'List existing connections',\n description:\n 'Returns existing provider connections on a toolkit, so the picker can offer them for pinning without re-running OAuth',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n providerId,\n toolkit,\n authorId: queryAuthorId,\n scope: queryScope,\n page,\n perPage,\n requestContext,\n }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnections) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support listConnections` });\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const requestedAuthorId =\n isAdmin && typeof queryAuthorId === 'string' && queryAuthorId.length > 0 ? queryAuthorId : undefined;\n const effectiveAuthorId = isAdmin ? requestedAuthorId : callerAuthorId;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n // Strategy B: seed userIds[] from persisted rows so admins can enumerate\n // connections owned by other authors.\n let labelRows: Array<{\n authorId: string;\n connectionId: string;\n label: string | null;\n scope: 'shared' | 'per-author' | 'caller-supplied';\n }> = [];\n if (store) {\n try {\n const rows = await store.listConnectionsByAuthor({\n providerId: provider.info.id,\n toolkit,\n });\n labelRows = rows.map(r => ({\n authorId: r.authorId,\n connectionId: r.connectionId,\n label: r.label,\n scope: r.scope ?? 'per-author',\n }));\n } catch (joinError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to join tool_provider_connections labels', {\n error: joinError instanceof Error ? joinError.message : String(joinError),\n providerId,\n toolkit,\n });\n }\n }\n\n const userIdSet = new Set<string>();\n const wantShared = !queryScope || queryScope === 'shared';\n const wantPerAuthor = !queryScope || queryScope === 'per-author';\n const wantCallerSupplied = !queryScope || queryScope === 'caller-supplied';\n const hasSharedRow = labelRows.some(r => r.scope === 'shared');\n if (isAdmin && effectiveAuthorId === undefined) {\n for (const r of labelRows) {\n if (r.scope === 'shared' && wantShared) userIdSet.add(r.authorId);\n if (r.scope === 'per-author' && wantPerAuthor) userIdSet.add(r.authorId);\n if (r.scope === 'caller-supplied' && wantCallerSupplied) userIdSet.add(r.authorId);\n }\n } else if (isAdmin && effectiveAuthorId) {\n if (wantPerAuthor || wantCallerSupplied) userIdSet.add(effectiveAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n } else {\n if (wantPerAuthor) userIdSet.add(callerAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n // Non-admins never enumerate caller-supplied connections.\n }\n\n const userIds = Array.from(userIdSet);\n if (userIds.length === 0) {\n return {\n items: [],\n pagination: { page: page ?? 1, perPage, hasMore: false },\n };\n }\n\n const adapterResult = await provider.listConnections({\n toolkit,\n userIds,\n ...(typeof page === 'number' ? { page } : {}),\n ...(typeof perPage === 'number' ? { perPage } : {}),\n });\n\n const rowByConnId = new Map(labelRows.map(r => [r.connectionId, r]));\n\n const visibleItems = adapterResult.items.filter(item => {\n if (!queryScope) return true;\n const scope = rowByConnId.get(item.connectionId)?.scope ?? 'per-author';\n return scope === queryScope;\n });\n\n return {\n items: visibleItems.map(item => {\n const row = rowByConnId.get(item.connectionId);\n return {\n ...item,\n label: row?.label ?? null,\n ...(row?.scope ? { scope: row.scope } : {}),\n };\n }),\n pagination: adapterResult.pagination,\n };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connections');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connection-fields — Dynamic auth fields\n * the picker should collect before authorize (e.g. Confluence subdomain).\n */\nexport const LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connection-fields',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionFieldsQuerySchema,\n responseSchema: listConnectionFieldsResponseSchema,\n summary: 'List connection field schema',\n description: 'Returns a list of provider-specific fields the UI should collect before initiating an authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnectionFields) {\n return { fields: [] };\n }\n const fields = await provider.listConnectionFields({ toolkit });\n return { fields };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection fields');\n }\n },\n});\n\n/**\n * DELETE /tool-providers/:providerId/connections/:connectionId — Disconnect.\n * Without `?force=true` rejects when the connection is still pinned by any\n * agent. With `?force=true` revokes at the provider (best-effort) and drops\n * the persisted row.\n */\nexport const DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/tool-providers/:providerId/connections/:connectionId',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: disconnectConnectionQuerySchema,\n responseSchema: disconnectConnectionResponseSchema,\n summary: 'Disconnect a connection',\n description:\n 'Revokes the provider-side connection (if supported) and removes the persisted tool_provider_connections row. Use `?force=true` to bypass usage checks.',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, force, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n const isForce = force === true || force === 'true';\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins. Without\n // this guard, a caller could trigger provider-side `revokeConnection`\n // against another tenant's connectionId by guessing it.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n if (!isForce) {\n const usage = await countConnectionUsage(mastra, connectionId);\n if (usage > 0) {\n throw new HTTPException(409, {\n message: `Connection ${connectionId} is still pinned by ${usage} agent(s). Pass ?force=true to disconnect anyway.`,\n });\n }\n }\n\n let revoked = false;\n if (provider.capabilities?.supportsRevoke && typeof provider.revokeConnection === 'function') {\n await provider.revokeConnection(connectionId);\n revoked = true;\n }\n\n if (store) {\n await store.deleteConnection({\n authorId: effectiveOwner,\n providerId: provider.info.id,\n connectionId,\n });\n }\n\n return { ok: true as const, revoked };\n } catch (error) {\n return handleError(error, 'Error disconnecting tool provider connection');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections/:connectionId/usage — Lists agents\n * that currently pin the given connection in their `toolProviders` config.\n */\nexport const GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections/:connectionId/usage',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: connectionUsageQuerySchema,\n responseSchema: connectionUsageResponseSchema,\n summary: 'List agents using a connection',\n description: 'Returns the agents that pin this connection in their toolProviders config',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, toolkit, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins so callers\n // cannot probe for other tenants' connections.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const agents = await scanConnectionUsage(mastra, { providerId: provider.info.id, connectionId, toolkit });\n return { agents };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection usage');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/health — Provider-level health check.\n */\nexport const GET_TOOL_PROVIDER_HEALTH_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/health',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: toolProviderHealthResponseSchema,\n summary: 'Get tool provider health',\n description: 'Returns provider-level health (config, reachability, etc.)',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getHealth) {\n return { ok: true };\n }\n return await provider.getHealth();\n } catch (error) {\n return handleError(error, 'Error getting tool provider health');\n }\n },\n});\n\n// ============================================================================\n// Usage scan helpers\n// ============================================================================\n\nasync function scanConnectionUsage(\n mastra: any,\n args: { providerId: string; connectionId: string; toolkit?: string },\n): Promise<Array<{ id: string; name: string }>> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return [];\n\n const { agents } = await agentsStore.listResolved({ perPage: false });\n const out: Array<{ id: string; name: string }> = [];\n for (const agent of agents) {\n const config = agent?.toolProviders?.[args.providerId];\n if (!config?.connections) continue;\n for (const [toolkit, connections] of Object.entries(config.connections)) {\n if (args.toolkit && toolkit !== args.toolkit) continue;\n const match = (connections as Array<{ connectionId: string }>).some(c => c.connectionId === args.connectionId);\n if (match) {\n out.push({ id: agent.id, name: agent.name ?? agent.id });\n break;\n }\n }\n }\n return out;\n}\n\nasync function countConnectionUsage(mastra: any, connectionId: string): Promise<number> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return 0;\n const { agents } = await agentsStore.listResolved({ perPage: false });\n let count = 0;\n for (const agent of agents) {\n const tp = agent?.toolProviders;\n if (!tp) continue;\n for (const config of Object.values(tp) as Array<{\n connections?: Record<string, Array<{ connectionId: string }>>;\n }>) {\n const pinned = Object.values(config?.connections ?? {}).some(arr =>\n arr.some(c => c.connectionId === connectionId),\n );\n if (pinned) {\n count += 1;\n break;\n }\n }\n }\n return count;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createListVersionsResponseSchema, createCompareVersionsResponseSchema, activateVersionResponseSchema, compareVersionsQuerySchema, createVersionBodySchema, deleteVersionResponseSchema, listVersionsQuerySchema } from './chunk-3OQMTFIV.js';
|
|
2
|
-
import { modelConfigSchema } from './chunk-
|
|
2
|
+
import { modelConfigSchema } from './chunk-FYCTKP2F.js';
|
|
3
3
|
import { z } from 'zod/v4';
|
|
4
4
|
|
|
5
5
|
var listScorerVersionsQuerySchema = listVersionsQuerySchema;
|
|
@@ -67,5 +67,5 @@ var deleteScorerVersionResponseSchema = deleteVersionResponseSchema;
|
|
|
67
67
|
var compareScorerVersionsResponseSchema = createCompareVersionsResponseSchema(scorerVersionSchema);
|
|
68
68
|
|
|
69
69
|
export { activateScorerVersionResponseSchema, compareScorerVersionsQuerySchema, compareScorerVersionsResponseSchema, createScorerVersionBodySchema, createScorerVersionResponseSchema, deleteScorerVersionResponseSchema, getScorerVersionResponseSchema, listScorerVersionsQuerySchema, listScorerVersionsResponseSchema, restoreScorerVersionResponseSchema, scorerVersionIdPathParams, scorerVersionPathParams, scorerVersionSchema };
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-QCCJOLRZ.js.map
|
|
71
|
+
//# sourceMappingURL=chunk-QCCJOLRZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/scorer-versions.ts"],"names":[],"mappings":";;;;AAcO,IAAM,6BAAA,GAAgC;AACtC,IAAM,gCAAA,GAAmC;AACzC,IAAM,6BAAA,GAAgC;AAMtC,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oDAAoD;AACpF,CAAC;AAEM,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oDAAoD,CAAA;AAAA,EAClF,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C;AAC3E,CAAC;AAMD,IAAM,oBAAA,GAAuB,EAAE,KAAA,CAAM;AAAA,EACnC,CAAA,CAAE,OAAO,EAAE,IAAA,EAAM,EAAE,OAAA,CAAQ,MAAM,GAAG,CAAA;AAAA,EACpC,EAAE,MAAA,CAAO,EAAE,MAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,CAAC,GAAG;AACvE,CAAC,CAAA;AAED,IAAM,cAAA,GAAiB,EAAE,IAAA,CAAK;AAAA,EAC5B,WAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAClE,kBAAA,EAAoB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAClF,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0CAA0C,CAAA;AAAA;AAAA,EAE7E,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,EAC9C,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2BAA2B,CAAA;AAAA,EACvE,IAAA,EAAM,cAAA;AAAA,EACN,KAAA,EAAO,kBAAkB,QAAA,EAAS;AAAA,EAClC,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,UAAA,EAAY,EACT,MAAA,CAAO;AAAA,IACN,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACzB,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC1B,EACA,QAAA,EAAS;AAAA,EACZ,YAAA,EAAc,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACzD,eAAA,EAAiB,qBAAqB,QAAA,EAAS;AAAA;AAAA,EAE/C,aAAA,EAAe,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,6DAA6D,CAAA;AAAA,EACpH,eAAe,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,EACvF,WAAW,CAAA,CAAE,MAAA,CAAO,IAAA,EAAK,CAAE,SAAS,+BAA+B;AACrE,CAAC;AAEM,IAAM,gCAAA,GAAmC,iCAAiC,mBAAmB;AAE7F,IAAM,8BAAA,GAAiC;AAEvC,IAAM,iCAAA,GAAoC,mBAAA,CAAoB,OAAA,EAAQ,CAAE,KAAA;AAAA,EAC7E,EAAE,MAAA,CAAO;AAAA,IACP,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,IACb,kBAAA,EAAoB,EAAE,MAAA,EAAO;AAAA,IAC7B,aAAA,EAAe,EAAE,MAAA,EAAO;AAAA,IACxB,SAAA,EAAW,CAAA,CAAE,MAAA,CAAO,IAAA;AAAK,GAC1B;AACH;AAEO,IAAM,mCAAA,GAAsC;AAE5C,IAAM,kCAAA,GAAqC;AAE3C,IAAM,iCAAA,GAAoC;AAE1C,IAAM,mCAAA,GAAsC,oCAAoC,mBAAmB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/scorer-versions.ts"],"names":[],"mappings":"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","file":"chunk-QCCJOLRZ.js","sourcesContent":["import { z } from 'zod/v4';\nimport { modelConfigSchema } from './stored-agents';\nimport {\n listVersionsQuerySchema,\n compareVersionsQuerySchema,\n createVersionBodySchema,\n activateVersionResponseSchema,\n deleteVersionResponseSchema,\n versionDiffEntrySchema,\n createListVersionsResponseSchema,\n createCompareVersionsResponseSchema,\n} from './version-common';\n\n// Re-export shared schemas under domain-specific names\nexport const listScorerVersionsQuerySchema = listVersionsQuerySchema;\nexport const compareScorerVersionsQuerySchema = compareVersionsQuerySchema;\nexport const createScorerVersionBodySchema = createVersionBodySchema;\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const scorerVersionPathParams = z.object({\n scorerId: z.string().describe('Unique identifier for the stored scorer definition'),\n});\n\nexport const scorerVersionIdPathParams = z.object({\n scorerId: z.string().describe('Unique identifier for the stored scorer definition'),\n versionId: z.string().describe('Unique identifier for the version (UUID)'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst samplingConfigSchema = z.union([\n z.object({ type: z.literal('none') }),\n z.object({ type: z.literal('ratio'), rate: z.number().min(0).max(1) }),\n]);\n\nconst scorerTypeEnum = z.enum([\n 'llm-judge',\n 'answer-relevancy',\n 'answer-similarity',\n 'bias',\n 'context-precision',\n 'context-relevance',\n 'faithfulness',\n 'hallucination',\n 'noise-sensitivity',\n 'prompt-alignment',\n 'tool-call-accuracy',\n 'toxicity',\n]);\n\nexport const scorerVersionSchema = z.object({\n id: z.string().describe('Unique identifier for the version (UUID)'),\n scorerDefinitionId: z.string().describe('ID of the scorer this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n // Snapshot config fields\n name: z.string().describe('Name of the scorer'),\n description: z.string().optional().describe('Description of the scorer'),\n type: scorerTypeEnum,\n model: modelConfigSchema.optional(),\n instructions: z.string().optional(),\n scoreRange: z\n .object({\n min: z.number().optional(),\n max: z.number().optional(),\n })\n .optional(),\n presetConfig: z.record(z.string(), z.unknown()).optional(),\n defaultSampling: samplingConfigSchema.optional(),\n // Version metadata\n changedFields: z.array(z.string()).optional().describe('Array of field names that changed from the previous version'),\n changeMessage: z.string().optional().describe('Optional message describing the changes'),\n createdAt: z.coerce.date().describe('When this version was created'),\n});\n\nexport const listScorerVersionsResponseSchema = createListVersionsResponseSchema(scorerVersionSchema);\n\nexport const getScorerVersionResponseSchema = scorerVersionSchema;\n\nexport const createScorerVersionResponseSchema = scorerVersionSchema.partial().merge(\n z.object({\n id: z.string(),\n scorerDefinitionId: z.string(),\n versionNumber: z.number(),\n createdAt: z.coerce.date(),\n }),\n);\n\nexport const activateScorerVersionResponseSchema = activateVersionResponseSchema;\n\nexport const restoreScorerVersionResponseSchema = scorerVersionSchema;\n\nexport const deleteScorerVersionResponseSchema = deleteVersionResponseSchema;\n\nexport const compareScorerVersionsResponseSchema = createCompareVersionsResponseSchema(scorerVersionSchema);\n\nexport { versionDiffEntrySchema };\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunkO4O2EJF7_cjs = require('./chunk-O4O2EJF7.cjs');
|
|
4
4
|
var chunkM56TT27J_cjs = require('./chunk-M56TT27J.cjs');
|
|
5
5
|
var chunkVX3MJR4P_cjs = require('./chunk-VX3MJR4P.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkT254JS3B_cjs = require('./chunk-T254JS3B.cjs');
|
|
7
7
|
var chunkPPNPOLWL_cjs = require('./chunk-PPNPOLWL.cjs');
|
|
8
8
|
var chunkSTZTV4FB_cjs = require('./chunk-STZTV4FB.cjs');
|
|
9
9
|
var chunkRZR7PLFW_cjs = require('./chunk-RZR7PLFW.cjs');
|
|
@@ -29,7 +29,7 @@ var FAVORITE_STORED_AGENT_ROUTE = chunkRZR7PLFW_cjs.createRoute({
|
|
|
29
29
|
method: "PUT",
|
|
30
30
|
path: "/stored/agents/:storedAgentId/favorite",
|
|
31
31
|
responseType: "json",
|
|
32
|
-
pathParamSchema:
|
|
32
|
+
pathParamSchema: chunkT254JS3B_cjs.storedAgentIdPathParams,
|
|
33
33
|
responseSchema: chunkO4O2EJF7_cjs.favoriteToggleResponseSchema,
|
|
34
34
|
summary: "Favorite a stored agent",
|
|
35
35
|
description: "Marks the stored agent as favorited by the calling user. Idempotent.",
|
|
@@ -65,7 +65,7 @@ var UNFAVORITE_STORED_AGENT_ROUTE = chunkRZR7PLFW_cjs.createRoute({
|
|
|
65
65
|
method: "DELETE",
|
|
66
66
|
path: "/stored/agents/:storedAgentId/favorite",
|
|
67
67
|
responseType: "json",
|
|
68
|
-
pathParamSchema:
|
|
68
|
+
pathParamSchema: chunkT254JS3B_cjs.storedAgentIdPathParams,
|
|
69
69
|
responseSchema: chunkO4O2EJF7_cjs.favoriteToggleResponseSchema,
|
|
70
70
|
summary: "Unfavorite a stored agent",
|
|
71
71
|
description: "Removes the caller\u2019s favorite from the stored agent. Idempotent.",
|
|
@@ -100,5 +100,5 @@ var UNFAVORITE_STORED_AGENT_ROUTE = chunkRZR7PLFW_cjs.createRoute({
|
|
|
100
100
|
|
|
101
101
|
exports.FAVORITE_STORED_AGENT_ROUTE = FAVORITE_STORED_AGENT_ROUTE;
|
|
102
102
|
exports.UNFAVORITE_STORED_AGENT_ROUTE = UNFAVORITE_STORED_AGENT_ROUTE;
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-R6HOWZFY.cjs.map
|
|
104
|
+
//# sourceMappingURL=chunk-R6HOWZFY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/stored-agent-favorites.ts"],"names":["HTTPException","createRoute","storedAgentIdPathParams","favoriteToggleResponseSchema","requireBuilderFeature","getCallerAuthorId","assertStoredResourceScope","getStoredResourceScope","assertReadAccess","handleError"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-agent-favorites.ts"],"names":["HTTPException","createRoute","storedAgentIdPathParams","favoriteToggleResponseSchema","requireBuilderFeature","getCallerAuthorId","assertStoredResourceScope","getStoredResourceScope","assertReadAccess","handleError"],"mappings":"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","file":"chunk-R6HOWZFY.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport { favoriteToggleResponseSchema } from '../schemas/favorites';\nimport { storedAgentIdPathParams } from '../schemas/stored-agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { assertReadAccess, getCallerAuthorId } from './authorship';\nimport { requireBuilderFeature } from './editor-builder';\nimport { handleError } from './error';\n\n/**\n * Resolves the storage and favorites domains, throwing 500 if unavailable.\n */\nasync function getFavoritesContext(mastra: Parameters<typeof requireBuilderFeature>[0]) {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n const agentStore = await storage.getStore('agents');\n if (!agentStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n const favoritesStore = await storage.getStore('favorites');\n if (!favoritesStore) {\n throw new HTTPException(500, { message: 'Favorites storage domain is not available' });\n }\n return { agentStore, favoritesStore };\n}\n\n/**\n * PUT /stored/agents/:storedAgentId/favorite\n */\nexport const FAVORITE_STORED_AGENT_ROUTE = createRoute({\n method: 'PUT',\n path: '/stored/agents/:storedAgentId/favorite',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: favoriteToggleResponseSchema,\n summary: 'Favorite a stored agent',\n description: 'Marks the stored agent as favorited by the calling user. Idempotent.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra, requestContext, storedAgentId }) => {\n try {\n await requireBuilderFeature(mastra, 'favorites');\n\n const callerId = getCallerAuthorId(requestContext);\n if (!callerId) {\n throw new HTTPException(401, { message: 'Authentication required' });\n }\n\n const { agentStore, favoritesStore } = await getFavoritesContext(mastra);\n\n const agent = await agentStore.getById(storedAgentId);\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n assertStoredResourceScope(agent, await getStoredResourceScope(mastra, requestContext));\n\n // Throws 404 if the caller cannot read the agent (private + not owner/admin).\n assertReadAccess({ requestContext, resource: 'stored-agents', resourceId: storedAgentId, record: agent });\n\n const result = await favoritesStore.favorite({\n userId: callerId,\n entityType: 'agent',\n entityId: storedAgentId,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error favoriting stored agent');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:storedAgentId/favorite\n */\nexport const UNFAVORITE_STORED_AGENT_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:storedAgentId/favorite',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: favoriteToggleResponseSchema,\n summary: 'Unfavorite a stored agent',\n description: 'Removes the caller’s favorite from the stored agent. Idempotent.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra, requestContext, storedAgentId }) => {\n try {\n await requireBuilderFeature(mastra, 'favorites');\n\n const callerId = getCallerAuthorId(requestContext);\n if (!callerId) {\n throw new HTTPException(401, { message: 'Authentication required' });\n }\n\n const { agentStore, favoritesStore } = await getFavoritesContext(mastra);\n\n const agent = await agentStore.getById(storedAgentId);\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n assertStoredResourceScope(agent, await getStoredResourceScope(mastra, requestContext));\n\n assertReadAccess({ requestContext, resource: 'stored-agents', resourceId: storedAgentId, record: agent });\n\n const result = await favoritesStore.unfavorite({\n userId: callerId,\n entityType: 'agent',\n entityId: storedAgentId,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error unfavoriting stored agent');\n }\n },\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { listStoredScorersResponseSchema, listStoredScorersQuerySchema, getStoredScorerResponseSchema, storedScorerIdPathParams, createStoredScorerResponseSchema, createStoredScorerBodySchema, updateStoredScorerResponseSchema, updateStoredScorerBodySchema, deleteStoredScorerResponseSchema } from './chunk-
|
|
1
|
+
import { listStoredScorersResponseSchema, listStoredScorersQuerySchema, getStoredScorerResponseSchema, storedScorerIdPathParams, createStoredScorerResponseSchema, createStoredScorerBodySchema, updateStoredScorerResponseSchema, updateStoredScorerBodySchema, deleteStoredScorerResponseSchema } from './chunk-PJI3MJPX.js';
|
|
2
2
|
import { handleAutoVersioning } from './chunk-33QPJPK4.js';
|
|
3
3
|
import { getStoredResourceScope, scopeStoredResourceMetadata, assertStoredResourceScope, toSlug } from './chunk-PLV74XAL.js';
|
|
4
4
|
import { statusQuerySchema } from './chunk-2YY3EMMS.js';
|
|
@@ -279,5 +279,5 @@ var DELETE_STORED_SCORER_ROUTE = createRoute({
|
|
|
279
279
|
});
|
|
280
280
|
|
|
281
281
|
export { CREATE_STORED_SCORER_ROUTE, DELETE_STORED_SCORER_ROUTE, GET_STORED_SCORER_ROUTE, LIST_STORED_SCORERS_ROUTE, UPDATE_STORED_SCORER_ROUTE };
|
|
282
|
-
//# sourceMappingURL=chunk-
|
|
283
|
-
//# sourceMappingURL=chunk-
|
|
282
|
+
//# sourceMappingURL=chunk-R6SXN4ZF.js.map
|
|
283
|
+
//# sourceMappingURL=chunk-R6SXN4ZF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":[],"mappings":"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","file":"chunk-OJ2LSGSK.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":[],"mappings":"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","file":"chunk-R6SXN4ZF.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunk42WZN6MM_cjs = require('./chunk-42WZN6MM.cjs');
|
|
4
4
|
var chunkF3HP5HM6_cjs = require('./chunk-F3HP5HM6.cjs');
|
|
5
5
|
var chunkKE4V4LJE_cjs = require('./chunk-KE4V4LJE.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunk67X7UIDG_cjs = require('./chunk-67X7UIDG.cjs');
|
|
7
7
|
var chunk4BLUIUHS_cjs = require('./chunk-4BLUIUHS.cjs');
|
|
8
8
|
var chunkSTZTV4FB_cjs = require('./chunk-STZTV4FB.cjs');
|
|
9
9
|
var chunkRZR7PLFW_cjs = require('./chunk-RZR7PLFW.cjs');
|
|
@@ -167,7 +167,7 @@ async function resolveResponseAgent({
|
|
|
167
167
|
if (!mastra) {
|
|
168
168
|
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance is required for agent-backed responses" });
|
|
169
169
|
}
|
|
170
|
-
return
|
|
170
|
+
return chunk67X7UIDG_cjs.getAgentFromSystem({ mastra, agentId });
|
|
171
171
|
}
|
|
172
172
|
async function resolveAgentMemoryStore({
|
|
173
173
|
agent,
|
|
@@ -760,5 +760,5 @@ exports.CREATE_RESPONSE_ROUTE = CREATE_RESPONSE_ROUTE;
|
|
|
760
760
|
exports.DELETE_RESPONSE_ROUTE = DELETE_RESPONSE_ROUTE;
|
|
761
761
|
exports.GET_RESPONSE_ROUTE = GET_RESPONSE_ROUTE;
|
|
762
762
|
exports.responses_exports = responses_exports;
|
|
763
|
-
//# sourceMappingURL=chunk-
|
|
764
|
-
//# sourceMappingURL=chunk-
|
|
763
|
+
//# sourceMappingURL=chunk-RZ5J47R2.cjs.map
|
|
764
|
+
//# sourceMappingURL=chunk-RZ5J47R2.cjs.map
|