"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OnlineEvalConfigSchema = exports.OnlineEvalConfigNameSchema = void 0;
const tags_1 = require("./tags");
const zod_1 = require("zod");
// ============================================================================
// Online Eval Config Types
// ============================================================================
exports.OnlineEvalConfigNameSchema = zod_1.z
    .string()
    .min(1, 'Name is required')
    .max(48)
    .regex(/^[a-zA-Z][a-zA-Z0-9_]{0,47}$/, 'Must begin with a letter and contain only alphanumeric characters and underscores (max 48 chars)');
exports.OnlineEvalConfigSchema = zod_1.z.object({
    name: exports.OnlineEvalConfigNameSchema,
    /** Agent name to monitor (must match a project agent) */
    agent: zod_1.z.string().min(1, 'Agent name is required'),
    /** Optional runtime endpoint name to scope monitoring to a specific endpoint */
    endpoint: zod_1.z.string().min(1).optional(),
    /** Evaluator names (custom), Builtin.* IDs, or evaluator ARNs */
    evaluators: zod_1.z.array(zod_1.z.string().min(1)).min(1, 'At least one evaluator is required'),
    /** Sampling rate as a percentage (0.01 to 100) */
    samplingRate: zod_1.z.number().min(0.01).max(100),
    /** Optional description for the online eval config */
    description: zod_1.z.string().max(200).optional(),
    /** Whether to enable execution on create (default: true) */
    enableOnCreate: zod_1.z.boolean().optional(),
    tags: tags_1.TagsSchema.optional(),
});
//# sourceMappingURL=online-eval-config.js.map