from pathlib import Path
import json,hashlib,shutil
H=Path(__file__).resolve().parent;P=H.parent;BASE=P.parent/'parallel-ai-user-weight-owned-flow-20261011/execution';DISEASE=P.parent/'parallel-ai-customer-next-owned-source-20261011/execution';PRIOR=Path('/tmp/cdx-ai-disease-owned-flow-20261011');R=Path('/tmp/cdx-ai-scale-owned-flow-20261011');W=Path('/tmp/cdx-ai-weight-owned-flow-20261011')
assert not R.exists();R.mkdir(mode=0o700);(H/'tools').mkdir(exist_ok=True);(R/'source').mkdir(mode=0o700)
pins=json.loads((BASE/'source-frozen-sha.json').read_text())
for n,digest in pins['files'].items():
 p=PRIOR/'source'/n;assert hashlib.sha256(p.read_bytes()).hexdigest()==digest;q=R/'source'/n;q.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(p,q)
for q in (H/'source-frozen-sha.json',R/'source-frozen-sha.json'):q.write_text(json.dumps(pins,indent=2)+'\n')
for name in ['native.php','app.php','launch.php','NativePdo.php','observer.php','source-state.php','cleanup-cache.php','cleanup.php','data.php','CoreGate.php']:
 raw=(BASE/'tools'/name).read_text()
 if name=='native.php':
  raw=raw.replace("$data['ZHCT.prepay_order']=readNative('ZHCT','SELECT * FROM ydy_prepay_order WHERE user_id=? ORDER BY id',[$ids[1]]);",'')
  raw=raw.replace(",['ZHCT','prepay_order','id','STORE_P1']",'')
 if name=='app.php':raw=raw.replace('CDXOWNWGT11','CDXOWNSCALE11').replace('owned-weight.invalid','owned-scale.invalid')
 if name=='launch.php':raw=raw.replace('19001:19002','19021:19022')
 if name=='NativePdo.php':
  raw=raw.replace("if(!is_file($runtime.'/owned-actor.json'))","if(!is_file($runtime.'/preflight-ready.json'))")
  raw=raw.replace("['W1_MANUAL','W2_GOAL']","['W1_WELLAND_ADD','W2_YUNKANGBAO_ADD']").replace("?50:90","?60:120")
  raw=raw.replace("$this->db==='AI'&&in_array(CoreGate::$scenario", "in_array($this->db,['AI','ZHCT'],true)&&in_array(CoreGate::$scenario")
  raw=raw.replace("if(CoreGate::$scenario==='W1_MANUAL')CoreGate::$mainCommitted=true;","if($this->db==='ZHCT')CoreGate::$storeCommitted=true;else CoreGate::$mainCommitted=true;")
 for q in (H/'tools'/name,R/name):q.write_text(raw)
for lane in ('B','C'):
 d=R/f'seed-{lane}';d.mkdir(mode=0o700);src=PRIOR/f'private-{lane}-final'
 for name in ['prepared.json',f'preflight-{lane}.json','prior-persistence.json','owned-actor.json']:
  shutil.copyfile(src/name,d/name);(d/name).chmod(0o600)
 (d/'schema.json').write_text((W/f'private-{lane}-final/schema.json').read_text());(d/'schema.json').chmod(0o600)
 (d/'owned-baseline.json').write_text(json.dumps(json.loads((src/'final-capture.json').read_text())['protection']['weight9'],ensure_ascii=False,indent=2)+'\n');(d/'owned-baseline.json').chmod(0o600)
 (d/'disease-baseline.json').write_text(json.dumps(json.loads((src/'final-capture.json').read_text())['rows'],ensure_ascii=False,indent=2)+'\n');(d/'disease-baseline.json').chmod(0o600)
plan=json.loads((P/'machine-plan.json').read_text());plan['status']='ROOT_AUTHORIZED_ONCE_4HTTP_10I4U';plan['authority']='Root exact4HTTP/0prepare/Store10I+AI4U/unified1000/preflight180/W100B180C/R60B120C/token1/Serve2/UserApi failure2/19021,22; real two original connections; Prepay raw DB protection released, old sealed files immutable'
for q in (H/'execution-plan.json',R/'execution-plan.json'):q.write_text(json.dumps(plan,ensure_ascii=False,indent=2)+'\n')
print(json.dumps({'source_files':6168,'DB':0,'SQL':0,'HTTP':0,'prepare':0}))
