"""Export the exact deck tab already opened by agent-browser hermes-visible. Connects only to the existing canonical Chrome, never launches a browser. """ from pathlib import Path import asyncio, urllib.request, json, base64 import websockets O=Path('/Users/adolforeyna/brain/exports') async def main(): tabs=json.load(urllib.request.urlopen('http://127.0.0.1:9222/json')) tab=next(t for t in tabs if t.get('url')=='file:///Users/adolforeyna/brain/exports/emi_astra_family_that_remains.html') async with websockets.connect(tab['webSocketDebuggerUrl'],max_size=40_000_000) as ws: seq=0 async def call(method,params={}): nonlocal seq seq+=1; await ws.send(json.dumps({'id':seq,'method':method,'params':params})) while True: data=json.loads(await ws.recv()) if data.get('id')==seq: if 'error' in data:raise RuntimeError(data['error']) return data.get('result',{}) await call('Runtime.evaluate',{'expression':'document.fonts.ready.then(()=>true)','awaitPromise':True}) bounds=await call('Runtime.evaluate',{'expression':'''JSON.stringify([...document.querySelectorAll('.slide')].map(s=>{const r=s.getBoundingClientRect();return {slide:s.id,overflow:[...s.querySelectorAll('h1,h2,h3,p,li,.smalltag,.source')].filter(e=>{const b=e.getBoundingClientRect();return b.leftr.right||b.topr.bottom-65}).map(e=>e.textContent)}}))''','returnByValue':True}) (O/'emi_astra_dom_bounds.json').write_text(bounds['result']['value']) pdf=await call('Page.printToPDF',{'printBackground':True,'preferCSSPageSize':True,'paperWidth':20,'paperHeight':11.25,'marginTop':0,'marginBottom':0,'marginLeft':0,'marginRight':0,'displayHeaderFooter':False}) (O/'emi_astra_family_that_remains.pdf').write_bytes(base64.b64decode(pdf['data'])) print('Exported widescreen PDF with CSS page size; DOM bounds:',bounds['result']['value']) asyncio.run(main())