/** * @copyright Sister Software * @license AGPL-3.0 * @author Teffen Ellis, et al. * * Promote LLM-synthesized golden-set candidates into a versioned golden dir, with * human-typed-likelihood filters + dedup. Companion to `golden-expand.ts`. * * ## What it does * * 1. Reads a candidates JSONL from `data/eval/golden/candidates/` * 2. Reads the previous-version golden dir for forward-copy + dedup base * 3. Applies filters that drop candidates unlikely to be human-typed: * * - Components-glued-without-commas (5+ components but <2 separators → freeform jumble) * - Postcode-at-start with many other components (US/UK conventions put postcode last; FR puts it * before locality only) * - Suspicious-token signals (unmatched brackets, control chars, etc.) * 4. Dedupes by normalized raw (case-insensitive, whitespace-collapsed) * 5. Splits by country (US/FR/other) and writes `data/eval/golden/v/{us,fr,other}.jsonl` * 6. Forward-copies the prior version's adversarial.jsonl + README as-is * 7. Writes MANIFEST.json with sha256 of each output file * * ## Usage * * ```sh * mailwoman corpus golden promote \ * --input data/eval/golden/candidates/expand-20260518-162627.jsonl \ * --bump-to v0.1.1 \ * --prior v0.1.0 * ``` */ export interface PromoteStats { candidatesIn: number; filteredOut: { glued: number; postcodeLeading: number; suspicious: number; duplicate: number; forwardDup: number; }; kept: number; perCountry: Record; } export interface PromoteGoldenOptions { /** * Candidates JSONL (required). */ input: string; /** * Target golden version dir (required, e.g. `v0.1.1`). */ bumpTo: string; /** * Previous version to forward-copy + dedup against. Default `v0.1.0`. */ prior?: string; /** * Golden dir root. Default `data/eval/golden`. */ goldenRoot?: string; /** * Skip the human-typed-likelihood filters (keep everything that passed expand-golden's validator). */ noFilters?: boolean; /** * Report what would be written but don't touch disk. */ dryRun?: boolean; } export declare function promoteGolden(options: PromoteGoldenOptions, report?: (line: string) => void): Promise; //# sourceMappingURL=golden-promote.d.ts.map