"""Evaluation harness for structured document extraction. This package turns the extractor into a measurable system: - Runs a JSONL ground-truth file through DocumentExtractor - Compares per-field with type-appropriate comparators (text/money/date/exact) - Aggregates field-level precision/recall/F1 and document-level exact match - Emits per-record CSV + resume-worthy markdown summary - Supports multi-model benchmark runs via --model flag Public entry points: run_eval(records, extractor, doc_type, ...) -> EvalReport write_reports(report, out_dir) -> (csv_path, md_path) """ from src.eval.report import write_reports from src.eval.runner import EvalReport, run_eval __all__ = ["run_eval", "EvalReport", "write_reports"]