import hashlib, json, os, re, subprocess
from pathlib import Path

here = Path(__file__).resolve().parent
private = here / 'private-evidence'
assert private.is_dir() and not private.is_symlink()
ssh = ['ssh','-S','/private/tmp/cdx-train-root-20261010.sock','-o','ControlMaster=no','root@121.43.241.161']
safe = re.compile(r'private-case-(?:[1-9]|10|11|R7|R9|E1|E2)\.(?:wire\.json|http\.json|httpbody|native\.jsonl|shutdown(?:-error)?\.json)$')
exact = {'private-fresh.json','private-fresh-select-journal.json','private-initcheck.json','private-initcheck-error.json','private-incident-independent-readback.json','private-recovered-step1.json','private-float-metadata.json','private-float-metadata-v2.json','private-main-final.json','private-final-write-main.json','private-final-write-extra.json','private-cleanup-write.json','private-source-lock-original.json'}
copied = []
for lane in ['B','C']:
    root = '/tmp/cdx-nutrition-write8-'+lane+'-20261011'
    command = ['docker','exec','zhctapp_v2_0','find',root,'-maxdepth','1','-type','f','-printf','%f\n'] if lane=='B' else ssh + ['find '+root+' -maxdepth 1 -type f -printf "%f\\n"']
    names = subprocess.check_output(command,text=True).splitlines()
    target = private / (lane+'-execution')
    target.mkdir(mode=0o700,exist_ok=True)
    for name in names:
        if name not in exact and not safe.fullmatch(name):
            continue
        output = target / name
        if output.exists():
            previous = hashlib.sha256(output.read_bytes()).hexdigest()
            check = ['docker','exec','zhctapp_v2_0','sha256sum',root+'/'+name] if lane=='B' else ssh+['sha256sum '+root+'/'+name]
            current = subprocess.check_output(check,text=True).split()[0]
            assert previous == current, ('Sealed original artifact drift',lane,name)
            continue
        copy = ['docker','cp','zhctapp_v2_0:'+root+'/'+name,str(output)] if lane=='B' else ['scp','-o','ControlPath=/private/tmp/cdx-train-root-20261010.sock','-o','ControlMaster=no','root@121.43.241.161:'+root+'/'+name,str(output)]
        subprocess.run(copy,check=True,capture_output=True)
        os.chmod(output,0o600)
        copied.append(lane+'/'+name)
print(json.dumps({'copied_files':len(copied),'HTTP':0,'DML':0,'DDL':0}))
