/**
 * @sanity/ailf-core — Report validity (data-health axis)
 *
 * `ReportValidity` is the post-hoc data-health assessment of a published
 * report, orthogonal to `provenance.classification` (run intent, D0037).
 * It is a top-level sibling of the legacy `ReportDegradation` flag, which it
 * subsumes (`degraded:true → validity.status:"degraded"`).
 *
 * Authored independently of the Zod schema so the schema can assert
 * `satisfies z.ZodType<ReportValidity>` and turn drift into a build error
 * (D0045). Populated by the confidence-tiered detector
 * (`W-report-validity-detector`) and the eval write path
 * (`W-stamp-validity-write-path`); gated everywhere by the shared
 * `includeInDefaultTrends` predicate (`W-trustworthiness-predicate`).
 *
 * @see docs/decisions/D0059-report-validity-axis-and-trustworthiness-gate.md
 * @see docs/design-docs/report-trustworthiness-model.md
 */
/**
 * The validity-status vocabulary. Single `as const` tuple so the runtime Zod
 * `z.enum(...)` and the `ReportValidityStatus` type derive from one source —
 * the same drift-proofing the `DEGRADED_ENRICHMENT_FIELDS` tuple uses.
 *
 *  - `ok`         — trustworthy; included in default trends.
 *  - `degraded`   — enrichment/grading failed (subsumes the legacy `degraded`
 *                   flag).
 *  - `incomplete` — expected grains genuinely missing, after the report-shape
 *                   caveat is accounted for (see design doc).
 *  - `suspect`    — passed structural checks but flagged for review (anomaly or
 *                   ambiguous heuristic).
 */
export const REPORT_VALIDITY_STATUSES = [
    "ok",
    "degraded",
    "incomplete",
    "suspect",
];
/** Type guard for {@link ReportValidityStatus}. */
export function isReportValidityStatus(value) {
    return (typeof value === "string" &&
        REPORT_VALIDITY_STATUSES.includes(value));
}
