import { z } from "zod"; import { LabelOutput } from "./label.ts"; /** A single human annotator's label for a gold-set paragraph. */ export const HumanLabel = z.object({ paragraphId: z.uuid(), annotatorId: z.string(), label: LabelOutput, labeledAt: z.iso.datetime(), notes: z.string().optional(), }); export type HumanLabel = z.infer; /** Adjudicated gold-standard label after inter-rater agreement. */ export const GoldLabel = z.object({ paragraphId: z.uuid(), finalLabel: LabelOutput, adjudicationMethod: z.enum(["consensus", "majority", "discussion"]), humanLabels: z.array(HumanLabel), cohensKappa: z.number().optional(), // pairwise, for category krippendorphAlpha: z.number().optional(), // ordinal, for specificity }); export type GoldLabel = z.infer;