from pathlib import Path
import requests,time,json
P=Path('/opt/creature-lib-20261017');job='7df0ae8bca1449759ad03380ad26d169'
for _ in range(180):
 d=requests.get('http://127.0.0.1:8087/v1/3d/jobs/'+job,timeout=15).json()
 if d['status'] in ['done','failed']:
  (P/'evidence/wolf-image-job-final.json').write_text(json.dumps(d,indent=2));print(json.dumps(d),flush=True)
  if d['status']=='done':
   data=d['result'];item=data['data'][0] if 'data' in data else data
   for k,n in [('url','raw.glb'),('preview_url','preview.png')]:
    if item.get(k):
     u='http://127.0.0.1:8087/cache/'+item[k].split('/')[-1];r=requests.get(u,timeout=90);r.raise_for_status();(P/'sources/generated-wolf'/n).write_bytes(r.content);print(n,len(r.content),flush=True)
  break
 time.sleep(10)
else:raise TimeoutError('wolf generation did not finish within task polling window')
