"""Upload only the reviewed public asset allowlist; preserve ghdrop Markdown verbatim."""
from pathlib import Path
import json,subprocess,re,sys
root=Path('/tmp/lead-25709-r1b/evidence-capture');assets=json.loads((root/'public-assets.json').read_text());mapping={}
log=root/'uploads-assets.md';log.write_text('')
for start in range(0,len(assets),20):
 batch=assets[start:start+20]
 result=subprocess.run(['ghdrop','upload','-m',*batch],capture_output=True,text=True)
 with log.open('a')as f:f.write(result.stdout)
 links=re.findall(r'!?\[[^\]]*\]\((https://[^)]+)\)',result.stdout)
 if result.returncode or len(links)!=len(batch):
  print(result.stdout);print(result.stderr,file=sys.stderr);raise SystemExit(f'Upload stopped: batch {start}, {len(links)}/{len(batch)} links')
 mapping.update(zip(batch,links));(root/'uploaded-assets.json').write_text(json.dumps(mapping,indent=2))
 print('Uploaded',start+len(batch),'/',len(assets),flush=True)
