@mastra/server 1.52.1 → 1.52.2-alpha.0
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 +9 -0
- package/dist/{api-schema-manifest-RV6AS2KM.js → api-schema-manifest-AAUEOERA.js} +3 -3
- package/dist/{api-schema-manifest-RV6AS2KM.js.map → api-schema-manifest-AAUEOERA.js.map} +1 -1
- package/dist/{api-schema-manifest-GJZKV32J.cjs → api-schema-manifest-F5X4TCI3.cjs} +4 -4
- package/dist/{api-schema-manifest-GJZKV32J.cjs.map → api-schema-manifest-F5X4TCI3.cjs.map} +1 -1
- package/dist/{chunk-C46XF6AU.js → chunk-3WBNJWA4.js} +4 -4
- package/dist/{chunk-C46XF6AU.js.map → chunk-3WBNJWA4.js.map} +1 -1
- package/dist/{chunk-O4H32NTL.cjs → chunk-43E6JEA5.cjs} +4 -4
- package/dist/{chunk-O4H32NTL.cjs.map → chunk-43E6JEA5.cjs.map} +1 -1
- package/dist/{chunk-XORQIQXT.js → chunk-4AGRNM7F.js} +3 -3
- package/dist/{chunk-XORQIQXT.js.map → chunk-4AGRNM7F.js.map} +1 -1
- package/dist/{chunk-YUDME6CN.cjs → chunk-5UUIMMDB.cjs} +4 -4
- package/dist/{chunk-YUDME6CN.cjs.map → chunk-5UUIMMDB.cjs.map} +1 -1
- package/dist/{chunk-F6ANJJFG.js → chunk-6K5XWD5Q.js} +3 -3
- package/dist/{chunk-F6ANJJFG.js.map → chunk-6K5XWD5Q.js.map} +1 -1
- package/dist/{chunk-2FNOQ5EO.js → chunk-6POMTBSS.js} +3 -3
- package/dist/{chunk-2FNOQ5EO.js.map → chunk-6POMTBSS.js.map} +1 -1
- package/dist/{chunk-ALPAZYZR.cjs → chunk-7KFYDYFN.cjs} +12 -12
- package/dist/{chunk-ALPAZYZR.cjs.map → chunk-7KFYDYFN.cjs.map} +1 -1
- package/dist/{chunk-YZNPRVOK.js → chunk-7OY3AGJJ.js} +3 -3
- package/dist/{chunk-YZNPRVOK.js.map → chunk-7OY3AGJJ.js.map} +1 -1
- package/dist/{chunk-RSDPTA3U.js → chunk-7RPGRDSC.js} +11 -9
- package/dist/chunk-7RPGRDSC.js.map +1 -0
- package/dist/{chunk-J4B6JVWR.cjs → chunk-7WMI6EAV.cjs} +4 -4
- package/dist/{chunk-J4B6JVWR.cjs.map → chunk-7WMI6EAV.cjs.map} +1 -1
- package/dist/{chunk-O4DW75OM.cjs → chunk-BHYWGD5O.cjs} +5 -5
- package/dist/{chunk-O4DW75OM.cjs.map → chunk-BHYWGD5O.cjs.map} +1 -1
- package/dist/{chunk-W243A6ZK.cjs → chunk-BPREBJ3Z.cjs} +4 -4
- package/dist/{chunk-W243A6ZK.cjs.map → chunk-BPREBJ3Z.cjs.map} +1 -1
- package/dist/{chunk-S7XHYPBN.cjs → chunk-DL6MIA5S.cjs} +3 -3
- package/dist/{chunk-S7XHYPBN.cjs.map → chunk-DL6MIA5S.cjs.map} +1 -1
- package/dist/{chunk-VFIZ45BL.js → chunk-DVBKBUY7.js} +3 -3
- package/dist/{chunk-VFIZ45BL.js.map → chunk-DVBKBUY7.js.map} +1 -1
- package/dist/{chunk-FGH4I6PE.cjs → chunk-EGV5QBEA.cjs} +112 -112
- package/dist/{chunk-FGH4I6PE.cjs.map → chunk-EGV5QBEA.cjs.map} +1 -1
- package/dist/{chunk-QHALAWTW.js → chunk-EJFNGIUY.js} +3 -3
- package/dist/{chunk-QHALAWTW.js.map → chunk-EJFNGIUY.js.map} +1 -1
- package/dist/{chunk-OEN2YIF2.cjs → chunk-GOX5ZFQP.cjs} +5 -5
- package/dist/{chunk-OEN2YIF2.cjs.map → chunk-GOX5ZFQP.cjs.map} +1 -1
- package/dist/{chunk-5HBR27TT.js → chunk-HCCTSODR.js} +4 -3
- package/dist/chunk-HCCTSODR.js.map +1 -0
- package/dist/{chunk-NIMP2XEL.cjs → chunk-I5JCLVTK.cjs} +4 -3
- package/dist/chunk-I5JCLVTK.cjs.map +1 -0
- package/dist/{chunk-XOBJYUKX.cjs → chunk-IDCO7C4M.cjs} +4 -4
- package/dist/{chunk-XOBJYUKX.cjs.map → chunk-IDCO7C4M.cjs.map} +1 -1
- package/dist/{chunk-3G43R5VJ.js → chunk-IYRXXIKZ.js} +3 -3
- package/dist/{chunk-3G43R5VJ.js.map → chunk-IYRXXIKZ.js.map} +1 -1
- package/dist/{chunk-VTD4AE3B.js → chunk-JGNE4R5G.js} +3 -3
- package/dist/{chunk-VTD4AE3B.js.map → chunk-JGNE4R5G.js.map} +1 -1
- package/dist/{chunk-ERJ75YLP.cjs → chunk-JGQYJ3ZU.cjs} +39 -37
- package/dist/chunk-JGQYJ3ZU.cjs.map +1 -0
- package/dist/{chunk-JBH7K7YB.cjs → chunk-JKTLOG4J.cjs} +8 -8
- package/dist/{chunk-JBH7K7YB.cjs.map → chunk-JKTLOG4J.cjs.map} +1 -1
- package/dist/{chunk-6LKY2RDJ.js → chunk-JQRNW7TI.js} +3 -3
- package/dist/{chunk-6LKY2RDJ.js.map → chunk-JQRNW7TI.js.map} +1 -1
- package/dist/{chunk-J5RVSM7H.cjs → chunk-KI6RMI7A.cjs} +4 -4
- package/dist/{chunk-J5RVSM7H.cjs.map → chunk-KI6RMI7A.cjs.map} +1 -1
- package/dist/{chunk-V3HBNBLU.cjs → chunk-LJNTC2CX.cjs} +14 -14
- package/dist/{chunk-V3HBNBLU.cjs.map → chunk-LJNTC2CX.cjs.map} +1 -1
- package/dist/{chunk-I6TYCL4H.js → chunk-LWKCKC57.js} +3 -3
- package/dist/{chunk-I6TYCL4H.js.map → chunk-LWKCKC57.js.map} +1 -1
- package/dist/{chunk-ONVWPSQD.cjs → chunk-LYZLM7TQ.cjs} +20 -20
- package/dist/{chunk-ONVWPSQD.cjs.map → chunk-LYZLM7TQ.cjs.map} +1 -1
- package/dist/{chunk-YQIMII7K.cjs → chunk-O4PNIMVX.cjs} +15 -15
- package/dist/{chunk-YQIMII7K.cjs.map → chunk-O4PNIMVX.cjs.map} +1 -1
- package/dist/{chunk-SDIJUD3E.cjs → chunk-PEXHI73J.cjs} +16 -16
- package/dist/{chunk-SDIJUD3E.cjs.map → chunk-PEXHI73J.cjs.map} +1 -1
- package/dist/{chunk-F2YOTPSJ.js → chunk-PTOMNQ6N.js} +3 -3
- package/dist/{chunk-F2YOTPSJ.js.map → chunk-PTOMNQ6N.js.map} +1 -1
- package/dist/{chunk-3SQNEUDQ.js → chunk-RPPHTS6D.js} +3 -3
- package/dist/{chunk-3SQNEUDQ.js.map → chunk-RPPHTS6D.js.map} +1 -1
- package/dist/{chunk-R5VL3YAW.js → chunk-RWL3CJF7.js} +3 -3
- package/dist/{chunk-R5VL3YAW.js.map → chunk-RWL3CJF7.js.map} +1 -1
- package/dist/{chunk-UOOEGODJ.js → chunk-SDELLYAU.js} +17 -17
- package/dist/{chunk-UOOEGODJ.js.map → chunk-SDELLYAU.js.map} +1 -1
- package/dist/{chunk-OLYSNWQP.cjs → chunk-UGQH3IIT.cjs} +5 -5
- package/dist/{chunk-OLYSNWQP.cjs.map → chunk-UGQH3IIT.cjs.map} +1 -1
- package/dist/{chunk-SHQ5UYM7.js → chunk-UWFWR77Y.js} +3 -3
- package/dist/{chunk-SHQ5UYM7.js.map → chunk-UWFWR77Y.js.map} +1 -1
- package/dist/{chunk-QRXUWF3U.js → chunk-VE2FUYFD.js} +4 -4
- package/dist/{chunk-QRXUWF3U.js.map → chunk-VE2FUYFD.js.map} +1 -1
- package/dist/{chunk-LVCJ4W5T.cjs → chunk-VUQNCTOR.cjs} +5 -5
- package/dist/{chunk-LVCJ4W5T.cjs.map → chunk-VUQNCTOR.cjs.map} +1 -1
- package/dist/{chunk-D3NGCHN4.cjs → chunk-Y4O5EGAC.cjs} +4 -4
- package/dist/{chunk-D3NGCHN4.cjs.map → chunk-Y4O5EGAC.cjs.map} +1 -1
- package/dist/{chunk-5GOTSBKU.js → chunk-YCO7GF33.js} +3 -3
- package/dist/{chunk-5GOTSBKU.js.map → chunk-YCO7GF33.js.map} +1 -1
- package/dist/{chunk-IKIPMMHL.js → chunk-YN5ILIRE.js} +3 -3
- package/dist/{chunk-IKIPMMHL.js.map → chunk-YN5ILIRE.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +48 -48
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +6 -6
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +4 -4
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +10 -10
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers.cjs +12 -12
- package/dist/server/handlers.js +6 -6
- package/dist/server/schemas/index.cjs +71 -71
- package/dist/server/schemas/index.js +4 -4
- package/dist/server/schemas/stored-agents.d.ts +1 -0
- package/dist/server/schemas/stored-agents.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +13 -13
- package/dist/server/server-adapter/index.js +2 -2
- package/package.json +5 -5
- package/dist/chunk-5HBR27TT.js.map +0 -1
- package/dist/chunk-ERJ75YLP.cjs.map +0 -1
- package/dist/chunk-NIMP2XEL.cjs.map +0 -1
- package/dist/chunk-RSDPTA3U.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/utils/resolve-builder-model-policy.ts","../src/server/handlers/editor-builder.ts"],"names":["agentFeaturesSchema","HTTPException","createRoute","builderSettingsResponseSchema","handleError","builderAvailableModelsResponseSchema","buildProvidersList","infrastructureStatusResponseSchema"],"mappings":"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","file":"chunk-J5RVSM7H.cjs","sourcesContent":["import type { BuilderModelPolicy } from '@mastra/core/agent-builder/ee';\nimport type { IMastraEditor } from '@mastra/core/editor';\n\n/**\n * Server-side wrapper around `builderToModelPolicy`.\n *\n * Handles the optional `IMastraEditor` builder API surface (older / OSS editors\n * may not implement `hasEnabledBuilderConfig` / `resolveBuilder`) and returns\n * a uniform `BuilderModelPolicy` to every call site.\n *\n * Returns `{ active: false }` whenever:\n * - no editor is configured,\n * - the editor doesn't expose builder methods,\n * - the builder config is disabled, or\n * - resolving the builder fails / yields nothing.\n *\n * The `@mastra/core/agent-builder/ee` subpath is loaded lazily so this module\n * remains importable on `@mastra/core` versions that pre-date the subpath\n * (the subpath was added in core 1.34.0). The dynamic import is only reached\n * once an editor is actually configured, by which point a compatible core is\n * guaranteed.\n */\nexport async function resolveBuilderModelPolicy(editor: IMastraEditor | undefined): Promise<BuilderModelPolicy> {\n if (!editor) return { active: false };\n if (typeof editor.resolveBuilder !== 'function') return { active: false };\n if (typeof editor.hasEnabledBuilderConfig === 'function' && !editor.hasEnabledBuilderConfig()) {\n return { active: false };\n }\n\n // Degrade to inactive on builder-resolution failure rather than letting the\n // rejection escape: agent execution routes seed this on every request, so a\n // transient failure must not 500 the entire route.\n try {\n const builder = await editor.resolveBuilder();\n const { builderToModelPolicy } = await import('@mastra/core/agent-builder/ee');\n return builderToModelPolicy(builder);\n } catch {\n return { active: false };\n }\n}\n","import type { Mastra } from '@mastra/core';\n\nimport { HTTPException } from '../http-exception';\nimport {\n agentFeaturesSchema,\n builderAvailableModelsResponseSchema,\n builderSettingsResponseSchema,\n infrastructureStatusResponseSchema,\n} from '../schemas/editor-builder';\nimport type { AgentFeatures, InfrastructureStatus } from '../schemas/editor-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { resolveBuilderModelPolicy } from '../utils/resolve-builder-model-policy';\nimport { buildProvidersList } from './agents';\nimport { handleError } from './error';\n\n/**\n * Resolve the active builder feature flags. Returns `null` when the editor is\n * absent, the builder is disabled, or no features are configured.\n */\nasync function resolveBuilderFeatures(mastra: Mastra): Promise<AgentFeatures | null> {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveBuilder !== 'function') return null;\n if (!editor.hasEnabledBuilderConfig?.()) return null;\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) return null;\n const features = builder.getFeatures?.()?.agent;\n if (!features) return null;\n // Validate the shape so unknown keys cannot smuggle through.\n const parsed = agentFeaturesSchema.safeParse(features);\n return parsed.success ? parsed.data : null;\n}\n\n/**\n * Returns whether a given agent-builder feature is enabled. Used by list /\n * get-by-id handlers to soft-gate response enrichment (omit fields, ignore\n * favoritedOnly / pinFavoritedFor params) when the feature is off.\n */\nexport async function isBuilderFeatureEnabled(mastra: Mastra, feature: keyof AgentFeatures): Promise<boolean> {\n const features = await resolveBuilderFeatures(mastra);\n return features?.[feature] === true;\n}\n\n/**\n * Hard-gate helper for mutation routes that must not exist when the feature\n * is off. Throws `HTTPException(404)` so we don't leak the existence of the\n * feature surface (matches behavior of unregistered routes).\n */\nexport async function requireBuilderFeature(mastra: Mastra, feature: keyof AgentFeatures): Promise<void> {\n if (!(await isBuilderFeatureEnabled(mastra, feature))) {\n throw new HTTPException(404, { message: 'Not Found' });\n }\n}\n\n/**\n * GET /editor/builder/settings\n *\n * Returns the agent builder settings configured by the admin.\n * Used by frontend to determine which features to display.\n */\nexport const GET_EDITOR_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/settings',\n responseType: 'json',\n responseSchema: builderSettingsResponseSchema,\n summary: 'Get agent builder settings',\n description: 'Returns the agent builder feature flags and configuration for UI gating',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n // No editor configured\n if (!editor) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Editor doesn't support builder (older version or OSS)\n if (typeof editor.resolveBuilder !== 'function') {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Check if builder is enabled in config\n if (!editor.hasEnabledBuilderConfig?.()) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Resolve the builder instance\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n const baseWarnings = builder.getModelPolicyWarnings?.() ?? [];\n const configuration = builder.getConfiguration();\n\n // Picker allowlists are written against entity `.id` (what users see in\n // the UI, URLs, traces). The client filters list responses by their\n // response keys, which are not always `.id`:\n // - GET /agents keys by `agent.id`\n // - GET /tools keys by registration key (values include `id`)\n // - GET /workflows keys by registration key (values omit `id`)\n // To keep the client filter simple, we accept `.id` (fallback to\n // registration key) for matching, but emit visible IDs as response keys\n // so `Object.keys(data)` lines up.\n type AliasPair = { id: string; key: string };\n const collectAliases = (registry: Record<string, unknown>): AliasPair[] =>\n Object.entries(registry).map(([key, entity]) => ({\n id: (entity as { id?: string }).id || key,\n key,\n }));\n\n const toolAliases = collectAliases(mastra.listTools() ?? {});\n const agentAliases = collectAliases(mastra.listAgents() ?? {});\n const workflowAliases = collectAliases(mastra.listWorkflows() ?? {});\n\n // Tools/workflows responses are keyed by registration key. Agents\n // response is keyed by `.id`.\n const toResponseKey = (aliases: AliasPair[], byId: 'id' | 'key') => {\n const map = new Map<string, string>();\n for (const a of aliases) {\n map.set(a.id, byId === 'id' ? a.id : a.key);\n map.set(a.key, byId === 'id' ? a.id : a.key);\n }\n return map;\n };\n const toolKeyMap = toResponseKey(toolAliases, 'key');\n const agentKeyMap = toResponseKey(agentAliases, 'id');\n const workflowKeyMap = toResponseKey(workflowAliases, 'key');\n\n // Lazy-load the EE subpath so this module remains importable on\n // `@mastra/core` versions that pre-date it (added in core 1.34.0).\n // We only reach here after `builder.enabled` is true, which guarantees\n // a compatible core.\n const { builderToModelPolicy, resolvePickerVisibility } = await import('@mastra/core/agent-builder/ee');\n\n const picker = resolvePickerVisibility({\n config: configuration?.agent,\n registeredToolIds: toolAliases.flatMap(a => [a.id, a.key]),\n registeredAgentIds: agentAliases.flatMap(a => [a.id, a.key]),\n registeredWorkflowIds: workflowAliases.flatMap(a => [a.id, a.key]),\n });\n\n const normalize = (visible: string[] | null, map: Map<string, string>): string[] | null => {\n if (visible === null) return null;\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of visible) {\n const mapped = map.get(id);\n if (mapped && !seen.has(mapped)) {\n seen.add(mapped);\n out.push(mapped);\n }\n }\n return out;\n };\n\n const modelPolicyWarnings = [...baseWarnings, ...picker.warnings];\n\n return {\n enabled: true,\n features: builder.getFeatures(),\n configuration,\n modelPolicy: builderToModelPolicy(builder),\n picker: {\n visibleTools: normalize(picker.visibleTools, toolKeyMap),\n visibleAgents: normalize(picker.visibleAgents, agentKeyMap),\n visibleWorkflows: normalize(picker.visibleWorkflows, workflowKeyMap),\n },\n ...(modelPolicyWarnings.length > 0 ? { modelPolicyWarnings } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error getting builder settings');\n }\n },\n});\n\n/**\n * GET /editor/builder/models/available\n *\n * Returns the configured AI providers/models the agent builder may use. The\n * server is the single authority: it scopes the list to providers with a\n * configured API key (`connected`) and applies the active builder model\n * policy via `isModelAllowed`, so the Studio surfaces can render the response\n * verbatim without importing any EE matcher into the browser.\n *\n * - Providers without a configured API key are always omitted — the builder\n * decides the agent's model from this list, so an unconnected provider would\n * produce an agent that can never run.\n * - Policy inactive (or no allowlist) ⇒ all connected providers are returned.\n * - Policy active with an allowlist ⇒ each connected provider's models are\n * filtered, and providers left with no allowed models are omitted entirely.\n */\nexport const GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/models/available',\n responseType: 'json',\n responseSchema: builderAvailableModelsResponseSchema,\n summary: 'List builder-available AI models',\n description: 'Returns AI providers/models filtered by the active agent-builder model policy.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n // Only surface providers whose API key is configured (`connected`). The\n // agent builder decides the agent's model from this list, so including\n // providers without a key lets it pick a model that can never run. We\n // scope to connected providers so every choice is actually usable.\n const providers = (await buildProvidersList(mastra)).filter(provider => provider.connected);\n const policy = await resolveBuilderModelPolicy(mastra.getEditor());\n\n // Inactive policy (or no allowlist) ⇒ no allowlist filtering to apply.\n if (!policy.active || !policy.allowed || policy.allowed.length === 0) {\n return { providers };\n }\n\n // Lazy-load the EE matcher (server-only); mirrors the convention used by\n // resolve-builder-model-policy and the settings handler.\n const { isModelAllowed } = await import('@mastra/core/agent-builder/ee');\n\n const filtered = providers\n .map(provider => ({\n ...provider,\n models: provider.models.filter(modelId => isModelAllowed(policy.allowed, { provider: provider.id, modelId })),\n }))\n .filter(provider => provider.models.length > 0);\n\n return { providers: filtered };\n } catch (error) {\n return handleError(error, 'Error fetching available models');\n }\n },\n});\n\n/**\n * GET /editor/builder/infrastructure\n *\n * Returns the runtime status of Mastra-opinionated primitives (channels,\n * browser providers, workspaces). Admin-only; surfaced in Studio Settings so\n * admins can sanity-check what's wired up to the running server.\n */\nexport const GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/infrastructure',\n responseType: 'json',\n responseSchema: infrastructureStatusResponseSchema,\n summary: 'Get infrastructure status',\n description: 'Agent Builder infrastructure configuration and lightweight runtime status.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'infrastructure:read',\n handler: async ({ mastra }) => {\n try {\n const formatConfigValue = (value: unknown): string => {\n if (value === null || value === undefined) return 'not set';\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) return `${value.length} item${value.length === 1 ? '' : 's'}`;\n return value.constructor?.name && value.constructor.name !== 'Object' ? value.constructor.name : 'configured';\n };\n\n const getProviderName = (value: unknown): string | null => {\n if (!value) return null;\n if (typeof value === 'object' && 'provider' in value && typeof value.provider === 'string')\n return value.provider;\n if (typeof value === 'object' && 'constructor' in value) {\n const name = (value as { constructor?: { name?: string } }).constructor?.name;\n return name && name !== 'Object' ? name : 'configured';\n }\n return null;\n };\n\n const getConfigEntries = (config: Record<string, unknown>, omittedKeys: string[] = []) =>\n Object.entries(config)\n .filter(([key, value]) => !omittedKeys.includes(key) && value !== undefined && value !== null)\n .map(([key, value]) => ({ key, value: formatConfigValue(value) }));\n\n const channelProviders = mastra.getChannelProviders() ?? {};\n const channels: InfrastructureStatus['channels'] = {\n providers: Object.entries(channelProviders)\n .map(([id, provider]) => {\n const info = provider.getInfo?.();\n const routes = provider.getRoutes?.() ?? [];\n return {\n id: info?.id ?? id,\n name: info?.name ?? id,\n isConfigured: info?.isConfigured ?? false,\n routeCount: routes.length,\n };\n })\n .filter(provider => provider.isConfigured),\n };\n\n const editor = mastra.getEditor();\n let browser: InfrastructureStatus['browser'] = {\n type: null,\n provider: null,\n env: null,\n registered: false,\n availableProviders: [],\n config: [],\n };\n let workspace: InfrastructureStatus['workspace'] = {\n type: null,\n workspaceId: null,\n name: null,\n source: null,\n registered: false,\n hasFilesystem: false,\n hasSandbox: false,\n filesystemProvider: null,\n sandboxProvider: null,\n config: [],\n };\n let registries: InfrastructureStatus['registries'] = {\n skillsSh: { enabled: false },\n };\n\n if (editor?.resolveBuilder) {\n const browsers = (editor as unknown as { __browsers?: Map<string, unknown> }).__browsers;\n const builder = await editor.resolveBuilder();\n const builderRegistries = builder?.getRegistries?.();\n registries = {\n skillsSh: { enabled: builderRegistries?.skillsSh?.enabled === true },\n };\n const configuration = builder?.getConfiguration?.()?.agent as\n | {\n browser?: { type?: string; config?: { provider?: string; env?: string } };\n workspace?: {\n type?: string;\n workspaceId?: string;\n config?: { name?: string; filesystem?: unknown; sandbox?: unknown };\n };\n }\n | undefined;\n\n const browserRef = configuration?.browser;\n const browserConfig = browserRef?.config ?? {};\n const providerId = browserConfig.provider ?? null;\n browser = {\n type: browserRef?.type ?? null,\n provider: providerId,\n env: browserConfig.env ?? null,\n registered: providerId ? !!browsers?.has(providerId) : false,\n availableProviders: browsers ? Array.from(browsers.keys()) : [],\n config: getConfigEntries(browserConfig, ['provider', 'env']),\n };\n\n const workspaceRef = configuration?.workspace;\n const workspaceConfig = workspaceRef?.config ?? {};\n const registeredWorkspaces = mastra.listWorkspaces();\n const registeredWorkspace = workspaceRef?.workspaceId\n ? registeredWorkspaces[workspaceRef.workspaceId]\n : undefined;\n const filesystem = registeredWorkspace?.workspace.filesystem ?? workspaceConfig.filesystem;\n const sandbox = registeredWorkspace?.workspace.sandbox ?? workspaceConfig.sandbox;\n const filesystemConfig =\n typeof workspaceConfig.filesystem === 'object' &&\n workspaceConfig.filesystem &&\n 'config' in workspaceConfig.filesystem\n ? (workspaceConfig.filesystem.config as Record<string, unknown>)\n : {};\n const sandboxConfig =\n typeof workspaceConfig.sandbox === 'object' && workspaceConfig.sandbox && 'config' in workspaceConfig.sandbox\n ? (workspaceConfig.sandbox.config as Record<string, unknown>)\n : {};\n workspace = {\n type: workspaceRef?.type ?? null,\n workspaceId: workspaceRef?.workspaceId ?? null,\n name: workspaceConfig.name ?? registeredWorkspace?.workspace.name ?? null,\n source: registeredWorkspace?.source ?? null,\n registered: !!registeredWorkspace,\n hasFilesystem: !!filesystem,\n hasSandbox: !!sandbox,\n filesystemProvider: getProviderName(filesystem),\n sandboxProvider: getProviderName(sandbox),\n config: [\n ...getConfigEntries(filesystemConfig).map(entry => ({ ...entry, key: `filesystem.${entry.key}` })),\n ...getConfigEntries(sandboxConfig).map(entry => ({ ...entry, key: `sandbox.${entry.key}` })),\n ],\n };\n }\n\n return { channels, browser, workspace, registries };\n } catch (error) {\n return handleError(error, 'Error getting infrastructure status');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/utils/resolve-builder-model-policy.ts","../src/server/handlers/editor-builder.ts"],"names":["agentFeaturesSchema","HTTPException","createRoute","builderSettingsResponseSchema","handleError","builderAvailableModelsResponseSchema","buildProvidersList","infrastructureStatusResponseSchema"],"mappings":"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","file":"chunk-KI6RMI7A.cjs","sourcesContent":["import type { BuilderModelPolicy } from '@mastra/core/agent-builder/ee';\nimport type { IMastraEditor } from '@mastra/core/editor';\n\n/**\n * Server-side wrapper around `builderToModelPolicy`.\n *\n * Handles the optional `IMastraEditor` builder API surface (older / OSS editors\n * may not implement `hasEnabledBuilderConfig` / `resolveBuilder`) and returns\n * a uniform `BuilderModelPolicy` to every call site.\n *\n * Returns `{ active: false }` whenever:\n * - no editor is configured,\n * - the editor doesn't expose builder methods,\n * - the builder config is disabled, or\n * - resolving the builder fails / yields nothing.\n *\n * The `@mastra/core/agent-builder/ee` subpath is loaded lazily so this module\n * remains importable on `@mastra/core` versions that pre-date the subpath\n * (the subpath was added in core 1.34.0). The dynamic import is only reached\n * once an editor is actually configured, by which point a compatible core is\n * guaranteed.\n */\nexport async function resolveBuilderModelPolicy(editor: IMastraEditor | undefined): Promise<BuilderModelPolicy> {\n if (!editor) return { active: false };\n if (typeof editor.resolveBuilder !== 'function') return { active: false };\n if (typeof editor.hasEnabledBuilderConfig === 'function' && !editor.hasEnabledBuilderConfig()) {\n return { active: false };\n }\n\n // Degrade to inactive on builder-resolution failure rather than letting the\n // rejection escape: agent execution routes seed this on every request, so a\n // transient failure must not 500 the entire route.\n try {\n const builder = await editor.resolveBuilder();\n const { builderToModelPolicy } = await import('@mastra/core/agent-builder/ee');\n return builderToModelPolicy(builder);\n } catch {\n return { active: false };\n }\n}\n","import type { Mastra } from '@mastra/core';\n\nimport { HTTPException } from '../http-exception';\nimport {\n agentFeaturesSchema,\n builderAvailableModelsResponseSchema,\n builderSettingsResponseSchema,\n infrastructureStatusResponseSchema,\n} from '../schemas/editor-builder';\nimport type { AgentFeatures, InfrastructureStatus } from '../schemas/editor-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { resolveBuilderModelPolicy } from '../utils/resolve-builder-model-policy';\nimport { buildProvidersList } from './agents';\nimport { handleError } from './error';\n\n/**\n * Resolve the active builder feature flags. Returns `null` when the editor is\n * absent, the builder is disabled, or no features are configured.\n */\nasync function resolveBuilderFeatures(mastra: Mastra): Promise<AgentFeatures | null> {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveBuilder !== 'function') return null;\n if (!editor.hasEnabledBuilderConfig?.()) return null;\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) return null;\n const features = builder.getFeatures?.()?.agent;\n if (!features) return null;\n // Validate the shape so unknown keys cannot smuggle through.\n const parsed = agentFeaturesSchema.safeParse(features);\n return parsed.success ? parsed.data : null;\n}\n\n/**\n * Returns whether a given agent-builder feature is enabled. Used by list /\n * get-by-id handlers to soft-gate response enrichment (omit fields, ignore\n * favoritedOnly / pinFavoritedFor params) when the feature is off.\n */\nexport async function isBuilderFeatureEnabled(mastra: Mastra, feature: keyof AgentFeatures): Promise<boolean> {\n const features = await resolveBuilderFeatures(mastra);\n return features?.[feature] === true;\n}\n\n/**\n * Hard-gate helper for mutation routes that must not exist when the feature\n * is off. Throws `HTTPException(404)` so we don't leak the existence of the\n * feature surface (matches behavior of unregistered routes).\n */\nexport async function requireBuilderFeature(mastra: Mastra, feature: keyof AgentFeatures): Promise<void> {\n if (!(await isBuilderFeatureEnabled(mastra, feature))) {\n throw new HTTPException(404, { message: 'Not Found' });\n }\n}\n\n/**\n * GET /editor/builder/settings\n *\n * Returns the agent builder settings configured by the admin.\n * Used by frontend to determine which features to display.\n */\nexport const GET_EDITOR_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/settings',\n responseType: 'json',\n responseSchema: builderSettingsResponseSchema,\n summary: 'Get agent builder settings',\n description: 'Returns the agent builder feature flags and configuration for UI gating',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n // No editor configured\n if (!editor) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Editor doesn't support builder (older version or OSS)\n if (typeof editor.resolveBuilder !== 'function') {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Check if builder is enabled in config\n if (!editor.hasEnabledBuilderConfig?.()) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Resolve the builder instance\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n const baseWarnings = builder.getModelPolicyWarnings?.() ?? [];\n const configuration = builder.getConfiguration();\n\n // Picker allowlists are written against entity `.id` (what users see in\n // the UI, URLs, traces). The client filters list responses by their\n // response keys, which are not always `.id`:\n // - GET /agents keys by `agent.id`\n // - GET /tools keys by registration key (values include `id`)\n // - GET /workflows keys by registration key (values omit `id`)\n // To keep the client filter simple, we accept `.id` (fallback to\n // registration key) for matching, but emit visible IDs as response keys\n // so `Object.keys(data)` lines up.\n type AliasPair = { id: string; key: string };\n const collectAliases = (registry: Record<string, unknown>): AliasPair[] =>\n Object.entries(registry).map(([key, entity]) => ({\n id: (entity as { id?: string }).id || key,\n key,\n }));\n\n const toolAliases = collectAliases(mastra.listTools() ?? {});\n const agentAliases = collectAliases(mastra.listAgents() ?? {});\n const workflowAliases = collectAliases(mastra.listWorkflows() ?? {});\n\n // Tools/workflows responses are keyed by registration key. Agents\n // response is keyed by `.id`.\n const toResponseKey = (aliases: AliasPair[], byId: 'id' | 'key') => {\n const map = new Map<string, string>();\n for (const a of aliases) {\n map.set(a.id, byId === 'id' ? a.id : a.key);\n map.set(a.key, byId === 'id' ? a.id : a.key);\n }\n return map;\n };\n const toolKeyMap = toResponseKey(toolAliases, 'key');\n const agentKeyMap = toResponseKey(agentAliases, 'id');\n const workflowKeyMap = toResponseKey(workflowAliases, 'key');\n\n // Lazy-load the EE subpath so this module remains importable on\n // `@mastra/core` versions that pre-date it (added in core 1.34.0).\n // We only reach here after `builder.enabled` is true, which guarantees\n // a compatible core.\n const { builderToModelPolicy, resolvePickerVisibility } = await import('@mastra/core/agent-builder/ee');\n\n const picker = resolvePickerVisibility({\n config: configuration?.agent,\n registeredToolIds: toolAliases.flatMap(a => [a.id, a.key]),\n registeredAgentIds: agentAliases.flatMap(a => [a.id, a.key]),\n registeredWorkflowIds: workflowAliases.flatMap(a => [a.id, a.key]),\n });\n\n const normalize = (visible: string[] | null, map: Map<string, string>): string[] | null => {\n if (visible === null) return null;\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of visible) {\n const mapped = map.get(id);\n if (mapped && !seen.has(mapped)) {\n seen.add(mapped);\n out.push(mapped);\n }\n }\n return out;\n };\n\n const modelPolicyWarnings = [...baseWarnings, ...picker.warnings];\n\n return {\n enabled: true,\n features: builder.getFeatures(),\n configuration,\n modelPolicy: builderToModelPolicy(builder),\n picker: {\n visibleTools: normalize(picker.visibleTools, toolKeyMap),\n visibleAgents: normalize(picker.visibleAgents, agentKeyMap),\n visibleWorkflows: normalize(picker.visibleWorkflows, workflowKeyMap),\n },\n ...(modelPolicyWarnings.length > 0 ? { modelPolicyWarnings } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error getting builder settings');\n }\n },\n});\n\n/**\n * GET /editor/builder/models/available\n *\n * Returns the configured AI providers/models the agent builder may use. The\n * server is the single authority: it scopes the list to providers with a\n * configured API key (`connected`) and applies the active builder model\n * policy via `isModelAllowed`, so the Studio surfaces can render the response\n * verbatim without importing any EE matcher into the browser.\n *\n * - Providers without a configured API key are always omitted — the builder\n * decides the agent's model from this list, so an unconnected provider would\n * produce an agent that can never run.\n * - Policy inactive (or no allowlist) ⇒ all connected providers are returned.\n * - Policy active with an allowlist ⇒ each connected provider's models are\n * filtered, and providers left with no allowed models are omitted entirely.\n */\nexport const GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/models/available',\n responseType: 'json',\n responseSchema: builderAvailableModelsResponseSchema,\n summary: 'List builder-available AI models',\n description: 'Returns AI providers/models filtered by the active agent-builder model policy.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n // Only surface providers whose API key is configured (`connected`). The\n // agent builder decides the agent's model from this list, so including\n // providers without a key lets it pick a model that can never run. We\n // scope to connected providers so every choice is actually usable.\n const providers = (await buildProvidersList(mastra)).filter(provider => provider.connected);\n const policy = await resolveBuilderModelPolicy(mastra.getEditor());\n\n // Inactive policy (or no allowlist) ⇒ no allowlist filtering to apply.\n if (!policy.active || !policy.allowed || policy.allowed.length === 0) {\n return { providers };\n }\n\n // Lazy-load the EE matcher (server-only); mirrors the convention used by\n // resolve-builder-model-policy and the settings handler.\n const { isModelAllowed } = await import('@mastra/core/agent-builder/ee');\n\n const filtered = providers\n .map(provider => ({\n ...provider,\n models: provider.models.filter(modelId => isModelAllowed(policy.allowed, { provider: provider.id, modelId })),\n }))\n .filter(provider => provider.models.length > 0);\n\n return { providers: filtered };\n } catch (error) {\n return handleError(error, 'Error fetching available models');\n }\n },\n});\n\n/**\n * GET /editor/builder/infrastructure\n *\n * Returns the runtime status of Mastra-opinionated primitives (channels,\n * browser providers, workspaces). Admin-only; surfaced in Studio Settings so\n * admins can sanity-check what's wired up to the running server.\n */\nexport const GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/infrastructure',\n responseType: 'json',\n responseSchema: infrastructureStatusResponseSchema,\n summary: 'Get infrastructure status',\n description: 'Agent Builder infrastructure configuration and lightweight runtime status.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'infrastructure:read',\n handler: async ({ mastra }) => {\n try {\n const formatConfigValue = (value: unknown): string => {\n if (value === null || value === undefined) return 'not set';\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) return `${value.length} item${value.length === 1 ? '' : 's'}`;\n return value.constructor?.name && value.constructor.name !== 'Object' ? value.constructor.name : 'configured';\n };\n\n const getProviderName = (value: unknown): string | null => {\n if (!value) return null;\n if (typeof value === 'object' && 'provider' in value && typeof value.provider === 'string')\n return value.provider;\n if (typeof value === 'object' && 'constructor' in value) {\n const name = (value as { constructor?: { name?: string } }).constructor?.name;\n return name && name !== 'Object' ? name : 'configured';\n }\n return null;\n };\n\n const getConfigEntries = (config: Record<string, unknown>, omittedKeys: string[] = []) =>\n Object.entries(config)\n .filter(([key, value]) => !omittedKeys.includes(key) && value !== undefined && value !== null)\n .map(([key, value]) => ({ key, value: formatConfigValue(value) }));\n\n const channelProviders = mastra.getChannelProviders() ?? {};\n const channels: InfrastructureStatus['channels'] = {\n providers: Object.entries(channelProviders)\n .map(([id, provider]) => {\n const info = provider.getInfo?.();\n const routes = provider.getRoutes?.() ?? [];\n return {\n id: info?.id ?? id,\n name: info?.name ?? id,\n isConfigured: info?.isConfigured ?? false,\n routeCount: routes.length,\n };\n })\n .filter(provider => provider.isConfigured),\n };\n\n const editor = mastra.getEditor();\n let browser: InfrastructureStatus['browser'] = {\n type: null,\n provider: null,\n env: null,\n registered: false,\n availableProviders: [],\n config: [],\n };\n let workspace: InfrastructureStatus['workspace'] = {\n type: null,\n workspaceId: null,\n name: null,\n source: null,\n registered: false,\n hasFilesystem: false,\n hasSandbox: false,\n filesystemProvider: null,\n sandboxProvider: null,\n config: [],\n };\n let registries: InfrastructureStatus['registries'] = {\n skillsSh: { enabled: false },\n };\n\n if (editor?.resolveBuilder) {\n const browsers = (editor as unknown as { __browsers?: Map<string, unknown> }).__browsers;\n const builder = await editor.resolveBuilder();\n const builderRegistries = builder?.getRegistries?.();\n registries = {\n skillsSh: { enabled: builderRegistries?.skillsSh?.enabled === true },\n };\n const configuration = builder?.getConfiguration?.()?.agent as\n | {\n browser?: { type?: string; config?: { provider?: string; env?: string } };\n workspace?: {\n type?: string;\n workspaceId?: string;\n config?: { name?: string; filesystem?: unknown; sandbox?: unknown };\n };\n }\n | undefined;\n\n const browserRef = configuration?.browser;\n const browserConfig = browserRef?.config ?? {};\n const providerId = browserConfig.provider ?? null;\n browser = {\n type: browserRef?.type ?? null,\n provider: providerId,\n env: browserConfig.env ?? null,\n registered: providerId ? !!browsers?.has(providerId) : false,\n availableProviders: browsers ? Array.from(browsers.keys()) : [],\n config: getConfigEntries(browserConfig, ['provider', 'env']),\n };\n\n const workspaceRef = configuration?.workspace;\n const workspaceConfig = workspaceRef?.config ?? {};\n const registeredWorkspaces = mastra.listWorkspaces();\n const registeredWorkspace = workspaceRef?.workspaceId\n ? registeredWorkspaces[workspaceRef.workspaceId]\n : undefined;\n const filesystem = registeredWorkspace?.workspace.filesystem ?? workspaceConfig.filesystem;\n const sandbox = registeredWorkspace?.workspace.sandbox ?? workspaceConfig.sandbox;\n const filesystemConfig =\n typeof workspaceConfig.filesystem === 'object' &&\n workspaceConfig.filesystem &&\n 'config' in workspaceConfig.filesystem\n ? (workspaceConfig.filesystem.config as Record<string, unknown>)\n : {};\n const sandboxConfig =\n typeof workspaceConfig.sandbox === 'object' && workspaceConfig.sandbox && 'config' in workspaceConfig.sandbox\n ? (workspaceConfig.sandbox.config as Record<string, unknown>)\n : {};\n workspace = {\n type: workspaceRef?.type ?? null,\n workspaceId: workspaceRef?.workspaceId ?? null,\n name: workspaceConfig.name ?? registeredWorkspace?.workspace.name ?? null,\n source: registeredWorkspace?.source ?? null,\n registered: !!registeredWorkspace,\n hasFilesystem: !!filesystem,\n hasSandbox: !!sandbox,\n filesystemProvider: getProviderName(filesystem),\n sandboxProvider: getProviderName(sandbox),\n config: [\n ...getConfigEntries(filesystemConfig).map(entry => ({ ...entry, key: `filesystem.${entry.key}` })),\n ...getConfigEntries(sandboxConfig).map(entry => ({ ...entry, key: `sandbox.${entry.key}` })),\n ],\n };\n }\n\n return { channels, browser, workspace, registries };\n } catch (error) {\n return handleError(error, 'Error getting infrastructure status');\n }\n },\n});\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkGOX5ZFQP_cjs = require('./chunk-GOX5ZFQP.cjs');
|
|
4
4
|
var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
|
|
5
5
|
var chunk3JVOIOO6_cjs = require('./chunk-3JVOIOO6.cjs');
|
|
6
6
|
var chunkEVOVAWN6_cjs = require('./chunk-EVOVAWN6.cjs');
|
|
@@ -23,8 +23,8 @@ var LIST_STORED_SCORERS_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
23
23
|
method: "GET",
|
|
24
24
|
path: "/stored/scorers",
|
|
25
25
|
responseType: "json",
|
|
26
|
-
queryParamSchema:
|
|
27
|
-
responseSchema:
|
|
26
|
+
queryParamSchema: chunkGOX5ZFQP_cjs.listStoredScorersQuerySchema,
|
|
27
|
+
responseSchema: chunkGOX5ZFQP_cjs.listStoredScorersResponseSchema,
|
|
28
28
|
summary: "List stored scorer definitions",
|
|
29
29
|
description: "Returns a paginated list of all scorer definitions stored in the database",
|
|
30
30
|
tags: ["Stored Scorers"],
|
|
@@ -58,9 +58,9 @@ var GET_STORED_SCORER_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
58
58
|
method: "GET",
|
|
59
59
|
path: "/stored/scorers/:storedScorerId",
|
|
60
60
|
responseType: "json",
|
|
61
|
-
pathParamSchema:
|
|
61
|
+
pathParamSchema: chunkGOX5ZFQP_cjs.storedScorerIdPathParams,
|
|
62
62
|
queryParamSchema: chunk3JVOIOO6_cjs.statusQuerySchema,
|
|
63
|
-
responseSchema:
|
|
63
|
+
responseSchema: chunkGOX5ZFQP_cjs.getStoredScorerResponseSchema,
|
|
64
64
|
summary: "Get stored scorer definition by ID",
|
|
65
65
|
description: "Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.",
|
|
66
66
|
tags: ["Stored Scorers"],
|
|
@@ -90,8 +90,8 @@ var CREATE_STORED_SCORER_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
90
90
|
method: "POST",
|
|
91
91
|
path: "/stored/scorers",
|
|
92
92
|
responseType: "json",
|
|
93
|
-
bodySchema:
|
|
94
|
-
responseSchema:
|
|
93
|
+
bodySchema: chunkGOX5ZFQP_cjs.createStoredScorerBodySchema,
|
|
94
|
+
responseSchema: chunkGOX5ZFQP_cjs.createStoredScorerResponseSchema,
|
|
95
95
|
summary: "Create stored scorer definition",
|
|
96
96
|
description: "Creates a new scorer definition in storage with the provided configuration",
|
|
97
97
|
tags: ["Stored Scorers"],
|
|
@@ -159,9 +159,9 @@ var UPDATE_STORED_SCORER_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
159
159
|
method: "PATCH",
|
|
160
160
|
path: "/stored/scorers/:storedScorerId",
|
|
161
161
|
responseType: "json",
|
|
162
|
-
pathParamSchema:
|
|
163
|
-
bodySchema:
|
|
164
|
-
responseSchema:
|
|
162
|
+
pathParamSchema: chunkGOX5ZFQP_cjs.storedScorerIdPathParams,
|
|
163
|
+
bodySchema: chunkGOX5ZFQP_cjs.updateStoredScorerBodySchema,
|
|
164
|
+
responseSchema: chunkGOX5ZFQP_cjs.updateStoredScorerResponseSchema,
|
|
165
165
|
summary: "Update stored scorer definition",
|
|
166
166
|
description: "Updates an existing scorer definition in storage with the provided fields",
|
|
167
167
|
tags: ["Stored Scorers"],
|
|
@@ -250,8 +250,8 @@ var DELETE_STORED_SCORER_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
250
250
|
method: "DELETE",
|
|
251
251
|
path: "/stored/scorers/:storedScorerId",
|
|
252
252
|
responseType: "json",
|
|
253
|
-
pathParamSchema:
|
|
254
|
-
responseSchema:
|
|
253
|
+
pathParamSchema: chunkGOX5ZFQP_cjs.storedScorerIdPathParams,
|
|
254
|
+
responseSchema: chunkGOX5ZFQP_cjs.deleteStoredScorerResponseSchema,
|
|
255
255
|
summary: "Delete stored scorer definition",
|
|
256
256
|
description: "Deletes a scorer definition from storage by its unique identifier",
|
|
257
257
|
tags: ["Stored Scorers"],
|
|
@@ -285,5 +285,5 @@ exports.DELETE_STORED_SCORER_ROUTE = DELETE_STORED_SCORER_ROUTE;
|
|
|
285
285
|
exports.GET_STORED_SCORER_ROUTE = GET_STORED_SCORER_ROUTE;
|
|
286
286
|
exports.LIST_STORED_SCORERS_ROUTE = LIST_STORED_SCORERS_ROUTE;
|
|
287
287
|
exports.UPDATE_STORED_SCORER_ROUTE = UPDATE_STORED_SCORER_ROUTE;
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
289
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-LJNTC2CX.cjs.map
|
|
289
|
+
//# sourceMappingURL=chunk-LJNTC2CX.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":["createRoute","listStoredScorersQuerySchema","listStoredScorersResponseSchema","HTTPException","getStoredResourceScope","scopeStoredResourceMetadata","handleError","storedScorerIdPathParams","statusQuerySchema","getStoredScorerResponseSchema","assertStoredResourceScope","createStoredScorerBodySchema","createStoredScorerResponseSchema","toSlug","updateStoredScorerBodySchema","updateStoredScorerResponseSchema","handleAutoVersioning","deleteStoredScorerResponseSchema"],"mappings":"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","file":"chunk-V3HBNBLU.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/stored-scorers.ts"],"names":["createRoute","listStoredScorersQuerySchema","listStoredScorersResponseSchema","HTTPException","getStoredResourceScope","scopeStoredResourceMetadata","handleError","storedScorerIdPathParams","statusQuerySchema","getStoredScorerResponseSchema","assertStoredResourceScope","createStoredScorerBodySchema","createStoredScorerResponseSchema","toSlug","updateStoredScorerBodySchema","updateStoredScorerResponseSchema","handleAutoVersioning","deleteStoredScorerResponseSchema"],"mappings":"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","file":"chunk-LJNTC2CX.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n storedScorerIdPathParams,\n statusQuerySchema,\n listStoredScorersQuerySchema,\n createStoredScorerBodySchema,\n updateStoredScorerBodySchema,\n listStoredScorersResponseSchema,\n getStoredScorerResponseSchema,\n createStoredScorerResponseSchema,\n updateStoredScorerResponseSchema,\n deleteStoredScorerResponseSchema,\n} from '../schemas/stored-scorers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope, scopeStoredResourceMetadata, toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SCORER_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/scorers - List all stored scorer definitions\n */\nexport const LIST_STORED_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers',\n responseType: 'json',\n queryParamSchema: listStoredScorersQuerySchema,\n responseSchema: listStoredScorersResponseSchema,\n summary: 'List stored scorer definitions',\n description: 'Returns a paginated list of all scorer definitions stored in the database',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scope = await getStoredResourceScope(mastra, requestContext);\n const result = await scorerStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, scope),\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored scorer definitions');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:storedScorerId - Get a stored scorer definition by ID\n */\nexport const GET_STORED_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredScorerResponseSchema,\n summary: 'Get stored scorer definition by ID',\n description:\n 'Returns a specific scorer definition from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, status, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getByIdResolved(storedScorerId, { status });\n\n if (!scorer) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return scorer;\n } catch (error) {\n return handleError(error, 'Error getting stored scorer definition');\n }\n },\n});\n\n/**\n * POST /stored/scorers - Create a new stored scorer definition\n */\nexport const CREATE_STORED_SCORER_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers',\n responseType: 'json',\n bodySchema: createStoredScorerBodySchema,\n responseSchema: createStoredScorerResponseSchema,\n summary: 'Create stored scorer definition',\n description: 'Creates a new scorer definition in storage with the provided configuration',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive scorer definition ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if scorer definition with this ID already exists\n const existing = await scorerStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Scorer definition with id ${id} already exists` });\n }\n\n await scorerStore.create({\n scorerDefinition: {\n id,\n authorId,\n metadata: scopeStoredResourceMetadata(metadata, await getStoredResourceScope(mastra, requestContext)),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n },\n });\n\n // Return the resolved scorer definition (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await scorerStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored scorer definition');\n }\n },\n});\n\n/**\n * PATCH /stored/scorers/:storedScorerId - Update a stored scorer definition\n */\nexport const UPDATE_STORED_SCORER_ROUTE = createRoute({\n method: 'PATCH',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n bodySchema: updateStoredScorerBodySchema,\n responseSchema: updateStoredScorerResponseSchema,\n summary: 'Update stored scorer definition',\n description: 'Updates an existing scorer definition in storage with the provided fields',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedScorerId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n requestContext,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n const scope = await getStoredResourceScope(mastra, requestContext);\n assertStoredResourceScope(existing, scope);\n const scopedMetadata =\n metadata !== undefined\n ? scopeStoredResourceMetadata({ ...(existing.metadata ?? {}), ...metadata }, scope)\n : undefined;\n\n // Update the scorer definition with both metadata-level and config-level fields\n const updatedScorer = await scorerStore.update({\n id: storedScorerId,\n authorId,\n ...(scopedMetadata !== undefined ? { metadata: scopedMetadata } : {}),\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n });\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n type,\n model,\n instructions,\n scoreRange,\n presetConfig,\n defaultSampling,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n await handleAutoVersioning(\n scorerStore as unknown as VersionedStoreInterface,\n storedScorerId,\n 'scorerDefinitionId',\n SCORER_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedScorer,\n providedConfigFields,\n );\n\n // Clear the cached scorer instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.scorer.clearCache(storedScorerId);\n }\n\n // Return the resolved scorer definition with the latest (draft) version so the UI sees its edits\n const resolved = await scorerStore.getByIdResolved(storedScorerId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated scorer definition' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored scorer definition');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:storedScorerId - Delete a stored scorer definition\n */\nexport const DELETE_STORED_SCORER_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:storedScorerId',\n responseType: 'json',\n pathParamSchema: storedScorerIdPathParams,\n responseSchema: deleteStoredScorerResponseSchema,\n summary: 'Delete stored scorer definition',\n description: 'Deletes a scorer definition from storage by its unique identifier',\n tags: ['Stored Scorers'],\n requiresAuth: true,\n handler: async ({ mastra, storedScorerId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n // Check if scorer definition exists\n const existing = await scorerStore.getById(storedScorerId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored scorer definition with id ${storedScorerId} not found` });\n }\n assertStoredResourceScope(existing, await getStoredResourceScope(mastra, requestContext));\n\n await scorerStore.delete(storedScorerId);\n\n // Clear the cached scorer instance\n mastra.getEditor()?.scorer.clearCache(storedScorerId);\n\n return { success: true, message: `Scorer definition ${storedScorerId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored scorer definition');\n }\n },\n});\n"]}
|
|
@@ -98,7 +98,7 @@ var GET_API_SCHEMA_ROUTE = createRoute({
|
|
|
98
98
|
tags: ["System"],
|
|
99
99
|
requiresAuth: true,
|
|
100
100
|
handler: async () => {
|
|
101
|
-
const { buildApiSchemaManifest } = await import('./api-schema-manifest-
|
|
101
|
+
const { buildApiSchemaManifest } = await import('./api-schema-manifest-AAUEOERA.js');
|
|
102
102
|
return buildApiSchemaManifest();
|
|
103
103
|
}
|
|
104
104
|
});
|
|
@@ -158,5 +158,5 @@ var GET_SYSTEM_PACKAGES_ROUTE = createRoute({
|
|
|
158
158
|
});
|
|
159
159
|
|
|
160
160
|
export { GET_API_SCHEMA_ROUTE, GET_SYSTEM_PACKAGES_ROUTE };
|
|
161
|
-
//# sourceMappingURL=chunk-
|
|
162
|
-
//# sourceMappingURL=chunk-
|
|
161
|
+
//# sourceMappingURL=chunk-LWKCKC57.js.map
|
|
162
|
+
//# sourceMappingURL=chunk-LWKCKC57.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":"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","file":"chunk-I6TYCL4H.js","sourcesContent":["import { readFileSync } from 'node:fs';\n\nimport type { MastraPackage } from '../schemas/system';\nimport { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from '../schemas/system';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\nconst SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS = 3000;\n\nasync function getSourceProviderCapabilities(\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>,\n) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n getCapabilities(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(new Error('Source provider capabilities timed out')),\n SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS,\n );\n }),\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nasync function getEditorSourceCapabilities(editor: {\n getSource?: () => 'code' | 'db' | undefined;\n getSourceControlProvider?: () =>\n | {\n id: string;\n displayName: string;\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>;\n }\n | undefined;\n}) {\n const editorSource = editor.getSource?.();\n if (!editorSource) return undefined;\n\n if (editorSource === 'db') {\n return {\n source: editorSource,\n storage: 'database' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n }\n\n const configuredProvider = editor.getSourceControlProvider?.();\n if (configuredProvider) {\n const provider = {\n id: configuredProvider.id,\n displayName: configuredProvider.displayName,\n };\n try {\n const capabilities = await getSourceProviderCapabilities(() => configuredProvider.getCapabilities());\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: capabilities.canWrite,\n canOpenChangeRequest: capabilities.canOpenChangeRequest,\n unavailableReason: capabilities.canWrite ? undefined : capabilities.reason,\n };\n } catch {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Unable to load source provider capabilities.',\n };\n }\n }\n\n const sourceProvider = process.env.MASTRA_SOURCE_PROVIDER;\n\n if (sourceProvider) {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider: {\n id: sourceProvider,\n displayName: process.env.MASTRA_SOURCE_PROVIDER_NAME || sourceProvider,\n },\n canSave: process.env.MASTRA_SOURCE_STORAGE_CAN_WRITE !== 'false',\n canOpenChangeRequest: process.env.MASTRA_SOURCE_STORAGE_CAN_OPEN_CHANGE_REQUEST === 'true',\n };\n }\n\n const isHosted =\n process.env.MASTRA_DEPLOYMENT_ID || process.env.MASTRA_CLOUD_API_ENDPOINT || process.env.MASTRA_PLATFORM_PROJECT_ID;\n\n if (isHosted) {\n return {\n source: editorSource,\n storage: 'unavailable' as const,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Code-source editing requires a source provider in hosted Studio.',\n };\n }\n\n return {\n source: editorSource,\n storage: 'filesystem' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n}\n\nexport const GET_API_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/system/api-schema',\n responseType: 'json',\n responseSchema: apiSchemaManifestResponseSchema,\n summary: 'Get API schema manifest',\n description: 'Returns the route-contract-derived API schema manifest for the machine-readable CLI',\n tags: ['System'],\n requiresAuth: true,\n handler: async () => {\n // Dynamic import to avoid circular dependency issues\n const { buildApiSchemaManifest } = await import('../server-adapter/api-schema-manifest');\n return buildApiSchemaManifest();\n },\n});\n\nexport const GET_SYSTEM_PACKAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/system/packages',\n responseType: 'json',\n responseSchema: systemPackagesResponseSchema,\n summary: 'Get installed Mastra packages',\n description: 'Returns a list of all installed Mastra packages and their versions from the project',\n tags: ['System'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const packagesFilePath = process.env.MASTRA_PACKAGES_FILE;\n\n let packages: MastraPackage[] = [];\n\n if (packagesFilePath) {\n try {\n const fileContent = readFileSync(packagesFilePath, 'utf-8');\n packages = JSON.parse(fileContent);\n } catch {\n packages = [];\n }\n }\n\n const storage = mastra.getStorage();\n const storageType = storage?.name;\n const observabilityStorage = storage?.stores?.observability;\n const observabilityStorageType = observabilityStorage?.constructor.name;\n const observabilityStorageFeatures = observabilityStorage?.getFeatures?.();\n const observabilityStorageCapabilities = observabilityStorageFeatures?.some(\n feature => feature === 'metrics' || feature === 'logs',\n )\n ? {\n metrics: observabilityStorageFeatures.includes('metrics'),\n logs: observabilityStorageFeatures.includes('logs'),\n }\n : undefined;\n const observabilityRuntimeStrategy = observabilityStorage?.runtimeTracingStrategy;\n const observabilityEnabled = !!mastra.observability.getDefaultInstance();\n\n const editor = mastra.getEditor();\n const editorSource = editor?.getSource?.();\n const editorSourceCapabilities = editor ? await getEditorSourceCapabilities(editor) : undefined;\n\n return {\n packages,\n isDev: process.env.MASTRA_DEV === 'true',\n cmsEnabled: !!editor,\n editorSource,\n editorSourceCapabilities,\n observabilityEnabled,\n storageType,\n observabilityStorageType,\n ...(observabilityStorageCapabilities ? { observabilityStorageCapabilities } : {}),\n observabilityRuntimeStrategy,\n };\n } catch (error) {\n return handleError(error, 'Error getting system packages');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":"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","file":"chunk-LWKCKC57.js","sourcesContent":["import { readFileSync } from 'node:fs';\n\nimport type { MastraPackage } from '../schemas/system';\nimport { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from '../schemas/system';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\nconst SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS = 3000;\n\nasync function getSourceProviderCapabilities(\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>,\n) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n getCapabilities(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(new Error('Source provider capabilities timed out')),\n SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS,\n );\n }),\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nasync function getEditorSourceCapabilities(editor: {\n getSource?: () => 'code' | 'db' | undefined;\n getSourceControlProvider?: () =>\n | {\n id: string;\n displayName: string;\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>;\n }\n | undefined;\n}) {\n const editorSource = editor.getSource?.();\n if (!editorSource) return undefined;\n\n if (editorSource === 'db') {\n return {\n source: editorSource,\n storage: 'database' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n }\n\n const configuredProvider = editor.getSourceControlProvider?.();\n if (configuredProvider) {\n const provider = {\n id: configuredProvider.id,\n displayName: configuredProvider.displayName,\n };\n try {\n const capabilities = await getSourceProviderCapabilities(() => configuredProvider.getCapabilities());\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: capabilities.canWrite,\n canOpenChangeRequest: capabilities.canOpenChangeRequest,\n unavailableReason: capabilities.canWrite ? undefined : capabilities.reason,\n };\n } catch {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Unable to load source provider capabilities.',\n };\n }\n }\n\n const sourceProvider = process.env.MASTRA_SOURCE_PROVIDER;\n\n if (sourceProvider) {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider: {\n id: sourceProvider,\n displayName: process.env.MASTRA_SOURCE_PROVIDER_NAME || sourceProvider,\n },\n canSave: process.env.MASTRA_SOURCE_STORAGE_CAN_WRITE !== 'false',\n canOpenChangeRequest: process.env.MASTRA_SOURCE_STORAGE_CAN_OPEN_CHANGE_REQUEST === 'true',\n };\n }\n\n const isHosted =\n process.env.MASTRA_DEPLOYMENT_ID || process.env.MASTRA_CLOUD_API_ENDPOINT || process.env.MASTRA_PLATFORM_PROJECT_ID;\n\n if (isHosted) {\n return {\n source: editorSource,\n storage: 'unavailable' as const,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Code-source editing requires a source provider in hosted Studio.',\n };\n }\n\n return {\n source: editorSource,\n storage: 'filesystem' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n}\n\nexport const GET_API_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/system/api-schema',\n responseType: 'json',\n responseSchema: apiSchemaManifestResponseSchema,\n summary: 'Get API schema manifest',\n description: 'Returns the route-contract-derived API schema manifest for the machine-readable CLI',\n tags: ['System'],\n requiresAuth: true,\n handler: async () => {\n // Dynamic import to avoid circular dependency issues\n const { buildApiSchemaManifest } = await import('../server-adapter/api-schema-manifest');\n return buildApiSchemaManifest();\n },\n});\n\nexport const GET_SYSTEM_PACKAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/system/packages',\n responseType: 'json',\n responseSchema: systemPackagesResponseSchema,\n summary: 'Get installed Mastra packages',\n description: 'Returns a list of all installed Mastra packages and their versions from the project',\n tags: ['System'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const packagesFilePath = process.env.MASTRA_PACKAGES_FILE;\n\n let packages: MastraPackage[] = [];\n\n if (packagesFilePath) {\n try {\n const fileContent = readFileSync(packagesFilePath, 'utf-8');\n packages = JSON.parse(fileContent);\n } catch {\n packages = [];\n }\n }\n\n const storage = mastra.getStorage();\n const storageType = storage?.name;\n const observabilityStorage = storage?.stores?.observability;\n const observabilityStorageType = observabilityStorage?.constructor.name;\n const observabilityStorageFeatures = observabilityStorage?.getFeatures?.();\n const observabilityStorageCapabilities = observabilityStorageFeatures?.some(\n feature => feature === 'metrics' || feature === 'logs',\n )\n ? {\n metrics: observabilityStorageFeatures.includes('metrics'),\n logs: observabilityStorageFeatures.includes('logs'),\n }\n : undefined;\n const observabilityRuntimeStrategy = observabilityStorage?.runtimeTracingStrategy;\n const observabilityEnabled = !!mastra.observability.getDefaultInstance();\n\n const editor = mastra.getEditor();\n const editorSource = editor?.getSource?.();\n const editorSourceCapabilities = editor ? await getEditorSourceCapabilities(editor) : undefined;\n\n return {\n packages,\n isDev: process.env.MASTRA_DEV === 'true',\n cmsEnabled: !!editor,\n editorSource,\n editorSourceCapabilities,\n observabilityEnabled,\n storageType,\n observabilityStorageType,\n ...(observabilityStorageCapabilities ? { observabilityStorageCapabilities } : {}),\n observabilityRuntimeStrategy,\n };\n } catch (error) {\n return handleError(error, 'Error getting system packages');\n }\n },\n});\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk43E6JEA5_cjs = require('./chunk-43E6JEA5.cjs');
|
|
4
4
|
var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
|
|
5
5
|
var chunkEVOVAWN6_cjs = require('./chunk-EVOVAWN6.cjs');
|
|
6
6
|
var chunkZ7LCIYK7_cjs = require('./chunk-Z7LCIYK7.cjs');
|
|
@@ -23,9 +23,9 @@ var LIST_SCORER_VERSIONS_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
23
23
|
path: "/stored/scorers/:scorerId/versions",
|
|
24
24
|
requiresAuth: true,
|
|
25
25
|
responseType: "json",
|
|
26
|
-
pathParamSchema:
|
|
27
|
-
queryParamSchema:
|
|
28
|
-
responseSchema:
|
|
26
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionPathParams,
|
|
27
|
+
queryParamSchema: chunk43E6JEA5_cjs.listScorerVersionsQuerySchema,
|
|
28
|
+
responseSchema: chunk43E6JEA5_cjs.listScorerVersionsResponseSchema,
|
|
29
29
|
summary: "List scorer versions",
|
|
30
30
|
description: "Returns a paginated list of all versions for a stored scorer",
|
|
31
31
|
tags: ["Scorer Versions"],
|
|
@@ -61,9 +61,9 @@ var CREATE_SCORER_VERSION_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
61
61
|
path: "/stored/scorers/:scorerId/versions",
|
|
62
62
|
requiresAuth: true,
|
|
63
63
|
responseType: "json",
|
|
64
|
-
pathParamSchema:
|
|
65
|
-
bodySchema:
|
|
66
|
-
responseSchema:
|
|
64
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionPathParams,
|
|
65
|
+
bodySchema: chunk43E6JEA5_cjs.createScorerVersionBodySchema,
|
|
66
|
+
responseSchema: chunk43E6JEA5_cjs.createScorerVersionResponseSchema,
|
|
67
67
|
summary: "Create scorer version",
|
|
68
68
|
description: "Creates a new version snapshot of the current scorer configuration",
|
|
69
69
|
tags: ["Scorer Versions"],
|
|
@@ -130,8 +130,8 @@ var GET_SCORER_VERSION_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
130
130
|
path: "/stored/scorers/:scorerId/versions/:versionId",
|
|
131
131
|
requiresAuth: true,
|
|
132
132
|
responseType: "json",
|
|
133
|
-
pathParamSchema:
|
|
134
|
-
responseSchema:
|
|
133
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionIdPathParams,
|
|
134
|
+
responseSchema: chunk43E6JEA5_cjs.getScorerVersionResponseSchema,
|
|
135
135
|
summary: "Get scorer version",
|
|
136
136
|
description: "Returns a specific version of a scorer by its version ID",
|
|
137
137
|
tags: ["Scorer Versions"],
|
|
@@ -167,8 +167,8 @@ var ACTIVATE_SCORER_VERSION_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
167
167
|
path: "/stored/scorers/:scorerId/versions/:versionId/activate",
|
|
168
168
|
requiresAuth: true,
|
|
169
169
|
responseType: "json",
|
|
170
|
-
pathParamSchema:
|
|
171
|
-
responseSchema:
|
|
170
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionIdPathParams,
|
|
171
|
+
responseSchema: chunk43E6JEA5_cjs.activateScorerVersionResponseSchema,
|
|
172
172
|
summary: "Activate scorer version",
|
|
173
173
|
description: "Sets a specific version as the active version for the scorer",
|
|
174
174
|
tags: ["Scorer Versions"],
|
|
@@ -217,8 +217,8 @@ var RESTORE_SCORER_VERSION_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
217
217
|
path: "/stored/scorers/:scorerId/versions/:versionId/restore",
|
|
218
218
|
requiresAuth: true,
|
|
219
219
|
responseType: "json",
|
|
220
|
-
pathParamSchema:
|
|
221
|
-
responseSchema:
|
|
220
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionIdPathParams,
|
|
221
|
+
responseSchema: chunk43E6JEA5_cjs.restoreScorerVersionResponseSchema,
|
|
222
222
|
summary: "Restore scorer version",
|
|
223
223
|
description: "Restores the scorer configuration from a version, creating a new version",
|
|
224
224
|
tags: ["Scorer Versions"],
|
|
@@ -289,8 +289,8 @@ var DELETE_SCORER_VERSION_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
289
289
|
path: "/stored/scorers/:scorerId/versions/:versionId",
|
|
290
290
|
requiresAuth: true,
|
|
291
291
|
responseType: "json",
|
|
292
|
-
pathParamSchema:
|
|
293
|
-
responseSchema:
|
|
292
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionIdPathParams,
|
|
293
|
+
responseSchema: chunk43E6JEA5_cjs.deleteScorerVersionResponseSchema,
|
|
294
294
|
summary: "Delete scorer version",
|
|
295
295
|
description: "Deletes a specific version (cannot delete the active version)",
|
|
296
296
|
tags: ["Scorer Versions"],
|
|
@@ -339,9 +339,9 @@ var COMPARE_SCORER_VERSIONS_ROUTE = chunkRTTQ6WVP_cjs.createRoute({
|
|
|
339
339
|
path: "/stored/scorers/:scorerId/versions/compare",
|
|
340
340
|
requiresAuth: true,
|
|
341
341
|
responseType: "json",
|
|
342
|
-
pathParamSchema:
|
|
343
|
-
queryParamSchema:
|
|
344
|
-
responseSchema:
|
|
342
|
+
pathParamSchema: chunk43E6JEA5_cjs.scorerVersionPathParams,
|
|
343
|
+
queryParamSchema: chunk43E6JEA5_cjs.compareScorerVersionsQuerySchema,
|
|
344
|
+
responseSchema: chunk43E6JEA5_cjs.compareScorerVersionsResponseSchema,
|
|
345
345
|
summary: "Compare scorer versions",
|
|
346
346
|
description: "Compares two versions and returns the differences between them",
|
|
347
347
|
tags: ["Scorer Versions"],
|
|
@@ -402,5 +402,5 @@ exports.DELETE_SCORER_VERSION_ROUTE = DELETE_SCORER_VERSION_ROUTE;
|
|
|
402
402
|
exports.GET_SCORER_VERSION_ROUTE = GET_SCORER_VERSION_ROUTE;
|
|
403
403
|
exports.LIST_SCORER_VERSIONS_ROUTE = LIST_SCORER_VERSIONS_ROUTE;
|
|
404
404
|
exports.RESTORE_SCORER_VERSION_ROUTE = RESTORE_SCORER_VERSION_ROUTE;
|
|
405
|
-
//# sourceMappingURL=chunk-
|
|
406
|
-
//# sourceMappingURL=chunk-
|
|
405
|
+
//# sourceMappingURL=chunk-LYZLM7TQ.cjs.map
|
|
406
|
+
//# sourceMappingURL=chunk-LYZLM7TQ.cjs.map
|