#!/usr/bin/env python3 from __future__ import annotations import argparse import subprocess from pathlib import Path ROOT = Path(__file__).resolve().parents[1] CH_SCRIPT = ROOT / 'scripts' / 'score_hf_hub_community_challenges.py' COV_SCRIPT = ROOT / 'scripts' / 'score_hf_hub_community_coverage.py' def run(cmd: list[str]) -> None: print('\n[run]', ' '.join(cmd)) subprocess.run(cmd, check=True) def main() -> None: ap = argparse.ArgumentParser(description='Run one hf_hub_community prompt variant on challenge + coverage packs') ap.add_argument('--variant-id', required=True, help='Variant ID for output path, e.g. v3') ap.add_argument('--cards-dir', type=Path, required=True) ap.add_argument('--model', default='gpt-oss') ap.add_argument('--agent', default='hf_hub_community') ap.add_argument('--timeout', type=int, default=240) ap.add_argument('--out-root', type=Path, default=ROOT / 'docs' / 'hf_hub_prompt_ab') args = ap.parse_args() model_stem = args.model.replace('/', '_') out_dir = args.out_root / args.variant_id / model_stem out_dir.mkdir(parents=True, exist_ok=True) run([ 'python', str(CH_SCRIPT), '--model', args.model, '--agent', args.agent, '--agent-cards', str(args.cards_dir), '--timeout', str(args.timeout), '--raw-results-dir', str(out_dir / 'raw' / 'challenges'), '--json-out', str(out_dir / 'challenges.json'), '--md-out', str(out_dir / 'challenges.md'), ]) run([ 'python', str(COV_SCRIPT), '--model', args.model, '--agent', args.agent, '--agent-cards', str(args.cards_dir), '--timeout', str(args.timeout), '--raw-results-dir', str(out_dir / 'raw' / 'coverage'), '--json-out', str(out_dir / 'coverage.json'), '--md-out', str(out_dir / 'coverage.md'), ]) print('\nWrote variant outputs under:') print(out_dir) if __name__ == '__main__': main()