@mastra/server 1.37.0-alpha.3 → 1.37.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 +62 -0
- package/dist/{api-schema-manifest-NM2WQ53L.js → api-schema-manifest-KTESE5SY.js} +3 -3
- package/dist/{api-schema-manifest-NM2WQ53L.js.map → api-schema-manifest-KTESE5SY.js.map} +1 -1
- package/dist/{api-schema-manifest-TNWGWAXQ.cjs → api-schema-manifest-MFGYEQIV.cjs} +4 -4
- package/dist/{api-schema-manifest-TNWGWAXQ.cjs.map → api-schema-manifest-MFGYEQIV.cjs.map} +1 -1
- package/dist/{chunk-L3WLRWTC.js → chunk-2UY3FPF4.js} +4 -4
- package/dist/{chunk-L3WLRWTC.js.map → chunk-2UY3FPF4.js.map} +1 -1
- package/dist/{chunk-73YOKCNV.cjs → chunk-3CTGERGO.cjs} +25 -25
- package/dist/{chunk-73YOKCNV.cjs.map → chunk-3CTGERGO.cjs.map} +1 -1
- package/dist/{chunk-R4XNJVIP.js → chunk-3DCET5MM.js} +3 -3
- package/dist/{chunk-R4XNJVIP.js.map → chunk-3DCET5MM.js.map} +1 -1
- package/dist/{chunk-GAGC4WDU.js → chunk-3E2YDRGM.js} +3 -3
- package/dist/{chunk-GAGC4WDU.js.map → chunk-3E2YDRGM.js.map} +1 -1
- package/dist/{chunk-M4JYLRAA.cjs → chunk-3YTCY7WE.cjs} +6 -5
- package/dist/chunk-3YTCY7WE.cjs.map +1 -0
- package/dist/{chunk-M4B42JGO.cjs → chunk-4C5RVGHE.cjs} +4 -3
- package/dist/chunk-4C5RVGHE.cjs.map +1 -0
- package/dist/{chunk-6YMLNFG2.cjs → chunk-5IFBLVEC.cjs} +7 -7
- package/dist/{chunk-6YMLNFG2.cjs.map → chunk-5IFBLVEC.cjs.map} +1 -1
- package/dist/{chunk-S3XJYKSQ.cjs → chunk-5MVCPRNN.cjs} +206 -206
- package/dist/{chunk-S3XJYKSQ.cjs.map → chunk-5MVCPRNN.cjs.map} +1 -1
- package/dist/{chunk-YWQLHSBA.js → chunk-5V23VBXY.js} +4 -4
- package/dist/{chunk-YWQLHSBA.js.map → chunk-5V23VBXY.js.map} +1 -1
- package/dist/{chunk-ONCDLJUQ.js → chunk-64QFFUEH.js} +4 -3
- package/dist/chunk-64QFFUEH.js.map +1 -0
- package/dist/{chunk-P22PC432.cjs → chunk-657QZ5WB.cjs} +4 -4
- package/dist/{chunk-P22PC432.cjs.map → chunk-657QZ5WB.cjs.map} +1 -1
- package/dist/{chunk-ZWS4G4X6.js → chunk-6DRUPMRB.js} +29 -29
- package/dist/{chunk-ZWS4G4X6.js.map → chunk-6DRUPMRB.js.map} +1 -1
- package/dist/{chunk-DI5S2DY6.js → chunk-6NT2SU7C.js} +3 -3
- package/dist/{chunk-DI5S2DY6.js.map → chunk-6NT2SU7C.js.map} +1 -1
- package/dist/{chunk-5WDXHJRW.js → chunk-6TGZ5HKB.js} +4 -4
- package/dist/{chunk-5WDXHJRW.js.map → chunk-6TGZ5HKB.js.map} +1 -1
- package/dist/{chunk-BQBKRPLD.cjs → chunk-6YZXND7F.cjs} +4 -4
- package/dist/{chunk-BQBKRPLD.cjs.map → chunk-6YZXND7F.cjs.map} +1 -1
- package/dist/{chunk-WEF5ZJPT.js → chunk-7OF3BYMK.js} +37 -15
- package/dist/chunk-7OF3BYMK.js.map +1 -0
- package/dist/{chunk-7D64XJKD.js → chunk-7U6AIMUK.js} +4 -4
- package/dist/{chunk-7D64XJKD.js.map → chunk-7U6AIMUK.js.map} +1 -1
- package/dist/{chunk-5MXFNG6G.cjs → chunk-A5QR7JSC.cjs} +6 -129
- package/dist/chunk-A5QR7JSC.cjs.map +1 -0
- package/dist/{chunk-SM4DXPYS.js → chunk-ALVG2BWA.js} +4 -4
- package/dist/{chunk-SM4DXPYS.js.map → chunk-ALVG2BWA.js.map} +1 -1
- package/dist/{chunk-CZKSSCON.cjs → chunk-B77CX7JG.cjs} +5 -5
- package/dist/{chunk-CZKSSCON.cjs.map → chunk-B77CX7JG.cjs.map} +1 -1
- package/dist/{chunk-E4IH2WQA.cjs → chunk-BJZMTXJE.cjs} +20 -20
- package/dist/{chunk-E4IH2WQA.cjs.map → chunk-BJZMTXJE.cjs.map} +1 -1
- package/dist/{chunk-ESFQUKV6.cjs → chunk-BNJRJ46P.cjs} +5 -5
- package/dist/{chunk-ESFQUKV6.cjs.map → chunk-BNJRJ46P.cjs.map} +1 -1
- package/dist/{chunk-N6RQC4Z3.cjs → chunk-C3E5C74L.cjs} +4 -4
- package/dist/{chunk-N6RQC4Z3.cjs.map → chunk-C3E5C74L.cjs.map} +1 -1
- package/dist/{chunk-FS75MKSS.cjs → chunk-EAP7DSYC.cjs} +7 -7
- package/dist/{chunk-FS75MKSS.cjs.map → chunk-EAP7DSYC.cjs.map} +1 -1
- package/dist/{chunk-PX5OSGHM.cjs → chunk-EGWQ36XF.cjs} +3 -3
- package/dist/{chunk-PX5OSGHM.cjs.map → chunk-EGWQ36XF.cjs.map} +1 -1
- package/dist/{chunk-PWGPLCL4.cjs → chunk-HAT56AXO.cjs} +5 -5
- package/dist/{chunk-PWGPLCL4.cjs.map → chunk-HAT56AXO.cjs.map} +1 -1
- package/dist/{chunk-CISVP6ZD.cjs → chunk-HROPIP5L.cjs} +3 -3
- package/dist/{chunk-CISVP6ZD.cjs.map → chunk-HROPIP5L.cjs.map} +1 -1
- package/dist/{chunk-5PDA7RRM.js → chunk-HYFH65KC.js} +3 -126
- package/dist/chunk-HYFH65KC.js.map +1 -0
- package/dist/{chunk-LIJBEWEH.cjs → chunk-IMSULK5V.cjs} +44 -19
- package/dist/chunk-IMSULK5V.cjs.map +1 -0
- package/dist/{chunk-37KOYJD5.js → chunk-JA7S4TJR.js} +3 -3
- package/dist/{chunk-37KOYJD5.js.map → chunk-JA7S4TJR.js.map} +1 -1
- package/dist/{chunk-HXGOUFHN.cjs → chunk-JI66GIIH.cjs} +4 -4
- package/dist/{chunk-HXGOUFHN.cjs.map → chunk-JI66GIIH.cjs.map} +1 -1
- package/dist/{chunk-5OQUKO6N.js → chunk-KJBLUTJT.js} +4 -4
- package/dist/{chunk-5OQUKO6N.js.map → chunk-KJBLUTJT.js.map} +1 -1
- package/dist/{chunk-HRNTWI5X.cjs → chunk-KJOPPFC3.cjs} +6 -6
- package/dist/{chunk-HRNTWI5X.cjs.map → chunk-KJOPPFC3.cjs.map} +1 -1
- package/dist/{chunk-FZMNN47O.js → chunk-KKV6GEXL.js} +7 -7
- package/dist/{chunk-FZMNN47O.js.map → chunk-KKV6GEXL.js.map} +1 -1
- package/dist/{chunk-PCZVV6RI.js → chunk-KP6VDSWV.js} +3 -3
- package/dist/{chunk-PCZVV6RI.js.map → chunk-KP6VDSWV.js.map} +1 -1
- package/dist/{chunk-RDCU5EQX.js → chunk-LH37RF5J.js} +5 -5
- package/dist/{chunk-RDCU5EQX.js.map → chunk-LH37RF5J.js.map} +1 -1
- package/dist/{chunk-U7TQO3K5.cjs → chunk-LIF23NO7.cjs} +15 -15
- package/dist/{chunk-U7TQO3K5.cjs.map → chunk-LIF23NO7.cjs.map} +1 -1
- package/dist/{chunk-6HOTBZ3K.js → chunk-LLZOPVQQ.js} +3 -3
- package/dist/{chunk-6HOTBZ3K.js.map → chunk-LLZOPVQQ.js.map} +1 -1
- package/dist/{chunk-X6UKAJS5.js → chunk-LZGMFVYK.js} +4 -4
- package/dist/{chunk-X6UKAJS5.js.map → chunk-LZGMFVYK.js.map} +1 -1
- package/dist/{chunk-LB4GA4FY.cjs → chunk-NE7ZXK3A.cjs} +3 -3
- package/dist/{chunk-LB4GA4FY.cjs.map → chunk-NE7ZXK3A.cjs.map} +1 -1
- package/dist/{chunk-QJCTV56D.cjs → chunk-NPMVIREN.cjs} +3 -3
- package/dist/{chunk-QJCTV56D.cjs.map → chunk-NPMVIREN.cjs.map} +1 -1
- package/dist/{chunk-YRE5T3D6.cjs → chunk-OK7MHH2H.cjs} +20 -20
- package/dist/{chunk-YRE5T3D6.cjs.map → chunk-OK7MHH2H.cjs.map} +1 -1
- package/dist/{chunk-LENHUKA3.js → chunk-ONV6636S.js} +5 -5
- package/dist/{chunk-LENHUKA3.js.map → chunk-ONV6636S.js.map} +1 -1
- package/dist/{chunk-LH5Y7AJF.js → chunk-PN3LDOLZ.js} +3 -3
- package/dist/{chunk-LH5Y7AJF.js.map → chunk-PN3LDOLZ.js.map} +1 -1
- package/dist/{chunk-KHEQHKTJ.js → chunk-PVFTLKPE.js} +33 -8
- package/dist/chunk-PVFTLKPE.js.map +1 -0
- package/dist/{chunk-BBTJ7JA4.js → chunk-Q6WLMJKD.js} +5 -5
- package/dist/{chunk-BBTJ7JA4.js.map → chunk-Q6WLMJKD.js.map} +1 -1
- package/dist/{chunk-Y5ETJ6HT.cjs → chunk-QE6IBHGB.cjs} +16 -16
- package/dist/{chunk-Y5ETJ6HT.cjs.map → chunk-QE6IBHGB.cjs.map} +1 -1
- package/dist/{chunk-SJJAW4RY.js → chunk-QHMBG6UG.js} +5 -4
- package/dist/chunk-QHMBG6UG.js.map +1 -0
- package/dist/{chunk-EXWRHE4M.js → chunk-QUNI7GBZ.js} +4 -4
- package/dist/{chunk-EXWRHE4M.js.map → chunk-QUNI7GBZ.js.map} +1 -1
- package/dist/{chunk-LTRLD33R.cjs → chunk-QWT4ON3B.cjs} +4 -4
- package/dist/{chunk-LTRLD33R.cjs.map → chunk-QWT4ON3B.cjs.map} +1 -1
- package/dist/{chunk-LPFE6YTG.js → chunk-R6CMAAEQ.js} +3 -3
- package/dist/{chunk-LPFE6YTG.js.map → chunk-R6CMAAEQ.js.map} +1 -1
- package/dist/{chunk-PVN4T77C.cjs → chunk-RCNWUOF5.cjs} +5 -5
- package/dist/{chunk-PVN4T77C.cjs.map → chunk-RCNWUOF5.cjs.map} +1 -1
- package/dist/{chunk-F2XPOHWS.cjs → chunk-ROQSVLXR.cjs} +7 -7
- package/dist/{chunk-F2XPOHWS.cjs.map → chunk-ROQSVLXR.cjs.map} +1 -1
- package/dist/{chunk-2IYQOU7P.cjs → chunk-RVGOGUYD.cjs} +3 -3
- package/dist/{chunk-2IYQOU7P.cjs.map → chunk-RVGOGUYD.cjs.map} +1 -1
- package/dist/{chunk-IFGQCW7S.js → chunk-SDBKZFT7.js} +4 -4
- package/dist/{chunk-IFGQCW7S.js.map → chunk-SDBKZFT7.js.map} +1 -1
- package/dist/{chunk-7RNQJXJP.js → chunk-SIUARBQF.js} +4 -4
- package/dist/{chunk-7RNQJXJP.js.map → chunk-SIUARBQF.js.map} +1 -1
- package/dist/chunk-T5H4CFHL.js +128 -0
- package/dist/chunk-T5H4CFHL.js.map +1 -0
- package/dist/{chunk-TG7Q2VG6.cjs → chunk-U5XQEER6.cjs} +10 -10
- package/dist/{chunk-TG7Q2VG6.cjs.map → chunk-U5XQEER6.cjs.map} +1 -1
- package/dist/{chunk-BHDMAOFA.js → chunk-VBT3NKFU.js} +3 -3
- package/dist/{chunk-BHDMAOFA.js.map → chunk-VBT3NKFU.js.map} +1 -1
- package/dist/{chunk-HJOM5RVI.js → chunk-VPFGRS36.js} +4 -4
- package/dist/{chunk-HJOM5RVI.js.map → chunk-VPFGRS36.js.map} +1 -1
- package/dist/chunk-VXZSBZGD.cjs +139 -0
- package/dist/chunk-VXZSBZGD.cjs.map +1 -0
- package/dist/{chunk-XCJ6SARN.cjs → chunk-WAUPRDKG.cjs} +37 -15
- package/dist/chunk-WAUPRDKG.cjs.map +1 -0
- package/dist/{chunk-D774EZRN.cjs → chunk-WQMMOPJQ.cjs} +16 -16
- package/dist/{chunk-D774EZRN.cjs.map → chunk-WQMMOPJQ.cjs.map} +1 -1
- package/dist/{chunk-PECE2GUW.js → chunk-WWTQZG4W.js} +3 -3
- package/dist/{chunk-PECE2GUW.js.map → chunk-WWTQZG4W.js.map} +1 -1
- package/dist/{chunk-PB6X5Q6F.cjs → chunk-XDX37F6P.cjs} +8 -8
- package/dist/{chunk-PB6X5Q6F.cjs.map → chunk-XDX37F6P.cjs.map} +1 -1
- package/dist/{chunk-IZKPIRSU.cjs → chunk-XETDRAF5.cjs} +3 -3
- package/dist/{chunk-IZKPIRSU.cjs.map → chunk-XETDRAF5.cjs.map} +1 -1
- package/dist/{chunk-DP2D6LEW.cjs → chunk-XIKIYQZC.cjs} +4 -4
- package/dist/{chunk-DP2D6LEW.cjs.map → chunk-XIKIYQZC.cjs.map} +1 -1
- package/dist/{chunk-CGB327L6.js → chunk-YUTVYY3X.js} +3 -3
- package/dist/{chunk-CGB327L6.js.map → chunk-YUTVYY3X.js.map} +1 -1
- package/dist/{chunk-YAXPLU7U.js → chunk-Z4RLKK4C.js} +4 -4
- package/dist/{chunk-YAXPLU7U.js.map → chunk-Z4RLKK4C.js.map} +1 -1
- package/dist/{chunk-VDEHE4SS.js → chunk-ZITE7JQB.js} +3 -3
- package/dist/{chunk-VDEHE4SS.js.map → chunk-ZITE7JQB.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-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.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 +41 -41
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +12 -12
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/channels.cjs +5 -5
- package/dist/server/handlers/channels.d.ts.map +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/datasets.cjs +26 -26
- package/dist/server/handlers/datasets.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +5 -5
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +3 -3
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +8 -8
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +8 -8
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/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.js +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
- package/dist/server/handlers/stored-mcp-clients.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- package/dist/server/handlers/stored-prompt-blocks.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.d.ts +0 -2
- package/dist/server/handlers/stored-workspaces.d.ts.map +1 -1
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +26 -26
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +25 -25
- package/dist/server/handlers.js +11 -11
- package/dist/server/schemas/index.cjs +457 -416
- package/dist/server/schemas/index.d.ts +1 -0
- package/dist/server/schemas/index.d.ts.map +1 -1
- package/dist/server/schemas/index.js +10 -9
- package/dist/server/schemas/stored-workspaces.d.ts +0 -1
- package/dist/server/schemas/stored-workspaces.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/stored-workspaces.d.ts +0 -2
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-5MXFNG6G.cjs.map +0 -1
- package/dist/chunk-5PDA7RRM.js.map +0 -1
- package/dist/chunk-KHEQHKTJ.js.map +0 -1
- package/dist/chunk-LIJBEWEH.cjs.map +0 -1
- package/dist/chunk-M4B42JGO.cjs.map +0 -1
- package/dist/chunk-M4JYLRAA.cjs.map +0 -1
- package/dist/chunk-ONCDLJUQ.js.map +0 -1
- package/dist/chunk-SJJAW4RY.js.map +0 -1
- package/dist/chunk-WEF5ZJPT.js.map +0 -1
- package/dist/chunk-XCJ6SARN.cjs.map +0 -1
|
@@ -1,132 +1,9 @@
|
|
|
1
|
+
import { builderSettingsResponseSchema, infrastructureStatusResponseSchema, agentFeaturesSchema } from './chunk-T5H4CFHL.js';
|
|
1
2
|
import { handleError } from './chunk-GA4BG5JK.js';
|
|
2
3
|
import { createRoute } from './chunk-G6NTGBOW.js';
|
|
3
4
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
4
5
|
import { resolvePickerVisibility, builderToModelPolicy } from '@mastra/core/agent-builder/ee';
|
|
5
|
-
import { z } from 'zod/v4';
|
|
6
6
|
|
|
7
|
-
var agentFeaturesSchema = z.object({
|
|
8
|
-
tools: z.boolean().optional(),
|
|
9
|
-
agents: z.boolean().optional(),
|
|
10
|
-
workflows: z.boolean().optional(),
|
|
11
|
-
scorers: z.boolean().optional(),
|
|
12
|
-
skills: z.boolean().optional(),
|
|
13
|
-
memory: z.boolean().optional(),
|
|
14
|
-
variables: z.boolean().optional(),
|
|
15
|
-
favorites: z.boolean().optional(),
|
|
16
|
-
avatarUpload: z.boolean().optional(),
|
|
17
|
-
browser: z.boolean().optional(),
|
|
18
|
-
/**
|
|
19
|
-
* Whether the model picker is visible in the Agent Builder.
|
|
20
|
-
* Omitted ⇒ picker visible (default-on). Explicit `false` ⇒ picker hidden
|
|
21
|
-
* (locked mode); `models.default` is required and applied.
|
|
22
|
-
*/
|
|
23
|
-
model: z.boolean().optional()
|
|
24
|
-
});
|
|
25
|
-
var knownProviderEntrySchema = z.object({
|
|
26
|
-
provider: z.string().min(1),
|
|
27
|
-
modelId: z.string().min(1).optional()
|
|
28
|
-
}).strict();
|
|
29
|
-
var customProviderEntrySchema = z.object({
|
|
30
|
-
kind: z.literal("custom"),
|
|
31
|
-
provider: z.string().min(1),
|
|
32
|
-
modelId: z.string().min(1).optional()
|
|
33
|
-
}).strict();
|
|
34
|
-
var knownDefaultModelEntrySchema = z.object({
|
|
35
|
-
provider: z.string().min(1),
|
|
36
|
-
modelId: z.string().min(1)
|
|
37
|
-
}).strict();
|
|
38
|
-
var customDefaultModelEntrySchema = z.object({
|
|
39
|
-
kind: z.literal("custom"),
|
|
40
|
-
provider: z.string().min(1),
|
|
41
|
-
modelId: z.string().min(1)
|
|
42
|
-
}).strict();
|
|
43
|
-
var providerModelEntrySchema = z.union([customProviderEntrySchema, knownProviderEntrySchema]);
|
|
44
|
-
var defaultModelEntrySchema = z.union([customDefaultModelEntrySchema, knownDefaultModelEntrySchema]);
|
|
45
|
-
var agentModelsSchema = z.object({
|
|
46
|
-
allowed: z.array(providerModelEntrySchema).optional(),
|
|
47
|
-
default: defaultModelEntrySchema.optional()
|
|
48
|
-
});
|
|
49
|
-
var pickerAllowlistSchema = z.object({
|
|
50
|
-
allowed: z.array(z.string()).optional()
|
|
51
|
-
}).strict();
|
|
52
|
-
var agentConfigurationSchema = z.object({
|
|
53
|
-
models: agentModelsSchema.optional(),
|
|
54
|
-
tools: pickerAllowlistSchema.optional(),
|
|
55
|
-
agents: pickerAllowlistSchema.optional(),
|
|
56
|
-
workflows: pickerAllowlistSchema.optional()
|
|
57
|
-
}).catchall(z.unknown());
|
|
58
|
-
var builderPickerSchema = z.object({
|
|
59
|
-
visibleTools: z.array(z.string()).nullable(),
|
|
60
|
-
visibleAgents: z.array(z.string()).nullable(),
|
|
61
|
-
visibleWorkflows: z.array(z.string()).nullable()
|
|
62
|
-
});
|
|
63
|
-
var builderModelPolicySchema = z.object({
|
|
64
|
-
active: z.boolean(),
|
|
65
|
-
pickerVisible: z.boolean().optional(),
|
|
66
|
-
allowed: z.array(providerModelEntrySchema).optional(),
|
|
67
|
-
default: defaultModelEntrySchema.optional()
|
|
68
|
-
});
|
|
69
|
-
var builderSettingsResponseSchema = z.object({
|
|
70
|
-
enabled: z.boolean(),
|
|
71
|
-
features: z.object({
|
|
72
|
-
agent: agentFeaturesSchema.optional()
|
|
73
|
-
}).optional(),
|
|
74
|
-
configuration: z.object({
|
|
75
|
-
agent: agentConfigurationSchema.optional()
|
|
76
|
-
}).optional(),
|
|
77
|
-
modelPolicy: builderModelPolicySchema.optional(),
|
|
78
|
-
/**
|
|
79
|
-
* Resolved picker visibility for tools/agents/workflows. Always present when
|
|
80
|
-
* the builder is enabled. Omitted when the builder is disabled.
|
|
81
|
-
*/
|
|
82
|
-
picker: builderPickerSchema.optional(),
|
|
83
|
-
/**
|
|
84
|
-
* Non-fatal warnings produced by `EditorAgentBuilder`'s constructor-time
|
|
85
|
-
* validation (e.g. allowlist entries with unknown provider strings, or
|
|
86
|
-
* picker allowlist entries that don't match a registered ID). UI surfaces
|
|
87
|
-
* these as a banner in the Builder admin view.
|
|
88
|
-
*/
|
|
89
|
-
modelPolicyWarnings: z.array(z.string()).optional()
|
|
90
|
-
});
|
|
91
|
-
var infrastructureStatusResponseSchema = z.object({
|
|
92
|
-
channels: z.object({
|
|
93
|
-
providers: z.array(
|
|
94
|
-
z.object({
|
|
95
|
-
id: z.string(),
|
|
96
|
-
name: z.string(),
|
|
97
|
-
isConfigured: z.boolean(),
|
|
98
|
-
routeCount: z.number()
|
|
99
|
-
})
|
|
100
|
-
)
|
|
101
|
-
}),
|
|
102
|
-
browser: z.object({
|
|
103
|
-
type: z.string().nullable(),
|
|
104
|
-
provider: z.string().nullable(),
|
|
105
|
-
env: z.string().nullable(),
|
|
106
|
-
registered: z.boolean(),
|
|
107
|
-
availableProviders: z.array(z.string()),
|
|
108
|
-
config: z.array(z.object({ key: z.string(), value: z.string() }))
|
|
109
|
-
}),
|
|
110
|
-
workspace: z.object({
|
|
111
|
-
type: z.string().nullable(),
|
|
112
|
-
workspaceId: z.string().nullable(),
|
|
113
|
-
name: z.string().nullable(),
|
|
114
|
-
source: z.string().nullable(),
|
|
115
|
-
registered: z.boolean(),
|
|
116
|
-
hasFilesystem: z.boolean(),
|
|
117
|
-
hasSandbox: z.boolean(),
|
|
118
|
-
filesystemProvider: z.string().nullable(),
|
|
119
|
-
sandboxProvider: z.string().nullable(),
|
|
120
|
-
config: z.array(z.object({ key: z.string(), value: z.string() }))
|
|
121
|
-
}),
|
|
122
|
-
registries: z.object({
|
|
123
|
-
skillsSh: z.object({
|
|
124
|
-
enabled: z.boolean()
|
|
125
|
-
})
|
|
126
|
-
})
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// src/server/handlers/editor-builder.ts
|
|
130
7
|
async function resolveBuilderFeatures(mastra) {
|
|
131
8
|
const editor = mastra.getEditor();
|
|
132
9
|
if (!editor || typeof editor.resolveBuilder !== "function") return null;
|
|
@@ -347,5 +224,5 @@ var GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({
|
|
|
347
224
|
});
|
|
348
225
|
|
|
349
226
|
export { GET_EDITOR_BUILDER_SETTINGS_ROUTE, GET_INFRASTRUCTURE_STATUS_ROUTE, isBuilderFeatureEnabled, requireBuilderFeature };
|
|
350
|
-
//# sourceMappingURL=chunk-
|
|
351
|
-
//# sourceMappingURL=chunk-
|
|
227
|
+
//# sourceMappingURL=chunk-HYFH65KC.js.map
|
|
228
|
+
//# sourceMappingURL=chunk-HYFH65KC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/editor-builder.ts"],"names":[],"mappings":"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","file":"chunk-HYFH65KC.js","sourcesContent":["import type { Mastra } from '@mastra/core';\n\nimport { builderToModelPolicy, resolvePickerVisibility } from '@mastra/core/agent-builder/ee';\nimport { HTTPException } from '../http-exception';\nimport {\n agentFeaturesSchema,\n builderSettingsResponseSchema,\n infrastructureStatusResponseSchema,\n} from '../schemas/editor-builder';\nimport type { AgentFeatures, InfrastructureStatus } from '../schemas/editor-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\n/**\n * Resolve the active builder feature flags. Returns `null` when the editor is\n * absent, the builder is disabled, or no features are configured.\n */\nasync function resolveBuilderFeatures(mastra: Mastra): Promise<AgentFeatures | null> {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveBuilder !== 'function') return null;\n if (!editor.hasEnabledBuilderConfig?.()) return null;\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) return null;\n const features = builder.getFeatures?.()?.agent;\n if (!features) return null;\n // Validate the shape so unknown keys cannot smuggle through.\n const parsed = agentFeaturesSchema.safeParse(features);\n return parsed.success ? parsed.data : null;\n}\n\n/**\n * Returns whether a given agent-builder feature is enabled. Used by list /\n * get-by-id handlers to soft-gate response enrichment (omit fields, ignore\n * favoritedOnly / pinFavoritedFor params) when the feature is off.\n */\nexport async function isBuilderFeatureEnabled(mastra: Mastra, feature: keyof AgentFeatures): Promise<boolean> {\n const features = await resolveBuilderFeatures(mastra);\n return features?.[feature] === true;\n}\n\n/**\n * Hard-gate helper for mutation routes that must not exist when the feature\n * is off. Throws `HTTPException(404)` so we don't leak the existence of the\n * feature surface (matches behavior of unregistered routes).\n */\nexport async function requireBuilderFeature(mastra: Mastra, feature: keyof AgentFeatures): Promise<void> {\n if (!(await isBuilderFeatureEnabled(mastra, feature))) {\n throw new HTTPException(404, { message: 'Not Found' });\n }\n}\n\n/**\n * GET /editor/builder/settings\n *\n * Returns the agent builder settings configured by the admin.\n * Used by frontend to determine which features to display.\n */\nexport const GET_EDITOR_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/settings',\n responseType: 'json',\n responseSchema: builderSettingsResponseSchema,\n summary: 'Get agent builder settings',\n description: 'Returns the agent builder feature flags and configuration for UI gating',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n // No editor configured\n if (!editor) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Editor doesn't support builder (older version or OSS)\n if (typeof editor.resolveBuilder !== 'function') {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Check if builder is enabled in config\n if (!editor.hasEnabledBuilderConfig?.()) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Resolve the builder instance\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n const baseWarnings = builder.getModelPolicyWarnings?.() ?? [];\n const configuration = builder.getConfiguration();\n\n // Picker allowlists are written against entity `.id` (what users see in\n // the UI, URLs, traces). The client filters list responses by their\n // response keys, which are not always `.id`:\n // - GET /agents keys by `agent.id`\n // - GET /tools keys by registration key (values include `id`)\n // - GET /workflows keys by registration key (values omit `id`)\n // To keep the client filter simple, we accept `.id` (fallback to\n // registration key) for matching, but emit visible IDs as response keys\n // so `Object.keys(data)` lines up.\n type AliasPair = { id: string; key: string };\n const collectAliases = (registry: Record<string, unknown>): AliasPair[] =>\n Object.entries(registry).map(([key, entity]) => ({\n id: (entity as { id?: string }).id || key,\n key,\n }));\n\n const toolAliases = collectAliases(mastra.listTools() ?? {});\n const agentAliases = collectAliases(mastra.listAgents() ?? {});\n const workflowAliases = collectAliases(mastra.listWorkflows() ?? {});\n\n // Tools/workflows responses are keyed by registration key. Agents\n // response is keyed by `.id`.\n const toResponseKey = (aliases: AliasPair[], byId: 'id' | 'key') => {\n const map = new Map<string, string>();\n for (const a of aliases) {\n map.set(a.id, byId === 'id' ? a.id : a.key);\n map.set(a.key, byId === 'id' ? a.id : a.key);\n }\n return map;\n };\n const toolKeyMap = toResponseKey(toolAliases, 'key');\n const agentKeyMap = toResponseKey(agentAliases, 'id');\n const workflowKeyMap = toResponseKey(workflowAliases, 'key');\n\n const picker = resolvePickerVisibility({\n config: configuration?.agent,\n registeredToolIds: toolAliases.flatMap(a => [a.id, a.key]),\n registeredAgentIds: agentAliases.flatMap(a => [a.id, a.key]),\n registeredWorkflowIds: workflowAliases.flatMap(a => [a.id, a.key]),\n });\n\n const normalize = (visible: string[] | null, map: Map<string, string>): string[] | null => {\n if (visible === null) return null;\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of visible) {\n const mapped = map.get(id);\n if (mapped && !seen.has(mapped)) {\n seen.add(mapped);\n out.push(mapped);\n }\n }\n return out;\n };\n\n const modelPolicyWarnings = [...baseWarnings, ...picker.warnings];\n\n return {\n enabled: true,\n features: builder.getFeatures(),\n configuration,\n modelPolicy: builderToModelPolicy(builder),\n picker: {\n visibleTools: normalize(picker.visibleTools, toolKeyMap),\n visibleAgents: normalize(picker.visibleAgents, agentKeyMap),\n visibleWorkflows: normalize(picker.visibleWorkflows, workflowKeyMap),\n },\n ...(modelPolicyWarnings.length > 0 ? { modelPolicyWarnings } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error getting builder settings');\n }\n },\n});\n\n/**\n * GET /editor/builder/infrastructure\n *\n * Returns the runtime status of Mastra-opinionated primitives (channels,\n * browser providers, workspaces). Admin-only; surfaced in Studio Settings so\n * admins can sanity-check what's wired up to the running server.\n */\nexport const GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/infrastructure',\n responseType: 'json',\n responseSchema: infrastructureStatusResponseSchema,\n summary: 'Get infrastructure status',\n description: 'Agent Builder infrastructure configuration and lightweight runtime status.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'infrastructure:read',\n handler: async ({ mastra }) => {\n try {\n const formatConfigValue = (value: unknown): string => {\n if (value === null || value === undefined) return 'not set';\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) return `${value.length} item${value.length === 1 ? '' : 's'}`;\n return value.constructor?.name && value.constructor.name !== 'Object' ? value.constructor.name : 'configured';\n };\n\n const getProviderName = (value: unknown): string | null => {\n if (!value) return null;\n if (typeof value === 'object' && 'provider' in value && typeof value.provider === 'string')\n return value.provider;\n if (typeof value === 'object' && 'constructor' in value) {\n const name = (value as { constructor?: { name?: string } }).constructor?.name;\n return name && name !== 'Object' ? name : 'configured';\n }\n return null;\n };\n\n const getConfigEntries = (config: Record<string, unknown>, omittedKeys: string[] = []) =>\n Object.entries(config)\n .filter(([key, value]) => !omittedKeys.includes(key) && value !== undefined && value !== null)\n .map(([key, value]) => ({ key, value: formatConfigValue(value) }));\n\n const channelProviders = mastra.getChannelProviders() ?? {};\n const channels: InfrastructureStatus['channels'] = {\n providers: Object.entries(channelProviders)\n .map(([id, provider]) => {\n const info = provider.getInfo?.();\n const routes = provider.getRoutes?.() ?? [];\n return {\n id: info?.id ?? id,\n name: info?.name ?? id,\n isConfigured: info?.isConfigured ?? false,\n routeCount: routes.length,\n };\n })\n .filter(provider => provider.isConfigured),\n };\n\n const editor = mastra.getEditor();\n let browser: InfrastructureStatus['browser'] = {\n type: null,\n provider: null,\n env: null,\n registered: false,\n availableProviders: [],\n config: [],\n };\n let workspace: InfrastructureStatus['workspace'] = {\n type: null,\n workspaceId: null,\n name: null,\n source: null,\n registered: false,\n hasFilesystem: false,\n hasSandbox: false,\n filesystemProvider: null,\n sandboxProvider: null,\n config: [],\n };\n let registries: InfrastructureStatus['registries'] = {\n skillsSh: { enabled: false },\n };\n\n if (editor?.resolveBuilder) {\n const browsers = (editor as unknown as { __browsers?: Map<string, unknown> }).__browsers;\n const builder = await editor.resolveBuilder();\n const builderRegistries = builder?.getRegistries?.();\n registries = {\n skillsSh: { enabled: builderRegistries?.skillsSh?.enabled === true },\n };\n const configuration = builder?.getConfiguration?.()?.agent as\n | {\n browser?: { type?: string; config?: { provider?: string; env?: string } };\n workspace?: {\n type?: string;\n workspaceId?: string;\n config?: { name?: string; filesystem?: unknown; sandbox?: unknown };\n };\n }\n | undefined;\n\n const browserRef = configuration?.browser;\n const browserConfig = browserRef?.config ?? {};\n const providerId = browserConfig.provider ?? null;\n browser = {\n type: browserRef?.type ?? null,\n provider: providerId,\n env: browserConfig.env ?? null,\n registered: providerId ? !!browsers?.has(providerId) : false,\n availableProviders: browsers ? Array.from(browsers.keys()) : [],\n config: getConfigEntries(browserConfig, ['provider', 'env']),\n };\n\n const workspaceRef = configuration?.workspace;\n const workspaceConfig = workspaceRef?.config ?? {};\n const registeredWorkspaces = mastra.listWorkspaces();\n const registeredWorkspace = workspaceRef?.workspaceId\n ? registeredWorkspaces[workspaceRef.workspaceId]\n : undefined;\n const filesystem = registeredWorkspace?.workspace.filesystem ?? workspaceConfig.filesystem;\n const sandbox = registeredWorkspace?.workspace.sandbox ?? workspaceConfig.sandbox;\n const filesystemConfig =\n typeof workspaceConfig.filesystem === 'object' &&\n workspaceConfig.filesystem &&\n 'config' in workspaceConfig.filesystem\n ? (workspaceConfig.filesystem.config as Record<string, unknown>)\n : {};\n const sandboxConfig =\n typeof workspaceConfig.sandbox === 'object' && workspaceConfig.sandbox && 'config' in workspaceConfig.sandbox\n ? (workspaceConfig.sandbox.config as Record<string, unknown>)\n : {};\n workspace = {\n type: workspaceRef?.type ?? null,\n workspaceId: workspaceRef?.workspaceId ?? null,\n name: workspaceConfig.name ?? registeredWorkspace?.workspace.name ?? null,\n source: registeredWorkspace?.source ?? null,\n registered: !!registeredWorkspace,\n hasFilesystem: !!filesystem,\n hasSandbox: !!sandbox,\n filesystemProvider: getProviderName(filesystem),\n sandboxProvider: getProviderName(sandbox),\n config: [\n ...getConfigEntries(filesystemConfig).map(entry => ({ ...entry, key: `filesystem.${entry.key}` })),\n ...getConfigEntries(sandboxConfig).map(entry => ({ ...entry, key: `sandbox.${entry.key}` })),\n ],\n };\n }\n\n return { channels, browser, workspace, registries };\n } catch (error) {\n return handleError(error, 'Error getting infrastructure status');\n }\n },\n});\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkVX3MJR4P_cjs = require('./chunk-VX3MJR4P.cjs');
|
|
4
|
+
var chunk4C5RVGHE_cjs = require('./chunk-4C5RVGHE.cjs');
|
|
4
5
|
var chunkKT66JFSR_cjs = require('./chunk-KT66JFSR.cjs');
|
|
5
6
|
var chunkYNSUYESL_cjs = require('./chunk-YNSUYESL.cjs');
|
|
6
7
|
var chunkBXTQ4QZA_cjs = require('./chunk-BXTQ4QZA.cjs');
|
|
@@ -11,8 +12,8 @@ var LIST_STORED_WORKSPACES_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
11
12
|
method: "GET",
|
|
12
13
|
path: "/stored/workspaces",
|
|
13
14
|
responseType: "json",
|
|
14
|
-
queryParamSchema:
|
|
15
|
-
responseSchema:
|
|
15
|
+
queryParamSchema: chunk4C5RVGHE_cjs.listStoredWorkspacesQuerySchema,
|
|
16
|
+
responseSchema: chunk4C5RVGHE_cjs.listStoredWorkspacesResponseSchema,
|
|
16
17
|
summary: "List stored workspaces",
|
|
17
18
|
description: "Returns a paginated list of all workspace configurations stored in the database",
|
|
18
19
|
tags: ["Stored Workspaces"],
|
|
@@ -27,16 +28,22 @@ var LIST_STORED_WORKSPACES_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
27
28
|
if (!workspaceStore) {
|
|
28
29
|
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Workspaces storage domain is not available" });
|
|
29
30
|
}
|
|
31
|
+
const filter = chunkVX3MJR4P_cjs.resolveAuthorFilter({
|
|
32
|
+
requestContext,
|
|
33
|
+
resource: "stored-workspaces",
|
|
34
|
+
queryAuthorId: authorId
|
|
35
|
+
});
|
|
30
36
|
const scope = await chunkKT66JFSR_cjs.getStoredResourceScope(mastra, requestContext);
|
|
31
37
|
const result = await workspaceStore.listResolved({
|
|
32
38
|
page,
|
|
33
39
|
perPage,
|
|
34
40
|
orderBy,
|
|
35
|
-
authorId,
|
|
41
|
+
authorId: filter.kind === "exact" ? filter.authorId : void 0,
|
|
36
42
|
metadata: chunkKT66JFSR_cjs.scopeStoredResourceMetadata(metadata, scope)
|
|
37
43
|
});
|
|
44
|
+
const visibleWorkspaces = result.workspaces.filter((record) => chunkVX3MJR4P_cjs.matchesAuthorFilter(record, filter));
|
|
38
45
|
const runtimeWorkspaces = mastra.listWorkspaces();
|
|
39
|
-
const workspaces =
|
|
46
|
+
const workspaces = visibleWorkspaces.map((ws) => ({
|
|
40
47
|
...ws,
|
|
41
48
|
runtimeRegistered: ws.id in runtimeWorkspaces
|
|
42
49
|
}));
|
|
@@ -50,8 +57,8 @@ var GET_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
50
57
|
method: "GET",
|
|
51
58
|
path: "/stored/workspaces/:storedWorkspaceId",
|
|
52
59
|
responseType: "json",
|
|
53
|
-
pathParamSchema:
|
|
54
|
-
responseSchema:
|
|
60
|
+
pathParamSchema: chunk4C5RVGHE_cjs.storedWorkspaceIdPathParams,
|
|
61
|
+
responseSchema: chunk4C5RVGHE_cjs.getStoredWorkspaceResponseSchema,
|
|
55
62
|
summary: "Get stored workspace by ID",
|
|
56
63
|
description: "Returns a specific workspace from storage by its unique identifier (resolved with active version config)",
|
|
57
64
|
tags: ["Stored Workspaces"],
|
|
@@ -71,6 +78,12 @@ var GET_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
71
78
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });
|
|
72
79
|
}
|
|
73
80
|
chunkKT66JFSR_cjs.assertStoredResourceScope(workspace, await chunkKT66JFSR_cjs.getStoredResourceScope(mastra, requestContext));
|
|
81
|
+
chunkVX3MJR4P_cjs.assertReadAccess({
|
|
82
|
+
requestContext,
|
|
83
|
+
resource: "stored-workspaces",
|
|
84
|
+
resourceId: storedWorkspaceId,
|
|
85
|
+
record: workspace
|
|
86
|
+
});
|
|
74
87
|
return workspace;
|
|
75
88
|
} catch (error) {
|
|
76
89
|
return chunkYNSUYESL_cjs.handleError(error, "Error getting stored workspace");
|
|
@@ -81,8 +94,8 @@ var CREATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
81
94
|
method: "POST",
|
|
82
95
|
path: "/stored/workspaces",
|
|
83
96
|
responseType: "json",
|
|
84
|
-
bodySchema:
|
|
85
|
-
responseSchema:
|
|
97
|
+
bodySchema: chunk4C5RVGHE_cjs.createStoredWorkspaceBodySchema,
|
|
98
|
+
responseSchema: chunk4C5RVGHE_cjs.createStoredWorkspaceResponseSchema,
|
|
86
99
|
summary: "Create stored workspace",
|
|
87
100
|
description: "Creates a new workspace configuration in storage with the provided settings",
|
|
88
101
|
tags: ["Stored Workspaces"],
|
|
@@ -90,7 +103,6 @@ var CREATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
90
103
|
handler: async ({
|
|
91
104
|
mastra,
|
|
92
105
|
id: providedId,
|
|
93
|
-
authorId,
|
|
94
106
|
metadata,
|
|
95
107
|
name,
|
|
96
108
|
description,
|
|
@@ -123,6 +135,7 @@ var CREATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
123
135
|
if (existing) {
|
|
124
136
|
throw new chunk64ITUOXI_cjs.HTTPException(409, { message: `Workspace with id ${id} already exists` });
|
|
125
137
|
}
|
|
138
|
+
const authorId = chunkVX3MJR4P_cjs.getCallerAuthorId(requestContext) ?? void 0;
|
|
126
139
|
await workspaceStore.create({
|
|
127
140
|
workspace: {
|
|
128
141
|
id,
|
|
@@ -154,9 +167,9 @@ var UPDATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
154
167
|
method: "PATCH",
|
|
155
168
|
path: "/stored/workspaces/:storedWorkspaceId",
|
|
156
169
|
responseType: "json",
|
|
157
|
-
pathParamSchema:
|
|
158
|
-
bodySchema:
|
|
159
|
-
responseSchema:
|
|
170
|
+
pathParamSchema: chunk4C5RVGHE_cjs.storedWorkspaceIdPathParams,
|
|
171
|
+
bodySchema: chunk4C5RVGHE_cjs.updateStoredWorkspaceBodySchema,
|
|
172
|
+
responseSchema: chunk4C5RVGHE_cjs.updateStoredWorkspaceResponseSchema,
|
|
160
173
|
summary: "Update stored workspace",
|
|
161
174
|
description: "Updates an existing workspace in storage with the provided fields",
|
|
162
175
|
tags: ["Stored Workspaces"],
|
|
@@ -165,7 +178,6 @@ var UPDATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
165
178
|
mastra,
|
|
166
179
|
storedWorkspaceId,
|
|
167
180
|
// Metadata-level fields
|
|
168
|
-
authorId,
|
|
169
181
|
metadata,
|
|
170
182
|
// Config fields (snapshot-level)
|
|
171
183
|
name,
|
|
@@ -195,10 +207,16 @@ var UPDATE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
195
207
|
}
|
|
196
208
|
const scope = await chunkKT66JFSR_cjs.getStoredResourceScope(mastra, requestContext);
|
|
197
209
|
chunkKT66JFSR_cjs.assertStoredResourceScope(existing, scope);
|
|
210
|
+
chunkVX3MJR4P_cjs.assertWriteAccess({
|
|
211
|
+
requestContext,
|
|
212
|
+
resource: "stored-workspaces",
|
|
213
|
+
resourceId: storedWorkspaceId,
|
|
214
|
+
action: "edit",
|
|
215
|
+
record: existing
|
|
216
|
+
});
|
|
198
217
|
const scopedMetadata = metadata !== void 0 ? chunkKT66JFSR_cjs.scopeStoredResourceMetadata({ ...existing.metadata ?? {}, ...metadata }, scope) : void 0;
|
|
199
218
|
const updateInput = { id: storedWorkspaceId };
|
|
200
219
|
const candidate = {
|
|
201
|
-
authorId,
|
|
202
220
|
...scopedMetadata !== void 0 ? { metadata: scopedMetadata } : {},
|
|
203
221
|
name,
|
|
204
222
|
description,
|
|
@@ -229,8 +247,8 @@ var DELETE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
229
247
|
method: "DELETE",
|
|
230
248
|
path: "/stored/workspaces/:storedWorkspaceId",
|
|
231
249
|
responseType: "json",
|
|
232
|
-
pathParamSchema:
|
|
233
|
-
responseSchema:
|
|
250
|
+
pathParamSchema: chunk4C5RVGHE_cjs.storedWorkspaceIdPathParams,
|
|
251
|
+
responseSchema: chunk4C5RVGHE_cjs.deleteStoredWorkspaceResponseSchema,
|
|
234
252
|
summary: "Delete stored workspace",
|
|
235
253
|
description: "Deletes a workspace from storage by its unique identifier",
|
|
236
254
|
tags: ["Stored Workspaces"],
|
|
@@ -250,6 +268,13 @@ var DELETE_STORED_WORKSPACE_ROUTE = chunkBXTQ4QZA_cjs.createRoute({
|
|
|
250
268
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });
|
|
251
269
|
}
|
|
252
270
|
chunkKT66JFSR_cjs.assertStoredResourceScope(existing, await chunkKT66JFSR_cjs.getStoredResourceScope(mastra, requestContext));
|
|
271
|
+
chunkVX3MJR4P_cjs.assertWriteAccess({
|
|
272
|
+
requestContext,
|
|
273
|
+
resource: "stored-workspaces",
|
|
274
|
+
resourceId: storedWorkspaceId,
|
|
275
|
+
action: "delete",
|
|
276
|
+
record: existing
|
|
277
|
+
});
|
|
253
278
|
await workspaceStore.delete(storedWorkspaceId);
|
|
254
279
|
return {
|
|
255
280
|
success: true,
|
|
@@ -266,5 +291,5 @@ exports.DELETE_STORED_WORKSPACE_ROUTE = DELETE_STORED_WORKSPACE_ROUTE;
|
|
|
266
291
|
exports.GET_STORED_WORKSPACE_ROUTE = GET_STORED_WORKSPACE_ROUTE;
|
|
267
292
|
exports.LIST_STORED_WORKSPACES_ROUTE = LIST_STORED_WORKSPACES_ROUTE;
|
|
268
293
|
exports.UPDATE_STORED_WORKSPACE_ROUTE = UPDATE_STORED_WORKSPACE_ROUTE;
|
|
269
|
-
//# sourceMappingURL=chunk-
|
|
270
|
-
//# sourceMappingURL=chunk-
|
|
294
|
+
//# sourceMappingURL=chunk-IMSULK5V.cjs.map
|
|
295
|
+
//# sourceMappingURL=chunk-IMSULK5V.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-workspaces.ts"],"names":["createRoute","listStoredWorkspacesQuerySchema","listStoredWorkspacesResponseSchema","HTTPException","resolveAuthorFilter","getStoredResourceScope","scopeStoredResourceMetadata","matchesAuthorFilter","handleError","storedWorkspaceIdPathParams","getStoredWorkspaceResponseSchema","assertStoredResourceScope","assertReadAccess","createStoredWorkspaceBodySchema","createStoredWorkspaceResponseSchema","toSlug","getCallerAuthorId","updateStoredWorkspaceBodySchema","updateStoredWorkspaceResponseSchema","assertWriteAccess","deleteStoredWorkspaceResponseSchema"],"mappings":"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","file":"chunk-IMSULK5V.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedWorkspaceIdPathParams,\n listStoredWorkspacesQuerySchema,\n createStoredWorkspaceBodySchema,\n updateStoredWorkspaceBodySchema,\n listStoredWorkspacesResponseSchema,\n getStoredWorkspaceResponseSchema,\n createStoredWorkspaceResponseSchema,\n updateStoredWorkspaceResponseSchema,\n deleteStoredWorkspaceResponseSchema,\n} from '../schemas/stored-workspaces';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport {\n assertReadAccess,\n assertWriteAccess,\n getCallerAuthorId,\n matchesAuthorFilter,\n resolveAuthorFilter,\n} from './authorship';\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/workspaces - List all stored workspaces\n */\nexport const LIST_STORED_WORKSPACES_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/workspaces',\n responseType: 'json',\n queryParamSchema: listStoredWorkspacesQuerySchema,\n responseSchema: listStoredWorkspacesResponseSchema,\n summary: 'List stored workspaces',\n description: 'Returns a paginated list of all workspace configurations stored in the database',\n tags: ['Stored Workspaces'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, 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 workspaceStore = await storage.getStore('workspaces');\n if (!workspaceStore) {\n throw new HTTPException(500, { message: 'Workspaces storage domain is not available' });\n }\n\n // Resolve the visibility scope for this caller. Non-owner queries for\n // another author return nothing (workspaces have no `public` visibility\n // yet); default lists return the caller's rows plus legacy unowned\n // records.\n const filter = resolveAuthorFilter({\n requestContext,\n resource: 'stored-workspaces',\n queryAuthorId: authorId,\n });\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await workspaceStore.listResolved({\n page,\n perPage,\n orderBy,\n authorId: filter.kind === 'exact' ? filter.authorId : undefined,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n // Post-filter to enforce ownership rules across all backends. Storage\n // adapters can only do an equality filter on authorId, so we apply the\n // ownedOrPublic / ownedOrPublicOthers logic here. `total` is left as the\n // storage-reported count to keep pagination math working.\n const visibleWorkspaces = result.workspaces.filter(record => matchesAuthorFilter(record, filter));\n\n // Annotate each workspace with whether it's registered at runtime\n const runtimeWorkspaces = mastra.listWorkspaces();\n const workspaces = visibleWorkspaces.map(ws => ({\n ...ws,\n runtimeRegistered: ws.id in runtimeWorkspaces,\n }));\n\n return { ...result, workspaces };\n } catch (error) {\n return handleError(error, 'Error listing stored workspaces');\n }\n },\n});\n\n/**\n * GET /stored/workspaces/:storedWorkspaceId - Get a stored workspace by ID\n */\nexport const GET_STORED_WORKSPACE_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/workspaces/:storedWorkspaceId',\n responseType: 'json',\n pathParamSchema: storedWorkspaceIdPathParams,\n responseSchema: getStoredWorkspaceResponseSchema,\n summary: 'Get stored workspace by ID',\n description:\n 'Returns a specific workspace from storage by its unique identifier (resolved with active version config)',\n tags: ['Stored Workspaces'],\n requiresAuth: true,\n handler: async ({ mastra, storedWorkspaceId, 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 workspaceStore = await storage.getStore('workspaces');\n if (!workspaceStore) {\n throw new HTTPException(500, { message: 'Workspaces storage domain is not available' });\n }\n\n const workspace = await workspaceStore.getByIdResolved(storedWorkspaceId);\n\n if (!workspace) {\n throw new HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });\n }\n assertStoredResourceScope(workspace, await getStoredResourceScope(mastra, requestContext));\n\n // Throws 404 if the caller isn't the owner, admin, or `stored-workspaces:read[:<id>]` holder.\n assertReadAccess({\n requestContext,\n resource: 'stored-workspaces',\n resourceId: storedWorkspaceId,\n record: workspace,\n });\n\n return workspace;\n } catch (error) {\n return handleError(error, 'Error getting stored workspace');\n }\n },\n});\n\n/**\n * POST /stored/workspaces - Create a new stored workspace\n */\nexport const CREATE_STORED_WORKSPACE_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/workspaces',\n responseType: 'json',\n bodySchema: createStoredWorkspaceBodySchema,\n responseSchema: createStoredWorkspaceResponseSchema,\n summary: 'Create stored workspace',\n description: 'Creates a new workspace configuration in storage with the provided settings',\n tags: ['Stored Workspaces'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n metadata,\n name,\n description,\n filesystem,\n sandbox,\n mounts,\n search,\n skills,\n tools,\n autoSync,\n operationTimeout,\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 workspaceStore = await storage.getStore('workspaces');\n if (!workspaceStore) {\n throw new HTTPException(500, { message: 'Workspaces 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 workspace ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if workspace with this ID already exists\n const existing = await workspaceStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Workspace with id ${id} already exists` });\n }\n\n // Force authorId from the authenticated caller; ignore any body-provided value.\n // No caller (auth not configured) leaves authorId undefined so legacy\n // single-user setups continue to behave as today.\n const authorId = getCallerAuthorId(requestContext) ?? undefined;\n\n await workspaceStore.create({\n workspace: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n filesystem,\n sandbox,\n mounts,\n search,\n skills,\n tools,\n autoSync,\n operationTimeout,\n },\n });\n\n // Return the resolved workspace (thin record + version config)\n const resolved = await workspaceStore.getByIdResolved(id);\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created workspace' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored workspace');\n }\n },\n});\n\n/**\n * PATCH /stored/workspaces/:storedWorkspaceId - Update a stored workspace\n */\nexport const UPDATE_STORED_WORKSPACE_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/workspaces/:storedWorkspaceId',\n responseType: 'json',\n pathParamSchema: storedWorkspaceIdPathParams,\n bodySchema: updateStoredWorkspaceBodySchema,\n responseSchema: updateStoredWorkspaceResponseSchema,\n summary: 'Update stored workspace',\n description: 'Updates an existing workspace in storage with the provided fields',\n tags: ['Stored Workspaces'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedWorkspaceId,\n // Metadata-level fields\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n filesystem,\n sandbox,\n mounts,\n search,\n skills,\n tools,\n autoSync,\n operationTimeout,\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 workspaceStore = await storage.getStore('workspaces');\n if (!workspaceStore) {\n throw new HTTPException(500, { message: 'Workspaces storage domain is not available' });\n }\n\n // Check if workspace exists\n const existing = await workspaceStore.getById(storedWorkspaceId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n\n // Throws 404 if the caller isn't the owner, admin, or `stored-workspaces:edit[:<id>]` holder.\n assertWriteAccess({\n requestContext,\n resource: 'stored-workspaces',\n resourceId: storedWorkspaceId,\n action: 'edit',\n record: existing,\n });\n\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the workspace with both metadata-level and config-level fields.\n // The storage layer handles separating these into record updates vs\n // new-version creation. Strip undefined keys so omitted fields don't\n // overwrite persisted values (same pattern as stored-skills PATCH).\n // Note: authorId is intentionally not accepted here. Ownership cannot be\n // transferred via PATCH; admins must use a dedicated flow if that is ever\n // needed.\n const updateInput: Record<string, unknown> = { id: storedWorkspaceId };\n const candidate: Record<string, unknown> = {\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n filesystem,\n sandbox,\n mounts,\n search,\n skills,\n tools,\n autoSync,\n operationTimeout,\n };\n for (const [key, value] of Object.entries(candidate)) {\n if (value !== undefined) updateInput[key] = value;\n }\n await workspaceStore.update(updateInput as Parameters<typeof workspaceStore.update>[0]);\n\n // Return the resolved workspace with the updated config\n const resolved = await workspaceStore.getByIdResolved(storedWorkspaceId);\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated workspace' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored workspace');\n }\n },\n});\n\n/**\n * DELETE /stored/workspaces/:storedWorkspaceId - Delete a stored workspace\n */\nexport const DELETE_STORED_WORKSPACE_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/workspaces/:storedWorkspaceId',\n responseType: 'json',\n pathParamSchema: storedWorkspaceIdPathParams,\n responseSchema: deleteStoredWorkspaceResponseSchema,\n summary: 'Delete stored workspace',\n description: 'Deletes a workspace from storage by its unique identifier',\n tags: ['Stored Workspaces'],\n requiresAuth: true,\n handler: async ({ mastra, storedWorkspaceId, 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 workspaceStore = await storage.getStore('workspaces');\n if (!workspaceStore) {\n throw new HTTPException(500, { message: 'Workspaces storage domain is not available' });\n }\n\n // Check if workspace exists\n const existing = await workspaceStore.getById(storedWorkspaceId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n // Throws 404 if the caller isn't the owner, admin, or `stored-workspaces:delete[:<id>]` holder.\n assertWriteAccess({\n requestContext,\n resource: 'stored-workspaces',\n resourceId: storedWorkspaceId,\n action: 'delete',\n record: existing,\n });\n\n await workspaceStore.delete(storedWorkspaceId);\n\n return {\n success: true,\n message: `Workspace ${storedWorkspaceId} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting stored workspace');\n }\n },\n});\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { supportsSessionRefresh } from './chunk-OJNVSXOF.js';
|
|
2
1
|
import { capabilitiesResponseSchema, currentUserResponseSchema, ssoLoginQuerySchema, ssoCallbackQuerySchema, refreshResponseSchema, credentialsSignInBodySchema, credentialsSignUpBodySchema } from './chunk-EPCOAEFM.js';
|
|
2
|
+
import { supportsSessionRefresh } from './chunk-OJNVSXOF.js';
|
|
3
3
|
import { handleError } from './chunk-GA4BG5JK.js';
|
|
4
4
|
import { createPublicRoute, createRoute } from './chunk-G6NTGBOW.js';
|
|
5
5
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
@@ -500,5 +500,5 @@ var AUTH_ROUTES = [
|
|
|
500
500
|
];
|
|
501
501
|
|
|
502
502
|
export { AUTH_ROUTES, GET_AUTH_CAPABILITIES_ROUTE, GET_CURRENT_USER_ROUTE, GET_ROLE_PERMISSIONS_ROUTE, GET_SSO_CALLBACK_ROUTE, GET_SSO_LOGIN_ROUTE, POST_CREDENTIALS_SIGN_IN_ROUTE, POST_CREDENTIALS_SIGN_UP_ROUTE, POST_LOGOUT_ROUTE, POST_REFRESH_ROUTE, getPublicOrigin };
|
|
503
|
-
//# sourceMappingURL=chunk-
|
|
504
|
-
//# sourceMappingURL=chunk-
|
|
503
|
+
//# sourceMappingURL=chunk-JA7S4TJR.js.map
|
|
504
|
+
//# sourceMappingURL=chunk-JA7S4TJR.js.map
|