"""Serial agent-device driver for existing session; no server, checkout, or fixture writes."""
from pathlib import Path
import subprocess,json,sys
R=Path(__file__).parent
S='issue-24223-final'
def call(*args):
 p=subprocess.run(['agent-device',*args,'--session',S],capture_output=True,text=True)
 with (R/'driver-transcript.txt').open('a') as f:f.write(json.dumps(args)+'\n'+p.stdout+p.stderr+'\n')
 if p.returncode:raise RuntimeError(p.stderr)
 print(p.stdout[-1500:],flush=True);return p.stdout
def pair(name):
 call('screenshot',str(R/(name+'-a.png')),'--normalize-status-bar');call('wait','500');call('screenshot',str(R/(name+'-b.png')),'--normalize-status-bar')
def nav(name):
 call('press','label="Navigate up"','--settle');call('wait','text',name);call('press','label="'+name+'"','--settle');call('wait','text',{'Proof 01 assistant widths':'After diagrams.','Proof 02 proposed plan':'Prepare the release.','Proof 03 lone reasoning':'Reasoning completed; feed tail remains reachable.','Proof 04 grouped reasoning':'Grouped reasoning completed; feed tail remains reachable.','Proof 07 invalid fallback':'Valid after.','Proof 09 fence variants':'Variants tail.','Proof 10 parser controls':'Inline','Proof 11 markdown context':'Context tail.','Proof 12 artifact ordering':'After diagram.','Proof 13 user control':'Plain','Proof 14 escaped labels':'Feed tail.'}.get(name,name));call('snapshot','-i')
if __name__=='__main__':
 if sys.argv[1]=='pair':pair(sys.argv[2])
 elif sys.argv[1]=='nav':nav(sys.argv[2])
