@mastra/server 1.48.0-alpha.6 → 1.48.0-alpha.8

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.
Files changed (136) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/{api-schema-manifest-Q5FDXWHO.cjs → api-schema-manifest-OSFSFYKI.cjs} +4 -4
  3. package/dist/{api-schema-manifest-Q5FDXWHO.cjs.map → api-schema-manifest-OSFSFYKI.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-4VFPTKMR.js → api-schema-manifest-YKMSPSZR.js} +3 -3
  5. package/dist/{api-schema-manifest-4VFPTKMR.js.map → api-schema-manifest-YKMSPSZR.js.map} +1 -1
  6. package/dist/{chunk-FU2NIFNJ.js → chunk-2MEUH7JT.js} +3 -3
  7. package/dist/chunk-2MEUH7JT.js.map +1 -0
  8. package/dist/{chunk-MM7BEDAW.cjs → chunk-3EZOV6A3.cjs} +5 -5
  9. package/dist/{chunk-MM7BEDAW.cjs.map → chunk-3EZOV6A3.cjs.map} +1 -1
  10. package/dist/{chunk-XX5G7THL.js → chunk-3MJF6POS.js} +3 -3
  11. package/dist/{chunk-XX5G7THL.js.map → chunk-3MJF6POS.js.map} +1 -1
  12. package/dist/{chunk-U32YHG7T.js → chunk-56RJJ6PJ.js} +3 -3
  13. package/dist/{chunk-U32YHG7T.js.map → chunk-56RJJ6PJ.js.map} +1 -1
  14. package/dist/{chunk-RFJJ7ZAD.cjs → chunk-5SZOGYYO.cjs} +133 -133
  15. package/dist/{chunk-RFJJ7ZAD.cjs.map → chunk-5SZOGYYO.cjs.map} +1 -1
  16. package/dist/{chunk-JWIAPHFH.cjs → chunk-6QQ4I6IY.cjs} +11 -11
  17. package/dist/{chunk-JWIAPHFH.cjs.map → chunk-6QQ4I6IY.cjs.map} +1 -1
  18. package/dist/{chunk-ZYPEQZPE.cjs → chunk-BVMR64B7.cjs} +25 -25
  19. package/dist/{chunk-ZYPEQZPE.cjs.map → chunk-BVMR64B7.cjs.map} +1 -1
  20. package/dist/{chunk-EB6H2VVW.js → chunk-DPTBGWU7.js} +3 -3
  21. package/dist/{chunk-EB6H2VVW.js.map → chunk-DPTBGWU7.js.map} +1 -1
  22. package/dist/{chunk-SNO2CFDL.js → chunk-DX4ROVTA.js} +4 -4
  23. package/dist/{chunk-SNO2CFDL.js.map → chunk-DX4ROVTA.js.map} +1 -1
  24. package/dist/{chunk-SI63GFYM.cjs → chunk-FR5QBXVS.cjs} +4 -4
  25. package/dist/{chunk-SI63GFYM.cjs.map → chunk-FR5QBXVS.cjs.map} +1 -1
  26. package/dist/{chunk-KSYJQMJ7.js → chunk-GZUFJQ5I.js} +4 -4
  27. package/dist/{chunk-KSYJQMJ7.js.map → chunk-GZUFJQ5I.js.map} +1 -1
  28. package/dist/{chunk-OC4S3EDO.js → chunk-I2LG5WYB.js} +3 -3
  29. package/dist/chunk-I2LG5WYB.js.map +1 -0
  30. package/dist/{chunk-FLO6YIKC.cjs → chunk-I4X4UHQW.cjs} +18 -18
  31. package/dist/{chunk-FLO6YIKC.cjs.map → chunk-I4X4UHQW.cjs.map} +1 -1
  32. package/dist/{chunk-EDFYCJM7.js → chunk-J63TLQKU.js} +4 -4
  33. package/dist/{chunk-EDFYCJM7.js.map → chunk-J63TLQKU.js.map} +1 -1
  34. package/dist/{chunk-U7XUUMFF.js → chunk-KR2OUW3N.js} +4 -4
  35. package/dist/{chunk-U7XUUMFF.js.map → chunk-KR2OUW3N.js.map} +1 -1
  36. package/dist/{chunk-735J6KQA.js → chunk-LQXFAW5L.js} +4 -4
  37. package/dist/{chunk-735J6KQA.js.map → chunk-LQXFAW5L.js.map} +1 -1
  38. package/dist/{chunk-LKOHTU4W.cjs → chunk-LRRO5PBP.cjs} +5 -5
  39. package/dist/{chunk-LKOHTU4W.cjs.map → chunk-LRRO5PBP.cjs.map} +1 -1
  40. package/dist/{chunk-DCDQNIYY.cjs → chunk-MJ5QWRI2.cjs} +3 -3
  41. package/dist/chunk-MJ5QWRI2.cjs.map +1 -0
  42. package/dist/{chunk-L3I5OC4W.cjs → chunk-MJH4EEUV.cjs} +9 -9
  43. package/dist/{chunk-L3I5OC4W.cjs.map → chunk-MJH4EEUV.cjs.map} +1 -1
  44. package/dist/{chunk-NDCWMT6H.js → chunk-NZBVBHKY.js} +4 -4
  45. package/dist/{chunk-NDCWMT6H.js.map → chunk-NZBVBHKY.js.map} +1 -1
  46. package/dist/{chunk-O35VIFMS.cjs → chunk-OE5GVCW4.cjs} +7 -7
  47. package/dist/{chunk-O35VIFMS.cjs.map → chunk-OE5GVCW4.cjs.map} +1 -1
  48. package/dist/{chunk-ZLES3TDX.cjs → chunk-OJB6MLRD.cjs} +4 -4
  49. package/dist/{chunk-ZLES3TDX.cjs.map → chunk-OJB6MLRD.cjs.map} +1 -1
  50. package/dist/{chunk-JUOHAGMO.js → chunk-PBNENTGS.js} +3 -3
  51. package/dist/{chunk-JUOHAGMO.js.map → chunk-PBNENTGS.js.map} +1 -1
  52. package/dist/{chunk-5KDVUPQN.cjs → chunk-PXY4G3SN.cjs} +4 -4
  53. package/dist/{chunk-5KDVUPQN.cjs.map → chunk-PXY4G3SN.cjs.map} +1 -1
  54. package/dist/{chunk-WQB65Q5Y.js → chunk-R3KUPFCO.js} +3 -3
  55. package/dist/chunk-R3KUPFCO.js.map +1 -0
  56. package/dist/{chunk-FCOEWHH3.cjs → chunk-SCY53JIH.cjs} +103 -103
  57. package/dist/chunk-SCY53JIH.cjs.map +1 -0
  58. package/dist/{chunk-UDTYX3A7.cjs → chunk-SORUUFZK.cjs} +12 -12
  59. package/dist/{chunk-UDTYX3A7.cjs.map → chunk-SORUUFZK.cjs.map} +1 -1
  60. package/dist/{chunk-FVXUFEHO.cjs → chunk-TGFTKXT4.cjs} +5 -5
  61. package/dist/{chunk-FVXUFEHO.cjs.map → chunk-TGFTKXT4.cjs.map} +1 -1
  62. package/dist/{chunk-7QRZY7RG.cjs → chunk-UXVICGWD.cjs} +3 -3
  63. package/dist/{chunk-7QRZY7RG.cjs.map → chunk-UXVICGWD.cjs.map} +1 -1
  64. package/dist/{chunk-KDAMUQII.cjs → chunk-VBPYR5ZH.cjs} +4 -4
  65. package/dist/{chunk-KDAMUQII.cjs.map → chunk-VBPYR5ZH.cjs.map} +1 -1
  66. package/dist/{chunk-FQTRNIV6.js → chunk-WLQ4XLHG.js} +3 -3
  67. package/dist/{chunk-FQTRNIV6.js.map → chunk-WLQ4XLHG.js.map} +1 -1
  68. package/dist/{chunk-7WHBMHJO.js → chunk-XDR5CTSX.js} +3 -3
  69. package/dist/{chunk-7WHBMHJO.js.map → chunk-XDR5CTSX.js.map} +1 -1
  70. package/dist/{chunk-TQPQ7HXR.js → chunk-XJLHTR7T.js} +16 -16
  71. package/dist/{chunk-TQPQ7HXR.js.map → chunk-XJLHTR7T.js.map} +1 -1
  72. package/dist/{chunk-V5YAPSSQ.js → chunk-YAEG3FIX.js} +3 -3
  73. package/dist/{chunk-V5YAPSSQ.js.map → chunk-YAEG3FIX.js.map} +1 -1
  74. package/dist/{chunk-K75VRP3V.cjs → chunk-YRZYCQGE.cjs} +17 -17
  75. package/dist/{chunk-K75VRP3V.cjs.map → chunk-YRZYCQGE.cjs.map} +1 -1
  76. package/dist/{chunk-SZ6QKUFJ.js → chunk-ZBOTGUPW.js} +3 -3
  77. package/dist/{chunk-SZ6QKUFJ.js.map → chunk-ZBOTGUPW.js.map} +1 -1
  78. package/dist/{chunk-6DTFR4ZS.js → chunk-ZJM23PJU.js} +3 -3
  79. package/dist/{chunk-6DTFR4ZS.js.map → chunk-ZJM23PJU.js.map} +1 -1
  80. package/dist/{chunk-HBXNOBJN.cjs → chunk-ZQ4GVMYG.cjs} +3 -3
  81. package/dist/chunk-ZQ4GVMYG.cjs.map +1 -0
  82. package/dist/docs/SKILL.md +1 -1
  83. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  84. package/dist/server/handlers/a2a.cjs +14 -14
  85. package/dist/server/handlers/a2a.js +1 -1
  86. package/dist/server/handlers/agent-builder.cjs +17 -17
  87. package/dist/server/handlers/agent-builder.js +1 -1
  88. package/dist/server/handlers/agents.cjs +47 -47
  89. package/dist/server/handlers/agents.d.ts +5 -3
  90. package/dist/server/handlers/agents.d.ts.map +1 -1
  91. package/dist/server/handlers/agents.js +1 -1
  92. package/dist/server/handlers/conversations.cjs +5 -5
  93. package/dist/server/handlers/conversations.js +1 -1
  94. package/dist/server/handlers/editor-builder.cjs +6 -6
  95. package/dist/server/handlers/editor-builder.js +1 -1
  96. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  97. package/dist/server/handlers/favorites-enrichment.js +1 -1
  98. package/dist/server/handlers/responses.cjs +4 -4
  99. package/dist/server/handlers/responses.js +1 -1
  100. package/dist/server/handlers/scores.cjs +7 -7
  101. package/dist/server/handlers/scores.d.ts +4 -2
  102. package/dist/server/handlers/scores.d.ts.map +1 -1
  103. package/dist/server/handlers/scores.js +1 -1
  104. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  105. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  106. package/dist/server/handlers/stored-agents.cjs +10 -10
  107. package/dist/server/handlers/stored-agents.js +1 -1
  108. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  109. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  110. package/dist/server/handlers/stored-skills.cjs +7 -7
  111. package/dist/server/handlers/stored-skills.js +1 -1
  112. package/dist/server/handlers/system.cjs +3 -3
  113. package/dist/server/handlers/system.js +1 -1
  114. package/dist/server/handlers/tools.cjs +6 -6
  115. package/dist/server/handlers/tools.js +1 -1
  116. package/dist/server/handlers/workflows.cjs +27 -27
  117. package/dist/server/handlers/workflows.js +1 -1
  118. package/dist/server/handlers.cjs +16 -16
  119. package/dist/server/handlers.js +8 -8
  120. package/dist/server/schemas/agents.d.ts +3 -0
  121. package/dist/server/schemas/agents.d.ts.map +1 -1
  122. package/dist/server/schemas/index.cjs +73 -73
  123. package/dist/server/schemas/index.js +3 -3
  124. package/dist/server/schemas/scores.d.ts +2 -0
  125. package/dist/server/schemas/scores.d.ts.map +1 -1
  126. package/dist/server/server-adapter/index.cjs +13 -13
  127. package/dist/server/server-adapter/index.js +2 -2
  128. package/dist/server/server-adapter/routes/scorers.d.ts +4 -2
  129. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -1
  130. package/package.json +6 -6
  131. package/dist/chunk-DCDQNIYY.cjs.map +0 -1
  132. package/dist/chunk-FCOEWHH3.cjs.map +0 -1
  133. package/dist/chunk-FU2NIFNJ.js.map +0 -1
  134. package/dist/chunk-HBXNOBJN.cjs.map +0 -1
  135. package/dist/chunk-OC4S3EDO.js.map +0 -1
  136. package/dist/chunk-WQB65Q5Y.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["HTTPException","createRoute","listStoredAgentsQuerySchema","listStoredAgentsResponseSchema","resolveAuthorFilter","getStoredResourceScope","scopeStoredResourceMetadata","getCallerAuthorId","isBuilderFeatureEnabled","matchesAuthorFilter","annotated","authors","prepareAuthorEnrichment","withAuthors","attachAuthor","stripFavoriteFields","prepareFavoritesEnrichment","handleError","assertStoredResourceScope","assertReadAccess","storedAgentIdPathParams","exportStoredAgentBodySchema","exportStoredAgentResponseSchema","openStoredAgentChangeRequestBodySchema","openStoredAgentChangeRequestResponseSchema","statusQuerySchema","getStoredAgentResponseSchema","enrichOrStripFavorites","createStoredAgentBodySchema","createStoredAgentResponseSchema","toSlug","validateMetadataAvatarUrl","updateStoredAgentBodySchema","updateStoredAgentResponseSchema","assertWriteAccess","handleAutoVersioning","deleteStoredAgentResponseSchema","getStoredAgentDependentsResponseSchema","previewInstructionsBodySchema","previewInstructionsResponseSchema"],"mappings":"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","file":"chunk-JWIAPHFH.cjs","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 openStoredAgentChangeRequestBodySchema,\n exportStoredAgentResponseSchema,\n openStoredAgentChangeRequestResponseSchema,\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 { attachAuthor, prepareAuthorEnrichment } from './author-enrichment';\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 hasNonEmptyInstructions(value: unknown): boolean {\n if (typeof value === 'string') {\n return value.trim().length > 0;\n }\n\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.some(block => {\n if (!block || typeof block !== 'object') {\n return false;\n }\n\n const typedBlock = block as { type?: unknown; id?: unknown; content?: unknown };\n if (typedBlock.type === 'prompt_block_ref') {\n return typeof typedBlock.id === 'string' && typedBlock.id.length > 0;\n }\n\n return typeof typedBlock.content === 'string' && typedBlock.content.trim().length > 0;\n });\n}\n\nfunction assertOwnedInstructionsNotEmpty(instructions: unknown) {\n if (!hasNonEmptyInstructions(instructions)) {\n throw new HTTPException(400, { message: 'Instructions are required' });\n }\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 `agents/${encodeURIComponent(agentId)}.json`;\n}\n\nfunction sourceChangeRequestHeadRef(agentId: string) {\n const safeAgentId = agentId.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'agent';\n return `mastra/${safeAgentId}`;\n}\n\nfunction sourceChangeRequestMessage(agentId: string, userName?: string, changeMessage?: string) {\n const normalizedUserName = userName?.replace(/\\s+/g, ' ').trim();\n const normalizedMessage = changeMessage?.replace(/\\s+/g, ' ').trim();\n const message = normalizedMessage || `Update ${agentId} agent override`;\n return normalizedUserName ? `${message} by ${normalizedUserName}` : message;\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 authors = await prepareAuthorEnrichment(\n mastra,\n requestContext,\n annotated.map(a => a.authorId),\n );\n const withAuthors = authors ? annotated.map(record => attachAuthor(record, authors)) : annotated;\n const hasMore = effectivePerPage > 0 && endIdx < total;\n return { agents: withAuthors, 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 const authors = await prepareAuthorEnrichment(\n mastra,\n requestContext,\n visibleAgents.map(a => a.authorId),\n );\n\n if (!favoritesEnabled) {\n const stripped = visibleAgents.map(stripFavoriteFields);\n const withAuthors = authors ? stripped.map(record => attachAuthor(record, authors)) : stripped;\n return { ...result, agents: withAuthors };\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 const withAuthors = authors ? annotated.map(record => attachAuthor(record, authors)) : annotated;\n\n return { ...result, agents: withAuthors };\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\nasync function buildStoredAgentExport({\n mastra,\n requestContext,\n storedAgentId,\n body,\n}: {\n mastra: any;\n requestContext: any;\n storedAgentId: string;\n body: Record<string, unknown>;\n}) {\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}\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 return await buildStoredAgentExport({ mastra, requestContext, storedAgentId, body });\n } catch (error) {\n return handleError(error, 'Error exporting stored agent');\n }\n },\n});\n\nexport const OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:storedAgentId/change-request',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: openStoredAgentChangeRequestBodySchema,\n responseSchema: openStoredAgentChangeRequestResponseSchema,\n summary: 'Open stored agent source change request',\n description: 'Opens a source-provider change request for deterministic agent override JSON without mutating storage',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId, ...body }) => {\n try {\n const provider = mastra.getEditor?.()?.getSourceControlProvider?.();\n if (!provider?.openChangeRequest) {\n throw new HTTPException(400, { message: 'Source control provider cannot open change requests' });\n }\n\n const openChangeRequest = provider.openChangeRequest.bind(provider);\n const { changeMessage, userName, inspectOnly, ...exportBody } = body;\n const headRef = sourceChangeRequestHeadRef(storedAgentId);\n const title = `Update ${storedAgentId} agent override`;\n const result = inspectOnly\n ? await openChangeRequest({\n title,\n headRef,\n files: [],\n })\n : await (async () => {\n const response = await buildStoredAgentExport({ mastra, requestContext, storedAgentId, body: exportBody });\n const message = sourceChangeRequestMessage(storedAgentId, userName, changeMessage);\n return openChangeRequest({\n title,\n body: `Updates ${response.fileName} from Mastra Studio.`,\n headRef,\n files: [\n {\n path: response.fileName,\n content: response.content,\n message,\n },\n ],\n });\n })();\n\n const storage = mastra.getStorage();\n const agentsStore = storage ? await storage.getStore('agents') : undefined;\n await (\n agentsStore as { useProviderRef?: (agentId: string, ref: string) => Promise<void> } | undefined\n )?.useProviderRef?.(storedAgentId, result.ref ?? headRef);\n mastra.getEditor?.()?.agent?.clearCache?.(storedAgentId);\n\n return result;\n } catch (error) {\n return handleError(error, 'Error opening stored agent change request');\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 const authors = await prepareAuthorEnrichment(mastra, requestContext, [agent.authorId]);\n const withFavorite = await enrichOrStripFavorites(mastra, requestContext, 'agent', agent);\n return attachAuthor(withFavorite, authors);\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 let createInstructions: typeof instructions | undefined = instructions;\n let createTools = tools;\n let createIntegrationTools = integrationTools;\n let createMcpClients = mcpClients;\n let codeAgentForCreate: { __getEditorConfig?: () => unknown; source?: string } | undefined;\n try {\n codeAgentForCreate = mastra.getAgentById?.(id) as typeof codeAgentForCreate;\n } catch {\n codeAgentForCreate = undefined;\n }\n if (codeAgentForCreate?.source === 'code') {\n const ownership = getCodeAgentOwnership(codeAgentForCreate.__getEditorConfig?.());\n if (ownership.ownsInstructions) {\n assertOwnedInstructionsNotEmpty(createInstructions);\n } else {\n createInstructions = undefined;\n }\n if (!ownership.ownsTools && !ownership.ownsToolDescriptionsOnly) {\n createTools = undefined;\n createIntegrationTools = undefined;\n createMcpClients = undefined;\n }\n }\n\n const input = {\n id,\n authorId,\n visibility,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n instructions: createInstructions,\n model,\n tools: createTools,\n defaultOptions,\n workflows,\n agents,\n integrationTools: createIntegrationTools,\n toolProviders,\n mcpClients: createMcpClients,\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 if (instructions !== undefined) {\n assertOwnedInstructionsNotEmpty(instructions);\n }\n } else {\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"]}
