{"version":3,"sources":["../../_internal-core/src/storage/domains/shared.ts","../../_internal-core/src/storage/domains/observability/logs.ts","../../_internal-core/src/storage/domains/observability/scores.ts","../../_internal-core/src/storage/domains/observability/feedback.ts","../../_internal-core/src/storage/domains/observability/metrics.ts","../../_internal-core/src/storage/domains/observability/discovery.ts","../src/server/handlers/observability-new-endpoints.ts"],"names":["EntityType","z","paginationArgsSchema","createRoute","coreFeatures","HTTPException","handleError","NEW_ROUTE_DEFS","createObservabilityListQuerySchema","pickParams","getObservabilityStore","assertObservabilityDeltaSupported","OBSERVABILITY_LIST_ENDPOINTS","generateSignalId","wrapSchemaForQueryParams"],"mappings":"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","file":"chunk-7B36J5MV.cjs","sourcesContent":["import { z } from 'zod/v4';\n\n/** Types of entities that can produce observability spans. */\nexport enum EntityType {\n /** Agent/Model execution */\n AGENT = 'agent',\n /** Scorer definition/execution */\n SCORER = 'scorer',\n /** RAG ingestion pipeline execution */\n RAG_INGESTION = 'rag_ingestion',\n /** Trajectory evaluation target */\n TRAJECTORY = 'trajectory',\n /** Input Processor */\n INPUT_PROCESSOR = 'input_processor',\n /** Input Step Processor */\n INPUT_STEP_PROCESSOR = 'input_step_processor',\n /** Output Processor */\n OUTPUT_PROCESSOR = 'output_processor',\n /** Output Step Processor */\n OUTPUT_STEP_PROCESSOR = 'output_step_processor',\n /** Workflow Step */\n WORKFLOW_STEP = 'workflow_step',\n /** Tool */\n TOOL = 'tool',\n /** Workflow */\n WORKFLOW_RUN = 'workflow_run',\n /** Memory */\n MEMORY = 'memory',\n}\n\n/**\n * Common DB fields\n */\nexport const createdAtField = z.date().describe('Database record creation time');\n\nexport const updatedAtField = z.date().describe('Database record last update time');\n\nexport const dbTimestamps = {\n createdAt: createdAtField,\n updatedAt: updatedAtField.nullable(),\n} as const satisfies z.ZodRawShape;\n\n/**\n * Pagination arguments for list queries (page and perPage only)\n * Uses z.coerce to handle string → number conversion from query params\n */\nexport const paginationArgsSchema = z\n .object({\n page: z.coerce.number().int().min(0).optional().default(0).describe('Zero-indexed page number'),\n perPage: z.coerce.number().int().min(1).max(100).optional().default(10).describe('Number of items per page'),\n })\n .describe('Pagination options for list queries');\n\n/** Input type for pagination arguments (page and perPage). */\nexport type PaginationArgs = z.input;\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number().describe('Total number of items available'),\n page: z.number().describe('Current page'),\n perPage: z\n .union([z.number(), z.literal(false)])\n .describe('Number of items per page, or false if pagination is disabled'),\n hasMore: z.boolean().describe('True if more pages are available'),\n});\n\n/** Opaque cursor used to resume incremental polling for observability list endpoints. */\nexport const deltaCursorSchema = z.string().min(1).describe('Opaque cursor value for incremental polling');\n\n/** Public delta cursor type used across observability list endpoints. */\nexport type DeltaCursor = z.output;\n\n/** Explicit list mode selector for observability list endpoints. */\nexport const listModeSchema = z\n .enum(['page', 'delta'])\n .describe(\"List mode: 'page' | 'delta', defaults to 'page' when omitted.\");\n\n/** Max number of updates returned from a delta poll window. */\nexport const deltaLimitSchema = z.coerce\n .number()\n .int()\n .min(1)\n .max(100)\n .optional()\n .describe('Maximum number of updates to return in one delta poll');\n\n/** Default page-mode pagination used to preserve legacy list arg behavior. */\nexport const defaultPaginationArgs = {\n page: 0,\n perPage: 10,\n} as const satisfies z.output;\n\n/** Default number of updates returned when delta mode does not specify a limit. */\nexport const defaultDeltaLimit = 10;\n\ntype ObservabilityListModeValue = {\n mode?: z.output;\n filters?: TFilters;\n pagination?: { page: number; perPage: number };\n orderBy?: TOrderBy;\n after?: DeltaCursor;\n limit?: number;\n};\n\ntype ObservabilityListDefaults = {\n orderBy: TOrderBy;\n pagination?: { page: number; perPage: number };\n limit?: number;\n};\n\ntype NormalizedObservabilityListArgs = {\n mode: 'page' | 'delta';\n filters: TFilters | undefined;\n pagination: { page: number; perPage: number };\n orderBy: TOrderBy;\n after: DeltaCursor | undefined;\n limit: number;\n};\n\n/**\n * Enforces the shared page-vs-delta parameter rules for observability list endpoints.\n * Keeps validation centralized while allowing endpoints to keep their own filters and orderBy schemas.\n */\nexport function refineObservabilityListMode(\n value: ObservabilityListModeValue,\n ctx: z.core.$RefinementCtx,\n) {\n if (value.mode === 'delta') {\n if (value.pagination !== undefined) {\n ctx.addIssue({ code: 'custom', path: ['pagination'], message: 'pagination is not allowed in delta mode' });\n }\n if (value.orderBy !== undefined) {\n ctx.addIssue({ code: 'custom', path: ['orderBy'], message: 'orderBy is not allowed in delta mode' });\n }\n return;\n }\n\n if (value.after !== undefined) {\n ctx.addIssue({ code: 'custom', path: ['after'], message: 'after is only allowed in delta mode' });\n }\n if (value.limit !== undefined) {\n ctx.addIssue({ code: 'custom', path: ['limit'], message: 'limit is only allowed in delta mode' });\n }\n}\n\n/**\n * Normalizes observability list args into the legacy-friendly shape expected by existing stores.\n * Page mode remains the default, and pagination/orderBy/limit are always populated.\n */\nexport function normalizeObservabilityListArgs(\n value: ObservabilityListModeValue,\n defaults: ObservabilityListDefaults,\n): NormalizedObservabilityListArgs {\n return {\n mode: value.mode === 'delta' ? 'delta' : 'page',\n filters: value.filters,\n pagination: value.pagination ?? defaults.pagination ?? defaultPaginationArgs,\n orderBy: value.orderBy ?? defaults.orderBy,\n after: value.after,\n limit: value.limit ?? defaults.limit ?? defaultDeltaLimit,\n };\n}\n\n/** Metadata returned for a delta poll window. */\nexport const deltaInfoSchema = z\n .object({\n limit: z.number().describe('Maximum number of updates requested for this delta poll'),\n hasMore: z.boolean().describe('True when more matching updates remain after this response'),\n })\n .describe('Incremental polling metadata');\n\n/**\n * Date range for filtering by time\n * Uses z.coerce to handle ISO string → Date conversion from query params\n */\nexport const dateRangeSchema = z\n .object({\n start: z.coerce.date().optional().describe('Start of date range (inclusive by default)'),\n end: z.coerce.date().optional().describe('End of date range (inclusive by default)'),\n startExclusive: z\n .boolean()\n .optional()\n .describe('When true, excludes the start date from results (uses > instead of >=)'),\n endExclusive: z\n .boolean()\n .optional()\n .describe('When true, excludes the end date from results (uses < instead of <=)'),\n })\n .describe('Date range filter for timestamps');\n\n/** Date range with optional inclusive/exclusive boundaries. */\nexport type DateRange = z.input;\n\nexport const sortDirectionSchema = z.enum(['ASC', 'DESC']).describe(\"Sort direction: 'ASC' | 'DESC'\");\n\n/** Aggregation type schema shared across OLAP-style observability queries. */\nexport const aggregationTypeSchema = z\n .enum(['sum', 'avg', 'min', 'max', 'count', 'count_distinct', 'last'])\n .describe('Aggregation function');\nexport type AggregationType = z.infer;\n\n/** Aggregation interval schema shared across OLAP-style observability queries. */\nexport const aggregationIntervalSchema = z.enum(['1m', '5m', '15m', '1h', '1d']).describe('Time bucket interval');\nexport type AggregationInterval = z.infer;\n\n/** Compare period for aggregate queries with period-over-period comparison. */\nexport const comparePeriodSchema = z\n .enum(['previous_period', 'previous_day', 'previous_week'])\n .describe('Comparison period for aggregate queries');\nexport type ComparePeriod = z.infer;\n\n/** Shared groupBy schema for OLAP-style breakdown and time-series queries. */\nexport const groupBySchema = z.array(z.string()).min(1).describe('Fields to group by');\nexport type GroupBy = z.infer;\n\n/** Shared percentiles schema for percentile queries. */\nexport const percentilesSchema = z.array(z.number().min(0).max(1)).min(1).describe('Percentile values (0-1)');\nexport type Percentiles = z.infer;\n\n/** Shared fields for aggregate OLAP responses across observability signals. */\nexport const aggregateResponseFields = {\n value: z.number().nullable().describe('Aggregated value'),\n previousValue: z.number().nullable().optional().describe('Value from comparison period'),\n changePercent: z.number().nullable().optional().describe('Percentage change from comparison period'),\n} as const;\n\n/** Shared field for OLAP breakdown dimension values. */\nexport const dimensionsField = z.record(z.string(), z.string().nullable()).describe('Dimension values for this group');\n\n/** Shared field for non-null OLAP aggregated values. */\nexport const aggregatedValueField = z.number().describe('Aggregated value');\n\n/** Shared field for OLAP bucket timestamps. */\nexport const bucketTimestampField = z.date().describe('Bucket timestamp');\n\n/** Shared field for percentile identifiers in OLAP responses. */\nexport const percentileField = z.number().describe('Percentile value');\n\n/** Shared field for percentile values within a time bucket. */\nexport const percentileBucketValueField = z.number().describe('Percentile value at this bucket');\n\nexport const entityTypeField = z\n .nativeEnum(EntityType)\n .describe(`Entity type (e.g., 'agent' | 'processor' | 'tool' | 'workflow')`);\n\nexport const entityIdField = z.string().describe('ID of the entity (e.g., \"weatherAgent\", \"orderWorkflow\")');\n\nexport const entityNameField = z.string().describe('Name of the entity');\n\nexport const userIdField = z.string().describe('Human end-user who triggered execution');\n\nexport const organizationIdField = z.string().describe('Multi-tenant organization/account');\n\nexport const resourceIdField = z.string().describe('Broader resource context (Mastra memory compatibility)');\n\nexport const runIdField = z.string().describe('Unique execution run identifier');\n\nexport const sessionIdField = z.string().describe('Session identifier for grouping traces');\n\nexport const threadIdField = z.string().describe('Conversation thread identifier');\n\nexport const requestIdField = z.string().describe('HTTP request ID for log correlation');\n\nexport const environmentField = z.string().describe(`Environment (e.g., \"production\" | \"staging\" | \"development\")`);\n\nexport const sourceField = z.string().describe(`Source of execution (e.g., \"local\" | \"cloud\" | \"ci\")`);\nexport const executionSourceField = z.string().describe(`Source of execution (e.g., \"local\" | \"cloud\" | \"ci\")`);\n\nexport const serviceNameField = z.string().describe('Name of the service');\n\n// Parent entity hierarchy fields\nexport const parentEntityTypeField = z.nativeEnum(EntityType).describe('Entity type of the parent entity');\nexport const parentEntityIdField = z.string().describe('ID of the parent entity');\nexport const parentEntityNameField = z.string().describe('Name of the parent entity');\n\n// Root entity hierarchy fields\nexport const rootEntityTypeField = z.nativeEnum(EntityType).describe('Entity type of the root entity');\nexport const rootEntityIdField = z.string().describe('ID of the root entity');\nexport const rootEntityNameField = z.string().describe('Name of the root entity');\n\n// Entity versioning\nexport const entityVersionIdField = z\n .string()\n .describe('Version ID of the entity that produced this signal (e.g., agent version, workflow version)');\nexport const parentEntityVersionIdField = z\n .string()\n .describe('Version ID of the parent entity that produced this signal');\nexport const rootEntityVersionIdField = z.string().describe('Version ID of the root entity that produced this signal');\n\n// Experimentation\nexport const experimentIdField = z.string().describe('Experiment or eval run identifier');\n\n// ============================================================================\n// Common observability fields (shared across tracing, metrics, logs)\n// ============================================================================\n\nexport const scopeField = z\n .record(z.string(), z.unknown())\n .describe('Arbitrary package/app version info (e.g., {\"core\": \"1.0.0\", \"memory\": \"1.0.0\", \"gitSha\": \"abcd1234\"})');\n\nexport const metadataField = z.record(z.string(), z.unknown()).describe('User-defined metadata for custom filtering');\n\nexport const tagsField = z.array(z.string()).describe('Labels for filtering');\n\n/**\n * Base context fields shared across tracing and non-tracing observability records.\n * Source/provenance is intentionally excluded because tracing uses `source`\n * while signals use `executionSource`.\n */\nconst contextFieldsBase = {\n // Entity identification\n entityType: entityTypeField.nullish(),\n entityId: entityIdField.nullish(),\n entityName: entityNameField.nullish(),\n\n // Parent entity hierarchy\n parentEntityType: parentEntityTypeField.nullish(),\n parentEntityId: parentEntityIdField.nullish(),\n parentEntityName: parentEntityNameField.nullish(),\n\n // Root entity hierarchy\n rootEntityType: rootEntityTypeField.nullish(),\n rootEntityId: rootEntityIdField.nullish(),\n rootEntityName: rootEntityNameField.nullish(),\n\n // Identity & tenancy\n userId: userIdField.nullish(),\n organizationId: organizationIdField.nullish(),\n resourceId: resourceIdField.nullish(),\n\n // Correlation IDs\n runId: runIdField.nullish(),\n sessionId: sessionIdField.nullish(),\n threadId: threadIdField.nullish(),\n requestId: requestIdField.nullish(),\n\n // Deployment context\n environment: environmentField.nullish(),\n serviceName: serviceNameField.nullish(),\n scope: scopeField.nullish(),\n\n // Entity versioning\n entityVersionId: entityVersionIdField.nullish(),\n parentEntityVersionId: parentEntityVersionIdField.nullish(),\n rootEntityVersionId: rootEntityVersionIdField.nullish(),\n\n // Experimentation\n experimentId: experimentIdField.nullish(),\n} as const;\n\n/**\n * Context fields shared across observability signals other than spans (metrics, logs, scores, feedback).\n * These use `executionSource` to avoid colliding with signal-specific provenance fields.\n */\nexport const contextFields = {\n ...contextFieldsBase,\n executionSource: executionSourceField.nullish(),\n tags: tagsField.nullish(),\n} as const;\n\n/**\n * Context fields used by tracing/span records.\n * Tracing continues to expose execution provenance as `source`.\n */\nexport const spanContextFields = {\n ...contextFieldsBase,\n source: sourceField.nullish(),\n} as const;\n\n/**\n * Common filter fields shared across observability signal filters (metrics, logs, scores, feedback).\n * All fields are optional — each signal extends this with signal-specific filters.\n */\nexport const commonFilterFields = {\n timestamp: dateRangeSchema.optional().describe('Filter by timestamp range'),\n traceId: z.string().optional().describe('Filter by trace ID'),\n spanId: z.string().optional().describe('Filter by span ID'),\n entityType: entityTypeField.optional(),\n entityName: entityNameField.optional(),\n entityVersionId: entityVersionIdField.optional(),\n parentEntityVersionId: parentEntityVersionIdField.optional(),\n rootEntityVersionId: rootEntityVersionIdField.optional(),\n userId: userIdField.optional(),\n organizationId: organizationIdField.optional(),\n experimentId: experimentIdField.optional(),\n serviceName: serviceNameField.optional(),\n environment: environmentField.optional(),\n parentEntityType: parentEntityTypeField.optional(),\n parentEntityName: parentEntityNameField.optional(),\n rootEntityType: rootEntityTypeField.optional(),\n rootEntityName: rootEntityNameField.optional(),\n resourceId: resourceIdField.optional(),\n runId: runIdField.optional(),\n sessionId: sessionIdField.optional(),\n threadId: threadIdField.optional(),\n requestId: requestIdField.optional(),\n executionSource: executionSourceField.optional(),\n tags: z.array(z.string()).optional().describe('Filter by tags (must have all specified tags)'),\n} as const;\n\n// ============================================================================\n// Tracing identifier fields (shared across scores, feedback, metrics)\n// ============================================================================\n\n/** Zod schema for trace ID field */\nexport const traceIdField = z.string().describe('Unique trace identifier');\n\n/** Zod schema for span ID field */\nexport const spanIdField = z.string().describe('Unique span identifier within a trace');\n","import { z } from 'zod/v4';\nimport {\n commonFilterFields,\n contextFields,\n deltaLimitSchema,\n deltaInfoSchema,\n listModeSchema,\n deltaCursorSchema,\n metadataField,\n normalizeObservabilityListArgs,\n paginationArgsSchema,\n paginationInfoSchema,\n refineObservabilityListMode,\n sortDirectionSchema,\n spanIdField,\n tagsField,\n traceIdField,\n} from '../shared';\n\n// ============================================================================\n// Field Schemas\n// ============================================================================\n\n/** Log level schema for validation */\nexport const logLevelSchema = z.enum(['debug', 'info', 'warn', 'error', 'fatal']);\n\nconst messageField = z.string().describe('Log message');\nconst logDataField = z.record(z.string(), z.unknown()).describe('Structured data attached to the log');\n\n// ============================================================================\n// LogRecord Schema (Storage Format)\n// ============================================================================\n\n/**\n * Schema for logs as stored in the database.\n * Includes all fields from ExportedLog plus storage-specific fields.\n */\nexport const logRecordSchema = z\n .object({\n logId: z.string().nullish().describe('Unique id for this log event'),\n timestamp: z.date().describe('When the log was created'),\n level: logLevelSchema.describe('Log severity level'),\n message: messageField,\n data: logDataField.nullish(),\n\n // Correlation\n traceId: traceIdField.nullish(),\n spanId: spanIdField.nullish(),\n\n // Context fields\n ...contextFields,\n /**\n * @deprecated Use `executionSource` instead.\n */\n source: z.string().nullish().describe('Execution source'),\n\n metadata: metadataField.nullish(),\n })\n .describe('Log record as stored in the database');\n\n/** Log record type for storage */\nexport type LogRecord = z.infer;\n\n// ============================================================================\n// LogRecordInput Schema (User-Facing API)\n// ============================================================================\n\n/**\n * Schema for user-provided log input (minimal required fields).\n * The logger enriches this with context before emitting ExportedLog.\n */\nexport const logRecordInputSchema = z\n .object({\n level: logLevelSchema,\n message: messageField,\n data: logDataField.optional(),\n tags: tagsField.optional(),\n })\n .describe('User-provided log input');\n\n/** User-facing log input type */\nexport type LogRecordInput = z.infer;\n\n// ============================================================================\n// Create Log Schemas\n// ============================================================================\n\n/** Schema for creating a log record */\nexport const createLogRecordSchema = logRecordSchema;\n\n/** Log record for creation (excludes db timestamps) */\nexport type CreateLogRecord = z.infer;\n\n/** Schema for batchCreateLogs operation arguments */\nexport const batchCreateLogsArgsSchema = z\n .object({\n logs: z.array(createLogRecordSchema),\n })\n .describe('Arguments for batch creating logs');\n\n/** Arguments for batch creating logs */\nexport type BatchCreateLogsArgs = z.infer;\n\n// ============================================================================\n// Log Filter Schema\n// ============================================================================\n\n/** Schema for filtering logs in list queries */\nexport const logsFilterSchema = z\n .object({\n ...commonFilterFields,\n\n // Log-specific filters\n /**\n * @deprecated Use `executionSource` instead.\n */\n source: z.string().optional().describe('Filter by execution source'),\n level: z\n .union([logLevelSchema, z.array(logLevelSchema)])\n .optional()\n .describe('Filter by log level(s)'),\n })\n .describe('Filters for querying logs');\n\n/** Filters for querying logs */\nexport type LogsFilter = z.infer;\n\n// ============================================================================\n// List Logs Schemas\n// ============================================================================\n\n/** Fields available for ordering log results */\nexport const logsOrderByFieldSchema = z.enum(['timestamp']).describe(\"Field to order by: 'timestamp'\");\n\n/** Order by configuration for log queries */\nexport const logsOrderBySchema = z\n .object({\n field: logsOrderByFieldSchema.default('timestamp').describe('Field to order by'),\n direction: sortDirectionSchema.default('DESC').describe('Sort direction'),\n })\n .describe('Order by configuration');\n\n/** Schema for listLogs operation arguments */\nexport const listLogsArgsSchema = z\n .object({\n mode: listModeSchema.optional(),\n filters: logsFilterSchema.optional().describe('Optional filters to apply'),\n pagination: paginationArgsSchema.optional(),\n orderBy: logsOrderBySchema.optional(),\n after: deltaCursorSchema.optional(),\n limit: deltaLimitSchema,\n })\n .strict()\n .superRefine(refineObservabilityListMode)\n .transform(value =>\n normalizeObservabilityListArgs>(value, {\n orderBy: { field: 'timestamp', direction: 'DESC' } as const,\n }),\n )\n .describe('Arguments for listing logs');\n\n/** Arguments for listing logs */\nexport type ListLogsArgs = z.input;\n\n/** Schema for listLogs operation response */\nexport const listLogsResponseSchema = z\n .object({\n pagination: paginationInfoSchema.optional(),\n delta: deltaInfoSchema.optional(),\n deltaCursor: deltaCursorSchema.optional(),\n logs: z.array(logRecordSchema),\n })\n .describe('Response from listing logs');\n\n/** Response containing paginated logs */\nexport type ListLogsResponse = z.infer;\n","import { z } from 'zod/v4';\nimport {\n aggregateResponseFields,\n aggregationIntervalSchema,\n aggregationTypeSchema,\n aggregatedValueField,\n bucketTimestampField,\n comparePeriodSchema,\n commonFilterFields,\n deltaLimitSchema,\n deltaInfoSchema,\n experimentIdField,\n contextFields,\n dimensionsField,\n entityTypeField,\n groupBySchema,\n deltaCursorSchema,\n listModeSchema,\n normalizeObservabilityListArgs,\n paginationArgsSchema,\n paginationInfoSchema,\n percentileField,\n percentileBucketValueField,\n percentilesSchema,\n refineObservabilityListMode,\n sortDirectionSchema,\n spanIdField,\n traceIdField,\n} from '../shared';\n\n// ============================================================================\n// Field Schemas\n// ============================================================================\n\nconst scorerIdField = z.string().describe('Identifier of the scorer (e.g., relevance, accuracy)');\nconst scorerNameField = z.string().describe('Display name of the scorer');\nconst scorerVersionField = z.string().describe('Version of the scorer');\nconst scoreSourceField = z.string().describe('How the score was produced (e.g., manual, automated, experiment)');\nconst scoreValueField = z.number().describe('Score value (range defined by scorer)');\nconst scoreReasonField = z.string().describe('Explanation for the score');\n\n// ============================================================================\n// ScoreRecord Schema (Storage Format)\n// ============================================================================\n\n/**\n * Schema for scores as stored in the database.\n * Includes all fields from ExportedScore plus storage-specific fields.\n */\nexport const scoreRecordSchema = z\n .object({\n scoreId: z.string().nullish().describe('Unique id for this score event'),\n timestamp: z.date().describe('When the score was recorded'),\n\n // Target\n traceId: traceIdField.nullish().describe('Trace that anchors the scored target when available'),\n spanId: spanIdField.nullish().describe('Span ID this score applies to'),\n\n // Score data\n scorerId: scorerIdField,\n scorerName: scorerNameField.nullish(),\n scorerVersion: scorerVersionField.nullish(),\n scoreSource: scoreSourceField.nullish(),\n /**\n * @deprecated Use `scoreSource` instead.\n */\n source: scoreSourceField.nullish(),\n score: scoreValueField,\n reason: scoreReasonField.nullish(),\n\n // Context (entity hierarchy, identity, correlation, deployment, experimentation)\n ...contextFields,\n\n /** Trace ID of the scoring run (links to trace that generated this score) */\n scoreTraceId: z.string().nullish().describe('Trace ID of the scoring run for debugging score generation'),\n\n // User-defined metadata (context fields stored here)\n metadata: z.record(z.string(), z.unknown()).nullish().describe('User-defined metadata'),\n })\n .describe('Score record as stored in the database');\n\n/** Score record type for storage */\nexport type ScoreRecord = z.infer;\n\n// ============================================================================\n// ScoreInput Schema (User-Facing API)\n// ============================================================================\n\n/**\n * Schema for user-provided score input (minimal required fields).\n * The span/trace context adds traceId/spanId before emitting ExportedScore.\n */\nexport const scoreInputSchema = z\n .object({\n scorerId: scorerIdField,\n scorerName: scorerNameField.optional(),\n scorerVersion: scorerVersionField.optional(),\n scoreSource: scoreSourceField.optional(),\n /**\n * @deprecated Use `scoreSource` instead.\n */\n source: scoreSourceField.optional(),\n score: scoreValueField,\n reason: scoreReasonField.optional(),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional scorer-specific metadata'),\n experimentId: experimentIdField.optional(),\n scoreTraceId: z.string().optional().describe('Trace ID of the scoring run for debugging score generation'),\n targetEntityType: entityTypeField.optional().describe('Entity type the scorer evaluated when known'),\n })\n .describe('User-provided score input');\n\n/** User-facing score input type */\nexport type ScoreInput = z.infer;\n\n// ============================================================================\n// Create Score Schemas\n// ============================================================================\n\n/** Schema for creating a score record */\nexport const createScoreRecordSchema = scoreRecordSchema;\n\n/** Score record for creation */\nexport type CreateScoreRecord = z.infer;\n\n/** Schema for createScore operation arguments */\nexport const createScoreArgsSchema = z\n .object({\n score: createScoreRecordSchema,\n })\n .describe('Arguments for creating a score');\n\n/** Arguments for creating a score */\nexport type CreateScoreArgs = z.infer;\n\n/** Schema for createScore operation body in client/server */\nexport const createScoreBodySchema = z\n .object({\n score: createScoreRecordSchema.omit({ timestamp: true }),\n })\n .describe('Arguments for creating a score');\n\n/** Body for creating a score in client/server */\nexport type CreateScoreBody = z.infer;\n\n/** Schema for createScore operation response */\nexport const createScoreResponseSchema = z.object({ success: z.boolean() }).describe('Response from creating a score');\n\n/** Response from creating a score */\nexport type CreateScoreResponse = z.infer;\n\n/** Schema for batchCreateScores operation arguments */\nexport const batchCreateScoresArgsSchema = z\n .object({\n scores: z.array(createScoreRecordSchema),\n })\n .describe('Arguments for batch recording scores');\n\n/** Arguments for batch creating scores */\nexport type BatchCreateScoresArgs = z.infer;\n\n// ============================================================================\n// Score Filter Schema\n// ============================================================================\n\n/** Schema for filtering scores in list queries */\nexport const scoresFilterSchema = z\n .object({\n ...commonFilterFields,\n\n // Score-specific filters\n scorerId: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Filter by scorer ID(s)'),\n scoreSource: scoreSourceField.optional().describe('Filter by how the score was produced'),\n /**\n * @deprecated Use `scoreSource` instead.\n */\n source: scoreSourceField.optional().describe('Filter by how the score was produced'),\n })\n .describe('Filters for querying scores');\n\n/** Filters for querying scores */\nexport type ScoresFilter = z.infer;\n\n// ============================================================================\n// List Scores Schemas\n// ============================================================================\n\n/** Fields available for ordering score results */\nexport const scoresOrderByFieldSchema = z\n .enum(['timestamp', 'score'])\n .describe(\"Field to order by: 'timestamp' | 'score'\");\n\n/** Order by configuration for score queries */\nexport const scoresOrderBySchema = z\n .object({\n field: scoresOrderByFieldSchema.default('timestamp').describe('Field to order by'),\n direction: sortDirectionSchema.default('DESC').describe('Sort direction'),\n })\n .describe('Order by configuration');\n\nexport const listScoresArgsSchema = z\n .object({\n mode: listModeSchema.optional(),\n filters: scoresFilterSchema.optional(),\n pagination: paginationArgsSchema.optional(),\n orderBy: scoresOrderBySchema.optional(),\n after: deltaCursorSchema.optional(),\n limit: deltaLimitSchema,\n })\n .strict()\n .superRefine(refineObservabilityListMode)\n .transform(value =>\n normalizeObservabilityListArgs>(value, {\n orderBy: { field: 'timestamp', direction: 'DESC' } as const,\n }),\n )\n .describe('Arguments for listing scores');\n\n/** Arguments for listing scores */\nexport type ListScoresArgs = z.input;\n\n/** Schema for listScores operation response */\nexport const listScoresResponseSchema = z\n .object({\n pagination: paginationInfoSchema.optional(),\n delta: deltaInfoSchema.optional(),\n deltaCursor: deltaCursorSchema.optional(),\n scores: z.array(scoreRecordSchema),\n })\n .describe('Response from listing scores');\n\n/** Response containing paginated scores */\nexport type ListScoresResponse = z.infer;\n\n// ============================================================================\n// OLAP Query Schemas\n// ============================================================================\n\nexport const getScoreAggregateArgsSchema = z\n .object({\n scorerId: scorerIdField,\n scoreSource: scoreSourceField.optional(),\n aggregation: aggregationTypeSchema,\n filters: scoresFilterSchema.optional(),\n comparePeriod: comparePeriodSchema.optional(),\n })\n .describe('Arguments for getting a score aggregate');\n\nexport type GetScoreAggregateArgs = z.infer;\n\nexport const getScoreAggregateResponseSchema = z.object(aggregateResponseFields);\n\nexport type GetScoreAggregateResponse = z.infer;\n\nexport const getScoreBreakdownArgsSchema = z\n .object({\n scorerId: scorerIdField,\n scoreSource: scoreSourceField.optional(),\n groupBy: groupBySchema,\n aggregation: aggregationTypeSchema,\n filters: scoresFilterSchema.optional(),\n })\n .describe('Arguments for getting a score breakdown');\n\nexport type GetScoreBreakdownArgs = z.infer;\n\nexport const getScoreBreakdownResponseSchema = z.object({\n groups: z.array(\n z.object({\n dimensions: dimensionsField,\n value: aggregatedValueField,\n }),\n ),\n});\n\nexport type GetScoreBreakdownResponse = z.infer;\n\nexport const getScoreTimeSeriesArgsSchema = z\n .object({\n scorerId: scorerIdField,\n scoreSource: scoreSourceField.optional(),\n interval: aggregationIntervalSchema,\n aggregation: aggregationTypeSchema,\n filters: scoresFilterSchema.optional(),\n groupBy: groupBySchema.optional(),\n })\n .describe('Arguments for getting score time series');\n\nexport type GetScoreTimeSeriesArgs = z.infer;\n\nexport const getScoreTimeSeriesResponseSchema = z.object({\n series: z.array(\n z.object({\n name: z.string().describe('Series name (scorer ID or group key)'),\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: aggregatedValueField,\n }),\n ),\n }),\n ),\n});\n\nexport type GetScoreTimeSeriesResponse = z.infer;\n\nexport const getScorePercentilesArgsSchema = z\n .object({\n scorerId: scorerIdField,\n scoreSource: scoreSourceField.optional(),\n percentiles: percentilesSchema,\n interval: aggregationIntervalSchema,\n filters: scoresFilterSchema.optional(),\n })\n .describe('Arguments for getting score percentiles');\n\nexport type GetScorePercentilesArgs = z.infer;\n\nexport const getScorePercentilesResponseSchema = z.object({\n series: z.array(\n z.object({\n percentile: percentileField,\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: percentileBucketValueField,\n }),\n ),\n }),\n ),\n});\n\nexport type GetScorePercentilesResponse = z.infer;\n","import { z } from 'zod/v4';\nimport {\n aggregateResponseFields,\n aggregationIntervalSchema,\n aggregationTypeSchema,\n aggregatedValueField,\n bucketTimestampField,\n comparePeriodSchema,\n commonFilterFields,\n deltaLimitSchema,\n deltaInfoSchema,\n experimentIdField,\n contextFields,\n dimensionsField,\n groupBySchema,\n deltaCursorSchema,\n listModeSchema,\n normalizeObservabilityListArgs,\n paginationArgsSchema,\n paginationInfoSchema,\n percentileField,\n percentileBucketValueField,\n percentilesSchema,\n refineObservabilityListMode,\n sortDirectionSchema,\n spanIdField,\n traceIdField,\n} from '../shared';\n\n// ============================================================================\n// Field Schemas\n// ============================================================================\n\nconst feedbackSourceField = z.string().describe(\"Source of feedback (e.g., 'user', 'system', 'manual')\");\nconst feedbackTypeField = z.string().describe(\"Type of feedback (e.g., 'thumbs', 'rating', 'correction')\");\nconst feedbackValueField = z\n .union([z.number(), z.string()])\n .describe('Feedback value (rating number or correction text)');\nconst feedbackCommentField = z.string().describe('Additional comment or context');\nconst feedbackUserIdField = z.string().describe('User who provided the feedback');\n\nfunction normalizeLegacyFeedbackActor(input: T): T {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n return input;\n }\n\n const record = { ...(input as Record) };\n if (typeof record.userId === 'string' && record.feedbackUserId == null) {\n record.feedbackUserId = record.userId;\n delete record.userId;\n }\n\n return record as T;\n}\n\n// ============================================================================\n// FeedbackRecord Schema (Storage Format)\n// ============================================================================\n\n/**\n * Schema for feedback as stored in the database.\n * Includes all fields from ExportedFeedback plus storage-specific fields.\n */\nconst feedbackRecordObjectSchema = z.object({\n feedbackId: z.string().nullish().describe('Unique id for this feedback event'),\n timestamp: z.date().describe('When the feedback was recorded'),\n\n // Target\n traceId: traceIdField.nullish().describe('Trace that anchors the feedback target when available'),\n spanId: spanIdField.nullish().describe('Span ID this feedback applies to'),\n\n // Feedback data\n feedbackSource: feedbackSourceField.nullish(),\n /**\n * @deprecated Use `feedbackSource` instead.\n */\n source: feedbackSourceField.nullish(),\n feedbackType: feedbackTypeField,\n value: feedbackValueField,\n comment: feedbackCommentField.nullish(),\n\n // Feedback actor identity\n feedbackUserId: feedbackUserIdField.nullish(),\n\n // Context (entity hierarchy, identity, correlation, deployment, experimentation)\n ...contextFields,\n\n // Source linkage (e.g. dataset item result ID)\n sourceId: z\n .string()\n .nullish()\n .describe('ID of the source record this feedback is linked to (e.g. experiment result ID)'),\n\n // User-defined metadata (context fields stored here)\n metadata: z.record(z.string(), z.unknown()).nullish().describe('User-defined metadata'),\n});\n\nexport const feedbackRecordSchema = z\n .object(feedbackRecordObjectSchema.shape)\n .describe('Feedback record as stored in the database');\n\n/** Feedback record type for storage */\nexport type FeedbackRecord = z.infer;\n\n// ============================================================================\n// FeedbackInput Schema (User-Facing API)\n// ============================================================================\n\n/**\n * Schema for user-provided feedback input (minimal required fields).\n * The span/trace context adds traceId/spanId before emitting ExportedFeedback.\n */\nconst feedbackInputObjectSchema = z.object({\n feedbackSource: feedbackSourceField.optional(),\n /**\n * @deprecated Use `feedbackSource` instead.\n */\n source: feedbackSourceField.optional(),\n feedbackType: feedbackTypeField,\n value: feedbackValueField,\n comment: feedbackCommentField.optional(),\n feedbackUserId: feedbackUserIdField.optional(),\n /**\n * @deprecated Use `feedbackUserId` instead.\n */\n userId: feedbackUserIdField.optional(),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional feedback-specific metadata'),\n experimentId: experimentIdField.optional(),\n sourceId: z.string().optional().describe('ID of the source record this feedback is linked to'),\n});\n\nexport const feedbackInputSchema = z.object(feedbackInputObjectSchema.shape).describe('User-provided feedback input');\n\n/** User-facing feedback input type */\nexport type FeedbackInput = z.infer;\n\n// ============================================================================\n// Create Feedback Schemas\n// ============================================================================\n\n/** Schema for creating a feedback record */\nexport const createFeedbackRecordSchema = feedbackRecordSchema;\n\n/** Feedback record for creation */\nexport type CreateFeedbackRecord = z.infer;\n\n/** Schema for createFeedback operation arguments */\nexport const createFeedbackArgsSchema = z\n .object({\n feedback: z.preprocess(normalizeLegacyFeedbackActor, feedbackRecordObjectSchema),\n })\n .describe('Arguments for creating feedback');\n\n/** Arguments for creating feedback */\nexport type CreateFeedbackArgs = z.infer;\n\n/** Schema for createFeedback operation body in client/server */\nexport const createFeedbackBodySchema = z\n .object({\n feedback: feedbackRecordObjectSchema.omit({ timestamp: true }),\n })\n .describe('Arguments for creating feedback');\n\n/** Body for creating feedback in client/server */\nexport type CreateFeedbackBody = z.infer;\n\n/** Schema for createFeedback operation response */\nexport const createFeedbackResponseSchema = z\n .object({ success: z.boolean() })\n .describe('Response from creating feedback');\n\n/** Response from creating feedback */\nexport type CreateFeedbackResponse = z.infer;\n\n/** Schema for batchCreateFeedback operation arguments */\nexport const batchCreateFeedbackArgsSchema = z\n .object({\n feedbacks: z.array(z.preprocess(normalizeLegacyFeedbackActor, feedbackRecordObjectSchema)),\n })\n .describe('Arguments for batch recording feedback');\n\n/** Arguments for batch creating feedback */\nexport type BatchCreateFeedbackArgs = z.infer;\n\n// ============================================================================\n// Feedback Filter Schema\n// ============================================================================\n\n/** Schema for filtering feedback in list queries */\nconst feedbackFilterObjectSchema = z.object({\n ...commonFilterFields,\n\n // Feedback-specific filters\n feedbackType: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .describe('Filter by feedback type(s)'),\n feedbackSource: feedbackSourceField.optional(),\n /**\n * @deprecated Use `feedbackSource` instead.\n */\n source: feedbackSourceField.optional(),\n feedbackUserId: feedbackUserIdField.optional(),\n});\n\nexport const feedbackFilterSchema = z\n .object(feedbackFilterObjectSchema.shape)\n .describe('Filters for querying feedback');\n\n/** Filters for querying feedback */\nexport type FeedbackFilter = z.infer;\n\n// ============================================================================\n// List Feedback Schemas\n// ============================================================================\n\n/** Fields available for ordering feedback results */\nexport const feedbackOrderByFieldSchema = z.enum(['timestamp']).describe(\"Field to order by: 'timestamp'\");\n\n/** Order by configuration for feedback queries */\nexport const feedbackOrderBySchema = z\n .object({\n field: feedbackOrderByFieldSchema.default('timestamp').describe('Field to order by'),\n direction: sortDirectionSchema.default('DESC').describe('Sort direction'),\n })\n .describe('Order by configuration');\n\nexport const listFeedbackArgsSchema = z\n .object({\n mode: listModeSchema.optional(),\n filters: z.preprocess(normalizeLegacyFeedbackActor, feedbackFilterObjectSchema).optional(),\n pagination: paginationArgsSchema.optional(),\n orderBy: feedbackOrderBySchema.optional(),\n after: deltaCursorSchema.optional(),\n limit: deltaLimitSchema,\n })\n .strict()\n .superRefine(refineObservabilityListMode)\n .transform(value =>\n normalizeObservabilityListArgs>(value, {\n orderBy: { field: 'timestamp', direction: 'DESC' } as const,\n }),\n )\n .describe('Arguments for listing feedback');\n\n/** Arguments for listing feedback */\nexport type ListFeedbackArgs = z.input;\n\n/** Schema for listFeedback operation response */\nexport const listFeedbackResponseSchema = z\n .object({\n pagination: paginationInfoSchema.optional(),\n delta: deltaInfoSchema.optional(),\n deltaCursor: deltaCursorSchema.optional(),\n feedback: z.array(feedbackRecordSchema),\n })\n .describe('Response from listing feedback');\n\n/** Response containing paginated feedback */\nexport type ListFeedbackResponse = z.infer;\n\n// ============================================================================\n// OLAP Query Schemas\n// ============================================================================\n\nexport const getFeedbackAggregateArgsSchema = z\n .object({\n feedbackType: feedbackTypeField,\n feedbackSource: feedbackSourceField.optional(),\n aggregation: aggregationTypeSchema,\n filters: feedbackFilterSchema.optional(),\n comparePeriod: comparePeriodSchema.optional(),\n })\n .describe('Arguments for getting a feedback aggregate over numeric values');\n\nexport type GetFeedbackAggregateArgs = z.infer;\n\nexport const getFeedbackAggregateResponseSchema = z.object(aggregateResponseFields);\n\nexport type GetFeedbackAggregateResponse = z.infer;\n\nexport const getFeedbackBreakdownArgsSchema = z\n .object({\n feedbackType: feedbackTypeField,\n feedbackSource: feedbackSourceField.optional(),\n groupBy: groupBySchema,\n aggregation: aggregationTypeSchema,\n filters: feedbackFilterSchema.optional(),\n })\n .describe('Arguments for getting a feedback breakdown over numeric values');\n\nexport type GetFeedbackBreakdownArgs = z.infer;\n\nexport const getFeedbackBreakdownResponseSchema = z.object({\n groups: z.array(\n z.object({\n dimensions: dimensionsField,\n value: aggregatedValueField,\n }),\n ),\n});\n\nexport type GetFeedbackBreakdownResponse = z.infer;\n\nexport const getFeedbackTimeSeriesArgsSchema = z\n .object({\n feedbackType: feedbackTypeField,\n feedbackSource: feedbackSourceField.optional(),\n interval: aggregationIntervalSchema,\n aggregation: aggregationTypeSchema,\n filters: feedbackFilterSchema.optional(),\n groupBy: groupBySchema.optional(),\n })\n .describe('Arguments for getting feedback time series over numeric values');\n\nexport type GetFeedbackTimeSeriesArgs = z.infer;\n\nexport const getFeedbackTimeSeriesResponseSchema = z.object({\n series: z.array(\n z.object({\n name: z.string().describe('Series name (feedback type or group key)'),\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: aggregatedValueField,\n }),\n ),\n }),\n ),\n});\n\nexport type GetFeedbackTimeSeriesResponse = z.infer;\n\nexport const getFeedbackPercentilesArgsSchema = z\n .object({\n feedbackType: feedbackTypeField,\n feedbackSource: feedbackSourceField.optional(),\n percentiles: percentilesSchema,\n interval: aggregationIntervalSchema,\n filters: feedbackFilterSchema.optional(),\n })\n .describe('Arguments for getting feedback percentiles over numeric values');\n\nexport type GetFeedbackPercentilesArgs = z.infer;\n\nexport const getFeedbackPercentilesResponseSchema = z.object({\n series: z.array(\n z.object({\n percentile: percentileField,\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: percentileBucketValueField,\n }),\n ),\n }),\n ),\n});\n\nexport type GetFeedbackPercentilesResponse = z.infer;\n","import { z } from 'zod/v4';\nimport {\n aggregateResponseFields,\n aggregationIntervalSchema,\n aggregationTypeSchema,\n aggregatedValueField,\n bucketTimestampField,\n comparePeriodSchema,\n commonFilterFields,\n contextFields,\n deltaLimitSchema,\n deltaInfoSchema,\n dimensionsField,\n groupBySchema,\n deltaCursorSchema,\n listModeSchema,\n normalizeObservabilityListArgs,\n paginationArgsSchema,\n paginationInfoSchema,\n percentileField,\n percentileBucketValueField,\n percentilesSchema,\n refineObservabilityListMode,\n sortDirectionSchema,\n spanIdField,\n traceIdField,\n metadataField,\n} from '../shared';\nimport type { AggregationType } from '../shared';\n\n// ============================================================================\n// Field Schemas\n// ============================================================================\n\n/**\n * @deprecated MetricType is no longer stored. All metrics are raw events\n * with aggregation determined at query time.\n */\nexport const metricTypeSchema = z.enum(['counter', 'gauge', 'histogram']);\n\nconst metricNameField = z.string().describe('Metric name (e.g., mastra_agent_duration_ms)');\nconst metricValueField = z.number().describe('Metric value');\nconst labelsField = z.record(z.string(), z.string()).describe('Metric labels for dimensional filtering');\nconst providerField = z.string().describe('Model provider');\nconst modelField = z.string().describe('Model');\nconst estimatedCostField = z.number().describe('Estimated cost');\nconst costUnitField = z.string().describe('Unit for the estimated cost (e.g., usd)');\nconst costMetadField = z.record(z.string(), z.unknown()).nullish().describe('Structured costing metadata');\n\n// ============================================================================\n// MetricRecord Schema (Storage Format)\n// ============================================================================\n\n/**\n * Schema for metrics as stored in the database.\n * Each record is a single metric observation.\n */\nexport const metricRecordSchema = z\n .object({\n metricId: z.string().nullish().describe('Unique id for this metric event'),\n timestamp: z.date().describe('When the metric was recorded'),\n name: metricNameField,\n value: metricValueField,\n\n // Correlation\n traceId: traceIdField.nullish(),\n spanId: spanIdField.nullish(),\n\n // Context (entity hierarchy, identity, correlation, deployment, experimentation)\n ...contextFields,\n /**\n * @deprecated Use `executionSource` instead.\n */\n source: z.string().nullish().describe('Execution source'),\n\n // Canonical costing fields\n provider: providerField.nullish(),\n model: modelField.nullish(),\n\n // Estimated cost related fields\n estimatedCost: estimatedCostField.nullish(),\n costUnit: costUnitField.nullish(),\n costMetadata: costMetadField.nullish(),\n\n // User-defined labels used for filtering\n labels: labelsField.default({}),\n\n // User-defined metadata\n metadata: metadataField.nullish(),\n })\n .describe('Metric record as stored in the database');\n\n/** Metric record type for storage */\nexport type MetricRecord = z.infer;\n\n// ============================================================================\n// MetricInput Schema (User-Facing API)\n// ============================================================================\n\n/**\n * Schema for user-provided metric input (minimal required fields).\n * The metrics context enriches this with environment before emitting ExportedMetric.\n */\nexport const metricInputSchema = z\n .object({\n name: metricNameField,\n value: metricValueField,\n labels: labelsField.optional(),\n })\n .describe('User-provided metric input');\n\n/** User-facing metric input type */\nexport type MetricInput = z.infer;\n\n// ============================================================================\n// Create Metric Schemas\n// ============================================================================\n\n/** Schema for creating a metric record (without db timestamps) */\nexport const createMetricRecordSchema = metricRecordSchema;\n\n/** Metric record for creation (excludes db timestamps) */\nexport type CreateMetricRecord = z.infer;\n\n/** Schema for batchCreateMetrics operation arguments */\nexport const batchCreateMetricsArgsSchema = z\n .object({\n metrics: z.array(createMetricRecordSchema),\n })\n .describe('Arguments for batch recording metrics');\n\n/** Arguments for batch recording metrics */\nexport type BatchCreateMetricsArgs = z.infer;\n\n// ============================================================================\n// Metric Aggregation Schemas\n// ============================================================================\n\n/** Schema for metric aggregation configuration */\nexport const metricsAggregationSchema = z\n .object({\n type: aggregationTypeSchema,\n interval: aggregationIntervalSchema.optional(),\n groupBy: groupBySchema.optional(),\n })\n .describe('Metrics aggregation configuration');\n\n/** Metrics aggregation configuration type */\nexport type MetricsAggregation = z.infer;\n\n// ============================================================================\n// Metric Filter Schema\n// ============================================================================\n\n/** Schema for filtering metrics in queries */\nexport const metricsFilterSchema = z\n .object({\n ...commonFilterFields,\n\n // Metric identification\n name: z.array(z.string()).nonempty().optional().describe('Filter by metric name(s)'),\n\n /**\n * @deprecated Use `executionSource` instead.\n */\n source: z.string().optional().describe('Filter by execution source'),\n\n // Canonical costing filters\n provider: providerField.optional(),\n model: modelField.optional(),\n costUnit: costUnitField.optional(),\n\n // Label filters (exact match on label values)\n labels: z.record(z.string(), z.string()).optional().describe('Exact match on label key-value pairs'),\n })\n .describe('Filters for querying metrics');\n\n/** Filters for querying metrics */\nexport type MetricsFilter = z.infer;\n\n/** Fields available for ordering metric list results */\nexport const metricsOrderByFieldSchema = z.enum(['timestamp']).describe(\"Field to order by: 'timestamp'\");\n\n/** Order by configuration for metric list queries */\nexport const metricsOrderBySchema = z\n .object({\n field: metricsOrderByFieldSchema.default('timestamp').describe('Field to order by'),\n direction: sortDirectionSchema.default('DESC').describe('Sort direction'),\n })\n .describe('Order by configuration');\n\nexport const listMetricsArgsSchema = z\n .object({\n mode: listModeSchema.optional(),\n filters: metricsFilterSchema.optional(),\n pagination: paginationArgsSchema.optional(),\n orderBy: metricsOrderBySchema.optional(),\n after: deltaCursorSchema.optional(),\n limit: deltaLimitSchema,\n })\n .strict()\n .superRefine(refineObservabilityListMode)\n .transform(value =>\n normalizeObservabilityListArgs>(value, {\n orderBy: { field: 'timestamp', direction: 'DESC' } as const,\n }),\n )\n .describe('Arguments for listing metrics');\n\n/** Arguments for listing metrics */\nexport type ListMetricsArgs = z.input;\n\n/** Schema for listMetrics operation response */\nexport const listMetricsResponseSchema = z\n .object({\n pagination: paginationInfoSchema.optional(),\n delta: deltaInfoSchema.optional(),\n deltaCursor: deltaCursorSchema.optional(),\n metrics: z.array(metricRecordSchema),\n })\n .describe('Response from listing metrics');\n\n/** Response containing paginated metrics */\nexport type ListMetricsResponse = z.infer;\n\n// ============================================================================\n// OLAP Query Schemas\n// ============================================================================\n\n/**\n * Columns eligible for `count_distinct`.\n *\n * Restricted to low/medium-cardinality categorical attributes. ID columns are\n * intentionally excluded — approximate distinct count over near-unique values\n * converges to the row count and is rarely a useful KPI.\n */\nexport const METRIC_DISTINCT_COLUMNS = [\n 'entityType',\n 'entityName',\n 'parentEntityType',\n 'parentEntityName',\n 'rootEntityType',\n 'rootEntityName',\n 'name',\n 'provider',\n 'model',\n 'environment',\n 'executionSource',\n 'serviceName',\n 'threadId',\n 'resourceId',\n] as const;\n\nexport type MetricDistinctColumn = (typeof METRIC_DISTINCT_COLUMNS)[number];\n\nexport const distinctColumnSchema = z\n .enum(METRIC_DISTINCT_COLUMNS)\n .optional()\n .describe(\n \"Column to apply count_distinct over (required when aggregation is 'count_distinct'). Restricted to allowlisted metric dimensions.\",\n );\n\n// --- getMetricAggregate ---\n\nconst requireDistinctColumnRefinement = {\n check: (data: { aggregation: AggregationType; distinctColumn?: string | undefined }) =>\n data.aggregation !== 'count_distinct' || data.distinctColumn !== undefined,\n options: {\n message: \"distinctColumn is required when aggregation is 'count_distinct'\",\n path: ['distinctColumn'],\n },\n};\n\nexport const getMetricAggregateArgsSchema = z\n .object({\n name: z.array(z.string()).nonempty().describe('Metric name(s) to aggregate'),\n aggregation: aggregationTypeSchema,\n distinctColumn: distinctColumnSchema,\n filters: metricsFilterSchema.optional(),\n comparePeriod: comparePeriodSchema.optional(),\n })\n .refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options)\n .describe('Arguments for getting a metric aggregate');\n\nexport type GetMetricAggregateArgs = z.infer;\n\nexport const getMetricAggregateResponseSchema = z.object({\n ...aggregateResponseFields,\n estimatedCost: z.number().nullable().optional().describe('Aggregated estimated cost from the same filtered row set'),\n costUnit: z\n .string()\n .nullable()\n .optional()\n .describe('Shared cost unit for the aggregated rows, or null when mixed/unknown'),\n previousEstimatedCost: z\n .number()\n .nullable()\n .optional()\n .describe('Aggregated estimated cost from the comparison period'),\n costChangePercent: z\n .number()\n .nullable()\n .optional()\n .describe('Percentage change in estimated cost from comparison period'),\n});\n\nexport type GetMetricAggregateResponse = z.infer;\n\n// --- getMetricBreakdown ---\n\nexport const getMetricBreakdownArgsSchema = z\n .object({\n name: z.array(z.string()).nonempty().describe('Metric name(s) to break down'),\n groupBy: groupBySchema,\n aggregation: aggregationTypeSchema,\n distinctColumn: distinctColumnSchema,\n filters: metricsFilterSchema.optional(),\n limit: z\n .number()\n .int()\n .positive()\n .max(1000)\n .optional()\n .describe('Maximum number of groups to return (server-side TopK). Required for high-cardinality groupBy.'),\n orderDirection: sortDirectionSchema\n .optional()\n .describe(\n \"Sort direction for the aggregated value (defaults to 'DESC' at the storage layer; pairs with limit for top/bottom-N).\",\n ),\n })\n .refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options)\n .describe('Arguments for getting a metric breakdown');\n\nexport type GetMetricBreakdownArgs = z.infer;\n\nexport const getMetricBreakdownResponseSchema = z.object({\n groups: z.array(\n z.object({\n dimensions: dimensionsField,\n value: aggregatedValueField,\n estimatedCost: z.number().nullable().optional().describe('Summed estimated cost for this group'),\n costUnit: z\n .string()\n .nullable()\n .optional()\n .describe('Shared cost unit for this group, or null when mixed/unknown'),\n }),\n ),\n});\n\nexport type GetMetricBreakdownResponse = z.infer;\n\n// --- getMetricTimeSeries ---\n\nexport const getMetricTimeSeriesArgsSchema = z\n .object({\n name: z.array(z.string()).nonempty().describe('Metric name(s)'),\n interval: aggregationIntervalSchema,\n aggregation: aggregationTypeSchema,\n distinctColumn: distinctColumnSchema,\n filters: metricsFilterSchema.optional(),\n groupBy: groupBySchema.optional(),\n })\n .refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options)\n .describe('Arguments for getting metric time series');\n\nexport type GetMetricTimeSeriesArgs = z.infer;\n\nexport const getMetricTimeSeriesResponseSchema = z.object({\n series: z.array(\n z.object({\n name: z.string().describe('Series name (metric name or group key)'),\n costUnit: z\n .string()\n .nullable()\n .optional()\n .describe('Shared cost unit for this series, or null when mixed/unknown'),\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: aggregatedValueField,\n estimatedCost: z.number().nullable().optional().describe('Summed estimated cost in this bucket'),\n }),\n ),\n }),\n ),\n});\n\nexport type GetMetricTimeSeriesResponse = z.infer;\n\n// --- getMetricPercentiles ---\n\nexport const getMetricPercentilesArgsSchema = z\n .object({\n name: z.string().describe('Metric name'),\n percentiles: percentilesSchema,\n interval: aggregationIntervalSchema,\n filters: metricsFilterSchema.optional(),\n })\n .describe('Arguments for getting metric percentiles');\n\nexport type GetMetricPercentilesArgs = z.infer;\n\nexport const getMetricPercentilesResponseSchema = z.object({\n series: z.array(\n z.object({\n percentile: percentileField,\n points: z.array(\n z.object({\n timestamp: bucketTimestampField,\n value: percentileBucketValueField,\n }),\n ),\n }),\n ),\n});\n\nexport type GetMetricPercentilesResponse = z.infer;\n","import { z } from 'zod/v4';\nimport { entityTypeField } from '../shared';\n\n// ============================================================================\n// Metric Discovery\n// ============================================================================\n\n// --- getMetricNames ---\n\nexport const getMetricNamesArgsSchema = z\n .object({\n prefix: z.string().optional().describe('Filter metric names by prefix'),\n limit: z.coerce.number().int().min(1).optional().describe('Maximum number of names to return'),\n })\n .describe('Arguments for getting metric names');\n\nexport type GetMetricNamesArgs = z.infer;\n\nexport const getMetricNamesResponseSchema = z.object({\n names: z.array(z.string()).describe('Distinct metric names'),\n});\n\nexport type GetMetricNamesResponse = z.infer;\n\n// --- getMetricLabelKeys ---\n\nexport const getMetricLabelKeysArgsSchema = z\n .object({\n metricName: z.string().describe('Metric name to get label keys for'),\n })\n .describe('Arguments for getting metric label keys');\n\nexport type GetMetricLabelKeysArgs = z.infer;\n\nexport const getMetricLabelKeysResponseSchema = z.object({\n keys: z.array(z.string()).describe('Distinct label keys for the metric'),\n});\n\nexport type GetMetricLabelKeysResponse = z.infer;\n\n// --- getMetricLabelValues ---\n\nexport const getMetricLabelValuesArgsSchema = z\n .object({\n metricName: z.string().describe('Metric name'),\n labelKey: z.string().describe('Label key to get values for'),\n prefix: z.string().optional().describe('Filter values by prefix'),\n limit: z.coerce.number().int().min(1).optional().describe('Maximum number of values to return'),\n })\n .describe('Arguments for getting label values');\n\nexport type GetMetricLabelValuesArgs = z.infer;\n\nexport const getMetricLabelValuesResponseSchema = z.object({\n values: z.array(z.string()).describe('Distinct label values'),\n});\n\nexport type GetMetricLabelValuesResponse = z.infer;\n\n// ============================================================================\n// Entity & Environment Discovery\n// ============================================================================\n\n// --- getEntityTypes ---\n\nexport const getEntityTypesArgsSchema = z.object({}).describe('Arguments for getting entity types');\n\nexport type GetEntityTypesArgs = z.infer;\n\nexport const getEntityTypesResponseSchema = z.object({\n entityTypes: z.array(entityTypeField).describe('Distinct entity types'),\n});\n\nexport type GetEntityTypesResponse = z.infer;\n\n// --- getEntityNames ---\n\n// TODO(observability): Extend entity-name discovery with query/prefix and limit support.\n// The current UI autocomplete can only refine against a capped result set, which is\n// enough for \"take the top hit\" but not enough for globally-correct shell-style\n// completion. A richer discovery contract should support prefix filtering and bounded\n// result windows, and may also want a root-only mode for root-entity name UX.\nexport const getEntityNamesArgsSchema = z\n .object({\n entityType: entityTypeField.optional().describe('Optional entity type filter'),\n })\n .describe('Arguments for getting entity names');\n\nexport type GetEntityNamesArgs = z.infer;\n\nexport const getEntityNamesResponseSchema = z.object({\n names: z.array(z.string()).describe('Distinct entity names'),\n});\n\nexport type GetEntityNamesResponse = z.infer;\n\n// --- getServiceNames ---\n\nexport const getServiceNamesArgsSchema = z.object({}).describe('Arguments for getting service names');\n\nexport type GetServiceNamesArgs = z.infer;\n\nexport const getServiceNamesResponseSchema = z.object({\n serviceNames: z.array(z.string()).describe('Distinct service names'),\n});\n\nexport type GetServiceNamesResponse = z.infer;\n\n// --- getEnvironments ---\n\nexport const getEnvironmentsArgsSchema = z.object({}).describe('Arguments for getting environments');\n\nexport type GetEnvironmentsArgs = z.infer;\n\nexport const getEnvironmentsResponseSchema = z.object({\n environments: z.array(z.string()).describe('Distinct environments'),\n});\n\nexport type GetEnvironmentsResponse = z.infer;\n\n// --- getTags ---\n\nexport const getTagsArgsSchema = z\n .object({\n entityType: entityTypeField.optional().describe('Optional entity type filter'),\n })\n .describe('Arguments for getting tags');\n\nexport type GetTagsArgs = z.infer;\n\nexport const getTagsResponseSchema = z.object({\n tags: z.array(z.string()).describe('Distinct tags'),\n});\n\nexport type GetTagsResponse = z.infer;\n","import {\n // Metrics list\n metricsFilterSchema,\n metricsOrderBySchema,\n listMetricsResponseSchema,\n // Logs\n logsFilterSchema,\n logsOrderBySchema,\n listLogsResponseSchema,\n // Scores (observability)\n scoresFilterSchema,\n scoresOrderBySchema,\n listScoresResponseSchema as obsListScoresResponseSchema,\n createScoreBodySchema,\n createScoreResponseSchema,\n scoreRecordSchema,\n getScoreAggregateArgsSchema,\n getScoreAggregateResponseSchema,\n getScoreBreakdownArgsSchema,\n getScoreBreakdownResponseSchema,\n getScoreTimeSeriesArgsSchema,\n getScoreTimeSeriesResponseSchema,\n getScorePercentilesArgsSchema,\n getScorePercentilesResponseSchema,\n // Feedback\n feedbackFilterSchema,\n feedbackOrderBySchema,\n listFeedbackResponseSchema,\n createFeedbackBodySchema,\n createFeedbackResponseSchema,\n getFeedbackAggregateArgsSchema,\n getFeedbackAggregateResponseSchema,\n getFeedbackBreakdownArgsSchema,\n getFeedbackBreakdownResponseSchema,\n getFeedbackTimeSeriesArgsSchema,\n getFeedbackTimeSeriesResponseSchema,\n getFeedbackPercentilesArgsSchema,\n getFeedbackPercentilesResponseSchema,\n // Metrics OLAP\n getMetricAggregateArgsSchema,\n getMetricAggregateResponseSchema,\n getMetricBreakdownArgsSchema,\n getMetricBreakdownResponseSchema,\n getMetricTimeSeriesArgsSchema,\n getMetricTimeSeriesResponseSchema,\n getMetricPercentilesArgsSchema,\n getMetricPercentilesResponseSchema,\n // Discovery\n getMetricNamesArgsSchema,\n getMetricNamesResponseSchema,\n getMetricLabelKeysArgsSchema,\n getMetricLabelKeysResponseSchema,\n getMetricLabelValuesArgsSchema,\n getMetricLabelValuesResponseSchema,\n getEntityTypesResponseSchema,\n getEntityNamesArgsSchema,\n getEntityNamesResponseSchema,\n getServiceNamesResponseSchema,\n getEnvironmentsResponseSchema,\n getTagsArgsSchema,\n getTagsResponseSchema,\n} from '@internal/core/storage';\nimport { coreFeatures } from '@mastra/core/features';\nimport { generateSignalId } from '@mastra/core/observability';\nimport { z } from 'zod/v4';\nimport { HTTPException } from '../http-exception';\nimport type { InferParams, ServerContext, ServerRouteHandler } from '../server-adapter/routes';\nimport { createRoute, pickParams, wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { paginationArgsSchema } from './observability-list-query-schemas';\nimport {\n assertObservabilityDeltaSupported,\n createObservabilityListQuerySchema,\n getObservabilityStore,\n NEW_ROUTE_DEFS,\n OBSERVABILITY_LIST_ENDPOINTS,\n} from './observability-shared';\nimport type { RouteDetails } from './observability-shared';\n\nfunction createNewRoute<\n TPathSchema extends z.ZodTypeAny | undefined = undefined,\n TQuerySchema extends z.ZodTypeAny | undefined = undefined,\n TBodySchema extends z.ZodTypeAny | undefined = undefined,\n TResponseSchema extends z.ZodTypeAny | undefined = undefined,\n>(\n def: RouteDetails,\n config: {\n pathParamSchema?: TPathSchema;\n queryParamSchema?: TQuerySchema;\n bodySchema?: TBodySchema;\n responseSchema?: TResponseSchema;\n handler: ServerRouteHandler>;\n },\n) {\n const { handler, ...schemas } = config;\n return createRoute({\n ...def,\n ...schemas,\n responseType: 'json' as const,\n tags: ['Observability'],\n requiresAuth: true,\n handler: (async (params: InferParams & ServerContext) => {\n try {\n if (!coreFeatures.has('observability:v1.13.2')) {\n throw new HTTPException(501, {\n message: 'New observability endpoints require @mastra/core >= 1.13.2, please upgrade.',\n });\n }\n\n return await handler(params);\n } catch (error) {\n return handleError(error, `Error calling: '${def.summary.toLocaleLowerCase()}'`);\n }\n }) as ServerRouteHandler<\n InferParams,\n TResponseSchema extends z.ZodTypeAny ? z.infer : unknown,\n 'json'\n >,\n });\n}\n\n// ============================================================================\n// Log Routes\n// ============================================================================\n\nexport const LIST_LOGS = createNewRoute(NEW_ROUTE_DEFS.LIST_LOGS, {\n queryParamSchema: createObservabilityListQuerySchema(logsFilterSchema, logsOrderBySchema),\n responseSchema: listLogsResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(logsFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.logs);\n return await observabilityStore.listLogs({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(logsOrderBySchema, params);\n return await observabilityStore.listLogs(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\n// ============================================================================\n// Score Routes\n// ============================================================================\n\nexport const LIST_SCORES = createNewRoute(NEW_ROUTE_DEFS.LIST_SCORES, {\n queryParamSchema: createObservabilityListQuerySchema(scoresFilterSchema, scoresOrderBySchema),\n responseSchema: obsListScoresResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(scoresFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.scores);\n return await observabilityStore.listScores({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(scoresOrderBySchema, params);\n return await observabilityStore.listScores(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\nexport const CREATE_SCORE = createNewRoute(NEW_ROUTE_DEFS.CREATE_SCORE, {\n bodySchema: createScoreBodySchema,\n responseSchema: createScoreResponseSchema,\n handler: async ({ mastra, score }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n await observabilityStore.createScore({\n score: { ...score, scoreId: score.scoreId ?? generateSignalId(), timestamp: new Date() },\n });\n return { success: true };\n },\n});\n\nexport const GET_SCORE = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE, {\n pathParamSchema: z.object({ scoreId: z.string() }),\n responseSchema: z.object({ score: scoreRecordSchema.nullable() }),\n handler: async ({ mastra, scoreId }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n const score = await observabilityStore.getScoreById(scoreId);\n return { score: score ?? null };\n },\n});\n\nexport const GET_SCORE_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_AGGREGATE, {\n bodySchema: getScoreAggregateArgsSchema,\n responseSchema: getScoreAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreAggregate(args);\n },\n});\n\nexport const GET_SCORE_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_BREAKDOWN, {\n bodySchema: getScoreBreakdownArgsSchema,\n responseSchema: getScoreBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreBreakdown(args);\n },\n});\n\nexport const GET_SCORE_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_TIME_SERIES, {\n bodySchema: getScoreTimeSeriesArgsSchema,\n responseSchema: getScoreTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScoreTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScoreTimeSeries(args);\n },\n});\n\nexport const GET_SCORE_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_SCORE_PERCENTILES, {\n bodySchema: getScorePercentilesArgsSchema,\n responseSchema: getScorePercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getScorePercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getScorePercentiles(args);\n },\n});\n\n// ============================================================================\n// Feedback Routes\n// ============================================================================\n\nexport const LIST_FEEDBACK = createNewRoute(NEW_ROUTE_DEFS.LIST_FEEDBACK, {\n queryParamSchema: createObservabilityListQuerySchema(feedbackFilterSchema, feedbackOrderBySchema),\n responseSchema: listFeedbackResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(feedbackFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.feedback);\n return await observabilityStore.listFeedback({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(feedbackOrderBySchema, params);\n return await observabilityStore.listFeedback(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\nexport const CREATE_FEEDBACK = createNewRoute(NEW_ROUTE_DEFS.CREATE_FEEDBACK, {\n bodySchema: createFeedbackBodySchema,\n responseSchema: createFeedbackResponseSchema,\n handler: async ({ mastra, feedback }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n await observabilityStore.createFeedback({\n feedback: { ...feedback, feedbackId: feedback.feedbackId ?? generateSignalId(), timestamp: new Date() },\n });\n return { success: true };\n },\n});\n\nexport const GET_FEEDBACK_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_AGGREGATE, {\n bodySchema: getFeedbackAggregateArgsSchema,\n responseSchema: getFeedbackAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackAggregate(args);\n },\n});\n\nexport const GET_FEEDBACK_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_BREAKDOWN, {\n bodySchema: getFeedbackBreakdownArgsSchema,\n responseSchema: getFeedbackBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackBreakdown(args);\n },\n});\n\nexport const GET_FEEDBACK_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_TIME_SERIES, {\n bodySchema: getFeedbackTimeSeriesArgsSchema,\n responseSchema: getFeedbackTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackTimeSeries(args);\n },\n});\n\nexport const GET_FEEDBACK_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_FEEDBACK_PERCENTILES, {\n bodySchema: getFeedbackPercentilesArgsSchema,\n responseSchema: getFeedbackPercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getFeedbackPercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getFeedbackPercentiles(args);\n },\n});\n\n// ============================================================================\n// Metrics Routes\n// ============================================================================\n\nexport const LIST_METRICS = createNewRoute(NEW_ROUTE_DEFS.LIST_METRICS, {\n queryParamSchema: createObservabilityListQuerySchema(metricsFilterSchema, metricsOrderBySchema),\n responseSchema: listMetricsResponseSchema,\n handler: async ({ mastra, mode, after, limit, ...params }) => {\n const filters = pickParams(metricsFilterSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n\n if (mode === 'delta') {\n assertObservabilityDeltaSupported(observabilityStore, OBSERVABILITY_LIST_ENDPOINTS.metrics);\n return await observabilityStore.listMetrics({\n mode,\n filters,\n after: typeof after === 'string' ? after : undefined,\n limit,\n });\n }\n\n const pagination = pickParams(paginationArgsSchema, params);\n const orderBy = pickParams(metricsOrderBySchema, params);\n return await observabilityStore.listMetrics(\n mode === 'page' ? { mode, filters, pagination, orderBy } : { filters, pagination, orderBy },\n );\n },\n});\n\nexport const GET_METRIC_AGGREGATE = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_AGGREGATE, {\n bodySchema: getMetricAggregateArgsSchema,\n responseSchema: getMetricAggregateResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricAggregateArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricAggregate(args);\n },\n});\n\nexport const GET_METRIC_BREAKDOWN = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_BREAKDOWN, {\n bodySchema: getMetricBreakdownArgsSchema,\n responseSchema: getMetricBreakdownResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricBreakdownArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricBreakdown(args);\n },\n});\n\nexport const GET_METRIC_TIME_SERIES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_TIME_SERIES, {\n bodySchema: getMetricTimeSeriesArgsSchema,\n responseSchema: getMetricTimeSeriesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricTimeSeriesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricTimeSeries(args);\n },\n});\n\nexport const GET_METRIC_PERCENTILES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_PERCENTILES, {\n bodySchema: getMetricPercentilesArgsSchema,\n responseSchema: getMetricPercentilesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = pickParams(getMetricPercentilesArgsSchema, params);\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricPercentiles(args);\n },\n});\n\n// ============================================================================\n// Discovery Routes\n// ============================================================================\n\nexport const GET_METRIC_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_NAMES, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricNamesArgsSchema.partial()),\n responseSchema: getMetricNamesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricNamesArgsSchema.parse(pickParams(getMetricNamesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricNames(args);\n },\n});\n\nexport const GET_METRIC_LABEL_KEYS = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_LABEL_KEYS, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricLabelKeysArgsSchema),\n responseSchema: getMetricLabelKeysResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricLabelKeysArgsSchema.parse(pickParams(getMetricLabelKeysArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricLabelKeys(args);\n },\n});\n\nexport const GET_METRIC_LABEL_VALUES = createNewRoute(NEW_ROUTE_DEFS.GET_METRIC_LABEL_VALUES, {\n queryParamSchema: wrapSchemaForQueryParams(getMetricLabelValuesArgsSchema),\n responseSchema: getMetricLabelValuesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getMetricLabelValuesArgsSchema.parse(pickParams(getMetricLabelValuesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getMetricLabelValues(args);\n },\n});\n\nexport const GET_ENTITY_TYPES = createNewRoute(NEW_ROUTE_DEFS.GET_ENTITY_TYPES, {\n responseSchema: getEntityTypesResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getEntityTypes({});\n },\n});\n\nexport const GET_ENTITY_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_ENTITY_NAMES, {\n queryParamSchema: wrapSchemaForQueryParams(getEntityNamesArgsSchema.partial()),\n responseSchema: getEntityNamesResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getEntityNamesArgsSchema.parse(pickParams(getEntityNamesArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getEntityNames(args);\n },\n});\n\nexport const GET_SERVICE_NAMES = createNewRoute(NEW_ROUTE_DEFS.GET_SERVICE_NAMES, {\n responseSchema: getServiceNamesResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getServiceNames({});\n },\n});\n\nexport const GET_ENVIRONMENTS = createNewRoute(NEW_ROUTE_DEFS.GET_ENVIRONMENTS, {\n responseSchema: getEnvironmentsResponseSchema,\n handler: async ({ mastra }) => {\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.getEnvironments({});\n },\n});\n\nexport const GET_TAGS = createNewRoute(NEW_ROUTE_DEFS.GET_TAGS, {\n queryParamSchema: wrapSchemaForQueryParams(getTagsArgsSchema.partial()),\n responseSchema: getTagsResponseSchema,\n handler: async ({ mastra, ...params }) => {\n const args = getTagsArgsSchema.parse(pickParams(getTagsArgsSchema, params));\n const observabilityStore = await getObservabilityStore(mastra);\n try {\n return await observabilityStore.getTags(args);\n } catch (error) {\n // Some storage providers (e.g. LibSQL) don't support tag discovery\n if (error instanceof Error && error.message.includes('does not support tag discovery')) {\n return { tags: [] };\n }\n throw error;\n }\n },\n});\n\nexport const NEW_ROUTES = {\n LIST_LOGS,\n LIST_SCORES,\n CREATE_SCORE,\n GET_SCORE,\n GET_SCORE_AGGREGATE,\n GET_SCORE_BREAKDOWN,\n GET_SCORE_TIME_SERIES,\n GET_SCORE_PERCENTILES,\n LIST_FEEDBACK,\n CREATE_FEEDBACK,\n GET_FEEDBACK_AGGREGATE,\n GET_FEEDBACK_BREAKDOWN,\n GET_FEEDBACK_TIME_SERIES,\n GET_FEEDBACK_PERCENTILES,\n LIST_METRICS,\n GET_METRIC_AGGREGATE,\n GET_METRIC_BREAKDOWN,\n GET_METRIC_TIME_SERIES,\n GET_METRIC_PERCENTILES,\n GET_METRIC_NAMES,\n GET_METRIC_LABEL_KEYS,\n GET_METRIC_LABEL_VALUES,\n GET_ENTITY_TYPES,\n GET_ENTITY_NAMES,\n GET_SERVICE_NAMES,\n GET_ENVIRONMENTS,\n GET_TAGS,\n};\n"]}