"""Serial processes isolate peak RSS and output; no Native/device/service launch."""
from pathlib import Path
import subprocess,json,os,time,sys
ROOT=Path(__file__).resolve().parents[1];REPO=ROOT.parents[1]
runs=json.loads((ROOT/'analysis/runs.json').read_text());env={**os.environ,'PYTHONDONTWRITEBYTECODE':'1','OPENBLAS_NUM_THREADS':'1','OMP_NUM_THREADS':'1'}
for interval in [100,250,500]:
    for r in runs:
        out=ROOT/f'analysis/replay/{r["run"]}/{interval}'
        if (out/'performance.json').exists():continue
        out.parent.mkdir(parents=True,exist_ok=True)
        cmd=[sys.executable,'-m','tools.region_flow_shadow','--input',str(ROOT/r['events']),'--output',str(out),'--run-id',r['run_id'],
             '--entries',str(ROOT/'analysis/entries-oracle.json'),'--allow-oracle','--interval',str(interval),'--checkpoints',','.join(map(str,r['checkpoints']))]
        start=time.time();p=subprocess.run(cmd,cwd=REPO,env=env,capture_output=True,text=True)
        (out.parent/f'{interval}.log').write_text(p.stdout+p.stderr)
        if p.returncode:raise RuntimeError((r['run'],interval,p.stderr[-3000:]))
        print('REPLAY',r['run'],interval,round(time.time()-start,3),flush=True)
