master
John Lauer Add bounded obstacle planning and live calculations using the Adom activity palette e936bc3 1mo ago
"""Attach the container SSE page to the bridge's existing activity palette. Run server first."""
import argparse,json
from call import call
from live_panel import URL
p=argparse.ArgumentParser();p.add_argument('--document',required=True);args=p.parse_args()
def invoke(v,a):
 r=call(v,a)
 if not r.get('success'):raise RuntimeError(json.dumps(r))
 return r
invoke('fusion_routing_state',{'expectDocument':args.document})
invoke('fusion_activity_banner',{'action':'show','title':'Astra routing: connecting live display','detail':'Using the existing Adom palette with container SSE.','percent':0,'tone':'working'})
script='''import urllib.request
url=URL_VALUE
body=urllib.request.urlopen(url,timeout=5).read().decode('utf-8')
assert 'routeChecks' in body
p=app.userInterface.palettes.itemById('AdomActivityPalette')
assert p and p.isVisible
p.htmlFileURL=url
result={'containerPageVerified':True,'paletteId':p.id,'visible':p.isVisible}
'''.replace('URL_VALUE',repr(URL))
print(json.dumps(invoke('fusion_run_modeling_script',{'expectDocument':args.document,'script':script}),indent=2))
# The existing close handler stays attached. No new palette or Fusion restart.
print(json.dumps([w for w in invoke('desktop_list_windows',{})['windows'] if w['image']=='Fusion360.exe' and w['title'].upper()=='ADOM'],indent=2))