import csv,json,pathlib,subprocess,sys,hashlib,datetime
root=pathlib.Path(__file__).parent
phase=sys.argv[1]
url='https://10.68.68.111:19311/pmacontrol-worktrees/bench-architecture-20261010/fr/architecture/index/'
rows=[]
for run in range(11):
 body=root/'private-response.html'
 p=subprocess.run(['curl','-kfsS','--compressed','--max-time','45','--user-agent',(root/'user-agent.txt').read_text(),'--cookie',str(root/'private.cookies'),'--output',str(body),'--write-out','%{json}',url],capture_output=True,text=True,check=True)
 r=json.loads(p.stdout)
 assert r['http_code']==200 and b'architecture-topology-grid' in body.read_bytes()
 if run==0:continue
 rows.append(dict(phase=phase,run=run,utc=datetime.datetime.now(datetime.timezone.utc).isoformat(),http_code=r['http_code'],ttfb_ms=1000*r['time_starttransfer'],download_ms=1000*(r['time_total']-r['time_starttransfer']),total_ms=1000*r['time_total'],transfer_bytes=r['size_download'],decoded_bytes=body.stat().st_size,http_version=r['http_version'],remote_ip=r['remote_ip']))
with (root/('http-'+phase+'.csv')).open('w') as f:
 w=csv.DictWriter(f,fieldnames=rows[0].keys());w.writeheader();w.writerows(rows)
print(json.dumps({'phase':phase,'http_runs':len(rows)}))
