@mastra/server 1.37.0-alpha.2 → 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 +69 -0
- package/dist/{api-schema-manifest-QGETGMBO.js → api-schema-manifest-KTESE5SY.js} +3 -3
- package/dist/{api-schema-manifest-QGETGMBO.js.map → api-schema-manifest-KTESE5SY.js.map} +1 -1
- package/dist/{api-schema-manifest-QSCOKBA7.cjs → api-schema-manifest-MFGYEQIV.cjs} +4 -4
- package/dist/{api-schema-manifest-QSCOKBA7.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-HLXI3E4I.cjs → chunk-3CTGERGO.cjs} +23 -23
- package/dist/{chunk-HLXI3E4I.cjs.map → chunk-3CTGERGO.cjs.map} +1 -1
- package/dist/{chunk-5X52OI5N.js → chunk-3DCET5MM.js} +3 -3
- package/dist/{chunk-5X52OI5N.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-ANCX7VWY.cjs → chunk-3YTCY7WE.cjs} +5 -4
- 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-NVNFVNEU.cjs → chunk-5IFBLVEC.cjs} +5 -5
- package/dist/{chunk-NVNFVNEU.cjs.map → chunk-5IFBLVEC.cjs.map} +1 -1
- package/dist/{chunk-ZDQDDOKJ.cjs → chunk-5MVCPRNN.cjs} +121 -121
- package/dist/{chunk-ZDQDDOKJ.cjs.map → chunk-5MVCPRNN.cjs.map} +1 -1
- package/dist/{chunk-ONCDLJUQ.js → chunk-64QFFUEH.js} +4 -3
- package/dist/chunk-64QFFUEH.js.map +1 -0
- package/dist/{chunk-GAGNFJYS.js → chunk-6DRUPMRB.js} +20 -20
- package/dist/{chunk-GAGNFJYS.js.map → chunk-6DRUPMRB.js.map} +1 -1
- package/dist/{chunk-JGRMPXAX.js → chunk-6TGZ5HKB.js} +3 -3
- package/dist/{chunk-JGRMPXAX.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-K66OW2AA.js → chunk-7U6AIMUK.js} +3 -3
- package/dist/{chunk-K66OW2AA.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-WMLAEHP2.js → chunk-ALVG2BWA.js} +3 -3
- package/dist/{chunk-WMLAEHP2.js.map → chunk-ALVG2BWA.js.map} +1 -1
- package/dist/{chunk-J3BXNA2G.cjs → chunk-B77CX7JG.cjs} +4 -4
- package/dist/{chunk-J3BXNA2G.cjs.map → chunk-B77CX7JG.cjs.map} +1 -1
- package/dist/{chunk-IPRUOF7I.cjs → chunk-BJZMTXJE.cjs} +20 -20
- package/dist/{chunk-IPRUOF7I.cjs.map → chunk-BJZMTXJE.cjs.map} +1 -1
- package/dist/{chunk-VEYIFLKP.cjs → chunk-BNJRJ46P.cjs} +4 -4
- package/dist/{chunk-VEYIFLKP.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-SDKNFKPO.cjs → chunk-EAP7DSYC.cjs} +5 -5
- package/dist/{chunk-SDKNFKPO.cjs.map → chunk-EAP7DSYC.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-A73CYKBV.cjs → chunk-HROPIP5L.cjs} +3 -3
- package/dist/{chunk-A73CYKBV.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-ZX6LOGME.cjs → chunk-KJOPPFC3.cjs} +5 -5
- package/dist/{chunk-ZX6LOGME.cjs.map → chunk-KJOPPFC3.cjs.map} +1 -1
- package/dist/{chunk-NPW7GUAP.js → chunk-KKV6GEXL.js} +5 -5
- package/dist/{chunk-NPW7GUAP.js.map → chunk-KKV6GEXL.js.map} +1 -1
- package/dist/{chunk-YMZUKCL2.js → chunk-LH37RF5J.js} +4 -4
- package/dist/{chunk-YMZUKCL2.js.map → chunk-LH37RF5J.js.map} +1 -1
- package/dist/{chunk-N3IC7S4L.cjs → chunk-LIF23NO7.cjs} +14 -14
- package/dist/{chunk-N3IC7S4L.cjs.map → chunk-LIF23NO7.cjs.map} +1 -1
- package/dist/{chunk-O4377FUW.js → chunk-LZGMFVYK.js} +3 -3
- package/dist/{chunk-O4377FUW.js.map → chunk-LZGMFVYK.js.map} +1 -1
- package/dist/{chunk-4WDE5KPN.cjs → chunk-OK7MHH2H.cjs} +3 -3
- package/dist/{chunk-4WDE5KPN.cjs.map → chunk-OK7MHH2H.cjs.map} +1 -1
- package/dist/{chunk-ANQ4YGDG.js → chunk-ONV6636S.js} +3 -3
- package/dist/{chunk-ANQ4YGDG.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-M45EEUJT.cjs → chunk-PXJOA5PL.cjs} +50 -8
- package/dist/chunk-PXJOA5PL.cjs.map +1 -0
- package/dist/{chunk-FWO6WNFE.js → chunk-Q6WLMJKD.js} +3 -3
- package/dist/{chunk-FWO6WNFE.js.map → chunk-Q6WLMJKD.js.map} +1 -1
- package/dist/{chunk-OX6RKP5C.cjs → chunk-QE6IBHGB.cjs} +15 -15
- package/dist/{chunk-OX6RKP5C.cjs.map → chunk-QE6IBHGB.cjs.map} +1 -1
- package/dist/{chunk-RULY5YHQ.js → chunk-QHMBG6UG.js} +4 -3
- package/dist/chunk-QHMBG6UG.js.map +1 -0
- 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-PQHYTLZY.cjs → chunk-RCNWUOF5.cjs} +4 -4
- package/dist/{chunk-PQHYTLZY.cjs.map → chunk-RCNWUOF5.cjs.map} +1 -1
- package/dist/{chunk-ZA7GER4D.cjs → chunk-ROQSVLXR.cjs} +6 -6
- package/dist/{chunk-ZA7GER4D.cjs.map → chunk-ROQSVLXR.cjs.map} +1 -1
- package/dist/{chunk-YQABFBMF.js → chunk-SDBKZFT7.js} +3 -3
- package/dist/{chunk-YQABFBMF.js.map → chunk-SDBKZFT7.js.map} +1 -1
- package/dist/{chunk-B62YX6H5.js → chunk-SIUARBQF.js} +3 -3
- package/dist/{chunk-B62YX6H5.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-JTGGDYGY.cjs → chunk-U5XQEER6.cjs} +9 -9
- package/dist/{chunk-JTGGDYGY.cjs.map → chunk-U5XQEER6.cjs.map} +1 -1
- package/dist/{chunk-BCLXE5A6.js → chunk-VBT3NKFU.js} +3 -3
- package/dist/{chunk-BCLXE5A6.js.map → chunk-VBT3NKFU.js.map} +1 -1
- package/dist/{chunk-UHMBTZ44.js → chunk-VFMS237A.js} +51 -9
- package/dist/chunk-VFMS237A.js.map +1 -0
- package/dist/{chunk-226WXBRR.js → chunk-VPFGRS36.js} +3 -3
- package/dist/{chunk-226WXBRR.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-CGB327L6.js → chunk-YUTVYY3X.js} +3 -3
- package/dist/{chunk-CGB327L6.js.map → chunk-YUTVYY3X.js.map} +1 -1
- package/dist/{chunk-W6LUEOTA.js → chunk-Z4RLKK4C.js} +3 -3
- package/dist/{chunk-W6LUEOTA.js.map → chunk-Z4RLKK4C.js.map} +1 -1
- package/dist/{dist-TVEBMXRT.cjs → dist-2N34JJPM.cjs} +22 -21
- package/dist/dist-2N34JJPM.cjs.map +1 -0
- package/dist/{dist-ZGTEPXPM.js → dist-FQ4PS2UK.js} +7 -6
- package/dist/dist-FQ4PS2UK.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-CSI3OZXQ-74TPCOGT.js → observational-memory-FBSRD6QN-52YZX2CY.js} +3 -3
- package/dist/{observational-memory-CSI3OZXQ-74TPCOGT.js.map → observational-memory-FBSRD6QN-52YZX2CY.js.map} +1 -1
- package/dist/{observational-memory-CSI3OZXQ-DQZZQVVM.cjs → observational-memory-FBSRD6QN-RZQKP5DK.cjs} +26 -26
- package/dist/{observational-memory-CSI3OZXQ-DQZZQVVM.cjs.map → observational-memory-FBSRD6QN-RZQKP5DK.cjs.map} +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +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/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/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/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-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.cjs +16 -16
- package/dist/server/handlers.js +8 -8
- package/dist/server/schemas/index.cjs +118 -77
- 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 +6 -5
- 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 +6 -6
- package/dist/chunk-5MXFNG6G.cjs.map +0 -1
- package/dist/chunk-5PDA7RRM.js.map +0 -1
- package/dist/chunk-ANCX7VWY.cjs.map +0 -1
- package/dist/chunk-KHEQHKTJ.js.map +0 -1
- package/dist/chunk-LIJBEWEH.cjs.map +0 -1
- package/dist/chunk-M45EEUJT.cjs.map +0 -1
- package/dist/chunk-M4B42JGO.cjs.map +0 -1
- package/dist/chunk-ONCDLJUQ.js.map +0 -1
- package/dist/chunk-RULY5YHQ.js.map +0 -1
- package/dist/chunk-UHMBTZ44.js.map +0 -1
- package/dist/chunk-WEF5ZJPT.js.map +0 -1
- package/dist/chunk-XCJ6SARN.cjs.map +0 -1
- package/dist/dist-TVEBMXRT.cjs.map +0 -1
- package/dist/dist-ZGTEPXPM.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAgentFromSystem } from './chunk-
|
|
1
|
+
import { getAgentFromSystem } from './chunk-QHMBG6UG.js';
|
|
2
2
|
import { listToolsResponseSchema, serializedToolSchema, toolIdPathParams, executeToolResponseSchema, executeToolContextBodySchema, agentToolPathParams, executeToolBodySchema } from './chunk-LO3JBCO6.js';
|
|
3
3
|
import { MastraFGAPermissions, validateBody } from './chunk-BWNJBSXL.js';
|
|
4
4
|
import { stringify } from './chunk-Z7WKF2EJ.js';
|
|
@@ -269,5 +269,5 @@ var EXECUTE_AGENT_TOOL_ROUTE = createRoute({
|
|
|
269
269
|
});
|
|
270
270
|
|
|
271
271
|
export { EXECUTE_AGENT_TOOL_ROUTE, EXECUTE_TOOL_ROUTE, GET_AGENT_TOOL_ROUTE, GET_TOOL_BY_ID_ROUTE, LIST_TOOLS_ROUTE, tools_exports };
|
|
272
|
-
//# sourceMappingURL=chunk-
|
|
273
|
-
//# sourceMappingURL=chunk-
|
|
272
|
+
//# sourceMappingURL=chunk-ONV6636S.js.map
|
|
273
|
+
//# sourceMappingURL=chunk-ONV6636S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["tool"],"mappings":"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","file":"chunk-ANQ4YGDG.js","sourcesContent":["import { isVercelTool, isProviderDefinedTool } from '@mastra/core/tools';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\nimport { stringify } from 'superjson';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n/**\n * Resolves a schema that may be a lazy function (e.g. AI SDK provider tools).\n * Recursively resolves until a non-function value is returned.\n * Skips functions that are themselves valid schemas (e.g. ArkType types are\n * callable but also implement StandardSchema via ~standard).\n */\nfunction resolveLazySchema(schema: unknown): unknown {\n if (typeof schema === 'function' && !('~standard' in schema)) {\n return resolveLazySchema(schema());\n }\n return schema;\n}\n\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) {\n return undefined;\n }\n\n return standardSchemaToJSONSchema(toStandardSchema(schema), { target: 'draft-2020-12' });\n}\n\nfunction serializeSchema(schema: unknown): string | undefined {\n const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema) as PublicSchema<unknown> | undefined);\n if (jsonSchema === undefined) return undefined;\n return stringify(jsonSchema);\n}\n\n/**\n * Searches dynamically-resolved agent tools (provided via `toolsResolver` /\n * function-based `tools`) for a tool with the given id. Used as a fallback\n * after the static tool registry (`registeredTools` + `mastra.getToolById`)\n * misses, so global tool routes can resolve tools that only exist on agents.\n *\n * Errors thrown by an individual agent's `listTools()` are logged and\n * skipped so a single broken resolver doesn't take down the whole lookup.\n */\nasync function findToolInAgents(mastra: any, toolId: string, requestContext: any): Promise<any | undefined> {\n const agents = mastra.listAgents() || {};\n for (const agent of Object.values(agents) as any[]) {\n try {\n const agentTools = await agent.listTools({ requestContext });\n const found = Object.values(agentTools || {}).find((t: any) => t.id === toolId);\n if (found) return found;\n } catch (error) {\n mastra.getLogger?.()?.warn?.('Failed to list tools for agent while resolving tool by id', {\n agentId: agent?.id,\n toolId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return undefined;\n}\n\n/**\n * Serializes a tool for API responses, handling both regular tools (with Zod schemas)\n * and provider-defined tools (with AI SDK lazy schemas).\n */\nfunction serializeTool(tool: any): any {\n // Provider-defined tools (e.g. google.tools.googleSearch(), openai.tools.webSearch())\n // have lazy inputSchema functions that return AI SDK Schema objects, not Zod schemas.\n // We resolve them and use the jsonSchema property directly.\n if (isProviderDefinedTool(tool)) {\n const resolvedInput = resolveLazySchema(tool.inputSchema);\n const resolvedOutput = resolveLazySchema(tool.outputSchema);\n return {\n ...tool,\n inputSchema:\n resolvedInput && typeof resolvedInput === 'object' && 'jsonSchema' in resolvedInput\n ? stringify(resolvedInput.jsonSchema)\n : undefined,\n outputSchema:\n resolvedOutput && typeof resolvedOutput === 'object' && 'jsonSchema' in resolvedOutput\n ? stringify(resolvedOutput.jsonSchema)\n : undefined,\n };\n }\n\n return {\n ...tool,\n inputSchema: serializeSchema(tool.inputSchema),\n outputSchema: serializeSchema(tool.outputSchema),\n requestContextSchema: serializeSchema(tool.requestContextSchema),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, requestContext }) => {\n try {\n const allTools =\n registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n acc[id] = serializeTool(_tool);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n // Filter tools by FGA if configured\n const fgaProvider = mastra.getServer?.()?.fga;\n const user = requestContext?.get('user');\n if (fgaProvider && user) {\n const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));\n const accessible = await fgaProvider.filterAccessible(user, toolList, 'tool', MastraFGAPermissions.TOOLS_READ);\n const accessibleSet = new Set(accessible.map((t: any) => t.id));\n for (const id of Object.keys(serializedTools)) {\n if (!accessibleSet.has(id)) {\n delete serializedTools[id];\n }\n }\n }\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, toolId, requestContext }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n let result;\n if (isVercelTool(tool)) {\n result = await (tool as any).execute(data);\n } else {\n result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["tool"],"mappings":"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","file":"chunk-ONV6636S.js","sourcesContent":["import { isVercelTool, isProviderDefinedTool } from '@mastra/core/tools';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\nimport { stringify } from 'superjson';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n/**\n * Resolves a schema that may be a lazy function (e.g. AI SDK provider tools).\n * Recursively resolves until a non-function value is returned.\n * Skips functions that are themselves valid schemas (e.g. ArkType types are\n * callable but also implement StandardSchema via ~standard).\n */\nfunction resolveLazySchema(schema: unknown): unknown {\n if (typeof schema === 'function' && !('~standard' in schema)) {\n return resolveLazySchema(schema());\n }\n return schema;\n}\n\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) {\n return undefined;\n }\n\n return standardSchemaToJSONSchema(toStandardSchema(schema), { target: 'draft-2020-12' });\n}\n\nfunction serializeSchema(schema: unknown): string | undefined {\n const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema) as PublicSchema<unknown> | undefined);\n if (jsonSchema === undefined) return undefined;\n return stringify(jsonSchema);\n}\n\n/**\n * Searches dynamically-resolved agent tools (provided via `toolsResolver` /\n * function-based `tools`) for a tool with the given id. Used as a fallback\n * after the static tool registry (`registeredTools` + `mastra.getToolById`)\n * misses, so global tool routes can resolve tools that only exist on agents.\n *\n * Errors thrown by an individual agent's `listTools()` are logged and\n * skipped so a single broken resolver doesn't take down the whole lookup.\n */\nasync function findToolInAgents(mastra: any, toolId: string, requestContext: any): Promise<any | undefined> {\n const agents = mastra.listAgents() || {};\n for (const agent of Object.values(agents) as any[]) {\n try {\n const agentTools = await agent.listTools({ requestContext });\n const found = Object.values(agentTools || {}).find((t: any) => t.id === toolId);\n if (found) return found;\n } catch (error) {\n mastra.getLogger?.()?.warn?.('Failed to list tools for agent while resolving tool by id', {\n agentId: agent?.id,\n toolId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return undefined;\n}\n\n/**\n * Serializes a tool for API responses, handling both regular tools (with Zod schemas)\n * and provider-defined tools (with AI SDK lazy schemas).\n */\nfunction serializeTool(tool: any): any {\n // Provider-defined tools (e.g. google.tools.googleSearch(), openai.tools.webSearch())\n // have lazy inputSchema functions that return AI SDK Schema objects, not Zod schemas.\n // We resolve them and use the jsonSchema property directly.\n if (isProviderDefinedTool(tool)) {\n const resolvedInput = resolveLazySchema(tool.inputSchema);\n const resolvedOutput = resolveLazySchema(tool.outputSchema);\n return {\n ...tool,\n inputSchema:\n resolvedInput && typeof resolvedInput === 'object' && 'jsonSchema' in resolvedInput\n ? stringify(resolvedInput.jsonSchema)\n : undefined,\n outputSchema:\n resolvedOutput && typeof resolvedOutput === 'object' && 'jsonSchema' in resolvedOutput\n ? stringify(resolvedOutput.jsonSchema)\n : undefined,\n };\n }\n\n return {\n ...tool,\n inputSchema: serializeSchema(tool.inputSchema),\n outputSchema: serializeSchema(tool.outputSchema),\n requestContextSchema: serializeSchema(tool.requestContextSchema),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, requestContext }) => {\n try {\n const allTools =\n registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n acc[id] = serializeTool(_tool);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n // Filter tools by FGA if configured\n const fgaProvider = mastra.getServer?.()?.fga;\n const user = requestContext?.get('user');\n if (fgaProvider && user) {\n const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));\n const accessible = await fgaProvider.filterAccessible(user, toolList, 'tool', MastraFGAPermissions.TOOLS_READ);\n const accessibleSet = new Set(accessible.map((t: any) => t.id));\n for (const id of Object.keys(serializedTools)) {\n if (!accessibleSet.has(id)) {\n delete serializedTools[id];\n }\n }\n }\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, toolId, requestContext }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n let result;\n if (isVercelTool(tool)) {\n result = await (tool as any).execute(data);\n } else {\n result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { snapshotConfigSchema } from './chunk-
|
|
1
|
+
import { snapshotConfigSchema } from './chunk-64QFFUEH.js';
|
|
2
2
|
import { ruleGroupSchema } from './chunk-JA4UAHWP.js';
|
|
3
3
|
import { defaultOptionsSchema } from './chunk-TKP6FJQ3.js';
|
|
4
4
|
import { createPagePaginationSchema, paginationInfoSchema } from './chunk-2YY3EMMS.js';
|
|
@@ -316,5 +316,5 @@ var previewInstructionsResponseSchema = z.object({
|
|
|
316
316
|
});
|
|
317
317
|
|
|
318
318
|
export { conditionalFieldSchema, createStoredAgentBodySchema, createStoredAgentResponseSchema, deleteStoredAgentResponseSchema, getStoredAgentResponseSchema, instructionsSchema, listStoredAgentsQuerySchema, listStoredAgentsResponseSchema, modelConfigSchema, previewInstructionsBodySchema, previewInstructionsResponseSchema, processorGraphEntrySchema, processorGraphStepSchema, processorPhaseSchema, scorerConfigSchema, semanticRecallSchema, serializedMemoryConfigSchema, serializedObservationConfigSchema, serializedObservationalMemoryConfigObjectSchema, serializedObservationalMemoryConfigSchema, serializedReflectionConfigSchema, snapshotConfigSchema2 as snapshotConfigSchema, storedAgentIdPathParams, storedAgentSchema, storedProcessorGraphSchema, titleGenerationSchema, toolConfigSchema, toolsConfigSchema, updateStoredAgentBodySchema, updateStoredAgentResponseSchema };
|
|
319
|
-
//# sourceMappingURL=chunk-
|
|
320
|
-
//# sourceMappingURL=chunk-
|
|
319
|
+
//# sourceMappingURL=chunk-PN3LDOLZ.js.map
|
|
320
|
+
//# sourceMappingURL=chunk-PN3LDOLZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/memory-config.ts","../src/server/schemas/stored-agents.ts"],"names":["z","snapshotConfigSchema"],"mappings":"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","file":"chunk-LH5Y7AJF.js","sourcesContent":["import { z } from 'zod/v4';\n\n/**\n * Shared memory configuration schemas for agent storage\n * These schemas match the SerializedMemoryConfig type from @mastra/core\n */\n\n/**\n * Semantic recall configuration for vector-based memory retrieval\n */\nexport const semanticRecallSchema = z.object({\n topK: z.number().describe('Number of semantically similar messages to retrieve'),\n messageRange: z\n .union([\n z.number(),\n z.object({\n before: z.number(),\n after: z.number(),\n }),\n ])\n .describe('Amount of surrounding context to include with each retrieved message'),\n scope: z.enum(['thread', 'resource']).optional().describe('Scope for semantic search queries'),\n threshold: z.number().min(0).max(1).optional().describe('Minimum similarity score threshold'),\n indexName: z.string().optional().describe('Index name for the vector store'),\n});\n\n/**\n * Title generation configuration\n * When stored, the model is serialized as a ModelRouterModelId string (provider/model-name format)\n */\nexport const titleGenerationSchema = z.union([\n z.boolean(),\n z.object({\n model: z.string().describe('Model ID in format provider/model-name (ModelRouterModelId)'),\n instructions: z.string().optional().describe('Custom instructions for title generation'),\n }),\n]);\n\n/**\n * Observation step configuration for observational memory\n */\nexport const serializedObservationConfigSchema = z.object({\n model: z.string().optional().describe('Observer model ID'),\n messageTokens: z.number().optional().describe('Token threshold that triggers observation'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n maxTokensPerBatch: z.number().optional().describe('Maximum tokens per batch'),\n bufferTokens: z\n .union([z.number(), z.literal(false)])\n .optional()\n .describe('Async buffering interval or false'),\n bufferActivation: z.number().optional().describe('Ratio of buffered observations to activate'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n});\n\n/**\n * Reflection step configuration for observational memory\n */\nexport const serializedReflectionConfigSchema = z.object({\n model: z.string().optional().describe('Reflector model ID'),\n observationTokens: z.number().optional().describe('Token threshold that triggers reflection'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n bufferActivation: z.number().optional().describe('Ratio for async reflection buffering'),\n});\n\n/**\n * Serialized observational memory configuration\n */\nexport const serializedObservationalMemoryConfigObjectSchema = z.object({\n model: z.string().optional().describe('Model ID for both Observer and Reflector'),\n scope: z.enum(['resource', 'thread']).optional().describe('Memory scope'),\n shareTokenBudget: z.boolean().optional().describe('Share token budget between messages and observations'),\n observation: serializedObservationConfigSchema.optional().describe('Observation step configuration'),\n reflection: serializedReflectionConfigSchema.optional().describe('Reflection step configuration'),\n});\n\nexport const serializedObservationalMemoryConfigSchema = z.union([\n z.boolean(),\n serializedObservationalMemoryConfigObjectSchema,\n]);\n\n/**\n * Serialized memory configuration matching SerializedMemoryConfig from @mastra/core\n *\n * Note: workingMemory and threads are omitted as they are not part of SerializedMemoryConfig\n * @see packages/core/src/memory/types.ts\n */\nexport const serializedMemoryConfigSchema = z\n .object({\n vector: z\n .union([z.string(), z.literal(false)])\n .optional()\n .describe('Vector database identifier or false to disable'),\n options: z\n .object({\n readOnly: z.boolean().optional(),\n lastMessages: z.union([z.number(), z.literal(false)]).optional(),\n semanticRecall: z.union([z.boolean(), semanticRecallSchema]).optional(),\n generateTitle: titleGenerationSchema.optional(),\n })\n .optional()\n .describe('Memory behavior configuration, excluding workingMemory and threads'),\n embedder: z\n .string()\n .optional()\n .describe('Embedding model ID in the format \"provider/model\" (e.g., \"openai/text-embedding-3-small\")'),\n embedderOptions: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Options to pass to the embedder, omitting telemetry'),\n observationalMemory: serializedObservationalMemoryConfigSchema\n .optional()\n .describe('Serialized observational memory configuration'),\n })\n .refine(\n data => {\n // If semanticRecall is enabled (true or object), both vector and embedder are required\n const semanticRecall = data.options?.semanticRecall;\n const semanticRecallEnabled =\n semanticRecall === true || (typeof semanticRecall === 'object' && semanticRecall !== null);\n\n if (semanticRecallEnabled) {\n // vector must be a string (not false or undefined)\n const hasVector = typeof data.vector === 'string' && data.vector.length > 0;\n // embedder must be defined\n const hasEmbedder = typeof data.embedder === 'string' && data.embedder.length > 0;\n\n return hasVector && hasEmbedder;\n }\n return true;\n },\n {\n message: 'Semantic recall requires both vector and embedder to be configured',\n path: ['options', 'semanticRecall'],\n },\n );\n","import { z } from 'zod/v4';\nimport { paginationInfoSchema, createPagePaginationSchema, statusQuerySchema } from './common';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport { ruleGroupSchema } from './rule-group';\nimport { workspaceSnapshotConfigSchema } from './stored-workspaces';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\nexport { statusQuerySchema };\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Filter agents by status (defaults to published)'),\n authorId: z.string().optional().describe('Filter agents by author identifier'),\n visibility: z.enum(['public']).optional().describe('Filter to only public agents'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n favoritedOnly: z\n .stringbool()\n .optional()\n .describe('When true, return only agents favorited by the caller (requires the `favorites` EE feature)'),\n pinFavoritedFor: z\n .string()\n .optional()\n .describe(\n 'When set, treat the given subject (user/role) as the favoriting principal for `favoritedOnly` instead of the caller',\n ),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling and rules\n */\nconst scorerConfigSchema = z.object({\n description: z.string().optional(),\n sampling: z\n .union([\n z.object({ type: z.literal('none') }),\n z.object({ type: z.literal('ratio'), rate: z.number().min(0).max(1) }),\n ])\n .optional(),\n rules: ruleGroupSchema.optional(),\n});\n\n/**\n * Agent instruction block schema for prompt-block-based instructions.\n */\nconst agentInstructionBlockSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), content: z.string() }),\n z.object({ type: z.literal('prompt_block_ref'), id: z.string() }),\n z.object({ type: z.literal('prompt_block'), content: z.string(), rules: ruleGroupSchema.optional() }),\n]);\n\n/**\n * Creates a schema for a field that can be either a static value or an array of conditional variants.\n * Each variant has a `value` and an optional `rules` (RuleGroup) that determines when it applies.\n */\nfunction conditionalFieldSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n const variantSchema = z.object({\n value: valueSchema,\n rules: ruleGroupSchema.optional(),\n });\n return z.union([valueSchema, z.array(variantSchema)]);\n}\n\n/**\n * Instructions can be a plain string or an array of instruction blocks (text + prompt_block references).\n */\nexport const instructionsSchema = z\n .union([z.string(), z.array(agentInstructionBlockSchema)])\n .describe('System instructions for the agent (string or array of instruction blocks)');\n\n/** Base model config schema (reused across snapshot and response schemas) */\nconst modelConfigSchema = z\n .object({\n provider: z.string().describe('Model provider (e.g., openai, anthropic)'),\n name: z.string().describe('Model name (e.g., gpt-4o, claude-3-opus)'),\n })\n .passthrough();\n\n/** Per-tool config schema */\nconst toolConfigSchema = z.object({ description: z.string().optional(), rules: ruleGroupSchema.optional() });\n\n/** Base tools config schema */\nconst toolsConfigSchema = z.record(z.string(), toolConfigSchema);\n\n/** MCP client tools config schema — specifies which tools to use from an MCP client/server */\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n/** Per-skill config schema */\nconst skillConfigSchema = z.object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n pin: z.string().optional(),\n strategy: z.enum(['latest', 'live']).optional(),\n});\n\n/** Skills config: skill IDs mapped to per-skill config */\nconst skillsConfigSchema = z.record(z.string(), skillConfigSchema);\n\n/** Workspace reference: either a stored workspace ID or an inline config */\nconst workspaceRefSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('id'), workspaceId: z.string() }),\n z.object({ type: z.literal('inline'), config: workspaceSnapshotConfigSchema }),\n]);\n\n/** Screencast options for streaming browser frames */\nconst screencastOptionsSchema = z.object({\n format: z.enum(['jpeg', 'png']).optional().describe('Image format (default: jpeg)'),\n quality: z.number().min(0).max(100).optional().describe('JPEG quality 0-100 (default: 80)'),\n maxWidth: z.number().optional().describe('Max width in pixels (default: 1280)'),\n maxHeight: z.number().optional().describe('Max height in pixels (default: 720)'),\n everyNthFrame: z.number().optional().describe('Capture every Nth frame (default: 1)'),\n});\n\n/** Browser config: serializable browser configuration for stored agents */\nconst browserConfigSchema = z.object({\n provider: z.string().describe('Browser provider type (e.g., stagehand, playwright)'),\n headless: z.boolean().optional().describe('Run browser in headless mode (default: true)'),\n viewport: z\n .object({\n width: z.number().describe('Viewport width in pixels'),\n height: z.number().describe('Viewport height in pixels'),\n })\n .optional()\n .describe('Browser viewport dimensions'),\n timeout: z.number().optional().describe('Default timeout in milliseconds (default: 10000)'),\n screencast: screencastOptionsSchema.optional().describe('Screencast options for streaming browser frames'),\n});\n\n/** Browser reference: inline browser configuration */\nconst browserRefSchema = z.object({\n type: z.literal('inline'),\n config: browserConfigSchema,\n});\n\n/**\n * Processor phase enum matching ProcessorPhase type\n */\nconst processorPhaseSchema = z.enum([\n 'processInput',\n 'processInputStep',\n 'processOutputStream',\n 'processOutputResult',\n 'processOutputStep',\n]);\n\n/**\n * A single processor step in a stored processor graph.\n */\nconst processorGraphStepSchema = z.object({\n id: z.string().describe('Unique ID for this step within the graph'),\n providerId: z.string().describe('ProcessorProvider ID that creates this processor'),\n config: z.record(z.string(), z.unknown()).describe('Configuration matching the provider configSchema'),\n enabledPhases: z.array(processorPhaseSchema).min(1).describe('Which processor phases to enable'),\n});\n\n/**\n * Processor graph entry schema.\n * Simplified version of SerializedStepFlowEntry, supporting step, parallel, and conditional.\n *\n * Uses a fixed nesting depth (3 levels) to avoid infinite recursion\n * when converting to JSON Schema / OpenAPI.\n */\n\n/** Depth 3 (leaf): only step entries allowed */\nconst processorGraphEntryDepth3 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n]);\n\n/** Depth 2: step, parallel, and conditional — children limited to depth 3 */\nconst processorGraphEntryDepth2 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth3)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth3),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/** Depth 1 (top-level): step, parallel, and conditional — children limited to depth 2 */\nconst processorGraphEntrySchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth2)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth2),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/**\n * A stored processor graph representing a pipeline of processors.\n */\nconst storedProcessorGraphSchema = z.object({\n steps: z.array(processorGraphEntrySchema).describe('Ordered list of processor graph entries'),\n});\n\n/**\n * Agent snapshot config fields (name, description, instructions, model, tools, etc.)\n * These live in version snapshots, not on the thin agent record.\n *\n * Fields that support conditional variants (StorageConditionalField) can be either\n * a static value OR an array of { value, rules? } variants evaluated at request time.\n */\nconst snapshotConfigSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables for conditional rule evaluation'),\n});\n\n/**\n * Agent metadata fields (authorId, metadata, visibility) that live on the thin agent record.\n */\nconst agentMetadataSchema = z.object({\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n});\n\n/**\n * Snapshot config schema for create where `model` is optional. When omitted, the\n * builder applies `defaults.model` from `/editor/builder/settings` server-side.\n */\nconst snapshotConfigCreateSchema = snapshotConfigSchema.extend({\n model: conditionalFieldSchema(modelConfigSchema)\n .optional()\n .describe(\n 'Model configuration — static value or array of conditional variants. ' +\n 'When omitted, the builder default model is applied server-side.',\n ),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n * Flat union of agent-record fields + config fields\n * The id is optional — if not provided, it will be derived from the agent name via slugify.\n */\nexport const createStoredAgentBodySchema = z\n .object({\n id: z.string().optional().describe('Unique identifier for the agent. If not provided, derived from name.'),\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n })\n .merge(snapshotConfigCreateSchema);\n\n/**\n * Snapshot config schema for updates where nullable fields (like memory) can be set to null to clear them.\n */\nconst snapshotConfigUpdateSchema = snapshotConfigSchema.extend({\n memory: z\n .union([conditionalFieldSchema(serializedMemoryConfigSchema), z.null()])\n .optional()\n .describe('Memory configuration — static, conditional, or null to disable memory'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n * Optional metadata-level fields + optional config fields\n */\nexport const updateStoredAgentBodySchema = agentMetadataSchema\n .partial()\n .merge(snapshotConfigUpdateSchema.partial())\n .extend({\n changeMessage: z\n .string()\n .trim()\n .max(500)\n .optional()\n .describe('Optional message describing the changes for the auto-created version'),\n });\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Stored agent object schema (resolved response: thin record + version config)\n * Represents StorageResolvedAgentType\n */\nexport const storedAgentSchema = z.object({\n // Thin agent record fields\n id: z.string(),\n status: z.string().describe('Agent status: draft or published'),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n favoriteCount: z.number().int().nonnegative().optional().describe('Number of users who have favorited this agent'),\n isFavorited: z.boolean().optional().describe('Whether the requesting user has favorited this agent'),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n // Version snapshot config fields (resolved from active version)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n *\n * The response can be either:\n * 1. A thin agent record (no version) - only has id, status, dates, etc.\n * 2. A resolved agent (with version) - has all config fields from the version\n *\n * We use a union to handle both cases properly.\n */\nexport const updateStoredAgentResponseSchema = z.union([\n // Thin agent record (no version config)\n z.object({\n id: z.string(),\n status: z.string(),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n }),\n // Resolved agent (thin record + version config)\n storedAgentSchema,\n]);\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n// ============================================================================\n// Preview Instructions Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const previewInstructionsBodySchema = z.object({\n blocks: z.array(agentInstructionBlockSchema).describe('Array of instruction blocks to resolve'),\n context: z\n .record(z.string(), z.unknown())\n .optional()\n .default({})\n .describe('Request context for variable interpolation and rule evaluation'),\n});\n\n/**\n * Response for POST /stored/agents/preview-instructions\n */\nexport const previewInstructionsResponseSchema = z.object({\n result: z.string().describe('The resolved instructions string'),\n});\n\n/**\n * Exported for use in agent-versions.ts schemas\n */\nexport {\n snapshotConfigSchema,\n scorerConfigSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n storedProcessorGraphSchema,\n processorGraphStepSchema,\n processorGraphEntrySchema,\n processorPhaseSchema,\n toolConfigSchema,\n toolsConfigSchema,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/memory-config.ts","../src/server/schemas/stored-agents.ts"],"names":["z","snapshotConfigSchema"],"mappings":"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","file":"chunk-PN3LDOLZ.js","sourcesContent":["import { z } from 'zod/v4';\n\n/**\n * Shared memory configuration schemas for agent storage\n * These schemas match the SerializedMemoryConfig type from @mastra/core\n */\n\n/**\n * Semantic recall configuration for vector-based memory retrieval\n */\nexport const semanticRecallSchema = z.object({\n topK: z.number().describe('Number of semantically similar messages to retrieve'),\n messageRange: z\n .union([\n z.number(),\n z.object({\n before: z.number(),\n after: z.number(),\n }),\n ])\n .describe('Amount of surrounding context to include with each retrieved message'),\n scope: z.enum(['thread', 'resource']).optional().describe('Scope for semantic search queries'),\n threshold: z.number().min(0).max(1).optional().describe('Minimum similarity score threshold'),\n indexName: z.string().optional().describe('Index name for the vector store'),\n});\n\n/**\n * Title generation configuration\n * When stored, the model is serialized as a ModelRouterModelId string (provider/model-name format)\n */\nexport const titleGenerationSchema = z.union([\n z.boolean(),\n z.object({\n model: z.string().describe('Model ID in format provider/model-name (ModelRouterModelId)'),\n instructions: z.string().optional().describe('Custom instructions for title generation'),\n }),\n]);\n\n/**\n * Observation step configuration for observational memory\n */\nexport const serializedObservationConfigSchema = z.object({\n model: z.string().optional().describe('Observer model ID'),\n messageTokens: z.number().optional().describe('Token threshold that triggers observation'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n maxTokensPerBatch: z.number().optional().describe('Maximum tokens per batch'),\n bufferTokens: z\n .union([z.number(), z.literal(false)])\n .optional()\n .describe('Async buffering interval or false'),\n bufferActivation: z.number().optional().describe('Ratio of buffered observations to activate'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n});\n\n/**\n * Reflection step configuration for observational memory\n */\nexport const serializedReflectionConfigSchema = z.object({\n model: z.string().optional().describe('Reflector model ID'),\n observationTokens: z.number().optional().describe('Token threshold that triggers reflection'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n bufferActivation: z.number().optional().describe('Ratio for async reflection buffering'),\n});\n\n/**\n * Serialized observational memory configuration\n */\nexport const serializedObservationalMemoryConfigObjectSchema = z.object({\n model: z.string().optional().describe('Model ID for both Observer and Reflector'),\n scope: z.enum(['resource', 'thread']).optional().describe('Memory scope'),\n shareTokenBudget: z.boolean().optional().describe('Share token budget between messages and observations'),\n observation: serializedObservationConfigSchema.optional().describe('Observation step configuration'),\n reflection: serializedReflectionConfigSchema.optional().describe('Reflection step configuration'),\n});\n\nexport const serializedObservationalMemoryConfigSchema = z.union([\n z.boolean(),\n serializedObservationalMemoryConfigObjectSchema,\n]);\n\n/**\n * Serialized memory configuration matching SerializedMemoryConfig from @mastra/core\n *\n * Note: workingMemory and threads are omitted as they are not part of SerializedMemoryConfig\n * @see packages/core/src/memory/types.ts\n */\nexport const serializedMemoryConfigSchema = z\n .object({\n vector: z\n .union([z.string(), z.literal(false)])\n .optional()\n .describe('Vector database identifier or false to disable'),\n options: z\n .object({\n readOnly: z.boolean().optional(),\n lastMessages: z.union([z.number(), z.literal(false)]).optional(),\n semanticRecall: z.union([z.boolean(), semanticRecallSchema]).optional(),\n generateTitle: titleGenerationSchema.optional(),\n })\n .optional()\n .describe('Memory behavior configuration, excluding workingMemory and threads'),\n embedder: z\n .string()\n .optional()\n .describe('Embedding model ID in the format \"provider/model\" (e.g., \"openai/text-embedding-3-small\")'),\n embedderOptions: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Options to pass to the embedder, omitting telemetry'),\n observationalMemory: serializedObservationalMemoryConfigSchema\n .optional()\n .describe('Serialized observational memory configuration'),\n })\n .refine(\n data => {\n // If semanticRecall is enabled (true or object), both vector and embedder are required\n const semanticRecall = data.options?.semanticRecall;\n const semanticRecallEnabled =\n semanticRecall === true || (typeof semanticRecall === 'object' && semanticRecall !== null);\n\n if (semanticRecallEnabled) {\n // vector must be a string (not false or undefined)\n const hasVector = typeof data.vector === 'string' && data.vector.length > 0;\n // embedder must be defined\n const hasEmbedder = typeof data.embedder === 'string' && data.embedder.length > 0;\n\n return hasVector && hasEmbedder;\n }\n return true;\n },\n {\n message: 'Semantic recall requires both vector and embedder to be configured',\n path: ['options', 'semanticRecall'],\n },\n );\n","import { z } from 'zod/v4';\nimport { paginationInfoSchema, createPagePaginationSchema, statusQuerySchema } from './common';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport { ruleGroupSchema } from './rule-group';\nimport { workspaceSnapshotConfigSchema } from './stored-workspaces';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\nexport { statusQuerySchema };\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Filter agents by status (defaults to published)'),\n authorId: z.string().optional().describe('Filter agents by author identifier'),\n visibility: z.enum(['public']).optional().describe('Filter to only public agents'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n favoritedOnly: z\n .stringbool()\n .optional()\n .describe('When true, return only agents favorited by the caller (requires the `favorites` EE feature)'),\n pinFavoritedFor: z\n .string()\n .optional()\n .describe(\n 'When set, treat the given subject (user/role) as the favoriting principal for `favoritedOnly` instead of the caller',\n ),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling and rules\n */\nconst scorerConfigSchema = z.object({\n description: z.string().optional(),\n sampling: z\n .union([\n z.object({ type: z.literal('none') }),\n z.object({ type: z.literal('ratio'), rate: z.number().min(0).max(1) }),\n ])\n .optional(),\n rules: ruleGroupSchema.optional(),\n});\n\n/**\n * Agent instruction block schema for prompt-block-based instructions.\n */\nconst agentInstructionBlockSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), content: z.string() }),\n z.object({ type: z.literal('prompt_block_ref'), id: z.string() }),\n z.object({ type: z.literal('prompt_block'), content: z.string(), rules: ruleGroupSchema.optional() }),\n]);\n\n/**\n * Creates a schema for a field that can be either a static value or an array of conditional variants.\n * Each variant has a `value` and an optional `rules` (RuleGroup) that determines when it applies.\n */\nfunction conditionalFieldSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n const variantSchema = z.object({\n value: valueSchema,\n rules: ruleGroupSchema.optional(),\n });\n return z.union([valueSchema, z.array(variantSchema)]);\n}\n\n/**\n * Instructions can be a plain string or an array of instruction blocks (text + prompt_block references).\n */\nexport const instructionsSchema = z\n .union([z.string(), z.array(agentInstructionBlockSchema)])\n .describe('System instructions for the agent (string or array of instruction blocks)');\n\n/** Base model config schema (reused across snapshot and response schemas) */\nconst modelConfigSchema = z\n .object({\n provider: z.string().describe('Model provider (e.g., openai, anthropic)'),\n name: z.string().describe('Model name (e.g., gpt-4o, claude-3-opus)'),\n })\n .passthrough();\n\n/** Per-tool config schema */\nconst toolConfigSchema = z.object({ description: z.string().optional(), rules: ruleGroupSchema.optional() });\n\n/** Base tools config schema */\nconst toolsConfigSchema = z.record(z.string(), toolConfigSchema);\n\n/** MCP client tools config schema — specifies which tools to use from an MCP client/server */\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n/** Per-skill config schema */\nconst skillConfigSchema = z.object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n pin: z.string().optional(),\n strategy: z.enum(['latest', 'live']).optional(),\n});\n\n/** Skills config: skill IDs mapped to per-skill config */\nconst skillsConfigSchema = z.record(z.string(), skillConfigSchema);\n\n/** Workspace reference: either a stored workspace ID or an inline config */\nconst workspaceRefSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('id'), workspaceId: z.string() }),\n z.object({ type: z.literal('inline'), config: workspaceSnapshotConfigSchema }),\n]);\n\n/** Screencast options for streaming browser frames */\nconst screencastOptionsSchema = z.object({\n format: z.enum(['jpeg', 'png']).optional().describe('Image format (default: jpeg)'),\n quality: z.number().min(0).max(100).optional().describe('JPEG quality 0-100 (default: 80)'),\n maxWidth: z.number().optional().describe('Max width in pixels (default: 1280)'),\n maxHeight: z.number().optional().describe('Max height in pixels (default: 720)'),\n everyNthFrame: z.number().optional().describe('Capture every Nth frame (default: 1)'),\n});\n\n/** Browser config: serializable browser configuration for stored agents */\nconst browserConfigSchema = z.object({\n provider: z.string().describe('Browser provider type (e.g., stagehand, playwright)'),\n headless: z.boolean().optional().describe('Run browser in headless mode (default: true)'),\n viewport: z\n .object({\n width: z.number().describe('Viewport width in pixels'),\n height: z.number().describe('Viewport height in pixels'),\n })\n .optional()\n .describe('Browser viewport dimensions'),\n timeout: z.number().optional().describe('Default timeout in milliseconds (default: 10000)'),\n screencast: screencastOptionsSchema.optional().describe('Screencast options for streaming browser frames'),\n});\n\n/** Browser reference: inline browser configuration */\nconst browserRefSchema = z.object({\n type: z.literal('inline'),\n config: browserConfigSchema,\n});\n\n/**\n * Processor phase enum matching ProcessorPhase type\n */\nconst processorPhaseSchema = z.enum([\n 'processInput',\n 'processInputStep',\n 'processOutputStream',\n 'processOutputResult',\n 'processOutputStep',\n]);\n\n/**\n * A single processor step in a stored processor graph.\n */\nconst processorGraphStepSchema = z.object({\n id: z.string().describe('Unique ID for this step within the graph'),\n providerId: z.string().describe('ProcessorProvider ID that creates this processor'),\n config: z.record(z.string(), z.unknown()).describe('Configuration matching the provider configSchema'),\n enabledPhases: z.array(processorPhaseSchema).min(1).describe('Which processor phases to enable'),\n});\n\n/**\n * Processor graph entry schema.\n * Simplified version of SerializedStepFlowEntry, supporting step, parallel, and conditional.\n *\n * Uses a fixed nesting depth (3 levels) to avoid infinite recursion\n * when converting to JSON Schema / OpenAPI.\n */\n\n/** Depth 3 (leaf): only step entries allowed */\nconst processorGraphEntryDepth3 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n]);\n\n/** Depth 2: step, parallel, and conditional — children limited to depth 3 */\nconst processorGraphEntryDepth2 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth3)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth3),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/** Depth 1 (top-level): step, parallel, and conditional — children limited to depth 2 */\nconst processorGraphEntrySchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth2)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth2),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/**\n * A stored processor graph representing a pipeline of processors.\n */\nconst storedProcessorGraphSchema = z.object({\n steps: z.array(processorGraphEntrySchema).describe('Ordered list of processor graph entries'),\n});\n\n/**\n * Agent snapshot config fields (name, description, instructions, model, tools, etc.)\n * These live in version snapshots, not on the thin agent record.\n *\n * Fields that support conditional variants (StorageConditionalField) can be either\n * a static value OR an array of { value, rules? } variants evaluated at request time.\n */\nconst snapshotConfigSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables for conditional rule evaluation'),\n});\n\n/**\n * Agent metadata fields (authorId, metadata, visibility) that live on the thin agent record.\n */\nconst agentMetadataSchema = z.object({\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n});\n\n/**\n * Snapshot config schema for create where `model` is optional. When omitted, the\n * builder applies `defaults.model` from `/editor/builder/settings` server-side.\n */\nconst snapshotConfigCreateSchema = snapshotConfigSchema.extend({\n model: conditionalFieldSchema(modelConfigSchema)\n .optional()\n .describe(\n 'Model configuration — static value or array of conditional variants. ' +\n 'When omitted, the builder default model is applied server-side.',\n ),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n * Flat union of agent-record fields + config fields\n * The id is optional — if not provided, it will be derived from the agent name via slugify.\n */\nexport const createStoredAgentBodySchema = z\n .object({\n id: z.string().optional().describe('Unique identifier for the agent. If not provided, derived from name.'),\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n })\n .merge(snapshotConfigCreateSchema);\n\n/**\n * Snapshot config schema for updates where nullable fields (like memory) can be set to null to clear them.\n */\nconst snapshotConfigUpdateSchema = snapshotConfigSchema.extend({\n memory: z\n .union([conditionalFieldSchema(serializedMemoryConfigSchema), z.null()])\n .optional()\n .describe('Memory configuration — static, conditional, or null to disable memory'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n * Optional metadata-level fields + optional config fields\n */\nexport const updateStoredAgentBodySchema = agentMetadataSchema\n .partial()\n .merge(snapshotConfigUpdateSchema.partial())\n .extend({\n changeMessage: z\n .string()\n .trim()\n .max(500)\n .optional()\n .describe('Optional message describing the changes for the auto-created version'),\n });\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Stored agent object schema (resolved response: thin record + version config)\n * Represents StorageResolvedAgentType\n */\nexport const storedAgentSchema = z.object({\n // Thin agent record fields\n id: z.string(),\n status: z.string().describe('Agent status: draft or published'),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n favoriteCount: z.number().int().nonnegative().optional().describe('Number of users who have favorited this agent'),\n isFavorited: z.boolean().optional().describe('Whether the requesting user has favorited this agent'),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n // Version snapshot config fields (resolved from active version)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n *\n * The response can be either:\n * 1. A thin agent record (no version) - only has id, status, dates, etc.\n * 2. A resolved agent (with version) - has all config fields from the version\n *\n * We use a union to handle both cases properly.\n */\nexport const updateStoredAgentResponseSchema = z.union([\n // Thin agent record (no version config)\n z.object({\n id: z.string(),\n status: z.string(),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n }),\n // Resolved agent (thin record + version config)\n storedAgentSchema,\n]);\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n// ============================================================================\n// Preview Instructions Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const previewInstructionsBodySchema = z.object({\n blocks: z.array(agentInstructionBlockSchema).describe('Array of instruction blocks to resolve'),\n context: z\n .record(z.string(), z.unknown())\n .optional()\n .default({})\n .describe('Request context for variable interpolation and rule evaluation'),\n});\n\n/**\n * Response for POST /stored/agents/preview-instructions\n */\nexport const previewInstructionsResponseSchema = z.object({\n result: z.string().describe('The resolved instructions string'),\n});\n\n/**\n * Exported for use in agent-versions.ts schemas\n */\nexport {\n snapshotConfigSchema,\n scorerConfigSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n storedProcessorGraphSchema,\n processorGraphStepSchema,\n processorGraphEntrySchema,\n processorPhaseSchema,\n toolConfigSchema,\n toolsConfigSchema,\n};\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveAuthorFilter, matchesAuthorFilter, assertReadAccess, getCallerAuthorId, assertWriteAccess } from './chunk-7U7OWTR2.js';
|
|
2
|
+
import { listStoredWorkspacesResponseSchema, listStoredWorkspacesQuerySchema, getStoredWorkspaceResponseSchema, storedWorkspaceIdPathParams, createStoredWorkspaceResponseSchema, createStoredWorkspaceBodySchema, updateStoredWorkspaceResponseSchema, updateStoredWorkspaceBodySchema, deleteStoredWorkspaceResponseSchema } from './chunk-64QFFUEH.js';
|
|
2
3
|
import { getStoredResourceScope, scopeStoredResourceMetadata, assertStoredResourceScope, toSlug } from './chunk-Z7WKF2EJ.js';
|
|
3
4
|
import { handleError } from './chunk-GA4BG5JK.js';
|
|
4
5
|
import { createRoute } from './chunk-G6NTGBOW.js';
|
|
@@ -25,16 +26,22 @@ var LIST_STORED_WORKSPACES_ROUTE = createRoute({
|
|
|
25
26
|
if (!workspaceStore) {
|
|
26
27
|
throw new HTTPException(500, { message: "Workspaces storage domain is not available" });
|
|
27
28
|
}
|
|
29
|
+
const filter = resolveAuthorFilter({
|
|
30
|
+
requestContext,
|
|
31
|
+
resource: "stored-workspaces",
|
|
32
|
+
queryAuthorId: authorId
|
|
33
|
+
});
|
|
28
34
|
const scope = await getStoredResourceScope(mastra, requestContext);
|
|
29
35
|
const result = await workspaceStore.listResolved({
|
|
30
36
|
page,
|
|
31
37
|
perPage,
|
|
32
38
|
orderBy,
|
|
33
|
-
authorId,
|
|
39
|
+
authorId: filter.kind === "exact" ? filter.authorId : void 0,
|
|
34
40
|
metadata: scopeStoredResourceMetadata(metadata, scope)
|
|
35
41
|
});
|
|
42
|
+
const visibleWorkspaces = result.workspaces.filter((record) => matchesAuthorFilter(record, filter));
|
|
36
43
|
const runtimeWorkspaces = mastra.listWorkspaces();
|
|
37
|
-
const workspaces =
|
|
44
|
+
const workspaces = visibleWorkspaces.map((ws) => ({
|
|
38
45
|
...ws,
|
|
39
46
|
runtimeRegistered: ws.id in runtimeWorkspaces
|
|
40
47
|
}));
|
|
@@ -69,6 +76,12 @@ var GET_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
69
76
|
throw new HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });
|
|
70
77
|
}
|
|
71
78
|
assertStoredResourceScope(workspace, await getStoredResourceScope(mastra, requestContext));
|
|
79
|
+
assertReadAccess({
|
|
80
|
+
requestContext,
|
|
81
|
+
resource: "stored-workspaces",
|
|
82
|
+
resourceId: storedWorkspaceId,
|
|
83
|
+
record: workspace
|
|
84
|
+
});
|
|
72
85
|
return workspace;
|
|
73
86
|
} catch (error) {
|
|
74
87
|
return handleError(error, "Error getting stored workspace");
|
|
@@ -88,7 +101,6 @@ var CREATE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
88
101
|
handler: async ({
|
|
89
102
|
mastra,
|
|
90
103
|
id: providedId,
|
|
91
|
-
authorId,
|
|
92
104
|
metadata,
|
|
93
105
|
name,
|
|
94
106
|
description,
|
|
@@ -121,6 +133,7 @@ var CREATE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
121
133
|
if (existing) {
|
|
122
134
|
throw new HTTPException(409, { message: `Workspace with id ${id} already exists` });
|
|
123
135
|
}
|
|
136
|
+
const authorId = getCallerAuthorId(requestContext) ?? void 0;
|
|
124
137
|
await workspaceStore.create({
|
|
125
138
|
workspace: {
|
|
126
139
|
id,
|
|
@@ -163,7 +176,6 @@ var UPDATE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
163
176
|
mastra,
|
|
164
177
|
storedWorkspaceId,
|
|
165
178
|
// Metadata-level fields
|
|
166
|
-
authorId,
|
|
167
179
|
metadata,
|
|
168
180
|
// Config fields (snapshot-level)
|
|
169
181
|
name,
|
|
@@ -193,10 +205,16 @@ var UPDATE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
193
205
|
}
|
|
194
206
|
const scope = await getStoredResourceScope(mastra, requestContext);
|
|
195
207
|
assertStoredResourceScope(existing, scope);
|
|
208
|
+
assertWriteAccess({
|
|
209
|
+
requestContext,
|
|
210
|
+
resource: "stored-workspaces",
|
|
211
|
+
resourceId: storedWorkspaceId,
|
|
212
|
+
action: "edit",
|
|
213
|
+
record: existing
|
|
214
|
+
});
|
|
196
215
|
const scopedMetadata = metadata !== void 0 ? scopeStoredResourceMetadata({ ...existing.metadata ?? {}, ...metadata }, scope) : void 0;
|
|
197
216
|
const updateInput = { id: storedWorkspaceId };
|
|
198
217
|
const candidate = {
|
|
199
|
-
authorId,
|
|
200
218
|
...scopedMetadata !== void 0 ? { metadata: scopedMetadata } : {},
|
|
201
219
|
name,
|
|
202
220
|
description,
|
|
@@ -248,6 +266,13 @@ var DELETE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
248
266
|
throw new HTTPException(404, { message: `Stored workspace with id ${storedWorkspaceId} not found` });
|
|
249
267
|
}
|
|
250
268
|
assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));
|
|
269
|
+
assertWriteAccess({
|
|
270
|
+
requestContext,
|
|
271
|
+
resource: "stored-workspaces",
|
|
272
|
+
resourceId: storedWorkspaceId,
|
|
273
|
+
action: "delete",
|
|
274
|
+
record: existing
|
|
275
|
+
});
|
|
251
276
|
await workspaceStore.delete(storedWorkspaceId);
|
|
252
277
|
return {
|
|
253
278
|
success: true,
|
|
@@ -260,5 +285,5 @@ var DELETE_STORED_WORKSPACE_ROUTE = createRoute({
|
|
|
260
285
|
});
|
|
261
286
|
|
|
262
287
|
export { CREATE_STORED_WORKSPACE_ROUTE, DELETE_STORED_WORKSPACE_ROUTE, GET_STORED_WORKSPACE_ROUTE, LIST_STORED_WORKSPACES_ROUTE, UPDATE_STORED_WORKSPACE_ROUTE };
|
|
263
|
-
//# sourceMappingURL=chunk-
|
|
264
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-PVFTLKPE.js.map
|
|
289
|
+
//# sourceMappingURL=chunk-PVFTLKPE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-workspaces.ts"],"names":[],"mappings":"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","file":"chunk-PVFTLKPE.js","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"]}
|