@mastra/server 1.56.0-alpha.5 → 1.56.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/_types/@internal_core/dist/storage/index.d.ts +8 -0
- package/dist/{a2a-Dmw3AD3r.cjs → a2a-CE7HKP5V.cjs} +3 -3
- package/dist/{a2a-Dmw3AD3r.cjs.map → a2a-CE7HKP5V.cjs.map} +1 -1
- package/dist/{a2a-BHqh8DdO.js → a2a-_3LYIc9y.js} +3 -3
- package/dist/{a2a-BHqh8DdO.js.map → a2a-_3LYIc9y.js.map} +1 -1
- package/dist/{api-schema-manifest-BD9sVZgj.cjs → api-schema-manifest-Ba-Ssw4H.cjs} +3 -3
- package/dist/{api-schema-manifest-BD9sVZgj.cjs.map → api-schema-manifest-Ba-Ssw4H.cjs.map} +1 -1
- package/dist/{api-schema-manifest-DOHg_30B.js → api-schema-manifest-DbTP-DpV.js} +3 -3
- package/dist/{api-schema-manifest-DOHg_30B.js.map → api-schema-manifest-DbTP-DpV.js.map} +1 -1
- package/dist/{background-tasks-BuRJRi1i.cjs → background-tasks-CYgzzUnb.cjs} +2 -2
- package/dist/{background-tasks-BuRJRi1i.cjs.map → background-tasks-CYgzzUnb.cjs.map} +1 -1
- package/dist/{background-tasks-BdcOtHq3.js → background-tasks-DnmhLalp.js} +2 -2
- package/dist/{background-tasks-BdcOtHq3.js.map → background-tasks-DnmhLalp.js.map} +1 -1
- package/dist/{builder-registry-NmiGAW1q.cjs → builder-registry-C_PysvMI.cjs} +3 -3
- package/dist/{builder-registry-NmiGAW1q.cjs.map → builder-registry-C_PysvMI.cjs.map} +1 -1
- package/dist/{builder-registry-dh22nXUR.js → builder-registry-DaPvPspl.js} +3 -3
- package/dist/{builder-registry-dh22nXUR.js.map → builder-registry-DaPvPspl.js.map} +1 -1
- package/dist/{channels-Cv5RlwiT.cjs → channels-BonQBJT0.cjs} +2 -2
- package/dist/{channels-Cv5RlwiT.cjs.map → channels-BonQBJT0.cjs.map} +1 -1
- package/dist/{channels-Do3L4evC.js → channels-BqkOxxEk.js} +2 -2
- package/dist/{channels-Do3L4evC.js.map → channels-BqkOxxEk.js.map} +1 -1
- package/dist/{datasets-7yYpHm7l.cjs → datasets-Cvix7Rms.cjs} +6 -1
- package/dist/datasets-Cvix7Rms.cjs.map +1 -0
- package/dist/{datasets-CopqHYDy.js → datasets-dhXnHLAL.js} +6 -1
- package/dist/datasets-dhXnHLAL.js.map +1 -0
- package/dist/{dist-D9hQEsv9.cjs → dist-CpDWlJbf.cjs} +69 -16
- package/dist/dist-CpDWlJbf.cjs.map +1 -0
- package/dist/{dist-BlHxui7N.js → dist-Epz-mpJn.js} +65 -12
- package/dist/dist-Epz-mpJn.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{editor-builder-Dn6ru5DU.cjs → editor-builder-ByNr3nc9.cjs} +2 -2
- package/dist/{editor-builder-Dn6ru5DU.cjs.map → editor-builder-ByNr3nc9.cjs.map} +1 -1
- package/dist/{editor-builder-DkGLV2Gj.js → editor-builder-CW9Tcqg1.js} +2 -2
- package/dist/{editor-builder-DkGLV2Gj.js.map → editor-builder-CW9Tcqg1.js.map} +1 -1
- package/dist/{observability-new-endpoints-C1g-Gvjz.js → observability-new-endpoints-CCyqX1Ra.js} +3 -2
- package/dist/observability-new-endpoints-CCyqX1Ra.js.map +1 -0
- package/dist/{observability-new-endpoints-Dp2vQgwB.cjs → observability-new-endpoints-DFBDedGH.cjs} +3 -2
- package/dist/observability-new-endpoints-DFBDedGH.cjs.map +1 -0
- package/dist/{route-builder-CXe0EI1P.js → route-builder-CIk5k35M.js} +2 -2
- package/dist/{route-builder-CXe0EI1P.js.map → route-builder-CIk5k35M.js.map} +1 -1
- package/dist/{route-builder-BZaWjoDk.cjs → route-builder-CgLVYL1c.cjs} +4 -4
- package/dist/{route-builder-BZaWjoDk.cjs.map → route-builder-CgLVYL1c.cjs.map} +1 -1
- package/dist/{routes-Bmt4vUom.cjs → routes-2WgTU1wN.cjs} +10 -10
- package/dist/{routes-Bmt4vUom.cjs.map → routes-2WgTU1wN.cjs.map} +1 -1
- package/dist/{routes-YeBVxmmg.js → routes-CN8wYsyr.js} +10 -10
- package/dist/{routes-YeBVxmmg.js.map → routes-CN8wYsyr.js.map} +1 -1
- package/dist/{schedules-Dury8Ely.cjs → schedules-CK3-IE0h.cjs} +2 -2
- package/dist/{schedules-Dury8Ely.cjs.map → schedules-CK3-IE0h.cjs.map} +1 -1
- package/dist/{schedules-ziUJUmzR.js → schedules-qxFoU-Tb.js} +2 -2
- package/dist/{schedules-ziUJUmzR.js.map → schedules-qxFoU-Tb.js.map} +1 -1
- package/dist/schema-B8-5YCsA.js +2 -0
- package/dist/schema-BieM1qrc.cjs +1 -0
- package/dist/{schema-Ba6HLBWs-29iOFPqZ.cjs → schema-Bv9OdW1f-BY6u3u8K.cjs} +22 -4
- package/dist/schema-Bv9OdW1f-BY6u3u8K.cjs.map +1 -0
- package/dist/{schema-Ba6HLBWs-C2m5ORpo.js → schema-Bv9OdW1f-CIOfv-3w.js} +22 -4
- package/dist/schema-Bv9OdW1f-CIOfv-3w.js.map +1 -0
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +3 -3
- package/dist/server/handlers/agent-builder.js +3 -3
- package/dist/server/handlers/agent-controller.cjs +1 -1
- package/dist/server/handlers/agent-controller.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +2 -2
- package/dist/server/handlers/agent-versions.js +2 -2
- package/dist/server/handlers/agents.cjs +5 -5
- package/dist/server/handlers/agents.js +4 -4
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +1 -1
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/datasets.cjs +8 -6
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +20 -0
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +8 -6
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +2 -2
- package/dist/server/handlers/mcp-client-versions.js +2 -2
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +16 -0
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability.cjs +2 -2
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +2 -2
- package/dist/server/handlers/prompt-block-versions.js +2 -2
- package/dist/server/handlers/responses.cjs +1 -1
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +2 -2
- package/dist/server/handlers/scorer-versions.js +2 -2
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +3 -3
- package/dist/server/handlers/stored-agents.cjs +3 -3
- package/dist/server/handlers/stored-agents.js +3 -3
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.js +2 -2
- package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +2 -2
- package/dist/server/handlers/stored-scorers.js +2 -2
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +3 -3
- package/dist/server/handlers/stored-skills.cjs +3 -3
- package/dist/server/handlers/stored-skills.js +3 -3
- package/dist/server/handlers/stored-workflows.cjs +1 -1
- package/dist/server/handlers/stored-workflows.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +2 -2
- package/dist/server/handlers/stored-workspaces.js +2 -2
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.js +2 -2
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +5 -5
- package/dist/server/handlers/tools.js +4 -4
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflows.cjs +2 -2
- package/dist/server/handlers/workflows.js +2 -2
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +2 -2
- package/dist/server/schemas/datasets.d.ts +8 -0
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +1 -1
- package/dist/server/schemas/index.js +1 -1
- package/dist/server/server-adapter/index.cjs +3 -3
- package/dist/server/server-adapter/index.js +3 -3
- package/dist/server/server-adapter/routes/datasets.d.ts +20 -0
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +8 -0
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/{stored-workflows-B3zZJg8e.js → stored-workflows-OanG0TmB.js} +2 -2
- package/dist/{stored-workflows-B3zZJg8e.js.map → stored-workflows-OanG0TmB.js.map} +1 -1
- package/dist/{stored-workflows-RgQKpn7N.cjs → stored-workflows-pCiWK305.cjs} +2 -2
- package/dist/{stored-workflows-RgQKpn7N.cjs.map → stored-workflows-pCiWK305.cjs.map} +1 -1
- package/dist/{utils-DVelcVp5.js → utils-qxLrCsRx.js} +3 -3
- package/dist/{utils-DVelcVp5.js.map → utils-qxLrCsRx.js.map} +1 -1
- package/dist/{utils-5wLvbOLW.cjs → utils-xsPNtHk8.cjs} +5 -5
- package/dist/{utils-5wLvbOLW.cjs.map → utils-xsPNtHk8.cjs.map} +1 -1
- package/package.json +5 -5
- package/dist/datasets-7yYpHm7l.cjs.map +0 -1
- package/dist/datasets-CopqHYDy.js.map +0 -1
- package/dist/dist-BlHxui7N.js.map +0 -1
- package/dist/dist-D9hQEsv9.cjs.map +0 -1
- package/dist/observability-new-endpoints-C1g-Gvjz.js.map +0 -1
- package/dist/observability-new-endpoints-Dp2vQgwB.cjs.map +0 -1
- package/dist/schema-BXx4ex7A.cjs +0 -1
- package/dist/schema-Ba6HLBWs-29iOFPqZ.cjs.map +0 -1
- package/dist/schema-Ba6HLBWs-C2m5ORpo.js.map +0 -1
- package/dist/schema-CcKMuta9.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels-Do3L4evC.js","names":[],"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import type { Mastra } from '@mastra/core';\nimport type { ChannelProvider } from '@mastra/core/channels';\nimport type { RequestContext } from '@mastra/core/di';\nimport { coreFeatures } from '@mastra/core/features';\n\nimport { MASTRA_USER_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { assertWriteAccess, getCallerAuthorId, hasAdminBypass, hasScopedPermission } from './authorship';\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: Mastra, platform: string): ChannelProvider {\n const channels = Object.values(mastra.channels ?? {});\n const channel = channels.find(c => c.id === platform);\n if (!channel) {\n const available = channels.map(c => c.id).join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\n/**\n * Unified connect/disconnect authorization.\n *\n * - Stored agent exists → same write access as editing the agent record.\n * - Code-defined agent (no stored record) → route's `requiresAuth` is the gate.\n * - Agent doesn't exist anywhere:\n * - connect → 404 (can't connect a channel to a non-existent agent)\n * - disconnect → orphan cleanup, gated on `channels:write`\n */\nasync function assertChannelAgentWriteAccess(\n mastra: Mastra,\n requestContext: RequestContext,\n agentId: string,\n action: 'connect' | 'disconnect',\n): Promise<void> {\n const storage = mastra.getStorage();\n const agentsStore = storage ? await storage.getStore('agents') : null;\n const stored = agentsStore ? await agentsStore.getById(agentId) : null;\n\n if (stored) {\n assertWriteAccess({\n requestContext,\n resource: 'agents',\n resourceId: agentId,\n action: 'edit',\n record: stored,\n });\n return;\n }\n\n // Not in stored-agents (or storage doesn't support it). Check the runtime\n // registry for a code-defined agent.\n const codeDefined = mastra.getAgentById(agentId);\n if (codeDefined) {\n // Code-defined agents have no owner/ACL — route's requiresAuth /\n // requiresPermission is the gate. Pass-through.\n return;\n }\n\n if (action === 'connect') {\n throw new HTTPException(404, { message: `Agent \"${agentId}\" not found` });\n }\n\n // Disconnect against an unknown agentId = orphan cleanup (stored agent was\n // deleted but the channel installation row is still around). Allow it, but\n // gate on channels:write so this isn't an \"any authenticated user\" backdoor.\n // Follow the same no-auth-configured pass-through as assertWriteAccess.\n const callerAuthorId = getCallerAuthorId(requestContext);\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return;\n if (hasAdminBypass(requestContext, 'channels')) return;\n if (hasScopedPermission({ requestContext, resource: 'channels', action: 'write' })) return;\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = Object.values(mastra.channels ?? {});\n return channels.map(channel => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n await assertChannelAgentWriteAccess(mastra, requestContext, agentId, 'connect');\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await assertChannelAgentWriteAccess(mastra, requestContext, agentId, 'disconnect');\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channels-BqkOxxEk.js","names":[],"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import type { Mastra } from '@mastra/core';\nimport type { ChannelProvider } from '@mastra/core/channels';\nimport type { RequestContext } from '@mastra/core/di';\nimport { coreFeatures } from '@mastra/core/features';\n\nimport { MASTRA_USER_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { assertWriteAccess, getCallerAuthorId, hasAdminBypass, hasScopedPermission } from './authorship';\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: Mastra, platform: string): ChannelProvider {\n const channels = Object.values(mastra.channels ?? {});\n const channel = channels.find(c => c.id === platform);\n if (!channel) {\n const available = channels.map(c => c.id).join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\n/**\n * Unified connect/disconnect authorization.\n *\n * - Stored agent exists → same write access as editing the agent record.\n * - Code-defined agent (no stored record) → route's `requiresAuth` is the gate.\n * - Agent doesn't exist anywhere:\n * - connect → 404 (can't connect a channel to a non-existent agent)\n * - disconnect → orphan cleanup, gated on `channels:write`\n */\nasync function assertChannelAgentWriteAccess(\n mastra: Mastra,\n requestContext: RequestContext,\n agentId: string,\n action: 'connect' | 'disconnect',\n): Promise<void> {\n const storage = mastra.getStorage();\n const agentsStore = storage ? await storage.getStore('agents') : null;\n const stored = agentsStore ? await agentsStore.getById(agentId) : null;\n\n if (stored) {\n assertWriteAccess({\n requestContext,\n resource: 'agents',\n resourceId: agentId,\n action: 'edit',\n record: stored,\n });\n return;\n }\n\n // Not in stored-agents (or storage doesn't support it). Check the runtime\n // registry for a code-defined agent.\n const codeDefined = mastra.getAgentById(agentId);\n if (codeDefined) {\n // Code-defined agents have no owner/ACL — route's requiresAuth /\n // requiresPermission is the gate. Pass-through.\n return;\n }\n\n if (action === 'connect') {\n throw new HTTPException(404, { message: `Agent \"${agentId}\" not found` });\n }\n\n // Disconnect against an unknown agentId = orphan cleanup (stored agent was\n // deleted but the channel installation row is still around). Allow it, but\n // gate on channels:write so this isn't an \"any authenticated user\" backdoor.\n // Follow the same no-auth-configured pass-through as assertWriteAccess.\n const callerAuthorId = getCallerAuthorId(requestContext);\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return;\n if (hasAdminBypass(requestContext, 'channels')) return;\n if (hasScopedPermission({ requestContext, resource: 'channels', action: 'write' })) return;\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = Object.values(mastra.channels ?? {});\n return channels.map(channel => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n await assertChannelAgentWriteAccess(mastra, requestContext, agentId, 'connect');\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await assertChannelAgentWriteAccess(mastra, requestContext, agentId, 'disconnect');\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"],"mappings":"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"}
|
|
@@ -223,6 +223,7 @@ const addItemBodySchema = zod_v4.z.object({
|
|
|
223
223
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
224
224
|
toolMocks: toolMocksSchema,
|
|
225
225
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
226
|
+
scorerIds: zod_v4.z.array(zod_v4.z.string()).optional().describe("IDs of scorers selected for this item"),
|
|
226
227
|
requestContext: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional().describe("Request context preset for this item"),
|
|
227
228
|
metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional().describe("Additional metadata"),
|
|
228
229
|
source: datasetItemSourceSchema
|
|
@@ -233,6 +234,7 @@ const updateItemBodySchema = zod_v4.z.object({
|
|
|
233
234
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
234
235
|
toolMocks: toolMocksSchema,
|
|
235
236
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
237
|
+
scorerIds: zod_v4.z.array(zod_v4.z.string()).optional().nullable().describe("IDs of scorers selected for this item"),
|
|
236
238
|
requestContext: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional().describe("Request context preset for this item"),
|
|
237
239
|
metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional().describe("Additional metadata"),
|
|
238
240
|
source: datasetItemSourceSchema
|
|
@@ -284,6 +286,7 @@ const datasetItemResponseSchema = zod_v4.z.object({
|
|
|
284
286
|
expectedTrajectory: zod_v4.z.unknown().optional(),
|
|
285
287
|
toolMocks: toolMocksSchema,
|
|
286
288
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
289
|
+
scorerIds: zod_v4.z.array(zod_v4.z.string()).optional(),
|
|
287
290
|
requestContext: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
|
|
288
291
|
metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
|
|
289
292
|
source: datasetItemSourceSchema,
|
|
@@ -448,6 +451,7 @@ const itemVersionResponseSchema = zod_v4.z.object({
|
|
|
448
451
|
expectedTrajectory: zod_v4.z.unknown().optional(),
|
|
449
452
|
toolMocks: toolMocksSchema,
|
|
450
453
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
454
|
+
scorerIds: zod_v4.z.array(zod_v4.z.string()).optional(),
|
|
451
455
|
metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
|
|
452
456
|
validTo: zod_v4.z.number().int().nullable(),
|
|
453
457
|
isDeleted: zod_v4.z.boolean(),
|
|
@@ -472,6 +476,7 @@ const batchInsertItemsBodySchema = zod_v4.z.object({ items: zod_v4.z.array(zod_v
|
|
|
472
476
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
473
477
|
toolMocks: toolMocksSchema,
|
|
474
478
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
479
|
+
scorerIds: zod_v4.z.array(zod_v4.z.string()).optional(),
|
|
475
480
|
requestContext: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
|
|
476
481
|
metadata: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.unknown()).optional(),
|
|
477
482
|
source: datasetItemSourceSchema
|
|
@@ -782,4 +787,4 @@ Object.defineProperty(exports, "updateItemBodySchema", {
|
|
|
782
787
|
}
|
|
783
788
|
});
|
|
784
789
|
|
|
785
|
-
//# sourceMappingURL=datasets-
|
|
790
|
+
//# sourceMappingURL=datasets-Cvix7Rms.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasets-Cvix7Rms.cjs","names":["z","paginationInfoSchema"],"sources":["../src/server/schemas/datasets.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { paginationInfoSchema } from './common';\n\n// ============================================================================\n// JSON Schema Types (for inputSchema/groundTruthSchema fields)\n// ============================================================================\n\n// JSON Schema type (simplified for storage - full spec too complex)\nconst jsonSchemaObject: z.ZodType<Record<string, unknown>> = z.lazy(() => z.record(z.string(), z.unknown()));\n\n// JSON Schema field (object or null to disable)\nconst jsonSchemaField = z.union([jsonSchemaObject, z.null()]).optional();\n\n// ============================================================================\n// Trajectory Expectation Schema (2 levels deep, children at level 2 use z.unknown())\n// ============================================================================\n\n// Shared base fields for expected steps (level 2 — children typed as z.unknown())\nconst expectedStepBase = {\n name: z.string().describe('Step name to match'),\n durationMs: z.number().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n children: z.unknown().optional().describe('Nested trajectory expectation (untyped at this depth)'),\n};\n\n// Typed step variants keyed by stepType\nconst expectedToolCallStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('tool_call'),\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n toolResult: z.record(z.string(), z.unknown()).optional(),\n success: z.boolean().optional(),\n});\n\nconst expectedMcpToolCallStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('mcp_tool_call'),\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n toolResult: z.record(z.string(), z.unknown()).optional(),\n mcpServer: z.string().optional(),\n success: z.boolean().optional(),\n});\n\nconst expectedModelGenerationStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('model_generation'),\n modelId: z.string().optional(),\n promptTokens: z.number().optional(),\n completionTokens: z.number().optional(),\n finishReason: z.string().optional(),\n});\n\nconst expectedAgentRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('agent_run'),\n agentId: z.string().optional(),\n});\n\nconst expectedWorkflowStepStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_step'),\n stepId: z.string().optional(),\n status: z.string().optional(),\n output: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst expectedWorkflowRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_run'),\n workflowId: z.string().optional(),\n status: z.string().optional(),\n});\n\nconst expectedWorkflowConditionalStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_conditional'),\n conditionCount: z.number().optional(),\n selectedSteps: z.array(z.string()).optional(),\n});\n\nconst expectedWorkflowParallelStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_parallel'),\n branchCount: z.number().optional(),\n parallelSteps: z.array(z.string()).optional(),\n});\n\nconst expectedWorkflowLoopStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_loop'),\n loopType: z.string().optional(),\n totalIterations: z.number().optional(),\n});\n\nconst expectedWorkflowSleepStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_sleep'),\n sleepDurationMs: z.number().optional(),\n sleepType: z.string().optional(),\n});\n\nconst expectedWorkflowWaitEventStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_wait_event'),\n eventName: z.string().optional(),\n eventReceived: z.boolean().optional(),\n});\n\nconst expectedProcessorRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('processor_run'),\n processorId: z.string().optional(),\n});\n\n// Generic step (no stepType — matches by name only)\nconst expectedGenericStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.undefined().optional(),\n});\n\n// Union of all expected step types\nconst expectedStepSchema = z.union([\n z.discriminatedUnion('stepType', [\n expectedToolCallStepSchema,\n expectedMcpToolCallStepSchema,\n expectedModelGenerationStepSchema,\n expectedAgentRunStepSchema,\n expectedWorkflowStepStepSchema,\n expectedWorkflowRunStepSchema,\n expectedWorkflowConditionalStepSchema,\n expectedWorkflowParallelStepSchema,\n expectedWorkflowLoopStepSchema,\n expectedWorkflowSleepStepSchema,\n expectedWorkflowWaitEventStepSchema,\n expectedProcessorRunStepSchema,\n ]),\n expectedGenericStepSchema,\n]);\n\n// Full TrajectoryExpectation schema\nconst trajectoryExpectationSchema = z\n .object({\n // Accuracy\n steps: z.array(expectedStepSchema).optional().describe('Expected steps for accuracy checking'),\n ordering: z\n .enum(['strict', 'relaxed', 'unordered'])\n .optional()\n .describe('How to compare step ordering (default: relaxed)'),\n allowRepeatedSteps: z.boolean().optional().describe('Whether to allow repeated steps (default: true)'),\n\n // Efficiency\n maxSteps: z.number().int().optional().describe('Maximum number of steps allowed'),\n maxTotalTokens: z.number().int().optional().describe('Maximum total tokens across all model_generation steps'),\n maxTotalDurationMs: z.number().optional().describe('Maximum total duration in milliseconds'),\n noRedundantCalls: z\n .boolean()\n .optional()\n .describe('Whether to penalize redundant calls (same tool + same args consecutively, default: true)'),\n\n // Blacklist\n blacklistedTools: z.array(z.string()).optional().describe('Tool names that should never appear'),\n blacklistedSequences: z\n .array(z.array(z.string()))\n .optional()\n .describe('Tool name sequences that should never appear'),\n\n // Tool failure tolerance\n maxRetriesPerTool: z.number().int().optional().describe('Maximum retries per tool before penalizing (default: 2)'),\n })\n .optional()\n .nullable()\n .describe('Expected trajectory configuration for trajectory scoring');\n\n// Dataset item source tracking\nconst datasetItemSourceSchema = z\n .object({\n type: z\n .enum(['csv', 'json', 'trace', 'llm', 'experiment-result', 'candidate-screener'])\n .describe('How this item was created'),\n referenceId: z.string().optional().describe('Reference identifier (e.g., trace id, csv filename)'),\n })\n .optional()\n .describe('Source/provenance of this dataset item');\n\n// Item-level static tool mocks (agent targets only).\nconst itemToolMockSchema = z.object({\n toolName: z.string().describe('Name of the tool this mock applies to'),\n args: z.record(z.string(), z.unknown()).describe('Arguments to match against the tool call'),\n output: z.unknown().describe('Output served to the agent when matched'),\n matchArgs: z\n .enum(['strict', 'ignore'])\n .optional()\n .describe(\"Argument matching mode. 'strict' (default) deep-equals args; 'ignore' matches on toolName only\"),\n});\n\nconst toolMocksSchema = z\n .array(itemToolMockSchema)\n .optional()\n .describe('Ordered item-level static tool mocks served in place of executing the real tool');\n\nconst unmockedToolPolicySchema = z\n .enum(['allow', 'deny'])\n .optional()\n .describe(\"Policy for undeclared tool calls. 'allow' runs them live; 'deny' fails the experiment item\");\n\n// Diagnostic receipt for item-level tool mocks, persisted on experiment results.\nconst toolMockReportSchema = z\n .object({\n served: z.array(z.object({ mockIndex: z.number().int(), toolName: z.string(), args: z.unknown() })),\n unconsumed: z.array(z.object({ mockIndex: z.number().int(), toolName: z.string(), args: z.unknown() })),\n liveCalls: z.array(z.object({ toolName: z.string(), args: z.unknown() })),\n failure: z\n .object({\n code: z.enum(['TOOL_MOCK_MISMATCH', 'TOOL_MOCK_EXHAUSTED', 'TOOL_MOCK_NOT_DECLARED']),\n toolName: z.string(),\n args: z.unknown(),\n })\n .optional(),\n })\n .optional()\n .describe('Diagnostic receipt for item-level tool mocks');\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const datasetIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n});\n\nexport const experimentIdPathParams = z.object({\n experimentId: z.string().describe('Unique identifier for the experiment'),\n});\n\nexport const itemIdPathParams = z.object({\n itemId: z.string().describe('Unique identifier for the dataset item'),\n});\n\nexport const datasetAndExperimentIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n experimentId: z.string().describe('Unique identifier for the experiment'),\n});\n\nexport const experimentResultIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n experimentId: z.string().describe('Unique identifier for the experiment'),\n resultId: z.string().describe('Unique identifier for the experiment result'),\n});\n\nexport const datasetAndItemIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n itemId: z.string().describe('Unique identifier for the dataset item'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\nexport const paginationQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n});\n\nexport const tenancyQuerySchema = z.object({\n organizationId: z.string().optional().describe('Restrict lookup to the given organization'),\n projectId: z.string().optional().describe('Restrict lookup to the given project'),\n});\n\nexport const listItemsQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n version: z.coerce.number().int().optional(), // Optional version filter for snapshot semantics\n search: z.string().optional(),\n});\n\n// ============================================================================\n// Request Body Schemas\n// ============================================================================\n\nexport const createDatasetBodySchema = z.object({\n name: z.string().describe('Name of the dataset'),\n description: z.string().optional().describe('Description of the dataset'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n inputSchema: jsonSchemaField.describe('JSON Schema for validating item input'),\n groundTruthSchema: jsonSchemaField.describe('JSON Schema for validating item groundTruth'),\n requestContextSchema: jsonSchemaField.describe('JSON Schema describing expected request context shape'),\n targetType: z.string().optional().describe('Target entity type (e.g. agent, workflow, scorer)'),\n targetIds: z.array(z.string()).optional().describe('IDs of target entities this dataset is attached to'),\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers attached to this dataset'),\n});\n\nexport const updateDatasetBodySchema = z.object({\n name: z.string().optional().describe('Name of the dataset'),\n description: z.string().optional().describe('Description of the dataset'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n inputSchema: jsonSchemaField.describe('JSON Schema for validating item input'),\n groundTruthSchema: jsonSchemaField.describe('JSON Schema for validating item groundTruth'),\n requestContextSchema: jsonSchemaField.describe('JSON Schema describing expected request context shape'),\n tags: z.array(z.string()).optional().describe('Tag definitions for categorizing experiment results'),\n targetType: z.string().optional().describe('Target entity type (e.g. agent, workflow, scorer)'),\n targetIds: z.array(z.string()).optional().describe('IDs of target entities this dataset is attached to'),\n scorerIds: z.array(z.string()).optional().nullable().describe('IDs of scorers attached to this dataset'),\n});\n\nexport const addItemBodySchema = z.object({\n externalId: z.string().optional().nullable().describe('Caller-defined, dataset-local item identity'),\n input: z.unknown().describe('Input data for the dataset item'),\n groundTruth: z.unknown().optional().describe('Expected output for comparison'),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers selected for this item'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Request context preset for this item'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n source: datasetItemSourceSchema,\n});\n\nexport const updateItemBodySchema = z.object({\n input: z.unknown().optional().describe('Input data for the dataset item'),\n groundTruth: z.unknown().optional().describe('Expected output for comparison'),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional().nullable().describe('IDs of scorers selected for this item'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Request context preset for this item'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n source: datasetItemSourceSchema,\n});\n\nexport const triggerExperimentBodySchema = z.object({\n targetType: z.enum(['agent', 'workflow', 'scorer']).describe('Type of target to run against'),\n targetId: z.string().describe('ID of the target'),\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers to apply'),\n version: z.coerce.number().int().optional().describe('Pin to specific dataset version'),\n agentVersion: z.string().optional().describe('Agent version ID to use for experiment'),\n maxConcurrency: z.number().optional().describe('Maximum concurrent executions'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Global request context passed to the target'),\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional()\n .describe('Version overrides for sub-agent delegation during experiment execution'),\n});\n\nexport const compareExperimentsBodySchema = z.object({\n experimentIdA: z.string().describe('ID of baseline experiment'),\n experimentIdB: z.string().describe('ID of candidate experiment'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n// Dataset entity schema\nexport const datasetResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n inputSchema: z.record(z.string(), z.unknown()).optional(),\n groundTruthSchema: z.record(z.string(), z.unknown()).optional(),\n requestContextSchema: z.record(z.string(), z.unknown()).optional(),\n tags: z.array(z.string()).optional().nullable(),\n targetType: z.string().optional().nullable(),\n targetIds: z.array(z.string()).optional().nullable(),\n scorerIds: z.array(z.string()).optional().nullable(),\n version: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Dataset item entity schema\nexport const datasetItemResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n datasetVersion: z.number().int(),\n externalId: z.string().optional().nullable(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: z.unknown().optional(),\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n source: datasetItemSourceSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Experiment entity schema\nexport const experimentResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string().nullable(),\n datasetVersion: z.number().int().nullable(),\n agentVersion: z.string().nullable().optional(),\n targetType: z.enum(['agent', 'workflow', 'scorer', 'processor']),\n targetId: z.string(),\n name: z.string().optional(),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n status: z.enum(['pending', 'running', 'completed', 'failed']),\n totalItems: z.number(),\n succeededCount: z.number(),\n failedCount: z.number(),\n skippedCount: z.number(),\n startedAt: z.coerce.date().nullable(),\n completedAt: z.coerce.date().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Scorer result schema\nexport const scorerResultSchema = z.object({\n scorerId: z.string(),\n scorerName: z.string(),\n score: z.number().nullable(),\n reason: z.string().nullable(),\n error: z.string().nullable(),\n});\n\n// Experiment result entity schema\nexport const experimentResultResponseSchema = z.object({\n id: z.string(),\n experimentId: z.string(),\n itemId: z.string(),\n itemDatasetVersion: z.number().int().nullable(),\n input: z.unknown(),\n output: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n expectedTrajectory: z.unknown().optional(),\n error: z\n .object({\n message: z.string(),\n stack: z.string().optional(),\n code: z.string().optional(),\n })\n .nullable(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date(),\n retryCount: z.number(),\n traceId: z.string().nullable(),\n status: z.enum(['needs-review', 'reviewed', 'complete']).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n comment: z.string().nullable().optional(),\n toolMockReport: toolMockReportSchema.nullable(),\n createdAt: z.coerce.date(),\n});\n\nexport const updateExperimentResultBodySchema = z.object({\n status: z.enum(['needs-review', 'reviewed', 'complete']).nullable().optional(),\n tags: z.array(z.string()).optional(),\n comment: z.string().nullable().optional(),\n});\n\n// Comparison item schema (MVP shape)\nconst comparisonItemSchema = z.object({\n itemId: z.string(),\n input: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n results: z.record(\n z.string(),\n z\n .object({\n output: z.unknown().nullable(),\n scores: z.record(z.string(), z.number().nullable()),\n })\n .nullable(),\n ),\n});\n\n// Comparison result schema\nexport const comparisonResponseSchema = z.object({\n baselineId: z.string(),\n items: z.array(comparisonItemSchema),\n});\n\n// Experiment summary schema (returned by trigger experiment)\n// Note: completedAt is nullable for pending/running experiments (async trigger)\nexport const experimentSummaryResponseSchema = z.object({\n experimentId: z.string(),\n status: z.enum(['pending', 'running', 'completed', 'failed']),\n totalItems: z.number(),\n succeededCount: z.number(),\n failedCount: z.number(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date().nullable(),\n results: z.array(\n z.object({\n itemId: z.string(),\n itemDatasetVersion: z.number().int().nullable(),\n input: z.unknown(),\n output: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n error: z.string().nullable(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date(),\n retryCount: z.number(),\n toolMockReport: toolMockReportSchema.nullable(),\n scores: z.array(\n z.object({\n scorerId: z.string(),\n scorerName: z.string(),\n score: z.number().nullable(),\n reason: z.string().nullable(),\n error: z.string().nullable(),\n }),\n ),\n }),\n ),\n});\n\n// ============================================================================\n// List Response Schemas\n// ============================================================================\n\nexport const listDatasetsResponseSchema = z.object({\n datasets: z.array(datasetResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listItemsResponseSchema = z.object({\n items: z.array(datasetItemResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listExperimentsResponseSchema = z.object({\n experiments: z.array(experimentResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listExperimentResultsResponseSchema = z.object({\n results: z.array(experimentResultResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const experimentReviewCountsSchema = z.object({\n experimentId: z.string(),\n total: z.number().int(),\n needsReview: z.number().int(),\n reviewed: z.number().int(),\n complete: z.number().int(),\n});\n\nexport const reviewSummaryResponseSchema = z.object({\n counts: z.array(experimentReviewCountsSchema),\n});\n\n// ============================================================================\n// Version Schemas\n// ============================================================================\n\n// Path params for item version routes\nexport const datasetItemVersionPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n itemId: z.string().describe('Unique identifier for the dataset item'),\n datasetVersion: z.coerce.number().int().describe('Dataset version number'),\n});\n\n// Item history row response schema (SCD-2 DatasetItemRow shape)\nexport const itemVersionResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n datasetVersion: z.number().int(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: z.unknown().optional(),\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n validTo: z.number().int().nullable(),\n isDeleted: z.boolean(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const listItemVersionsResponseSchema = z.object({\n history: z.array(itemVersionResponseSchema),\n});\n\n// Dataset version response schema\nexport const datasetVersionResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n version: z.number().int(),\n createdAt: z.coerce.date(),\n});\n\nexport const listDatasetVersionsResponseSchema = z.object({\n versions: z.array(datasetVersionResponseSchema),\n pagination: paginationInfoSchema,\n});\n\n// ============================================================================\n// Batch Operation Schemas\n// ============================================================================\n\nexport const batchInsertItemsBodySchema = z.object({\n items: z.array(\n z.object({\n externalId: z.string().optional().nullable(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n source: datasetItemSourceSchema,\n }),\n ),\n});\n\nexport const batchInsertItemsResponseSchema = z.object({\n items: z.array(datasetItemResponseSchema),\n count: z.number(),\n});\n\nexport const batchDeleteItemsBodySchema = z.object({\n itemIds: z.array(z.string()),\n});\n\nexport const batchDeleteItemsResponseSchema = z.object({\n success: z.boolean(),\n deletedCount: z.number(),\n});\n\n// ============================================================================\n// AI Generation Schemas\n// ============================================================================\n\nexport const generateItemsBodySchema = z.object({\n modelId: z.string().describe('Model identifier in \"provider/model\" format (e.g., \"openai/gpt-4o\")'),\n prompt: z.string().describe('Description of the kind of test data to generate'),\n count: z.number().int().min(1).max(50).default(5).describe('Number of items to generate'),\n agentContext: z\n .object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n tools: z.array(z.string()).optional(),\n })\n .optional()\n .describe('Context about the agent to generate relevant test data'),\n});\n\nconst generatedItemSchema = z.object({\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n});\n\nexport const generateItemsResponseSchema = z.object({\n items: z.array(generatedItemSchema),\n});\n\n// ============================================================================\n// Cluster Failures\n// ============================================================================\n\nexport const clusterFailuresBodySchema = z.object({\n modelId: z.string().describe('Model identifier in \"provider/model\" format (e.g., \"openai/gpt-4o\")'),\n items: z\n .array(\n z.object({\n id: z.string(),\n input: z.unknown(),\n output: z.unknown().optional(),\n error: z.string().optional(),\n scores: z.record(z.string(), z.number()).optional(),\n existingTags: z.array(z.string()).optional().describe('Tags already applied to this item'),\n }),\n )\n .min(1)\n .max(200)\n .describe('Failure items to cluster'),\n availableTags: z\n .array(z.string())\n .optional()\n .describe('Existing tag vocabulary from the dataset. The LLM should prefer reusing these tags when applicable.'),\n prompt: z\n .string()\n .optional()\n .describe('Optional user instructions to guide the analysis (e.g., \"focus on tool usage failures\")'),\n});\n\nconst failureClusterSchema = z.object({\n id: z.string().describe('A unique cluster identifier'),\n label: z.string().describe('Short label for this failure pattern'),\n description: z.string().describe('Description of the common pattern'),\n itemIds: z.array(z.string()).describe('IDs of items belonging to this cluster'),\n});\n\nexport const clusterFailuresResponseSchema = z.object({\n clusters: z.array(failureClusterSchema),\n /** Per-item proposed tag assignments. Each entry maps an item ID to the tags the LLM suggests adding. */\n proposedTags: z\n .array(\n z.object({\n itemId: z.string(),\n tags: z.array(z.string()),\n reason: z.string().describe('Brief explanation of why these tags were assigned to this item'),\n }),\n )\n .optional(),\n});\n"],"mappings":"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"}
|
|
@@ -223,6 +223,7 @@ const addItemBodySchema = z.object({
|
|
|
223
223
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
224
224
|
toolMocks: toolMocksSchema,
|
|
225
225
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
226
|
+
scorerIds: z.array(z.string()).optional().describe("IDs of scorers selected for this item"),
|
|
226
227
|
requestContext: z.record(z.string(), z.unknown()).optional().describe("Request context preset for this item"),
|
|
227
228
|
metadata: z.record(z.string(), z.unknown()).optional().describe("Additional metadata"),
|
|
228
229
|
source: datasetItemSourceSchema
|
|
@@ -233,6 +234,7 @@ const updateItemBodySchema = z.object({
|
|
|
233
234
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
234
235
|
toolMocks: toolMocksSchema,
|
|
235
236
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
237
|
+
scorerIds: z.array(z.string()).optional().nullable().describe("IDs of scorers selected for this item"),
|
|
236
238
|
requestContext: z.record(z.string(), z.unknown()).optional().describe("Request context preset for this item"),
|
|
237
239
|
metadata: z.record(z.string(), z.unknown()).optional().describe("Additional metadata"),
|
|
238
240
|
source: datasetItemSourceSchema
|
|
@@ -284,6 +286,7 @@ const datasetItemResponseSchema = z.object({
|
|
|
284
286
|
expectedTrajectory: z.unknown().optional(),
|
|
285
287
|
toolMocks: toolMocksSchema,
|
|
286
288
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
289
|
+
scorerIds: z.array(z.string()).optional(),
|
|
287
290
|
requestContext: z.record(z.string(), z.unknown()).optional(),
|
|
288
291
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
289
292
|
source: datasetItemSourceSchema,
|
|
@@ -448,6 +451,7 @@ const itemVersionResponseSchema = z.object({
|
|
|
448
451
|
expectedTrajectory: z.unknown().optional(),
|
|
449
452
|
toolMocks: toolMocksSchema,
|
|
450
453
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
454
|
+
scorerIds: z.array(z.string()).optional(),
|
|
451
455
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
452
456
|
validTo: z.number().int().nullable(),
|
|
453
457
|
isDeleted: z.boolean(),
|
|
@@ -472,6 +476,7 @@ const batchInsertItemsBodySchema = z.object({ items: z.array(z.object({
|
|
|
472
476
|
expectedTrajectory: trajectoryExpectationSchema,
|
|
473
477
|
toolMocks: toolMocksSchema,
|
|
474
478
|
unmockedToolPolicy: unmockedToolPolicySchema,
|
|
479
|
+
scorerIds: z.array(z.string()).optional(),
|
|
475
480
|
requestContext: z.record(z.string(), z.unknown()).optional(),
|
|
476
481
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
477
482
|
source: datasetItemSourceSchema
|
|
@@ -531,4 +536,4 @@ const clusterFailuresResponseSchema = z.object({
|
|
|
531
536
|
//#endregion
|
|
532
537
|
export { listExperimentResultsResponseSchema as A, updateDatasetBodySchema as B, experimentSummaryResponseSchema as C, itemVersionResponseSchema as D, itemIdPathParams as E, paginationQuerySchema as F, updateItemBodySchema as H, reviewSummaryResponseSchema as I, scorerResultSchema as L, listItemVersionsResponseSchema as M, listItemsQuerySchema as N, listDatasetVersionsResponseSchema as O, listItemsResponseSchema as P, tenancyQuerySchema as R, experimentReviewCountsSchema as S, generateItemsResponseSchema as T, updateExperimentResultBodySchema as V, datasetVersionResponseSchema as _, batchInsertItemsResponseSchema as a, experimentResultIdPathParams as b, compareExperimentsBodySchema as c, datasetAndExperimentIdPathParams as d, datasetAndItemIdPathParams as f, datasetResponseSchema as g, datasetItemVersionPathParams as h, batchInsertItemsBodySchema as i, listExperimentsResponseSchema as j, listDatasetsResponseSchema as k, comparisonResponseSchema as l, datasetItemResponseSchema as m, batchDeleteItemsBodySchema as n, clusterFailuresBodySchema as o, datasetIdPathParams as p, batchDeleteItemsResponseSchema as r, clusterFailuresResponseSchema as s, addItemBodySchema as t, createDatasetBodySchema as u, experimentIdPathParams as v, generateItemsBodySchema as w, experimentResultResponseSchema as x, experimentResponseSchema as y, triggerExperimentBodySchema as z };
|
|
533
538
|
|
|
534
|
-
//# sourceMappingURL=datasets-
|
|
539
|
+
//# sourceMappingURL=datasets-dhXnHLAL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasets-dhXnHLAL.js","names":[],"sources":["../src/server/schemas/datasets.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { paginationInfoSchema } from './common';\n\n// ============================================================================\n// JSON Schema Types (for inputSchema/groundTruthSchema fields)\n// ============================================================================\n\n// JSON Schema type (simplified for storage - full spec too complex)\nconst jsonSchemaObject: z.ZodType<Record<string, unknown>> = z.lazy(() => z.record(z.string(), z.unknown()));\n\n// JSON Schema field (object or null to disable)\nconst jsonSchemaField = z.union([jsonSchemaObject, z.null()]).optional();\n\n// ============================================================================\n// Trajectory Expectation Schema (2 levels deep, children at level 2 use z.unknown())\n// ============================================================================\n\n// Shared base fields for expected steps (level 2 — children typed as z.unknown())\nconst expectedStepBase = {\n name: z.string().describe('Step name to match'),\n durationMs: z.number().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n children: z.unknown().optional().describe('Nested trajectory expectation (untyped at this depth)'),\n};\n\n// Typed step variants keyed by stepType\nconst expectedToolCallStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('tool_call'),\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n toolResult: z.record(z.string(), z.unknown()).optional(),\n success: z.boolean().optional(),\n});\n\nconst expectedMcpToolCallStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('mcp_tool_call'),\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n toolResult: z.record(z.string(), z.unknown()).optional(),\n mcpServer: z.string().optional(),\n success: z.boolean().optional(),\n});\n\nconst expectedModelGenerationStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('model_generation'),\n modelId: z.string().optional(),\n promptTokens: z.number().optional(),\n completionTokens: z.number().optional(),\n finishReason: z.string().optional(),\n});\n\nconst expectedAgentRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('agent_run'),\n agentId: z.string().optional(),\n});\n\nconst expectedWorkflowStepStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_step'),\n stepId: z.string().optional(),\n status: z.string().optional(),\n output: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst expectedWorkflowRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_run'),\n workflowId: z.string().optional(),\n status: z.string().optional(),\n});\n\nconst expectedWorkflowConditionalStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_conditional'),\n conditionCount: z.number().optional(),\n selectedSteps: z.array(z.string()).optional(),\n});\n\nconst expectedWorkflowParallelStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_parallel'),\n branchCount: z.number().optional(),\n parallelSteps: z.array(z.string()).optional(),\n});\n\nconst expectedWorkflowLoopStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_loop'),\n loopType: z.string().optional(),\n totalIterations: z.number().optional(),\n});\n\nconst expectedWorkflowSleepStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_sleep'),\n sleepDurationMs: z.number().optional(),\n sleepType: z.string().optional(),\n});\n\nconst expectedWorkflowWaitEventStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('workflow_wait_event'),\n eventName: z.string().optional(),\n eventReceived: z.boolean().optional(),\n});\n\nconst expectedProcessorRunStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.literal('processor_run'),\n processorId: z.string().optional(),\n});\n\n// Generic step (no stepType — matches by name only)\nconst expectedGenericStepSchema = z.object({\n ...expectedStepBase,\n stepType: z.undefined().optional(),\n});\n\n// Union of all expected step types\nconst expectedStepSchema = z.union([\n z.discriminatedUnion('stepType', [\n expectedToolCallStepSchema,\n expectedMcpToolCallStepSchema,\n expectedModelGenerationStepSchema,\n expectedAgentRunStepSchema,\n expectedWorkflowStepStepSchema,\n expectedWorkflowRunStepSchema,\n expectedWorkflowConditionalStepSchema,\n expectedWorkflowParallelStepSchema,\n expectedWorkflowLoopStepSchema,\n expectedWorkflowSleepStepSchema,\n expectedWorkflowWaitEventStepSchema,\n expectedProcessorRunStepSchema,\n ]),\n expectedGenericStepSchema,\n]);\n\n// Full TrajectoryExpectation schema\nconst trajectoryExpectationSchema = z\n .object({\n // Accuracy\n steps: z.array(expectedStepSchema).optional().describe('Expected steps for accuracy checking'),\n ordering: z\n .enum(['strict', 'relaxed', 'unordered'])\n .optional()\n .describe('How to compare step ordering (default: relaxed)'),\n allowRepeatedSteps: z.boolean().optional().describe('Whether to allow repeated steps (default: true)'),\n\n // Efficiency\n maxSteps: z.number().int().optional().describe('Maximum number of steps allowed'),\n maxTotalTokens: z.number().int().optional().describe('Maximum total tokens across all model_generation steps'),\n maxTotalDurationMs: z.number().optional().describe('Maximum total duration in milliseconds'),\n noRedundantCalls: z\n .boolean()\n .optional()\n .describe('Whether to penalize redundant calls (same tool + same args consecutively, default: true)'),\n\n // Blacklist\n blacklistedTools: z.array(z.string()).optional().describe('Tool names that should never appear'),\n blacklistedSequences: z\n .array(z.array(z.string()))\n .optional()\n .describe('Tool name sequences that should never appear'),\n\n // Tool failure tolerance\n maxRetriesPerTool: z.number().int().optional().describe('Maximum retries per tool before penalizing (default: 2)'),\n })\n .optional()\n .nullable()\n .describe('Expected trajectory configuration for trajectory scoring');\n\n// Dataset item source tracking\nconst datasetItemSourceSchema = z\n .object({\n type: z\n .enum(['csv', 'json', 'trace', 'llm', 'experiment-result', 'candidate-screener'])\n .describe('How this item was created'),\n referenceId: z.string().optional().describe('Reference identifier (e.g., trace id, csv filename)'),\n })\n .optional()\n .describe('Source/provenance of this dataset item');\n\n// Item-level static tool mocks (agent targets only).\nconst itemToolMockSchema = z.object({\n toolName: z.string().describe('Name of the tool this mock applies to'),\n args: z.record(z.string(), z.unknown()).describe('Arguments to match against the tool call'),\n output: z.unknown().describe('Output served to the agent when matched'),\n matchArgs: z\n .enum(['strict', 'ignore'])\n .optional()\n .describe(\"Argument matching mode. 'strict' (default) deep-equals args; 'ignore' matches on toolName only\"),\n});\n\nconst toolMocksSchema = z\n .array(itemToolMockSchema)\n .optional()\n .describe('Ordered item-level static tool mocks served in place of executing the real tool');\n\nconst unmockedToolPolicySchema = z\n .enum(['allow', 'deny'])\n .optional()\n .describe(\"Policy for undeclared tool calls. 'allow' runs them live; 'deny' fails the experiment item\");\n\n// Diagnostic receipt for item-level tool mocks, persisted on experiment results.\nconst toolMockReportSchema = z\n .object({\n served: z.array(z.object({ mockIndex: z.number().int(), toolName: z.string(), args: z.unknown() })),\n unconsumed: z.array(z.object({ mockIndex: z.number().int(), toolName: z.string(), args: z.unknown() })),\n liveCalls: z.array(z.object({ toolName: z.string(), args: z.unknown() })),\n failure: z\n .object({\n code: z.enum(['TOOL_MOCK_MISMATCH', 'TOOL_MOCK_EXHAUSTED', 'TOOL_MOCK_NOT_DECLARED']),\n toolName: z.string(),\n args: z.unknown(),\n })\n .optional(),\n })\n .optional()\n .describe('Diagnostic receipt for item-level tool mocks');\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const datasetIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n});\n\nexport const experimentIdPathParams = z.object({\n experimentId: z.string().describe('Unique identifier for the experiment'),\n});\n\nexport const itemIdPathParams = z.object({\n itemId: z.string().describe('Unique identifier for the dataset item'),\n});\n\nexport const datasetAndExperimentIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n experimentId: z.string().describe('Unique identifier for the experiment'),\n});\n\nexport const experimentResultIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n experimentId: z.string().describe('Unique identifier for the experiment'),\n resultId: z.string().describe('Unique identifier for the experiment result'),\n});\n\nexport const datasetAndItemIdPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n itemId: z.string().describe('Unique identifier for the dataset item'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\nexport const paginationQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n});\n\nexport const tenancyQuerySchema = z.object({\n organizationId: z.string().optional().describe('Restrict lookup to the given organization'),\n projectId: z.string().optional().describe('Restrict lookup to the given project'),\n});\n\nexport const listItemsQuerySchema = z.object({\n page: z.coerce.number().optional().default(0),\n perPage: z.coerce.number().optional().default(10),\n version: z.coerce.number().int().optional(), // Optional version filter for snapshot semantics\n search: z.string().optional(),\n});\n\n// ============================================================================\n// Request Body Schemas\n// ============================================================================\n\nexport const createDatasetBodySchema = z.object({\n name: z.string().describe('Name of the dataset'),\n description: z.string().optional().describe('Description of the dataset'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n inputSchema: jsonSchemaField.describe('JSON Schema for validating item input'),\n groundTruthSchema: jsonSchemaField.describe('JSON Schema for validating item groundTruth'),\n requestContextSchema: jsonSchemaField.describe('JSON Schema describing expected request context shape'),\n targetType: z.string().optional().describe('Target entity type (e.g. agent, workflow, scorer)'),\n targetIds: z.array(z.string()).optional().describe('IDs of target entities this dataset is attached to'),\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers attached to this dataset'),\n});\n\nexport const updateDatasetBodySchema = z.object({\n name: z.string().optional().describe('Name of the dataset'),\n description: z.string().optional().describe('Description of the dataset'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n inputSchema: jsonSchemaField.describe('JSON Schema for validating item input'),\n groundTruthSchema: jsonSchemaField.describe('JSON Schema for validating item groundTruth'),\n requestContextSchema: jsonSchemaField.describe('JSON Schema describing expected request context shape'),\n tags: z.array(z.string()).optional().describe('Tag definitions for categorizing experiment results'),\n targetType: z.string().optional().describe('Target entity type (e.g. agent, workflow, scorer)'),\n targetIds: z.array(z.string()).optional().describe('IDs of target entities this dataset is attached to'),\n scorerIds: z.array(z.string()).optional().nullable().describe('IDs of scorers attached to this dataset'),\n});\n\nexport const addItemBodySchema = z.object({\n externalId: z.string().optional().nullable().describe('Caller-defined, dataset-local item identity'),\n input: z.unknown().describe('Input data for the dataset item'),\n groundTruth: z.unknown().optional().describe('Expected output for comparison'),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers selected for this item'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Request context preset for this item'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n source: datasetItemSourceSchema,\n});\n\nexport const updateItemBodySchema = z.object({\n input: z.unknown().optional().describe('Input data for the dataset item'),\n groundTruth: z.unknown().optional().describe('Expected output for comparison'),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional().nullable().describe('IDs of scorers selected for this item'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Request context preset for this item'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata'),\n source: datasetItemSourceSchema,\n});\n\nexport const triggerExperimentBodySchema = z.object({\n targetType: z.enum(['agent', 'workflow', 'scorer']).describe('Type of target to run against'),\n targetId: z.string().describe('ID of the target'),\n scorerIds: z.array(z.string()).optional().describe('IDs of scorers to apply'),\n version: z.coerce.number().int().optional().describe('Pin to specific dataset version'),\n agentVersion: z.string().optional().describe('Agent version ID to use for experiment'),\n maxConcurrency: z.number().optional().describe('Maximum concurrent executions'),\n requestContext: z.record(z.string(), z.unknown()).optional().describe('Global request context passed to the target'),\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional()\n .describe('Version overrides for sub-agent delegation during experiment execution'),\n});\n\nexport const compareExperimentsBodySchema = z.object({\n experimentIdA: z.string().describe('ID of baseline experiment'),\n experimentIdB: z.string().describe('ID of candidate experiment'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n// Dataset entity schema\nexport const datasetResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional().nullable(),\n metadata: z.record(z.string(), z.unknown()).optional().nullable(),\n inputSchema: z.record(z.string(), z.unknown()).optional(),\n groundTruthSchema: z.record(z.string(), z.unknown()).optional(),\n requestContextSchema: z.record(z.string(), z.unknown()).optional(),\n tags: z.array(z.string()).optional().nullable(),\n targetType: z.string().optional().nullable(),\n targetIds: z.array(z.string()).optional().nullable(),\n scorerIds: z.array(z.string()).optional().nullable(),\n version: z.number().int(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Dataset item entity schema\nexport const datasetItemResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n datasetVersion: z.number().int(),\n externalId: z.string().optional().nullable(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: z.unknown().optional(),\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n source: datasetItemSourceSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Experiment entity schema\nexport const experimentResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string().nullable(),\n datasetVersion: z.number().int().nullable(),\n agentVersion: z.string().nullable().optional(),\n targetType: z.enum(['agent', 'workflow', 'scorer', 'processor']),\n targetId: z.string(),\n name: z.string().optional(),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n status: z.enum(['pending', 'running', 'completed', 'failed']),\n totalItems: z.number(),\n succeededCount: z.number(),\n failedCount: z.number(),\n skippedCount: z.number(),\n startedAt: z.coerce.date().nullable(),\n completedAt: z.coerce.date().nullable(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\n// Scorer result schema\nexport const scorerResultSchema = z.object({\n scorerId: z.string(),\n scorerName: z.string(),\n score: z.number().nullable(),\n reason: z.string().nullable(),\n error: z.string().nullable(),\n});\n\n// Experiment result entity schema\nexport const experimentResultResponseSchema = z.object({\n id: z.string(),\n experimentId: z.string(),\n itemId: z.string(),\n itemDatasetVersion: z.number().int().nullable(),\n input: z.unknown(),\n output: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n expectedTrajectory: z.unknown().optional(),\n error: z\n .object({\n message: z.string(),\n stack: z.string().optional(),\n code: z.string().optional(),\n })\n .nullable(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date(),\n retryCount: z.number(),\n traceId: z.string().nullable(),\n status: z.enum(['needs-review', 'reviewed', 'complete']).nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n comment: z.string().nullable().optional(),\n toolMockReport: toolMockReportSchema.nullable(),\n createdAt: z.coerce.date(),\n});\n\nexport const updateExperimentResultBodySchema = z.object({\n status: z.enum(['needs-review', 'reviewed', 'complete']).nullable().optional(),\n tags: z.array(z.string()).optional(),\n comment: z.string().nullable().optional(),\n});\n\n// Comparison item schema (MVP shape)\nconst comparisonItemSchema = z.object({\n itemId: z.string(),\n input: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n results: z.record(\n z.string(),\n z\n .object({\n output: z.unknown().nullable(),\n scores: z.record(z.string(), z.number().nullable()),\n })\n .nullable(),\n ),\n});\n\n// Comparison result schema\nexport const comparisonResponseSchema = z.object({\n baselineId: z.string(),\n items: z.array(comparisonItemSchema),\n});\n\n// Experiment summary schema (returned by trigger experiment)\n// Note: completedAt is nullable for pending/running experiments (async trigger)\nexport const experimentSummaryResponseSchema = z.object({\n experimentId: z.string(),\n status: z.enum(['pending', 'running', 'completed', 'failed']),\n totalItems: z.number(),\n succeededCount: z.number(),\n failedCount: z.number(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date().nullable(),\n results: z.array(\n z.object({\n itemId: z.string(),\n itemDatasetVersion: z.number().int().nullable(),\n input: z.unknown(),\n output: z.unknown().nullable(),\n groundTruth: z.unknown().nullable(),\n error: z.string().nullable(),\n startedAt: z.coerce.date(),\n completedAt: z.coerce.date(),\n retryCount: z.number(),\n toolMockReport: toolMockReportSchema.nullable(),\n scores: z.array(\n z.object({\n scorerId: z.string(),\n scorerName: z.string(),\n score: z.number().nullable(),\n reason: z.string().nullable(),\n error: z.string().nullable(),\n }),\n ),\n }),\n ),\n});\n\n// ============================================================================\n// List Response Schemas\n// ============================================================================\n\nexport const listDatasetsResponseSchema = z.object({\n datasets: z.array(datasetResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listItemsResponseSchema = z.object({\n items: z.array(datasetItemResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listExperimentsResponseSchema = z.object({\n experiments: z.array(experimentResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const listExperimentResultsResponseSchema = z.object({\n results: z.array(experimentResultResponseSchema),\n pagination: paginationInfoSchema,\n});\n\nexport const experimentReviewCountsSchema = z.object({\n experimentId: z.string(),\n total: z.number().int(),\n needsReview: z.number().int(),\n reviewed: z.number().int(),\n complete: z.number().int(),\n});\n\nexport const reviewSummaryResponseSchema = z.object({\n counts: z.array(experimentReviewCountsSchema),\n});\n\n// ============================================================================\n// Version Schemas\n// ============================================================================\n\n// Path params for item version routes\nexport const datasetItemVersionPathParams = z.object({\n datasetId: z.string().describe('Unique identifier for the dataset'),\n itemId: z.string().describe('Unique identifier for the dataset item'),\n datasetVersion: z.coerce.number().int().describe('Dataset version number'),\n});\n\n// Item history row response schema (SCD-2 DatasetItemRow shape)\nexport const itemVersionResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n datasetVersion: z.number().int(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: z.unknown().optional(),\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n validTo: z.number().int().nullable(),\n isDeleted: z.boolean(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n});\n\nexport const listItemVersionsResponseSchema = z.object({\n history: z.array(itemVersionResponseSchema),\n});\n\n// Dataset version response schema\nexport const datasetVersionResponseSchema = z.object({\n id: z.string(),\n datasetId: z.string(),\n version: z.number().int(),\n createdAt: z.coerce.date(),\n});\n\nexport const listDatasetVersionsResponseSchema = z.object({\n versions: z.array(datasetVersionResponseSchema),\n pagination: paginationInfoSchema,\n});\n\n// ============================================================================\n// Batch Operation Schemas\n// ============================================================================\n\nexport const batchInsertItemsBodySchema = z.object({\n items: z.array(\n z.object({\n externalId: z.string().optional().nullable(),\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n expectedTrajectory: trajectoryExpectationSchema,\n toolMocks: toolMocksSchema,\n unmockedToolPolicy: unmockedToolPolicySchema,\n scorerIds: z.array(z.string()).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n source: datasetItemSourceSchema,\n }),\n ),\n});\n\nexport const batchInsertItemsResponseSchema = z.object({\n items: z.array(datasetItemResponseSchema),\n count: z.number(),\n});\n\nexport const batchDeleteItemsBodySchema = z.object({\n itemIds: z.array(z.string()),\n});\n\nexport const batchDeleteItemsResponseSchema = z.object({\n success: z.boolean(),\n deletedCount: z.number(),\n});\n\n// ============================================================================\n// AI Generation Schemas\n// ============================================================================\n\nexport const generateItemsBodySchema = z.object({\n modelId: z.string().describe('Model identifier in \"provider/model\" format (e.g., \"openai/gpt-4o\")'),\n prompt: z.string().describe('Description of the kind of test data to generate'),\n count: z.number().int().min(1).max(50).default(5).describe('Number of items to generate'),\n agentContext: z\n .object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n tools: z.array(z.string()).optional(),\n })\n .optional()\n .describe('Context about the agent to generate relevant test data'),\n});\n\nconst generatedItemSchema = z.object({\n input: z.unknown(),\n groundTruth: z.unknown().optional(),\n});\n\nexport const generateItemsResponseSchema = z.object({\n items: z.array(generatedItemSchema),\n});\n\n// ============================================================================\n// Cluster Failures\n// ============================================================================\n\nexport const clusterFailuresBodySchema = z.object({\n modelId: z.string().describe('Model identifier in \"provider/model\" format (e.g., \"openai/gpt-4o\")'),\n items: z\n .array(\n z.object({\n id: z.string(),\n input: z.unknown(),\n output: z.unknown().optional(),\n error: z.string().optional(),\n scores: z.record(z.string(), z.number()).optional(),\n existingTags: z.array(z.string()).optional().describe('Tags already applied to this item'),\n }),\n )\n .min(1)\n .max(200)\n .describe('Failure items to cluster'),\n availableTags: z\n .array(z.string())\n .optional()\n .describe('Existing tag vocabulary from the dataset. The LLM should prefer reusing these tags when applicable.'),\n prompt: z\n .string()\n .optional()\n .describe('Optional user instructions to guide the analysis (e.g., \"focus on tool usage failures\")'),\n});\n\nconst failureClusterSchema = z.object({\n id: z.string().describe('A unique cluster identifier'),\n label: z.string().describe('Short label for this failure pattern'),\n description: z.string().describe('Description of the common pattern'),\n itemIds: z.array(z.string()).describe('IDs of items belonging to this cluster'),\n});\n\nexport const clusterFailuresResponseSchema = z.object({\n clusters: z.array(failureClusterSchema),\n /** Per-item proposed tag assignments. Each entry maps an item ID to the tags the LLM suggests adding. */\n proposedTags: z\n .array(\n z.object({\n itemId: z.string(),\n tags: z.array(z.string()),\n reason: z.string().describe('Brief explanation of why these tags were assigned to this item'),\n }),\n )\n .optional(),\n});\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
|
|
2
|
-
const
|
|
3
|
-
require("./schema-
|
|
2
|
+
const require_schema_Bv9OdW1f = require("./schema-Bv9OdW1f-BY6u3u8K.cjs");
|
|
3
|
+
require("./schema-BieM1qrc.cjs");
|
|
4
4
|
const require_dist$1 = require("./dist-CAVC0nWG.cjs");
|
|
5
5
|
let zod_v4 = require("zod/v4");
|
|
6
6
|
zod_v4 = require_rolldown_runtime.__toESM(zod_v4, 1);
|
|
@@ -5961,7 +5961,7 @@ function splitLines(text) {
|
|
|
5961
5961
|
return result;
|
|
5962
5962
|
}
|
|
5963
5963
|
//#endregion
|
|
5964
|
-
//#region ../memory/dist/src-
|
|
5964
|
+
//#region ../memory/dist/src-BgdYYHLc.js
|
|
5965
5965
|
var __defProp$4 = Object.defineProperty;
|
|
5966
5966
|
var __exportAll = (all, no_symbols) => {
|
|
5967
5967
|
let target = {};
|
|
@@ -20501,7 +20501,7 @@ var constants_exports = /* @__PURE__ */ __exportAll({
|
|
|
20501
20501
|
OBSERVATION_CONTEXT_INSTRUCTIONS: () => OBSERVATION_CONTEXT_INSTRUCTIONS,
|
|
20502
20502
|
OBSERVATION_CONTEXT_PROMPT: () => OBSERVATION_CONTEXT_PROMPT,
|
|
20503
20503
|
OBSERVATION_CONTINUATION_HINT: () => OBSERVATION_CONTINUATION_HINT,
|
|
20504
|
-
|
|
20504
|
+
getRetrievalInstructions: () => getRetrievalInstructions
|
|
20505
20505
|
});
|
|
20506
20506
|
/**
|
|
20507
20507
|
* Default configuration values matching the spec
|
|
@@ -20564,8 +20564,22 @@ SYSTEM REMINDERS: Messages wrapped in <system-reminder>...</system-reminder> con
|
|
|
20564
20564
|
/**
|
|
20565
20565
|
* Instructions for retrieval mode — explains observation-group ranges and the recall tool.
|
|
20566
20566
|
* Appended to context when `retrieval` is enabled.
|
|
20567
|
+
*
|
|
20568
|
+
* The content adapts to the retrieval scope:
|
|
20569
|
+
* - `'resource'`: covers routing between `search`, `threads`, and `messages` across
|
|
20570
|
+
* all of the user's threads, including fallback when search results are unsuitable.
|
|
20571
|
+
* - `'thread'`: covers cursor-based browsing and search within the current thread.
|
|
20572
|
+
*
|
|
20573
|
+
* @param scope - The retrieval scope the recall tool was registered with.
|
|
20574
|
+
* @param customInstructions - Optional application-provided guidance appended after
|
|
20575
|
+
* the native instructions. Never replaces them.
|
|
20576
|
+
* @param searchEnabled - Whether semantic search (`retrieval: { vector: true }`) is
|
|
20577
|
+
* available. When false, the guidance only covers \`threads\`/\`messages\` browsing so
|
|
20578
|
+
* the agent is not steered toward a mode that cannot work.
|
|
20567
20579
|
*/
|
|
20568
|
-
|
|
20580
|
+
function getRetrievalInstructions(scope = "resource", customInstructions, searchEnabled = true) {
|
|
20581
|
+
const isResource = scope === "resource";
|
|
20582
|
+
const base = `## Recall — looking up source messages
|
|
20569
20583
|
|
|
20570
20584
|
Your memory is comprised of observations which are sometimes wrapped in <observation-group> xml tags containing ranges like <observation-group range="startId:endId">. These ranges point back to the raw messages that each observation group was derived from. The original messages are still available — use the **recall** tool to retrieve them.
|
|
20571
20585
|
|
|
@@ -20573,11 +20587,32 @@ Your memory is comprised of observations which are sometimes wrapped in <observa
|
|
|
20573
20587
|
- The user asks you to **repeat, show, or reproduce** something from a past conversation
|
|
20574
20588
|
- The user asks for **exact content** — code, text, quotes, error messages, URLs, file paths, specific numbers
|
|
20575
20589
|
- Your observations mention something but your memory lacks the detail needed to fully answer (e.g. you know a blog post was shared but only have a summary of it)
|
|
20576
|
-
- You want to **verify or expand on** an observation before responding
|
|
20590
|
+
- You want to **verify or expand on** an observation before responding${isResource ? `
|
|
20591
|
+
- The user references another conversation that your observations don't cover — even if you have no observations yet, their other threads may contain it` : ""}
|
|
20577
20592
|
|
|
20578
20593
|
**Default to using recall when the user references specific past content.** Your observations capture the gist, not the details. If there's any doubt whether your memory is complete enough, use recall.
|
|
20579
20594
|
|
|
20580
|
-
|
|
20595
|
+
${isResource ? searchEnabled ? `### Choosing a mode
|
|
20596
|
+
The recall tool works across ALL of this user's conversation threads, not just the current one.
|
|
20597
|
+
|
|
20598
|
+
- Use \`mode: "search"\` with a \`query\` when you don't know which thread contains the answer. Each result includes its thread ID and the raw message IDs it came from, which you can use as a \`cursor\`.
|
|
20599
|
+
- Use \`mode: "messages"\` when you already know the thread — pass \`threadId\` to read another thread, or a \`cursor\` from an observation-group range or a search result.
|
|
20600
|
+
- Use \`mode: "threads"\` to list the user's threads (IDs, titles, dates) when you need to discover where something was discussed. Use \`before\`/\`after\` to narrow by date.
|
|
20601
|
+
|
|
20602
|
+
**If search results look irrelevant, do not give up.** Search only covers content that has been indexed — a short or recent conversation may exist in raw message history before any observation of it was created. When search returns nothing suitable but the user is clearly referring to a past conversation, call \`mode: "threads"\` to find candidate threads (titles and dates are strong clues), then read them with \`mode: "messages"\`. If a search result already gives you a thread ID, go straight to \`mode: "messages"\`.` : `### Choosing a mode
|
|
20603
|
+
The recall tool works across ALL of this user's conversation threads, not just the current one.
|
|
20604
|
+
|
|
20605
|
+
- Use \`mode: "threads"\` to list the user's threads (IDs, titles, dates) when you need to discover where something was discussed. Use \`before\`/\`after\` to narrow by date.
|
|
20606
|
+
- Use \`mode: "messages"\` when you know the thread — pass \`threadId\` to read another thread, or a \`cursor\` from an observation-group range.
|
|
20607
|
+
|
|
20608
|
+
When the user refers to a past conversation you don't have a cursor for, call \`mode: "threads"\` to find candidate threads (titles and dates are strong clues), then read them with \`mode: "messages"\`. Raw history may exist for threads that have no observations yet.` : `### Choosing a mode
|
|
20609
|
+
The recall tool is limited to the current conversation thread.
|
|
20610
|
+
|
|
20611
|
+
- Use \`mode: "messages"\` (default) to page through this thread's message history near a cursor.${searchEnabled ? `
|
|
20612
|
+
- Use \`mode: "search"\` with a \`query\` to find messages by content within this thread.` : ""}
|
|
20613
|
+
- Use \`mode: "threads"\` to get the current thread's ID, title, and dates.`}
|
|
20614
|
+
|
|
20615
|
+
### How to use recall with a cursor
|
|
20581
20616
|
Each range has the format \`startId:endId\` where both are message IDs separated by a colon.
|
|
20582
20617
|
|
|
20583
20618
|
1. Find the observation group relevant to the user's question and extract the start or end ID from its range.
|
|
@@ -20603,9 +20638,16 @@ Low-detail results may include truncation hints like:
|
|
|
20603
20638
|
### When recall is NOT needed
|
|
20604
20639
|
- The user is asking for a high-level summary and your observations already cover it
|
|
20605
20640
|
- The question is about general preferences or facts that don't require source text
|
|
20606
|
-
|
|
20641
|
+
${isResource ? `- No relevant observation range exists AND ${searchEnabled ? "`search`/`threads`" : "`threads`"} turned up nothing — but remember that raw history may exist for threads that have no observations yet, so check before concluding the information is unavailable` : `- There is no relevant range in your observations for the topic`}
|
|
20607
20642
|
|
|
20608
20643
|
Observation groups with range IDs and your recall tool allows you to think back and remember details you're fuzzy on.`;
|
|
20644
|
+
const custom = customInstructions?.trim();
|
|
20645
|
+
if (!custom) return base;
|
|
20646
|
+
return `${base}
|
|
20647
|
+
|
|
20648
|
+
### Additional recall guidance
|
|
20649
|
+
${custom}`;
|
|
20650
|
+
}
|
|
20609
20651
|
const BUILT_IN_SLUGS = /* @__PURE__ */ new Set([
|
|
20610
20652
|
"current-task",
|
|
20611
20653
|
"suggested-response",
|
|
@@ -25550,7 +25592,7 @@ const updateWorkingMemoryTool = (memoryConfig) => {
|
|
|
25550
25592
|
};
|
|
25551
25593
|
if (schema) {
|
|
25552
25594
|
const standardSchema = (0, _mastra_core_schema.isStandardSchemaWithJSON)(schema) ? schema : (0, _mastra_core_schema.toStandardSchema)(schema);
|
|
25553
|
-
const jsonSchema =
|
|
25595
|
+
const jsonSchema = require_schema_Bv9OdW1f.standardSchemaToJSONSchema(standardSchema, { io: "input" });
|
|
25554
25596
|
delete jsonSchema.$schema;
|
|
25555
25597
|
const wrappedJsonSchema = {
|
|
25556
25598
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
@@ -29547,6 +29589,11 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
29547
29589
|
scope;
|
|
29548
29590
|
/** Whether retrieval-mode observation groups are enabled. */
|
|
29549
29591
|
retrieval;
|
|
29592
|
+
/** Scope the recall tool was registered with — controls which retrieval instructions are injected. */
|
|
29593
|
+
retrievalScope;
|
|
29594
|
+
/** Application-provided guidance appended after the native retrieval instructions. */
|
|
29595
|
+
retrievalInstructions;
|
|
29596
|
+
retrievalSearch;
|
|
29550
29597
|
observationConfig;
|
|
29551
29598
|
reflectionConfig;
|
|
29552
29599
|
onDebugEvent;
|
|
@@ -29612,6 +29659,9 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
29612
29659
|
this.storage = config.storage;
|
|
29613
29660
|
this.scope = config.scope ?? "thread";
|
|
29614
29661
|
this.retrieval = Boolean(config.retrieval);
|
|
29662
|
+
this.retrievalScope = typeof config.retrieval === "object" ? config.retrieval.scope ?? "resource" : "resource";
|
|
29663
|
+
this.retrievalInstructions = typeof config.retrieval === "object" ? config.retrieval.instructions : void 0;
|
|
29664
|
+
this.retrievalSearch = typeof config.retrieval === "object" && Boolean(config.retrieval.vector);
|
|
29615
29665
|
this.onIndexObservations = config.onIndexObservations;
|
|
29616
29666
|
this.hooks = config.hooks;
|
|
29617
29667
|
this.mastra = config.mastra;
|
|
@@ -30260,7 +30310,7 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
30260
30310
|
formatObservationsForContext(observations, currentTask, suggestedResponse, extractedValues, unobservedContextBlocks, currentDate, retrieval = false) {
|
|
30261
30311
|
let optimized = retrieval ? renderObservationGroupsForReflection(observations) ?? optimizeObservationsForContext(observations) : optimizeObservationsForContext(observations);
|
|
30262
30312
|
if (currentDate) optimized = addRelativeTimeToObservations(optimized, currentDate);
|
|
30263
|
-
const messages = [`${OBSERVATION_CONTEXT_PROMPT}\n\n${OBSERVATION_CONTEXT_INSTRUCTIONS}${retrieval ? `\n\n${
|
|
30313
|
+
const messages = [`${OBSERVATION_CONTEXT_PROMPT}\n\n${OBSERVATION_CONTEXT_INSTRUCTIONS}${retrieval ? `\n\n${getRetrievalInstructions(this.retrievalScope, this.retrievalInstructions, this.retrievalSearch)}` : ""}`];
|
|
30264
30314
|
if (unobservedContextBlocks) messages.push(`The following content is from OTHER conversations different from the current conversation, they're here for reference, but they're not necessarily your focus:\nSTART_OTHER_CONVERSATIONS_BLOCK\n${unobservedContextBlocks}\nEND_OTHER_CONVERSATIONS_BLOCK`);
|
|
30265
30315
|
const observationChunks = this.splitObservationContextChunks(optimized);
|
|
30266
30316
|
if (observationChunks.length > 0) messages.push("<observations>", ...observationChunks);
|
|
@@ -30762,7 +30812,10 @@ ${formattedMessages}
|
|
|
30762
30812
|
async buildContextSystemMessages(opts) {
|
|
30763
30813
|
const { threadId, resourceId, unobservedContextBlocks } = opts;
|
|
30764
30814
|
const record = opts.record ?? await this.getOrCreateRecord(threadId, resourceId);
|
|
30765
|
-
if (!record.activeObservations)
|
|
30815
|
+
if (!record.activeObservations) {
|
|
30816
|
+
if (this.retrieval && this.retrievalScope === "resource") return [getRetrievalInstructions(this.retrievalScope, this.retrievalInstructions, this.retrievalSearch)];
|
|
30817
|
+
return;
|
|
30818
|
+
}
|
|
30766
30819
|
const omMetadata = (0, _mastra_core_memory.getThreadOMMetadata)((await this.storage.getThreadById({ threadId }))?.metadata);
|
|
30767
30820
|
const currentTask = omMetadata?.currentTask;
|
|
30768
30821
|
const suggestedResponse = omMetadata?.suggestedResponse;
|
|
@@ -31890,7 +31943,7 @@ var ObservationalMemoryProcessor = class {
|
|
|
31890
31943
|
threadId,
|
|
31891
31944
|
resourceId
|
|
31892
31945
|
});
|
|
31893
|
-
const systemMessages = ctx.
|
|
31946
|
+
const systemMessages = ctx.omRecord ? await this.engine.buildContextSystemMessages({
|
|
31894
31947
|
threadId,
|
|
31895
31948
|
resourceId,
|
|
31896
31949
|
record: ctx.omRecord,
|
|
@@ -32965,8 +33018,8 @@ ${workingMemory}`;
|
|
|
32965
33018
|
if (config.workingMemory?.schema) try {
|
|
32966
33019
|
const schema = config.workingMemory.schema;
|
|
32967
33020
|
let convertedSchema;
|
|
32968
|
-
if (
|
|
32969
|
-
else convertedSchema =
|
|
33021
|
+
if (require_schema_Bv9OdW1f.isStandardSchemaWithJSON(schema)) convertedSchema = schema["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
33022
|
+
else convertedSchema = require_schema_Bv9OdW1f.toStandardSchema(schema)["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
32970
33023
|
return {
|
|
32971
33024
|
format: "json",
|
|
32972
33025
|
content: JSON.stringify(convertedSchema)
|
|
@@ -37537,7 +37590,7 @@ Return the actual exported names of the units, as well as the file names.`,
|
|
|
37537
37590
|
maxSteps: 100
|
|
37538
37591
|
});
|
|
37539
37592
|
else {
|
|
37540
|
-
const jsonSchema =
|
|
37593
|
+
const jsonSchema = require_schema_Bv9OdW1f.standardSchemaToJSONSchema((0, _mastra_core_schema.toStandardSchema)(output));
|
|
37541
37594
|
result = await agent.generateLegacy(prompt, {
|
|
37542
37595
|
experimental_output: jsonSchema,
|
|
37543
37596
|
maxSteps: 100
|
|
@@ -44438,4 +44491,4 @@ const agentBuilderWorkflows = {
|
|
|
44438
44491
|
//#endregion
|
|
44439
44492
|
exports.agentBuilderWorkflows = agentBuilderWorkflows;
|
|
44440
44493
|
|
|
44441
|
-
//# sourceMappingURL=dist-
|
|
44494
|
+
//# sourceMappingURL=dist-CpDWlJbf.cjs.map
|