import os,sys,json,subprocess,urllib.parse
from pathlib import Path
side,session=sys.argv[1:];out=Path(os.environ['EVIDENCE_DIR'])/f'manual-{side}';d=json.loads((out/'private-state.json').read_text())
def ad(*args):
 r=subprocess.run(['agent-device',*args,'--session',session],capture_output=True,text=True)
 (out/'pair.log').open('a').write(r.stdout+r.stderr)
 if r.returncode and args[0]!='alert':raise RuntimeError('device pairing step failed; see private log')
metro=urllib.parse.quote(f"http://{d['host']}:8190",safe='')
ad('open','com.t3tools.t3code.dev',f't3code-dev://expo-development-client/?url={metro}&disableOnboarding=1&disableFab=1&disableAutoLaunch=1')
ad('alert','accept')
ad('wait','label="Add environment"','240000')
query=urllib.parse.urlencode({'pairingUrl':d['pair'],'autoConnect':'1'})
ad('open','com.t3tools.t3code.dev',f't3code-dev://connections/new?{query}')
ad('alert','accept')
ad('wait','label="Settings"','120000')
print('paired')
