Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """Upload the latest agent trace JSON to a Hugging Face dataset repo.""" | |
| from __future__ import annotations | |
| import argparse | |
| import json | |
| import os | |
| from pathlib import Path | |
| from huggingface_hub import HfApi | |
| def _latest_trace(traces_dir: Path) -> Path: | |
| files = sorted(traces_dir.glob("*.json"), key=lambda p: p.stat().st_mtime, reverse=True) | |
| if not files: | |
| raise FileNotFoundError(f"No trace files in {traces_dir}") | |
| return files[0] | |
| def main() -> None: | |
| parser = argparse.ArgumentParser(description="Upload agent trace to HF dataset") | |
| parser.add_argument( | |
| "--traces-dir", | |
| type=Path, | |
| default=Path(os.environ.get("AGENT_TRACES_DIR", "outputs/traces")), | |
| ) | |
| parser.add_argument( | |
| "--repo-id", | |
| required=True, | |
| help="HF dataset repo, e.g. username/build-small-agent-traces", | |
| ) | |
| parser.add_argument("--trace", type=Path, default=None, help="Specific trace file") | |
| args = parser.parse_args() | |
| trace_path = args.trace or _latest_trace(args.traces_dir) | |
| data = json.loads(trace_path.read_text()) | |
| api = HfApi() | |
| api.create_repo(args.repo_id, repo_type="dataset", exist_ok=True) | |
| api.upload_file( | |
| path_or_fileobj=trace_path.read_bytes(), | |
| path_in_repo=f"traces/{trace_path.name}", | |
| repo_id=args.repo_id, | |
| repo_type="dataset", | |
| commit_message=f"Add agent trace {trace_path.stem}", | |
| ) | |
| print(f"Uploaded {trace_path} -> {args.repo_id}/traces/{trace_path.name}") | |
| print(f"Skill: {data.get('skill')} | Model: {data.get('model')} | Run: {data.get('run_id')}") | |
| if __name__ == "__main__": | |
| main() | |