1
+ {"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["HTTPException","createRoute","listStoredAgentsQuerySchema","listStoredAgentsResponseSchema","resolveAuthorFilter","getStoredResourceScope","scopeStoredResourceMetadata","getCallerAuthorId","isBuilderFeatureEnabled","matchesAuthorFilter","annotated","authors","prepareAuthorEnrichment","withAuthors","attachAuthor","stripFavoriteFields","prepareFavoritesEnrichment","handleError","assertStoredResourceScope","assertReadAccess","storedAgentIdPathParams","exportStoredAgentBodySchema","exportStoredAgentResponseSchema","openStoredAgentChangeRequestBodySchema","openStoredAgentChangeRequestResponseSchema","statusQuerySchema","getStoredAgentResponseSchema","enrichOrStripFavorites","createStoredAgentBodySchema","createStoredAgentResponseSchema","toSlug","validateMetadataAvatarUrl","updateStoredAgentBodySchema","updateStoredAgentResponseSchema","assertWriteAccess","handleAutoVersioning","deleteStoredAgentResponseSchema","getStoredAgentDependentsResponseSchema","previewInstructionsBodySchema","previewInstructionsResponseSchema"],"mappings":"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","file":"chunk-6QQ4I6IY.cjs","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 openStoredAgentChangeRequestBodySchema,\n exportStoredAgentResponseSchema,\n openStoredAgentChangeRequestResponseSchema,\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 { attachAuthor, prepareAuthorEnrichment } from './author-enrichment';\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 hasNonEmptyInstructions(value: unknown): boolean {\n if (typeof value === 'string') {\n return value.trim().length > 0;\n }\n\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.some(block => {\n if (!block || typeof block !== 'object') {\n return false;\n }\n\n const typedBlock = block as { type?: unknown; id?: unknown; content?: unknown };\n if (typedBlock.type === 'prompt_block_ref') {\n return typeof typedBlock.id === 'string' && typedBlock.id.length > 0;\n }\n\n return typeof typedBlock.content === 'string' && typedBlock.content.trim().length > 0;\n });\n}\n\nfunction assertOwnedInstructionsNotEmpty(instructions: unknown) {\n if (!hasNonEmptyInstructions(instructions)) {\n throw new HTTPException(400, { message: 'Instructions are required' });\n }\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 `agents/${encodeURIComponent(agentId)}.json`;\n}\n\nfunction sourceChangeRequestHeadRef(agentId: string) {\n const safeAgentId = agentId.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'agent';\n return `mastra/${safeAgentId}`;\n}\n\nfunction sourceChangeRequestMessage(agentId: string, userName?: string, changeMessage?: string) {\n const normalizedUserName = userName?.replace(/\\s+/g, ' ').trim();\n const normalizedMessage = changeMessage?.replace(/\\s+/g, ' ').trim();\n const message = normalizedMessage || `Update ${agentId} agent override`;\n return normalizedUserName ? `${message} by ${normalizedUserName}` : message;\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 authors = await prepareAuthorEnrichment(\n mastra,\n requestContext,\n annotated.map(a => a.authorId),\n );\n const withAuthors = authors ? annotated.map(record => attachAuthor(record, authors)) : annotated;\n const hasMore = effectivePerPage > 0 && endIdx < total;\n return { agents: withAuthors, 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 const authors = await prepareAuthorEnrichment(\n mastra,\n requestContext,\n visibleAgents.map(a => a.authorId),\n );\n\n if (!favoritesEnabled) {\n const stripped = visibleAgents.map(stripFavoriteFields);\n const withAuthors = authors ? stripped.map(record => attachAuthor(record, authors)) : stripped;\n return { ...result, agents: withAuthors };\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 const withAuthors = authors ? annotated.map(record => attachAuthor(record, authors)) : annotated;\n\n return { ...result, agents: withAuthors };\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\nasync function buildStoredAgentExport({\n mastra,\n requestContext,\n storedAgentId,\n body,\n}: {\n mastra: any;\n requestContext: any;\n storedAgentId: string;\n body: Record<string, unknown>;\n}) {\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}\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 return await buildStoredAgentExport({ mastra, requestContext, storedAgentId, body });\n } catch (error) {\n return handleError(error, 'Error exporting stored agent');\n }\n },\n});\n\nexport const OPEN_STORED_AGENT_CHANGE_REQUEST_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:storedAgentId/change-request',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: openStoredAgentChangeRequestBodySchema,\n responseSchema: openStoredAgentChangeRequestResponseSchema,\n summary: 'Open stored agent source change request',\n description: 'Opens a source-provider change request for deterministic agent override JSON without mutating storage',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, storedAgentId, ...body }) => {\n try {\n const provider = mastra.getEditor?.()?.getSourceControlProvider?.();\n if (!provider?.openChangeRequest) {\n throw new HTTPException(400, { message: 'Source control provider cannot open change requests' });\n }\n\n const openChangeRequest = provider.openChangeRequest.bind(provider);\n const { changeMessage, userName, inspectOnly, ...exportBody } = body;\n const headRef = sourceChangeRequestHeadRef(storedAgentId);\n const title = `Update ${storedAgentId} agent override`;\n const result = inspectOnly\n ? await openChangeRequest({\n title,\n headRef,\n files: [],\n })\n : await (async () => {\n const response = await buildStoredAgentExport({ mastra, requestContext, storedAgentId, body: exportBody });\n const message = sourceChangeRequestMessage(storedAgentId, userName, changeMessage);\n return openChangeRequest({\n title,\n body: `Updates ${response.fileName} from Mastra Studio.`,\n headRef,\n files: [\n {\n path: response.fileName,\n content: response.content,\n message,\n },\n ],\n });\n })();\n\n const storage = mastra.getStorage();\n const agentsStore = storage ? await storage.getStore('agents') : undefined;\n await (\n agentsStore as { useProviderRef?: (agentId: string, ref: string) => Promise<void> } | undefined\n )?.useProviderRef?.(storedAgentId, result.ref ?? headRef);\n mastra.getEditor?.()?.agent?.clearCache?.(storedAgentId);\n\n return result;\n } catch (error) {\n return handleError(error, 'Error opening stored agent change request');\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 const authors = await prepareAuthorEnrichment(mastra, requestContext, [agent.authorId]);\n const withFavorite = await enrichOrStripFavorites(mastra, requestContext, 'agent', agent);\n return attachAuthor(withFavorite, authors);\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 let createInstructions: typeof instructions | undefined = instructions;\n let createTools = tools;\n let createIntegrationTools = integrationTools;\n let createMcpClients = mcpClients;\n let codeAgentForCreate: { __getEditorConfig?: () => unknown; source?: string } | undefined;\n try {\n codeAgentForCreate = mastra.getAgentById?.(id) as typeof codeAgentForCreate;\n } catch {\n codeAgentForCreate = undefined;\n }\n if (codeAgentForCreate?.source === 'code') {\n const ownership = getCodeAgentOwnership(codeAgentForCreate.__getEditorConfig?.());\n if (ownership.ownsInstructions) {\n assertOwnedInstructionsNotEmpty(createInstructions);\n } else {\n createInstructions = undefined;\n }\n if (!ownership.ownsTools && !ownership.ownsToolDescriptionsOnly) {\n createTools = undefined;\n createIntegrationTools = undefined;\n createMcpClients = undefined;\n }\n }\n\n const input = {\n id,\n authorId,\n visibility,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n instructions: createInstructions,\n model,\n tools: createTools,\n defaultOptions,\n workflows,\n agents,\n integrationTools: createIntegrationTools,\n toolProviders,\n mcpClients: createMcpClients,\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 if (instructions !== undefined) {\n assertOwnedInstructionsNotEmpty(instructions);\n }\n } else {\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"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkO35VIFMS_cjs = require('./chunk-O35VIFMS.cjs');
3
+ var chunkOE5GVCW4_cjs = require('./chunk-OE5GVCW4.cjs');
4
4
  var chunkS6TNTR3A_cjs = require('./chunk-S6TNTR3A.cjs');
5
5
  var chunkPTPMBE6M_cjs = require('./chunk-PTPMBE6M.cjs');
6
- var chunkHBXNOBJN_cjs = require('./chunk-HBXNOBJN.cjs');
6
+ var chunkZQ4GVMYG_cjs = require('./chunk-ZQ4GVMYG.cjs');
7
7
  var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
8
8
  var chunkYWUVDFQZ_cjs = require('./chunk-YWUVDFQZ.cjs');
9
9
  var chunkZ7LCIYK7_cjs = require('./chunk-Z7LCIYK7.cjs');
@@ -56,7 +56,7 @@ var LIST_AGENT_BUILDER_ACTIONS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
56
56
  try {
57
57
  await registerAgentBuilderWorkflows(mastra);
58
58
  logger.info("Listing agent builder actions");
59
- return await chunkO35VIFMS_cjs.LIST_WORKFLOWS_ROUTE.handler(ctx);
59
+ return await chunkOE5GVCW4_cjs.LIST_WORKFLOWS_ROUTE.handler(ctx);
60
60
  } catch (error) {
61
61
  logger.error("Error listing agent builder actions", { error });
62
62
  return chunkZ7LCIYK7_cjs.handleError(error, "Error getting agent builder workflows");
@@ -86,7 +86,7 @@ var GET_AGENT_BUILDER_ACTION_BY_ID_ROUTE = chunkDN2NUSL2_cjs.createRoute({
86
86
  });
87
87
  }
