import sys, time
from pathlib import Path
sys.path.append(str(Path("05_Production_Pipeline").resolve()))
from invisible_playwright import InvisiblePlaywright
from muse_invpw_driver import sync_worker_profile, DEFAULT_PROFILE

def check_ws_error():
    sync_worker_profile()
    with InvisiblePlaywright(profile_dir=DEFAULT_PROFILE, headless=True) as ctx:
        page = ctx.pages[0] if ctx.pages else ctx.new_page()
        page.on('console', lambda m: print(f"[CONSOLE {m.type}] {m.text}"))
        page.on('pageerror', lambda e: print(f"[PAGE ERROR] {e}"))
        page.on('websocket', lambda ws: print(f"[WS OPEN] {ws.url}"))
        page.on('requestfailed', lambda r: print(f"[REQ FAILED] {r.method} {r.url} - {r.failure}"))
        
        page.goto("https://muse.ai", wait_until="domcontentloaded", timeout=30000)
        time.sleep(5)
        
        # Monitor for 15 seconds
        for s in range(15):
            time.sleep(1)
            # Evaluate websocket connections in window if any
            state = page.evaluate("""() => {
                return {
                    online: navigator.onLine,
                    ready: document.readyState
                };
            }""")
            if s == 0:
                print("Browser state:", state)

if __name__ == '__main__':
    check_ws_error()
