bwrap --die-with-parent --unshare-net --ro-bind / / --tmpfs /tmp --dev /dev --proc /proc --setenv HOME /tmp --setenv TMPDIR /tmp --setenv PYTHONDONTWRITEBYTECODE 1 --setenv PYTHONPATH /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-gates18-20-activation-successor-30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc-st_01a0080c/artifacts/installed-wheel-root --chdir /tmp /home/cube/projects/richard/hermes-agent/.venv/bin/python -B -c $'\nimport importlib,json,sys\nfrom pathlib import Path\nroot=Path(sys.argv[1]).resolve()\nnames=["gateway.platforms.dualcoach_activation_cutover","gateway.platforms.dualcoach_admin","gateway.platforms.telegram_customer_bootstrap"]\nrows=[]\nfor name in names:\n module=importlib.import_module(name); origin=Path(module.__file__).resolve(); rows.append({"module":name,"origin":str(origin),"inside_installed_wheel":origin.is_relative_to(root)})\nleaks=[]\nfor name,module in sorted(sys.modules.items()):\n if name=="gateway" or name.startswith("gateway."):\n path=getattr(module,"__file__",None)\n if path and not Path(path).resolve().is_relative_to(root): leaks.append({"module":name,"origin":str(Path(path).resolve())})\nresult={"candidate_digest":sys.argv[2],"imports":rows,"gateway_source_fallbacks":leaks,"status":"PASS" if all(x["inside_installed_wheel"] for x in rows) and not leaks else "FAIL"}\nprint(json.dumps(result,sort_keys=True,separators=(",",":")))\nraise SystemExit(result["status"]!="PASS")\n' /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-gates18-20-activation-successor-30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc-st_01a0080c/artifacts/installed-wheel-root 30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc