#!/usr/bin/env bash
set -euo pipefail
umask 077
E="/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-certification-deployment-6aaef77de87489c3be493978645781b24b55ab07513ff1f880164741d0bd3c73-st_01a00b39"
A="$E/artifacts/runtime-recovery";SP=/home/cube/projects/richard/hermes-agent/.venv/lib/python3.12/site-packages;PY=/home/cube/projects/richard/hermes-agent/.venv/bin/python;P=/home/cube/.hermes/profiles/dualcoachtest;S="$P/workspace/checkin_cli";W=/home/cube/.cache/uv/sdists-v9/editable/26f4e05a6940f816/DpY7iGZhz9eoH1wa/physique_checkin_cli-0.1.0-0.editable-py3-none-any.whl
mkdir -p "$A"
[[ $(systemctl --user show hermes-gateway-dualcoachtest.service -p MainPID --value) == 0 ]]
systemctl --user show hermes-gateway-dualcoachtest.service -p ActiveState -p SubState -p MainPID -p Result >"$A/service-stopped-before.txt"
sha256sum "$P/customers/registry.json" "$P/data/onboarding/telegram-customer-bootstrap-v1/ledger.json" "$P/data/customers/task26_live_2e_r2_20260815_8527916639/nutrition-onboarding/readiness-receipt-v1.json">"$A/authority-before.sha256"
find "$SP" -maxdepth 2 \( -path "$SP/checkin_cli*" -o -path "$SP/physique_checkin_cli-0.1.0.dist-info*" -o -name '__editable__*physique*' \) -printf '%y\t%m\t%s\t%p\n'|sort >"$A/bad-current-inventory.txt"
env -C /tmp -u PYTHONPATH PYTHONDONTWRITEBYTECODE=1 "$PY" -B - <<'PY' >"$A/import-before.txt"
import importlib.util
from importlib import metadata
print('checkin_cli_spec',importlib.util.find_spec('checkin_cli'))
try: print('distribution',metadata.distribution('physique-checkin-cli')._path)
except metadata.PackageNotFoundError: print('distribution','ABSENT')
PY
[[ $(sha256sum "$W"|cut -d' ' -f1) == 2d0208a3b9be9178a78097776c64568d9dc77c3530e3f04e24bf5c51827f4896 ]]
STAGE=$(mktemp -d "$SP/.task26-runtime-recovery.XXXXXX");trap 'rm -rf "$STAGE"' EXIT
"$PY" - "$W" "$STAGE" <<'PY'
import sys,zipfile
with zipfile.ZipFile(sys.argv[1]) as z:z.extractall(sys.argv[2])
PY
mkdir -p "$STAGE/physique_checkin_cli-0.1.0.dist-info"
printf 'pip\n' >"$STAGE/physique_checkin_cli-0.1.0.dist-info/INSTALLER"
: >"$STAGE/physique_checkin_cli-0.1.0.dist-info/REQUESTED"
printf '%s' '{"dir_info": {"editable": true}, "url": "file:///home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cli"}' >"$STAGE/physique_checkin_cli-0.1.0.dist-info/direct_url.json"
"$PY" - "$STAGE/physique_checkin_cli-0.1.0.dist-info/RECORD" <<'PY'
import sys
from pathlib import Path
rows=['__editable__.physique_checkin_cli-0.1.0.pth,sha256=xGm6QS5DGvWLFXEprT5uPjIpY47OqyK6oJ_f8VX0JSw,111','__editable___physique_checkin_cli_0_1_0_finder.py,sha256=LcV8eX7UtZt6LQipvBskHhUn09rSgJuLa0Omepdblfs,3443','__pycache__/__editable___physique_checkin_cli_0_1_0_finder.cpython-312.pyc,,','physique_checkin_cli-0.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4','physique_checkin_cli-0.1.0.dist-info/METADATA,sha256=VcYUVrt3Z9qyd-MyzTF8wn5NSVBVBiYyJRlqySSnJpM,310','physique_checkin_cli-0.1.0.dist-info/RECORD,,','physique_checkin_cli-0.1.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0','physique_checkin_cli-0.1.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91','physique_checkin_cli-0.1.0.dist-info/direct_url.json,sha256=SYKUs8kGaq5fjLB7W6Y6U9QEzCwDFF9GjMeb92MX-Sw,113','physique_checkin_cli-0.1.0.dist-info/top_level.txt,sha256=6RxM7VBgrwN4CvfIk66MhLs2dL7V5LCm0G-2IKVOm98,12']
Path(sys.argv[1]).write_bytes(('\r\n'.join(rows)+'\r\n').encode())
PY
(cd "$STAGE"&&sha256sum __editable__.physique_checkin_cli-0.1.0.pth __editable___physique_checkin_cli_0_1_0_finder.py physique_checkin_cli-0.1.0.dist-info/{INSTALLER,METADATA,RECORD,REQUESTED,WHEEL,direct_url.json,top_level.txt}) >"$A/restored-expected.sha256"
grep -q '^c469ba412e431af58b157129ad3e6e3e3229638eceab22baa09fdff155f4252c  __editable__.physique' "$A/restored-expected.sha256"
grep -q '^2dc57c797ed4b59b7a2d08a9bc1b241e1527d3dad2809b8b6b43a67a975b95fb  __editable___physique' "$A/restored-expected.sha256"
grep -q '^498294b3c9066aae5f8cb07b5ba63a53d404cc2c03145f468cc79bf76317f92c  physique_checkin_cli-0.1.0.dist-info/direct_url.json' "$A/restored-expected.sha256"
grep -q '^42f7a70f2ab1d42abcdd80af09a3ff20a0d49cde01db168ba8922154075033ce  physique_checkin_cli-0.1.0.dist-info/RECORD' "$A/restored-expected.sha256"
[[ ! -e "$SP/__editable__.physique_checkin_cli-0.1.0.pth" && ! -e "$SP/__editable___physique_checkin_cli_0_1_0_finder.py" && ! -e "$SP/physique_checkin_cli-0.1.0.dist-info" && ! -e "$SP/checkin_cli" ]]
mv "$STAGE/__editable___physique_checkin_cli_0_1_0_finder.py" "$SP/"
mv "$STAGE/__editable__.physique_checkin_cli-0.1.0.pth" "$SP/"
mv "$STAGE/physique_checkin_cli-0.1.0.dist-info" "$SP/"
(cd "$SP"&&sha256sum __editable__.physique_checkin_cli-0.1.0.pth __editable___physique_checkin_cli_0_1_0_finder.py physique_checkin_cli-0.1.0.dist-info/{INSTALLER,METADATA,RECORD,REQUESTED,WHEEL,direct_url.json,top_level.txt}) >"$A/restored-actual.sha256"
cmp "$A/restored-expected.sha256" "$A/restored-actual.sha256"
env -C /tmp -u PYTHONPATH PYTHONDONTWRITEBYTECODE=1 "$PY" -B - "$P" <<'PY' >"$A/import-after.json"
import hashlib,importlib,json,sys
from importlib import metadata
from pathlib import Path
p=Path(sys.argv[1]);names=['checkin_cli','checkin_cli.customer_admin','checkin_cli.activation_token_rotation_policy','checkin_cli.nutrition_onboarding','checkin_cli.adaptive_nutrition'];rows=[]
for n in names:
 m=importlib.import_module(n);f=Path(m.__file__).resolve();rows.append({'module':n,'path':str(f),'sha256':hashlib.sha256(f.read_bytes()).hexdigest(),'profile_local':f.is_relative_to((p/'workspace/checkin_cli/checkin_cli').resolve())})
d=metadata.distribution('physique-checkin-cli');o={'distribution_path':str(d._path),'direct_url':json.loads((d._path/'direct_url.json').read_text()),'modules':rows};o['status']='PASS' if all(x['profile_local'] for x in rows) and o['direct_url']=={'dir_info':{'editable':True},'url':'file:///home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cli'} else 'FAIL';print(json.dumps(o,sort_keys=True,separators=(',',':')));raise SystemExit(o['status']!='PASS')
PY
cd "$P";env -u PYTHONPATH PYTHONDONTWRITEBYTECODE=1 HERMES_HOME="$P" VIRTUAL_ENV=/home/cube/projects/richard/hermes-agent/.venv "$PY" -B - <<'PY' >"$A/controlled-validation.json"
import json
from pathlib import Path
from gateway.config import Platform,load_gateway_config
from gateway.platforms.telegram import TelegramAdapter
c=load_gateway_config().platforms[Platform.TELEGRAM];a=TelegramAdapter(c);a._validate_adaptive_review_space_config();r=a._get_nutrition_onboarding_runtime();o={'adaptive_validation':'PASS','adaptive_initial_error':a._adaptive_nutrition_error,'nutrition_runtime':'PASS','nutrition_module':str(Path(r.domain.__file__).resolve()),'nutrition_profile_local':Path(r.domain.__file__).resolve().is_relative_to((Path('/home/cube/.hermes/profiles/dualcoachtest')/'workspace/checkin_cli/checkin_cli').resolve())};print(json.dumps(o,sort_keys=True,separators=(',',':')));raise SystemExit(not o['nutrition_profile_local'] or o['adaptive_initial_error'] is not None)
PY
sha256sum "$P/customers/registry.json" "$P/data/onboarding/telegram-customer-bootstrap-v1/ledger.json" "$P/data/customers/task26_live_2e_r2_20260815_8527916639/nutrition-onboarding/readiness-receipt-v1.json">"$A/authority-after-restore.sha256"
cmp "$A/authority-before.sha256" "$A/authority-after-restore.sha256"
