@mastra/server 1.42.0-alpha.1 → 1.42.0-alpha.3
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 +38 -0
- package/dist/{api-schema-manifest-JOBIIRJT.cjs → api-schema-manifest-HYO7FJWX.cjs} +4 -4
- package/dist/{api-schema-manifest-JOBIIRJT.cjs.map → api-schema-manifest-HYO7FJWX.cjs.map} +1 -1
- package/dist/{api-schema-manifest-FNPX4CIO.js → api-schema-manifest-PM5DJ67P.js} +3 -3
- package/dist/{api-schema-manifest-FNPX4CIO.js.map → api-schema-manifest-PM5DJ67P.js.map} +1 -1
- package/dist/{chunk-HLP25TJE.cjs → chunk-34CXJCW6.cjs} +5 -5
- package/dist/{chunk-HLP25TJE.cjs.map → chunk-34CXJCW6.cjs.map} +1 -1
- package/dist/{chunk-C7I2QUNB.cjs → chunk-3SZS6A34.cjs} +3 -3
- package/dist/{chunk-C7I2QUNB.cjs.map → chunk-3SZS6A34.cjs.map} +1 -1
- package/dist/{chunk-A4PMW64L.js → chunk-3XKDVCIP.js} +3 -3
- package/dist/{chunk-A4PMW64L.js.map → chunk-3XKDVCIP.js.map} +1 -1
- package/dist/{chunk-ELK6U3BT.js → chunk-4GK7UEOF.js} +3 -3
- package/dist/{chunk-ELK6U3BT.js.map → chunk-4GK7UEOF.js.map} +1 -1
- package/dist/{chunk-FU6HBLCV.js → chunk-6IYRTJAM.js} +3 -3
- package/dist/{chunk-FU6HBLCV.js.map → chunk-6IYRTJAM.js.map} +1 -1
- package/dist/{chunk-EBNFYJOD.js → chunk-7CNI6HVA.js} +5 -5
- package/dist/{chunk-EBNFYJOD.js.map → chunk-7CNI6HVA.js.map} +1 -1
- package/dist/{chunk-7H4IZVJL.cjs → chunk-7FCDZBRJ.cjs} +3 -3
- package/dist/{chunk-7H4IZVJL.cjs.map → chunk-7FCDZBRJ.cjs.map} +1 -1
- package/dist/{chunk-PUNYS4VL.cjs → chunk-7OJ75STQ.cjs} +21 -21
- package/dist/{chunk-PUNYS4VL.cjs.map → chunk-7OJ75STQ.cjs.map} +1 -1
- package/dist/{chunk-357JDXKS.cjs → chunk-7OWSBMQT.cjs} +50 -33
- package/dist/chunk-7OWSBMQT.cjs.map +1 -0
- package/dist/{chunk-RZ5KYTQB.cjs → chunk-ADW6D5RD.cjs} +4 -4
- package/dist/{chunk-RZ5KYTQB.cjs.map → chunk-ADW6D5RD.cjs.map} +1 -1
- package/dist/{chunk-34IKPXUL.js → chunk-AFQ3OCPR.js} +4 -4
- package/dist/{chunk-34IKPXUL.js.map → chunk-AFQ3OCPR.js.map} +1 -1
- package/dist/{chunk-SEVIFRHN.js → chunk-AQ7EVXCZ.js} +25 -25
- package/dist/{chunk-SEVIFRHN.js.map → chunk-AQ7EVXCZ.js.map} +1 -1
- package/dist/{chunk-Y7ET562G.cjs → chunk-AW7D2YUT.cjs} +6 -6
- package/dist/{chunk-Y7ET562G.cjs.map → chunk-AW7D2YUT.cjs.map} +1 -1
- package/dist/{chunk-UQGNAEQK.cjs → chunk-BTBUILA3.cjs} +169 -169
- package/dist/{chunk-UQGNAEQK.cjs.map → chunk-BTBUILA3.cjs.map} +1 -1
- package/dist/{chunk-J2SGIUA6.cjs → chunk-BVLZQ7YB.cjs} +3 -3
- package/dist/{chunk-J2SGIUA6.cjs.map → chunk-BVLZQ7YB.cjs.map} +1 -1
- package/dist/{chunk-KWZXKGHG.cjs → chunk-CSDD3WKD.cjs} +5 -5
- package/dist/{chunk-KWZXKGHG.cjs.map → chunk-CSDD3WKD.cjs.map} +1 -1
- package/dist/{chunk-K5ANQB3I.cjs → chunk-F3SWX6WJ.cjs} +3 -3
- package/dist/{chunk-K5ANQB3I.cjs.map → chunk-F3SWX6WJ.cjs.map} +1 -1
- package/dist/{chunk-MPTVGRNM.cjs → chunk-HZB2CRC6.cjs} +4 -4
- package/dist/{chunk-MPTVGRNM.cjs.map → chunk-HZB2CRC6.cjs.map} +1 -1
- package/dist/{chunk-WAKRVERW.cjs → chunk-JRPPHAGE.cjs} +4 -4
- package/dist/{chunk-WAKRVERW.cjs.map → chunk-JRPPHAGE.cjs.map} +1 -1
- package/dist/{chunk-AEH5OCIH.js → chunk-K3SHMUQG.js} +3 -3
- package/dist/{chunk-AEH5OCIH.js.map → chunk-K3SHMUQG.js.map} +1 -1
- package/dist/chunk-KLV64VVH.js +63 -0
- package/dist/chunk-KLV64VVH.js.map +1 -0
- package/dist/{chunk-65NVES6T.js → chunk-KPAAQAZX.js} +3 -3
- package/dist/{chunk-65NVES6T.js.map → chunk-KPAAQAZX.js.map} +1 -1
- package/dist/{chunk-V2DJWWQ4.js → chunk-L4Z7J32P.js} +3 -3
- package/dist/{chunk-V2DJWWQ4.js.map → chunk-L4Z7J32P.js.map} +1 -1
- package/dist/{chunk-2XF6I7XI.js → chunk-LHLSK2AE.js} +4 -4
- package/dist/{chunk-2XF6I7XI.js.map → chunk-LHLSK2AE.js.map} +1 -1
- package/dist/chunk-M3UP3Z3G.cjs +66 -0
- package/dist/chunk-M3UP3Z3G.cjs.map +1 -0
- package/dist/{chunk-MWGAQKBU.js → chunk-MOCFYZKQ.js} +27 -10
- package/dist/chunk-MOCFYZKQ.js.map +1 -0
- package/dist/{chunk-ZIWTQGJV.cjs → chunk-MPJDL7M4.cjs} +20 -20
- package/dist/{chunk-ZIWTQGJV.cjs.map → chunk-MPJDL7M4.cjs.map} +1 -1
- package/dist/{chunk-V4G7MSFL.js → chunk-O3QIULED.js} +3 -3
- package/dist/{chunk-V4G7MSFL.js.map → chunk-O3QIULED.js.map} +1 -1
- package/dist/{chunk-OCWY55IQ.js → chunk-OY7BRU3T.js} +3 -3
- package/dist/{chunk-OCWY55IQ.js.map → chunk-OY7BRU3T.js.map} +1 -1
- package/dist/{chunk-YL47EAFG.js → chunk-PMMVJSIC.js} +3 -3
- package/dist/{chunk-YL47EAFG.js.map → chunk-PMMVJSIC.js.map} +1 -1
- package/dist/{chunk-KL5BVH4I.js → chunk-PWK5YPS6.js} +3 -3
- package/dist/{chunk-KL5BVH4I.js.map → chunk-PWK5YPS6.js.map} +1 -1
- package/dist/{chunk-WUPBIK5J.cjs → chunk-Q3ESI7U3.cjs} +15 -15
- package/dist/{chunk-WUPBIK5J.cjs.map → chunk-Q3ESI7U3.cjs.map} +1 -1
- package/dist/{chunk-77IY4RTO.cjs → chunk-QYI23DSK.cjs} +16 -16
- package/dist/{chunk-77IY4RTO.cjs.map → chunk-QYI23DSK.cjs.map} +1 -1
- package/dist/{chunk-IGE7NPFH.cjs → chunk-RCGUVZFM.cjs} +5 -5
- package/dist/{chunk-IGE7NPFH.cjs.map → chunk-RCGUVZFM.cjs.map} +1 -1
- package/dist/{chunk-MNQ42Q7U.cjs → chunk-RSAMJC5Y.cjs} +4 -4
- package/dist/{chunk-MNQ42Q7U.cjs.map → chunk-RSAMJC5Y.cjs.map} +1 -1
- package/dist/{chunk-ESJTIVEQ.js → chunk-SILGPCNA.js} +11 -4
- package/dist/chunk-SILGPCNA.js.map +1 -0
- package/dist/{chunk-ET7KSUVJ.cjs → chunk-SLM5OKHX.cjs} +11 -3
- package/dist/chunk-SLM5OKHX.cjs.map +1 -0
- package/dist/{chunk-3KXE2KXE.cjs → chunk-SSCEURZV.cjs} +4 -4
- package/dist/{chunk-3KXE2KXE.cjs.map → chunk-SSCEURZV.cjs.map} +1 -1
- package/dist/{chunk-2SVCL3Y5.cjs → chunk-TIIYB6H2.cjs} +4 -4
- package/dist/{chunk-2SVCL3Y5.cjs.map → chunk-TIIYB6H2.cjs.map} +1 -1
- package/dist/{chunk-LPYCF5B2.js → chunk-TYHVZSA4.js} +4 -4
- package/dist/{chunk-LPYCF5B2.js.map → chunk-TYHVZSA4.js.map} +1 -1
- package/dist/{chunk-VWFP6O2W.cjs → chunk-U5XIOTTD.cjs} +15 -15
- package/dist/{chunk-VWFP6O2W.cjs.map → chunk-U5XIOTTD.cjs.map} +1 -1
- package/dist/{chunk-6N2KFN3C.js → chunk-UB6NBWGC.js} +3 -3
- package/dist/{chunk-6N2KFN3C.js.map → chunk-UB6NBWGC.js.map} +1 -1
- package/dist/{chunk-SEAEQN2H.js → chunk-UQVZFNT2.js} +3 -3
- package/dist/{chunk-SEAEQN2H.js.map → chunk-UQVZFNT2.js.map} +1 -1
- package/dist/{chunk-UVN5RRFK.js → chunk-UTUIQVXH.js} +3 -3
- package/dist/{chunk-UVN5RRFK.js.map → chunk-UTUIQVXH.js.map} +1 -1
- package/dist/{chunk-D3DK6YLA.cjs → chunk-UW2M6ACA.cjs} +12 -12
- package/dist/{chunk-D3DK6YLA.cjs.map → chunk-UW2M6ACA.cjs.map} +1 -1
- package/dist/{chunk-AV7NYVZY.js → chunk-W6KDN66O.js} +3 -3
- package/dist/{chunk-AV7NYVZY.js.map → chunk-W6KDN66O.js.map} +1 -1
- package/dist/{chunk-45MWBL6S.cjs → chunk-WTBVC25D.cjs} +8 -8
- package/dist/{chunk-45MWBL6S.cjs.map → chunk-WTBVC25D.cjs.map} +1 -1
- package/dist/{chunk-J5VCTQGX.js → chunk-WWDHYJH6.js} +4 -4
- package/dist/{chunk-J5VCTQGX.js.map → chunk-WWDHYJH6.js.map} +1 -1
- package/dist/{chunk-UWKICBCT.cjs → chunk-XIV5JLFM.cjs} +4 -4
- package/dist/{chunk-UWKICBCT.cjs.map → chunk-XIV5JLFM.cjs.map} +1 -1
- package/dist/{chunk-B3HC2NL5.js → chunk-XVXSDMTB.js} +3 -3
- package/dist/{chunk-B3HC2NL5.js.map → chunk-XVXSDMTB.js.map} +1 -1
- package/dist/{chunk-UOQHTFYI.js → chunk-ZQ4GLVIX.js} +3 -3
- package/dist/{chunk-UOQHTFYI.js.map → chunk-ZQ4GLVIX.js.map} +1 -1
- package/dist/{chunk-QXVUGFQQ.js → chunk-ZZE7ETO3.js} +3 -3
- package/dist/{chunk-QXVUGFQQ.js.map → chunk-ZZE7ETO3.js.map} +1 -1
- package/dist/{dist-N5RWDF6U.cjs → dist-DQ2NPGYX.cjs} +3 -3
- package/dist/{dist-N5RWDF6U.cjs.map → dist-DQ2NPGYX.cjs.map} +1 -1
- package/dist/{dist-VAHX4KVD.js → dist-OTRIGGK5.js} +3 -3
- package/dist/{dist-VAHX4KVD.js.map → dist-OTRIGGK5.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +17 -17
- 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 +46 -46
- package/dist/server/handlers/agents.d.ts +12 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/author-enrichment.cjs +16 -0
- package/dist/server/handlers/author-enrichment.cjs.map +1 -0
- package/dist/server/handlers/author-enrichment.d.ts +41 -0
- package/dist/server/handlers/author-enrichment.d.ts.map +1 -0
- package/dist/server/handlers/author-enrichment.js +3 -0
- package/dist/server/handlers/author-enrichment.js.map +1 -0
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +6 -6
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +4 -4
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/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 +9 -9
- package/dist/server/handlers/stored-agents.d.ts +24 -0
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
- package/dist/server/handlers/stored-mcp-clients.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- package/dist/server/handlers/stored-prompt-blocks.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/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/workflows.cjs +27 -27
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +21 -21
- package/dist/server/handlers.js +9 -9
- package/dist/server/schemas/index.cjs +248 -244
- package/dist/server/schemas/index.js +7 -7
- package/dist/server/schemas/stored-agents.d.ts +42 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +13 -13
- package/dist/server/server-adapter/index.js +2 -2
- package/package.json +7 -7
- package/dist/chunk-357JDXKS.cjs.map +0 -1
- package/dist/chunk-ESJTIVEQ.js.map +0 -1
- package/dist/chunk-ET7KSUVJ.cjs.map +0 -1
- package/dist/chunk-MWGAQKBU.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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-ESJTIVEQ.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';\nimport { toolProvidersSchema } from './tool-providers';\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 toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\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\nexport const exportStoredAgentBodySchema = snapshotConfigUpdateSchema.partial();\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 toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\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 * Response for GET /stored/agents/:storedAgentId/dependents\n *\n * `dependents` lists caller-readable stored agents whose resolved `agents` map\n * references the target. Includes both public and the caller's own private\n * agents — anything the caller already has read access to.\n * `hiddenCount` aggregates references from agents the caller cannot read\n * (cross-workspace private agents). Only populated when the target agent is\n * public, to avoid leaking cross-workspace structure for private targets.\n */\nexport const getStoredAgentDependentsResponseSchema = z.object({\n dependents: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n hiddenCount: z.number().int().nonnegative(),\n});\n\nexport const exportStoredAgentResponseSchema = z.object({\n agentId: z.string(),\n fileName: z.string(),\n content: z.string(),\n config: z.record(z.string(), z.unknown()),\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/memory-config.ts","../src/server/schemas/stored-agents.ts"],"names":["z","createPagePaginationSchema","ruleGroupSchema","snapshotConfigSchema","defaultOptionsSchema","toolProvidersSchema","paginationInfoSchema"],"mappings":"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","file":"chunk-ET7KSUVJ.cjs","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';\nimport { toolProvidersSchema } from './tool-providers';\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 toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\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\nexport const exportStoredAgentBodySchema = snapshotConfigUpdateSchema.partial();\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 toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\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 * Response for GET /stored/agents/:storedAgentId/dependents\n *\n * `dependents` lists caller-readable stored agents whose resolved `agents` map\n * references the target. Includes both public and the caller's own private\n * agents — anything the caller already has read access to.\n * `hiddenCount` aggregates references from agents the caller cannot read\n * (cross-workspace private agents). Only populated when the target agent is\n * public, to avoid leaking cross-workspace structure for private targets.\n */\nexport const getStoredAgentDependentsResponseSchema = z.object({\n dependents: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n hiddenCount: z.number().int().nonnegative(),\n});\n\nexport const exportStoredAgentResponseSchema = z.object({\n agentId: z.string(),\n fileName: z.string(),\n content: z.string(),\n config: z.record(z.string(), z.unknown()),\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["annotated"],"mappings":"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","file":"chunk-MWGAQKBU.js","sourcesContent":["import type { StorageCreateAgentInput, StorageUpdateAgentInput } from '@mastra/core/storage';\nimport type { z } from 'zod/v4';\n\nimport { HTTPException } from '../http-exception';\nimport {\n storedAgentIdPathParams,\n statusQuerySchema,\n listStoredAgentsQuerySchema,\n createStoredAgentBodySchema,\n updateStoredAgentBodySchema,\n listStoredAgentsResponseSchema,\n getStoredAgentResponseSchema,\n createStoredAgentResponseSchema,\n updateStoredAgentResponseSchema,\n deleteStoredAgentResponseSchema,\n getStoredAgentDependentsResponseSchema,\n exportStoredAgentBodySchema,\n exportStoredAgentResponseSchema,\n previewInstructionsBodySchema,\n previewInstructionsResponseSchema,\n} from '../schemas/stored-agents';\nimport type { ServerRoute, RouteSchemas, InferParams } from '../server-adapter/routes';\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 { isBuilderFeatureEnabled } from './editor-builder';\nimport { handleError } from './error';\nimport { enrichOrStripFavorites, prepareFavoritesEnrichment, stripFavoriteFields } from './favorites-enrichment';\nimport { validateMetadataAvatarUrl } from './validate-avatar';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\n/**\n * Resolve a `browser` field that may be a boolean shorthand from the UI.\n * - `true` → look up the admin's builder default browser config\n * - `false` → `null` (explicit clear)\n * - object/null/undefined → pass through unchanged\n */\nasync function resolveBrowserField(browser: unknown, mastra: { getEditor?: () => unknown }): Promise<unknown> {\n if (browser === true) {\n const editor = mastra.getEditor?.() as any;\n const builder = await editor?.resolveBuilder?.();\n const defaultBrowser = builder?.getConfiguration?.()?.agent?.browser;\n if (!defaultBrowser) {\n console.warn(\n '[mastra:server] Browser enabled (browser: true) but no default browser config found ' +\n 'in builder configuration. The agent will be created/updated without browser access. ' +\n 'Set `editor.builder.configuration.agent.browser` to fix this.',\n );\n }\n return defaultBrowser ?? undefined;\n }\n if (browser === false) {\n return null;\n }\n return browser;\n}\n\nconst AGENT_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'instructions',\n 'model',\n 'tools',\n 'defaultOptions',\n 'workflows',\n 'agents',\n 'integrationTools',\n 'toolProviders',\n 'inputProcessors',\n 'outputProcessors',\n 'memory',\n 'scorers',\n 'requestContextSchema',\n 'mcpClients',\n 'skills',\n 'workspace',\n 'browser',\n] as const;\n\nconst CODE_AGENT_OVERRIDE_FIELDS = [\n 'instructions',\n 'tools',\n 'integrationTools',\n 'mcpClients',\n 'requestContextSchema',\n] as const;\n\n/**\n * Derive ownership flags from a code agent's editor config.\n * Mirrors the semantics of `editor.agent.applyStoredOverrides` so that\n * client save payloads, persisted snapshots, and export output all agree\n * on which fields Studio is allowed to own.\n */\nfunction getCodeAgentOwnership(editorConfig: unknown): {\n ownsInstructions: boolean;\n ownsTools: boolean;\n ownsToolDescriptionsOnly: boolean;\n} {\n if (editorConfig === false) {\n return { ownsInstructions: false, ownsTools: false, ownsToolDescriptionsOnly: false };\n }\n if (editorConfig === undefined || editorConfig === null) {\n // Legacy default: code agents without explicit editor config behave as fully editable.\n return { ownsInstructions: true, ownsTools: true, ownsToolDescriptionsOnly: false };\n }\n if (typeof editorConfig !== 'object') {\n return { ownsInstructions: false, ownsTools: false, ownsToolDescriptionsOnly: false };\n }\n const cfg = editorConfig as { instructions?: unknown; tools?: unknown };\n const ownsInstructions = cfg.instructions === true;\n const toolsCfg = cfg.tools;\n const ownsTools = toolsCfg === true;\n const ownsToolDescriptionsOnly =\n typeof toolsCfg === 'object' && toolsCfg !== null && (toolsCfg as { description?: unknown }).description === true;\n return { ownsInstructions, ownsTools, ownsToolDescriptionsOnly };\n}\n\nfunction sortForStableJson(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortForStableJson);\n }\n\n if (value && typeof value === 'object' && !(value instanceof Date)) {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .filter(([, entry]) => entry !== undefined)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entry]) => [key, sortForStableJson(entry)]),\n );\n }\n\n return value;\n}\n\nfunction buildExportConfig(\n input: Record<string, unknown>,\n agent?: { __getEditorConfig?: () => unknown; source?: string },\n) {\n const editorConfig = agent?.__getEditorConfig?.();\n const isCodeAgent = agent?.source === 'code';\n const allowedFields = isCodeAgent ? CODE_AGENT_OVERRIDE_FIELDS : AGENT_SNAPSHOT_CONFIG_FIELDS;\n const ownership = isCodeAgent ? getCodeAgentOwnership(editorConfig) : null;\n const config: Record<string, unknown> = {};\n\n for (const field of allowedFields) {\n if (input[field] === undefined) continue;\n if (ownership) {\n if (field === 'instructions' && !ownership.ownsInstructions) continue;\n if (\n (field === 'tools' || field === 'integrationTools' || field === 'mcpClients') &&\n !ownership.ownsTools &&\n !ownership.ownsToolDescriptionsOnly\n ) {\n continue;\n }\n }\n config[field] = input[field];\n }\n\n return sortForStableJson(config) as Record<string, unknown>;\n}\n\nfunction agentExportFilename(agentId: string) {\n return `${agentId}.json`;\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents - List all stored agents\n */\nexport const LIST_STORED_AGENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents',\n responseType: 'json',\n queryParamSchema: listStoredAgentsQuerySchema,\n responseSchema: listStoredAgentsResponseSchema,\n summary: 'List stored agents',\n description: 'Returns a paginated list of all agents stored in the database',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n requestContext,\n page,\n perPage,\n orderBy,\n status,\n authorId,\n visibility,\n metadata,\n favoritedOnly,\n pinFavoritedFor,\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 agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Resolve the visibility scope for this caller. Non-owner queries for\n // another author return only that author's public rows; default lists\n // return the caller's rows plus legacy unowned records.\n const filter = resolveAuthorFilter({\n requestContext,\n resource: 'stored-agents',\n queryAuthorId: authorId,\n queryVisibility: visibility === 'public' ? 'public' : undefined,\n });\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const scopedMetadata = scopeStoredResourceMetadata(metadata, scope);\n\n const callerId = getCallerAuthorId(requestContext);\n const favoritesEnabled = await isBuilderFeatureEnabled(mastra, 'favorites');\n const honoredStarredOnly = favoritesEnabled && favoritedOnly === true;\n const favoriteSubjectId = pinFavoritedFor ?? callerId;\n\n // `?favoritedOnly=true`: fetch caller's favorited IDs, then refilter + recompute total.\n if (honoredStarredOnly) {\n const effectivePerPage: number = perPage ?? 100;\n if (!favoriteSubjectId) {\n return { agents: [], total: 0, page, perPage: effectivePerPage, hasMore: false };\n }\n const favoritesStore = await storage.getStore('favorites');\n if (!favoritesStore) {\n throw new HTTPException(500, { message: 'Favorites storage domain is not available' });\n }\n const starredIds = await favoritesStore.listFavoritedIds({ userId: favoriteSubjectId, entityType: 'agent' });\n if (starredIds.length === 0) {\n return { agents: [], total: 0, page, perPage: effectivePerPage, hasMore: false };\n }\n const allMatching = await agentsStore.listResolved({\n perPage: false,\n orderBy,\n status,\n authorId: filter.kind === 'exact' ? filter.authorId : undefined,\n metadata: scopedMetadata,\n entityIds: starredIds,\n });\n const visible = allMatching.agents.filter(record => matchesAuthorFilter(record, filter));\n const total = visible.length;\n const startIdx = effectivePerPage === 0 ? 0 : page * effectivePerPage;\n const endIdx = effectivePerPage === 0 ? 0 : startIdx + effectivePerPage;\n const sliced = effectivePerPage === 0 ? [] : visible.slice(startIdx, endIdx);\n const annotated = sliced.map(record => ({ ...record, isFavorited: true }));\n const hasMore = effectivePerPage > 0 && endIdx < total;\n return { agents: annotated, total, page, perPage: effectivePerPage, hasMore };\n }\n\n const result = await agentsStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId: filter.kind === 'exact' ? filter.authorId : undefined,\n metadata: scopedMetadata,\n });\n\n // Post-filter to enforce ownership + visibility rules across all backends.\n // Storage adapters can only do an equality filter on authorId, so we apply\n // the ownedOrPublic / publicOnly logic here.\n // Note: `total` is left as the storage-reported count to keep pagination\n // math working. For `unrestricted` / `exact` filters nothing is removed.\n // For `ownedOrPublic` / `publicOnly`, downstream UIs should treat the\n // filter as a view over the caller's scope — an approximation is OK.\n const visibleAgents = result.agents.filter(record => matchesAuthorFilter(record, filter));\n\n if (!favoritesEnabled) {\n return { ...result, agents: visibleAgents.map(stripFavoriteFields) };\n }\n\n const enrichment = await prepareFavoritesEnrichment(\n mastra,\n requestContext,\n 'agent',\n visibleAgents.map(a => a.id),\n );\n const annotated = enrichment\n ? visibleAgents.map(record => ({ ...record, isFavorited: enrichment.starredIds.has(record.id) }))\n : visibleAgents.map(stripFavoriteFields);\n\n return { ...result, agents: annotated };\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\nexport const EXPORT_STORED_AGENT_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:storedAgentId/export',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: exportStoredAgentBodySchema,\n responseSchema: exportStoredAgentResponseSchema,\n summary: 'Export stored agent override JSON',\n description: 'Returns deterministic JSON for an agent configuration or code-agent override without mutating storage',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId, ...body }) => {\n try {\n const storage = mastra.getStorage();\n const agentsStore = storage ? await storage.getStore('agents') : undefined;\n const storedAgent = await agentsStore?.getByIdResolved(storedAgentId, { status: 'draft' });\n if (storedAgent) {\n assertStoredResourceScope(storedAgent, await getStoredResourceScope(mastra, requestContext));\n assertReadAccess({ requestContext, resource: 'stored-agents', resourceId: storedAgentId, record: storedAgent });\n }\n\n let codeAgent: { __getEditorConfig?: () => unknown; source?: string } | undefined;\n try {\n codeAgent = mastra.getAgentById?.(storedAgentId) as typeof codeAgent;\n } catch {\n codeAgent = undefined;\n }\n\n if (!storedAgent && !codeAgent) {\n throw new HTTPException(404, { message: `Agent with id ${storedAgentId} not found` });\n }\n\n const config = buildExportConfig(body, codeAgent);\n const content = `${JSON.stringify(config, null, 2)}\\n`;\n\n return {\n agentId: storedAgentId,\n fileName: agentExportFilename(storedAgentId),\n content,\n config,\n };\n } catch (error) {\n return handleError(error, 'Error exporting stored agent');\n }\n },\n});\n\n/**\n * GET /stored/agents/:storedAgentId - Get a stored agent by ID\n */\nexport const GET_STORED_AGENT_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredAgentResponseSchema,\n summary: 'Get stored agent by ID',\n description:\n 'Returns a specific agent from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId, status }) => {\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 agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const agent = await agentsStore.getByIdResolved(storedAgentId, { status });\n\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n assertStoredResourceScope(agent, await getStoredResourceScope(mastra, requestContext));\n\n // Throws 404 if the caller isn't the owner, admin, `stored-agents:read[:<id>]`\n // holder, and the record isn't public/legacy-unowned.\n assertReadAccess({ requestContext, resource: 'stored-agents', resourceId: storedAgentId, record: agent });\n\n return enrichOrStripFavorites(mastra, requestContext, 'agent', agent);\n } catch (error) {\n return handleError(error, 'Error getting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents - Create a new stored agent\n */\nexport const CREATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<undefined, undefined, typeof createStoredAgentBodySchema>,\n z.infer<typeof createStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<undefined, undefined, typeof createStoredAgentBodySchema, typeof createStoredAgentResponseSchema>,\n 'POST',\n '/stored/agents'\n> = createRoute({\n method: 'POST',\n path: '/stored/agents',\n responseType: 'json',\n bodySchema: createStoredAgentBodySchema,\n responseSchema: createStoredAgentResponseSchema,\n summary: 'Create stored agent',\n description: 'Creates a new agent in storage with the provided configuration',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n requestContext,\n id: providedId,\n metadata,\n visibility: bodyVisibility,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n toolProviders,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n browser,\n requestContextSchema,\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 agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents 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 agent ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if agent with this ID already exists\n const existing = await agentsStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Agent with id ${id} already exists` });\n }\n\n // Force authorId from the authenticated caller; ignore any body-provided value.\n // No owner = always public (no auth / no user context).\n // With an owner, respect the client's choice, defaulting to 'private'.\n const authorId = getCallerAuthorId(requestContext) ?? undefined;\n const visibility = authorId ? (bodyVisibility ?? 'private') : 'public';\n\n // Reject oversized avatar images before writing to storage.\n validateMetadataAvatarUrl(metadata);\n\n // Model policy enforcement is intentionally not done on save: each UI\n // surface gates its own model picker via ModelPolicyProvider, and the\n // policy is surface-scoped (builder vs editor). Re-introducing a single\n // server-side check here would either over-enforce on the editor or\n // under-enforce on the builder until per-surface enforcement lands.\n\n const resolvedBrowser = await resolveBrowserField(browser, mastra);\n\n const input = {\n id,\n authorId,\n visibility,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n toolProviders,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n browser: resolvedBrowser,\n requestContextSchema,\n } as StorageCreateAgentInput;\n\n // Use editor.agent.create() when available to apply builder defaults\n const editor = mastra.getEditor?.();\n if (editor) {\n await editor.agent.create(input);\n } else {\n // Fallback to direct storage create\n await agentsStore.create({ agent: input });\n }\n\n // Publish the initial version so the agent is immediately usable.\n // Without this, the thin record stays as status='draft' with activeVersionId=null,\n // which makes the agent unreachable via status='published' resolution.\n const { versions } = await agentsStore.listVersions({ agentId: id, perPage: 1 });\n const initialVersion = versions[0];\n if (initialVersion) {\n await agentsStore.update({\n id,\n activeVersionId: initialVersion.id,\n status: 'published',\n });\n editor?.agent.clearCache(id);\n }\n\n // Return the resolved agent (thin record + version config) using the newly published version\n const resolved = await agentsStore.getByIdResolved(id, { status: 'published' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created agent' });\n }\n\n return enrichOrStripFavorites(mastra, requestContext, 'agent', resolved);\n } catch (error) {\n return handleError(error, 'Error creating stored agent');\n }\n },\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update a stored agent\n */\nexport const UPDATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<typeof storedAgentIdPathParams, undefined, typeof updateStoredAgentBodySchema>,\n z.infer<typeof updateStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<\n typeof storedAgentIdPathParams,\n undefined,\n typeof updateStoredAgentBodySchema,\n typeof updateStoredAgentResponseSchema\n >,\n 'PATCH',\n '/stored/agents/:storedAgentId'\n> = createRoute({\n method: 'PATCH',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: updateStoredAgentBodySchema,\n responseSchema: updateStoredAgentResponseSchema,\n summary: 'Update stored agent',\n description: 'Updates an existing agent in storage with the provided fields',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n requestContext,\n storedAgentId,\n // Metadata-level fields\n authorId,\n metadata,\n visibility,\n // Config fields (snapshot-level)\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n toolProviders,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n browser,\n requestContextSchema,\n // Version metadata\n changeMessage,\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 agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} 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 `agents:edit[:<id>]` holder.\n assertWriteAccess({\n requestContext,\n resource: 'stored-agents',\n resourceId: storedAgentId,\n action: 'edit',\n record: existing,\n });\n\n // Reject oversized avatar images before writing to storage.\n validateMetadataAvatarUrl(metadata);\n\n // No owner = always public, regardless of what the client sent.\n const callerAuthorId = getCallerAuthorId(requestContext) ?? undefined;\n const resolvedVisibility = callerAuthorId ? visibility : visibility != null ? 'public' : undefined;\n\n // Model policy enforcement is intentionally not done on save: each UI\n // surface gates its own model picker via ModelPolicyProvider, and the\n // policy is surface-scoped (builder vs editor). Re-introducing a single\n // server-side check here would either over-enforce on the editor or\n // under-enforce on the builder until per-surface enforcement lands.\n\n // Resolve boolean browser shorthand from the UI\n const resolvedBrowser = await resolveBrowserField(browser, mastra);\n\n // For code-defined agents, strip fields the editor config does not allow\n // Studio to own. This keeps stored snapshots (and the per-entity files\n // they get persisted to) free of fields the server never reads back.\n let codeAgentForUpdate: { __getEditorConfig?: () => unknown; source?: string } | undefined;\n try {\n codeAgentForUpdate = mastra.getAgentById?.(storedAgentId) as typeof codeAgentForUpdate;\n } catch {\n codeAgentForUpdate = undefined;\n }\n if (codeAgentForUpdate?.source === 'code') {\n const ownership = getCodeAgentOwnership(codeAgentForUpdate.__getEditorConfig?.());\n if (!ownership.ownsInstructions) {\n instructions = undefined;\n }\n if (!ownership.ownsTools && !ownership.ownsToolDescriptionsOnly) {\n tools = undefined;\n integrationTools = undefined;\n mcpClients = undefined;\n }\n }\n\n const mergedMetadata: Record<string, unknown> = { ...(existing.metadata ?? {}), ...(metadata ?? {}) };\n const scopedMetadata = scopeStoredResourceMetadata(mergedMetadata, scope);\n\n // Update the agent with both metadata-level and config-level fields\n // The storage layer handles separating these into agent-record updates vs new-version creation\n // Cast needed because Zod's passthrough() output types don't exactly match the handwritten TS interfaces\n const updatedAgent = await agentsStore.update({\n id: storedAgentId,\n authorId,\n metadata: scopedMetadata,\n visibility: resolvedVisibility,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n toolProviders,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n browser: resolvedBrowser,\n requestContextSchema,\n } as StorageUpdateAgentInput);\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n toolProviders,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n browser: resolvedBrowser,\n requestContextSchema,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n const autoVersionResult = await handleAutoVersioning(\n agentsStore as unknown as VersionedStoreInterface,\n storedAgentId,\n 'agentId',\n AGENT_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedAgent,\n providedConfigFields,\n changeMessage ? { changeMessage } : undefined,\n );\n\n if (!autoVersionResult) {\n throw new Error('handleAutoVersioning returned undefined');\n }\n\n // In code mode, local saves should overwrite the most recent saved\n // snapshot rather than creating new draft versions on every keystroke\n // batch. Version history is intended to track commits, not raw saves.\n // We collapse the freshly created version onto the previous one by\n // deleting the prior latest version, leaving a single rolling snapshot.\n // When the user explicitly provides a changeMessage we treat that as a\n // commit and keep the new version as a discrete history entry.\n const isCodeSource = mastra.getEditor?.()?.getSource?.() === 'code';\n if (isCodeSource && autoVersionResult.versionCreated && !changeMessage) {\n const { versions } = await agentsStore.listVersions({ agentId: storedAgentId, perPage: 2 });\n const previousVersion = versions[1];\n if (previousVersion) {\n await agentsStore.deleteVersion(previousVersion.id);\n }\n }\n\n // Auto-publish: activate the latest version so the update is immediately\n // visible in list views. The Agent Builder UI has no separate \"Publish\"\n // button, so without this every edit after creation would create orphaned\n // draft versions that never surface in the list.\n // When a proper publish flow ships, this block can be removed.\n if (autoVersionResult.versionCreated) {\n const { versions } = await agentsStore.listVersions({ agentId: storedAgentId, perPage: 1 });\n const latestVersion = versions[0];\n if (latestVersion) {\n await agentsStore.update({\n id: storedAgentId,\n activeVersionId: latestVersion.id,\n });\n }\n }\n\n // Clear the cached agent instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.agent.clearCache(storedAgentId);\n }\n\n // Return the resolved agent with the latest version\n const resolved = await agentsStore.getByIdResolved(storedAgentId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated agent' });\n }\n\n return enrichOrStripFavorites(mastra, requestContext, 'agent', resolved);\n } catch (error) {\n return handleError(error, 'Error updating stored agent');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:storedAgentId - Delete a stored agent\n */\nexport const DELETE_STORED_AGENT_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: deleteStoredAgentResponseSchema,\n summary: 'Delete stored agent',\n description: 'Deletes an agent from storage by its unique identifier',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId }) => {\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 agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n // Throws 404 if the caller isn't the owner, admin, or `agents:delete[:<id>]` holder.\n assertWriteAccess({\n requestContext,\n resource: 'stored-agents',\n resourceId: storedAgentId,\n action: 'delete',\n record: existing,\n });\n\n await agentsStore.delete(storedAgentId);\n\n // Cascade: drop any favorite rows referencing this agent so they don't\n // resurrect if the same id is reused. Failure must not abort the delete.\n try {\n const favoritesStore = await storage.getStore('favorites');\n await favoritesStore?.deleteFavoritesForEntity({ entityType: 'agent', entityId: storedAgentId });\n } catch (cascadeError) {\n mastra\n .getLogger?.()\n ?.warn?.('Failed to cascade-delete favorites for agent', { storedAgentId, error: cascadeError });\n }\n\n // Clear the cached agent instance\n mastra.getEditor()?.agent.clearCache(storedAgentId);\n\n return { success: true, message: `Agent ${storedAgentId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored agent');\n }\n },\n});\n\n/**\n * GET /stored/agents/:storedAgentId/dependents - List agents that reference\n * the target agent as a sub-agent.\n *\n * Returns `dependents` for caller-visible references (named) and `hiddenCount`\n * for references from agents the caller can't read (count only, no leak).\n * `hiddenCount` is only populated when the target is public — private targets\n * can't legitimately be referenced from other workspaces.\n */\nexport const GET_STORED_AGENT_DEPENDENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:storedAgentId/dependents',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: getStoredAgentDependentsResponseSchema,\n summary: 'List dependents of a stored agent',\n description:\n 'Returns agents that reference the target as a sub-agent. Used to warn before deleting or unsharing. Caller-readable references appear in `dependents` (id + name); cross-workspace references the caller cannot read are aggregated in `hiddenCount` and only surfaced when the target is public.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId }) => {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Mirrors GET: 404 if the caller can't read the target. Prevents the\n // dependents endpoint from being usable as a sub-agent reference oracle.\n const target = await agentsStore.getById(storedAgentId);\n if (!target) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n assertStoredResourceScope(target, await getStoredResourceScope(mastra, requestContext));\n assertReadAccess({ requestContext, resource: 'stored-agents', resourceId: storedAgentId, record: target });\n\n // Full scan (no authorId filter) so a public target can detect\n // cross-workspace private dependents. We split into caller-visible\n // `dependents` vs `hiddenCount` so private agents owned by other users\n // are counted but never named.\n const filter = resolveAuthorFilter({ requestContext, resource: 'stored-agents' });\n const all = await agentsStore.listResolved({\n perPage: false,\n status: 'published',\n });\n\n const targetIsPublic = (target as { visibility?: string }).visibility === 'public';\n\n // Caller-readable dependents are surfaced by name (the caller already\n // has access to them). Cross-workspace dependents the caller cannot\n // read are aggregated into hiddenCount, only when the target is public.\n const dependents: Array<{ id: string; name: string }> = [];\n let hiddenCount = 0;\n\n for (const record of all.agents) {\n if (record.id === storedAgentId) continue;\n if (!referencesTarget((record as { agents?: unknown }).agents, storedAgentId)) continue;\n\n if (matchesAuthorFilter(record, filter)) {\n dependents.push({\n id: record.id,\n name: (record as { name?: string }).name ?? record.id,\n });\n } else if (targetIsPublic) {\n hiddenCount += 1;\n }\n // Private target: drop hidden refs silently — they shouldn't exist\n // and surfacing the count would leak cross-workspace structure.\n }\n\n return { dependents, hiddenCount };\n } catch (error) {\n return handleError(error, 'Error listing stored agent dependents');\n }\n },\n});\n\n/**\n * Does the resolved `agents` snapshot field reference `targetId`?\n * The field can be either a static `Record<string, toolConfig>` or an array of\n * conditional variants (`{ value, rules? }`). Match if any variant's value\n * (or the static object) contains a matching key.\n */\nfunction referencesTarget(subAgents: unknown, targetId: string): boolean {\n if (!subAgents) return false;\n if (Array.isArray(subAgents)) {\n return subAgents.some(variant => {\n const value = (variant as { value?: unknown })?.value;\n return Boolean(value && typeof value === 'object' && Object.prototype.hasOwnProperty.call(value, targetId));\n });\n }\n if (typeof subAgents === 'object') {\n return Object.prototype.hasOwnProperty.call(subAgents, targetId);\n }\n return false;\n}\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const PREVIEW_INSTRUCTIONS_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/preview-instructions',\n responseType: 'json',\n bodySchema: previewInstructionsBodySchema,\n responseSchema: previewInstructionsResponseSchema,\n summary: 'Preview resolved instructions',\n description:\n 'Resolves an array of instruction blocks against a request context, evaluating rules, fetching prompt block references, and rendering template variables. Returns the final concatenated instruction string.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, blocks, context }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const result = await editor.prompt.preview(blocks, context ?? {});\n\n return { result };\n } catch (error) {\n return handleError(error, 'Error previewing instructions');\n }\n },\n});\n"]}
|