"""Migrate legacy research reports into the fail-closed hashed format.""" from __future__ import annotations import argparse import json from pathlib import Path from app.research import ResearchRunStore def main() -> int: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( "--root", type=Path, default=Path(__file__).resolve().parents[1] / "data" / "research", help="research store root containing manifest.json and reports/", ) args = parser.parse_args() migrated = ResearchRunStore(args.root).migrate_legacy() print(json.dumps({"migrated_reports": migrated}, sort_keys=True)) return 0 if __name__ == "__main__": raise SystemExit(main())