34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
from typing import Any, Dict
|
|
|
|
|
|
def _load_manifest(path: str) -> Dict[str, Any]:
|
|
return json.loads(Path(path).read_text(encoding="utf-8"))
|
|
|
|
|
|
def main() -> int:
|
|
parser = argparse.ArgumentParser(description="Gamma/PyINT runtime V1 runner scaffold.")
|
|
parser.add_argument("--manifest", required=True, help="WSL path to the staged job manifest.")
|
|
parser.add_argument("--dry-run", action="store_true", help="Emit manifest summary and exit.")
|
|
args = parser.parse_args()
|
|
|
|
manifest = _load_manifest(args.manifest)
|
|
summary = {
|
|
"runner": "gamma_pyint_runtime_v1",
|
|
"manifest": args.manifest,
|
|
"job_id": manifest.get("job_id"),
|
|
"operation": manifest.get("operation"),
|
|
"payload_keys": sorted((manifest.get("payload") or {}).keys()),
|
|
"dry_run": bool(args.dry_run),
|
|
}
|
|
print(json.dumps(summary, ensure_ascii=False))
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|