/home/cube/projects/richard/hermes-agent/.venv/bin/python -c $'\nimport hashlib,json,sys,zipfile\nfrom pathlib import Path\nrepo=Path(sys.argv[1]); wheel=Path(sys.argv[2])\npaths=["gateway/platforms/dualcoach_activation_cutover.py","gateway/platforms/dualcoach_admin.py","gateway/platforms/telegram_customer_bootstrap.py"]\nrows=[]\nwith zipfile.ZipFile(wheel) as z:\n for path in paths:\n source=(repo/path).read_bytes(); shipped=z.read(path)\n rows.append({"path":path,"source_sha256":hashlib.sha256(source).hexdigest(),"wheel_sha256":hashlib.sha256(shipped).hexdigest(),"byte_identical":source==shipped})\nresult={"candidate_digest":sys.argv[3],"production_module_count":len(rows),"modules":rows,"status":"PASS" if all(x["byte_identical"] for x in rows) else "FAIL"}\nprint(json.dumps(result,sort_keys=True,separators=(",",":")))\nraise SystemExit(result["status"]!="PASS")\n' /home/cube/projects/richard/hermes-agent /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-activation-cutover-successor-30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc/artifacts/hermes_agent-0.17.0-py3-none-any.whl 30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc