import datetime,pathlib,subprocess,sys,time
session,root,*options=sys.argv[1:]
out=pathlib.Path(root)/datetime.datetime.now(datetime.timezone.utc).strftime('%Y%m%dT%H%M%SZ');out.mkdir(parents=True)
log=(out/'driver.log').open('w')
def run(*args):
 if args[0] in ('press','fill','scroll'):args=(*args,'--timeout','60000')
 try:
  subprocess.run(['agent-device',*args,'--session',session],stdout=log,stderr=subprocess.STDOUT,check=True)
 except subprocess.CalledProcessError:
  if args[0]!='open':raise
  subprocess.run(['agent-device',*args,'--foreground','--timeout','60000','--session',session],stdout=log,stderr=subprocess.STDOUT,check=True)
 print('Completed:',args[0],flush=True)
if 'zone-prepared' not in options:
 run('open','com.android.settings')
 run('press','text="Region"','--settle')
 run('fill','label="Search region"','United States','--settle')
 run('press','role=text text="United States"','--settle')
 run('scroll','down','600','--settle')
 run('press','text="New York"','--settle')
run('open','com.t3tools.t3code.dev','--relaunch')
run('wait','text','Time zone proof','120000')
run('press','role=button label="Time zone proof"','--settle')
run('scroll','top','--settle')
run('press','label="Agent: Older message: 2026-11-06 02:30 UTC. New York: 11/5 9:30 PM. Bangkok: 11/6 9:30 AM."','--settle')
run('record','start',str(out/'recording.mp4'),'--scope','device','--hide-touches')
run('open','com.android.settings')
run('press','text="Region"','--settle')
run('fill','label="Search region"','Thailand','--settle')
run('press','role=text text="Thailand"','--settle')
time.sleep(1.5)
run('open','com.t3tools.t3code.dev')
run('fill','label="Ask anything"','New message after system time zone change.','--settle')
run('press','role=button label="Send"','--settle')
run('keyboard','dismiss')
run('press','label="Navigate up"','--settle')
run('press','role=button label="Switch target"','--settle')
run('press','label="Navigate up"','--settle')
run('press','role=button label="Time zone proof"','--settle')
run('scroll','top','--settle')
run('press','label="Agent: Older message: 2026-11-06 02:30 UTC. New York: 11/5 9:30 PM. Bangkok: 11/6 9:30 AM."','--settle')
for n in range(3):
 a,b=out/f'{n}-a.png',out/f'{n}-b.png'
 run('screenshot',str(a));time.sleep(.5);run('screenshot',str(b))
 if a.read_bytes()==b.read_bytes():print('STABLE',b,flush=True);break
else:raise RuntimeError('Unstable still')
run('record','stop')
print('CAPTURE',out,flush=True)
