/**
 * Evaluation mode types.
 *
 * Shared between eval (pipeline orchestrator) and studio (GROQ filters, UI).
 * A new mode added here is immediately visible to both packages.
 */
/**
 * The 5 canonical evaluation modes.
 * Single source of truth — normalizeMode() and Zod schemas derive from these.
 */
export const CANONICAL_EVAL_MODES = [
    "literacy",
    "mcp-server",
    "agent-harness",
    "knowledge-probe",
    "custom",
];
/** Legacy CLI aliases that map to `mode: "literacy"` + variant. */
export const LEGACY_EVAL_MODE_ALIASES = [
    "baseline",
    "agentic",
    "observed",
    "full",
];
/**
 * Literacy mode variant names — each is a distinct evaluation strategy.
 *
 * These are the valid values for the `variant` field in PipelineRequest
 * when `mode` is `"literacy"`. They match LEGACY_EVAL_MODE_ALIASES because
 * variants were originally exposed as top-level mode names.
 *
 *   - `baseline` — with-docs / without-docs comparison (gold + floor)
 *   - `agentic`  — model uses tools to find docs (gold only)
 *   - `observed` — HTTP-instrumented behavior observation
 *   - `full`     — combined baseline + agentic
 */
export const LITERACY_VARIANTS = [
    "baseline",
    "agentic",
    "observed",
    "full",
];
/** Type guard for `LiteracyVariant` — true when `value` is one of the closed set. */
export function isLiteracyVariant(value) {
    return (typeof value === "string" &&
        LITERACY_VARIANTS.includes(value));
}
/**
 * All accepted mode names for Zod enum construction.
 * Canonical modes first, then legacy aliases.
 */
export const RAW_EVAL_MODES = [
    ...CANONICAL_EVAL_MODES,
    ...LEGACY_EVAL_MODE_ALIASES,
];
