import subprocess,time,pathlib,sys
session,side,out=sys.argv[1:];out=pathlib.Path(out);out.mkdir(parents=True,exist_ok=True)
def run(*args):
 r=subprocess.run(['agent-device',*map(str,args),'--session',session],text=True,capture_output=True)
 (out/(side+'-forward.log')).open('a').write(' '.join(map(str,args))+'\n'+r.stdout+r.stderr+'\n')
 if r.returncode:raise RuntimeError(r.stderr)
 return r.stdout
def capture(label):
 a=out/(side+'-'+label+'-sample.png');b=out/(side+'-'+label+'.png')
 for attempt in range(3):
  run('screenshot',a);time.sleep(.5);run('screenshot',b)
  if a.read_bytes()==b.read_bytes():break
 print(label,'stable',a.read_bytes()==b.read_bytes(),flush=True)
 (out/(side+'-'+label+'.txt')).write_text(run('snapshot','-i'))
run('press',104,710)
time.sleep(4)
run('swipe',340,420,55,420,'--count',2,'--pause-ms',4000)
time.sleep(4);capture('third-page')
run('swipe',340,420,55,420,'--count',12,'--pause-ms',4000)
time.sleep(4);capture('fourteen-swipes')
run('press',37,84);time.sleep(4);capture('close-result')
print('Ready for record stop',flush=True)