88
88
  logger.info("Getting agent builder action by ID", { actionId });
89
- return await chunkO35VIFMS_cjs.GET_WORKFLOW_BY_ID_ROUTE.handler({ ...ctx, workflowId: actionId });
89
+ return await chunkOE5GVCW4_cjs.GET_WORKFLOW_BY_ID_ROUTE.handler({ ...ctx, workflowId: actionId });
90
90
  } catch (error) {
91
91
  logger.error("Error getting agent builder action by ID", { error, actionId });
92
92
  return chunkZ7LCIYK7_cjs.handleError(error, "Error getting agent builder action");
@@ -115,7 +115,7 @@ var LIST_AGENT_BUILDER_ACTION_RUNS_ROUTE = chunkDN2NUSL2_cjs.createRoute({
115
115
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
116
116
  }
117
117
  logger.info("Listing agent builder action runs", { actionId });
118
- return await chunkO35VIFMS_cjs.LIST_WORKFLOW_RUNS_ROUTE.handler({
118
+ return await chunkOE5GVCW4_cjs.LIST_WORKFLOW_RUNS_ROUTE.handler({
119
119
  ...ctx,
120
120
  workflowId: actionId
121
121
  });
@@ -147,7 +147,7 @@ var GET_AGENT_BUILDER_ACTION_RUN_BY_ID_ROUTE = chunkDN2NUSL2_cjs.createRoute({
147
147
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
148
148
  }
149
149
  logger.info("Getting agent builder action run by ID", { actionId, runId });
150
- return await chunkO35VIFMS_cjs.GET_WORKFLOW_RUN_BY_ID_ROUTE.handler({
150
+ return await chunkOE5GVCW4_cjs.GET_WORKFLOW_RUN_BY_ID_ROUTE.handler({
151
151
  ...ctx,
152
152
  workflowId: actionId
153
153
  });
@@ -179,7 +179,7 @@ var CREATE_AGENT_BUILDER_ACTION_RUN_ROUTE = chunkDN2NUSL2_cjs.createRoute({
179
179
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
180
180
  }
181
181
  logger.info("Creating agent builder action run", { actionId, runId });
182
- return await chunkO35VIFMS_cjs.CREATE_WORKFLOW_RUN_ROUTE.handler({
182
+ return await chunkOE5GVCW4_cjs.CREATE_WORKFLOW_RUN_ROUTE.handler({
183
183
  ...ctx,
184
184
  workflowId: actionId
185
185
  });
@@ -198,7 +198,7 @@ var STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
198
198
  pathParamSchema: chunkS6TNTR3A_cjs.actionIdPathParams,
199
199
  queryParamSchema: chunkDIG2K5CV_cjs.runIdSchema,
200
200
  bodySchema: chunkS6TNTR3A_cjs.streamAgentBuilderBodySchema,
201
- responseSchema: chunkHBXNOBJN_cjs.streamResponseSchema,
201
+ responseSchema: chunkZQ4GVMYG_cjs.streamResponseSchema,
202
202
  summary: "Stream action execution",
203
203
  description: "Executes an action and streams the results in real-time",
204
204
  tags: ["Agent Builder"],
@@ -212,7 +212,7 @@ var STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
212
212
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
213
213
  }
214
214
  logger.info("Streaming agent builder action", { actionId, runId });
215
- return await chunkO35VIFMS_cjs.STREAM_WORKFLOW_ROUTE.handler({
215
+ return await chunkOE5GVCW4_cjs.STREAM_WORKFLOW_ROUTE.handler({
216
216
  ...ctx,
217
217
  workflowId: actionId,
218
218
  requestContext
@@ -246,7 +246,7 @@ var START_ASYNC_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
246
246
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
247
247
  }
248
248
  logger.info("Starting agent builder action asynchronously", { actionId, runId });
249
- return await chunkO35VIFMS_cjs.START_ASYNC_WORKFLOW_ROUTE.handler({
249
+ return await chunkOE5GVCW4_cjs.START_ASYNC_WORKFLOW_ROUTE.handler({
250
250
  ...ctx,
251
251
  workflowId: actionId,
252
252
  requestContext
@@ -280,7 +280,7 @@ var START_AGENT_BUILDER_ACTION_RUN_ROUTE = chunkDN2NUSL2_cjs.createRoute({
280
280
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
281
281
  }
282
282
  logger.info("Starting specific agent builder action run", { actionId, runId });
283
- return await chunkO35VIFMS_cjs.START_WORKFLOW_RUN_ROUTE.handler({
283
+ return await chunkOE5GVCW4_cjs.START_WORKFLOW_RUN_ROUTE.handler({
284
284
  ...ctx,
285
285
  workflowId: actionId,
286
286
  requestContext
@@ -299,7 +299,7 @@ var OBSERVE_STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
299
299
  responseType: "stream",
300
300
  pathParamSchema: chunkS6TNTR3A_cjs.actionIdPathParams,
301
301
  queryParamSchema: chunkDIG2K5CV_cjs.runIdSchema,
302
- responseSchema: chunkHBXNOBJN_cjs.streamResponseSchema,
302
+ responseSchema: chunkZQ4GVMYG_cjs.streamResponseSchema,
303
303
  summary: "Observe action stream",
304
304
  description: "Observes and streams updates from an already running action execution",
305
305
  tags: ["Agent Builder"],
@@ -313,7 +313,7 @@ var OBSERVE_STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
313
313
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
314
314
  }
315
315
  logger.info("Observing agent builder action stream", { actionId, runId });
316
- return await chunkO35VIFMS_cjs.OBSERVE_STREAM_WORKFLOW_ROUTE.handler({
316
+ return await chunkOE5GVCW4_cjs.OBSERVE_STREAM_WORKFLOW_ROUTE.handler({
317
317
  ...ctx,
318
318
  workflowId: actionId
319
319
  });
@@ -346,7 +346,7 @@ var RESUME_ASYNC_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
346
346
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
347
347
  }
348
348
  logger.info("Resuming agent builder action asynchronously", { actionId, runId, step });
349
- return await chunkO35VIFMS_cjs.RESUME_ASYNC_WORKFLOW_ROUTE.handler({
349
+ return await chunkOE5GVCW4_cjs.RESUME_ASYNC_WORKFLOW_ROUTE.handler({
350
350
  ...ctx,
351
351
  workflowId: actionId,
352
352
  requestContext
@@ -380,7 +380,7 @@ var RESUME_NO_WAIT_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
380
380
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
381
381
  }
382
382
  logger.info("Resuming agent builder action without waiting", { actionId, runId, step });
383
- return await chunkO35VIFMS_cjs.RESUME_NO_WAIT_WORKFLOW_ROUTE.handler({
383
+ return await chunkOE5GVCW4_cjs.RESUME_NO_WAIT_WORKFLOW_ROUTE.handler({
384
384
  ...ctx,
385
385
  workflowId: actionId,
386
386
  requestContext
@@ -414,7 +414,7 @@ var RESUME_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
414
414
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
415
415
  }
416
416
  logger.info("Resuming agent builder action", { actionId, runId, step });
417
- return await chunkO35VIFMS_cjs.RESUME_WORKFLOW_ROUTE.handler({
417
+ return await chunkOE5GVCW4_cjs.RESUME_WORKFLOW_ROUTE.handler({
418
418
  ...ctx,
419
419
  workflowId: actionId,
420
420
  requestContext
@@ -434,7 +434,7 @@ var RESUME_STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
434
434
  pathParamSchema: chunkS6TNTR3A_cjs.actionIdPathParams,
435
435
  queryParamSchema: chunkDIG2K5CV_cjs.runIdSchema,
436
436
  bodySchema: chunkS6TNTR3A_cjs.resumeAgentBuilderBodySchema,
437
- responseSchema: chunkHBXNOBJN_cjs.streamResponseSchema,
437
+ responseSchema: chunkZQ4GVMYG_cjs.streamResponseSchema,
438
438
  summary: "Resume action stream",
439
439
  description: "Resumes a suspended action execution and continues streaming results",
440
440
  tags: ["Agent Builder"],
@@ -448,7 +448,7 @@ var RESUME_STREAM_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
448
448
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
449
449
  }
450
450
  logger.info("Resuming agent builder action stream", { actionId, runId, step });
451
- return await chunkO35VIFMS_cjs.RESUME_STREAM_WORKFLOW_ROUTE.handler({
451
+ return await chunkOE5GVCW4_cjs.RESUME_STREAM_WORKFLOW_ROUTE.handler({
452
452
  ...ctx,
453
453
  workflowId: actionId,
454
454
  requestContext
@@ -480,7 +480,7 @@ var CANCEL_AGENT_BUILDER_ACTION_RUN_ROUTE = chunkDN2NUSL2_cjs.createRoute({
480
480
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
481
481
  }
482
482
  logger.info("Cancelling agent builder action run", { actionId, runId });
483
- return await chunkO35VIFMS_cjs.CANCEL_WORKFLOW_RUN_ROUTE.handler({
483
+ return await chunkOE5GVCW4_cjs.CANCEL_WORKFLOW_RUN_ROUTE.handler({
484
484
  ...ctx,
485
485
  workflowId: actionId
486
486
  });
@@ -499,7 +499,7 @@ var STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
499
499
  pathParamSchema: chunkS6TNTR3A_cjs.actionIdPathParams,
500
500
  queryParamSchema: chunkDIG2K5CV_cjs.runIdSchema,
501
501
  bodySchema: chunkS6TNTR3A_cjs.streamLegacyAgentBuilderBodySchema,
502
- responseSchema: chunkHBXNOBJN_cjs.streamResponseSchema,
502
+ responseSchema: chunkZQ4GVMYG_cjs.streamResponseSchema,
503
503
  summary: "[DEPRECATED] Stream agent-builder action with legacy format",
504
504
  description: "Legacy endpoint for streaming agent-builder action execution. Use /agent-builder/:actionId/stream instead.",
505
505
  tags: ["Agent Builder", "Legacy"],
@@ -513,7 +513,7 @@ var STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createRoute({
513
513
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
514
514
  }
515
515
  logger.info("Streaming agent builder action (legacy)", { actionId, runId });
516
- return await chunkO35VIFMS_cjs.STREAM_LEGACY_WORKFLOW_ROUTE.handler({
516
+ return await chunkOE5GVCW4_cjs.STREAM_LEGACY_WORKFLOW_ROUTE.handler({
517
517
  ...ctx,
518
518
  workflowId: actionId,
519
519
  requestContext
@@ -532,7 +532,7 @@ var OBSERVE_STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createR
532
532
  responseType: "stream",
533
533
  pathParamSchema: chunkS6TNTR3A_cjs.actionIdPathParams,
534
534
  queryParamSchema: chunkDIG2K5CV_cjs.runIdSchema,
535
- responseSchema: chunkHBXNOBJN_cjs.streamResponseSchema,
535
+ responseSchema: chunkZQ4GVMYG_cjs.streamResponseSchema,
536
536
  summary: "[DEPRECATED] Observe agent-builder action stream with legacy format",
537
537
  description: "Legacy endpoint for observing agent-builder action stream. Use /agent-builder/:actionId/observe instead.",
538
538
  tags: ["Agent Builder", "Legacy"],
@@ -546,7 +546,7 @@ var OBSERVE_STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE = chunkDN2NUSL2_cjs.createR
546
546
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: `Invalid agent-builder action: ${actionId}` });
547
547
  }
548
548
  logger.info("Observing agent builder action stream (legacy)", { actionId, runId });
549
- return await chunkO35VIFMS_cjs.OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE.handler({
549
+ return await chunkOE5GVCW4_cjs.OBSERVE_STREAM_LEGACY_WORKFLOW_ROUTE.handler({
550
550
  ...ctx,
551
551
  workflowId: actionId
552
552
  });
@@ -576,5 +576,5 @@ exports.START_ASYNC_AGENT_BUILDER_ACTION_ROUTE = START_ASYNC_AGENT_BUILDER_ACTIO
576
576
  exports.STREAM_AGENT_BUILDER_ACTION_ROUTE = STREAM_AGENT_BUILDER_ACTION_ROUTE;
577
577
  exports.STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE = STREAM_LEGACY_AGENT_BUILDER_ACTION_ROUTE;
578
578
  exports.agent_builder_exports = agent_builder_exports;
579
- //# sourceMappingURL=chunk-ZYPEQZPE.cjs.map
580
- //# sourceMappingURL=chunk-ZYPEQZPE.cjs.map
579
+ //# sourceMappingURL=chunk-BVMR64B7.cjs.map
580
+ //# sourceMappingURL=chunk-BVMR64B7.cjs.map