import sys, time, json
sys.path.insert(0, "/tmp/amdwork")
from cdp import list_pages, attach

# AMD often opens the PM app in a NEW tab/window. Enumerate all AMD targets.
pages = list_pages()
print("ALL TARGETS:")
for p in pages:
    print("  ", (p.get("title") or "")[:40], "|", (p.get("url") or "")[:90])

# Prefer a pm-api / dashboard tab if present, else launch-app tab
def score(p):
    u = (p.get("url") or "")
    if "pm-api" in u or "/pm/" in u or "dashboard" in u.lower():
        return 3
    if "launch-app" in u:
        return 2
    if "advancedmd" in u:
        return 1
    return 0
pages = [p for p in pages if p.get("type") == "page"]
pages.sort(key=score, reverse=True)
t = pages[0]
pg = attach(t)
pg.enable()

# Wait up to 30s for meaningful render
deadline = time.time()+30
last = ""
while time.time() < deadline:
    u = pg.eval("location.href")
    rs = pg.eval("document.readyState")
    blen = pg.eval("document.body ? document.body.innerText.length : 0")
    last = "url=%s rs=%s bodylen=%s" % (u, rs, blen)
    if (blen or 0) > 80:
        break
    time.sleep(2)
print("STATE:", last)
print("URL:", pg.eval("location.href"))
print("TITLE:", pg.eval("document.title"))
print("BODYTEXT (1500):")
print(pg.eval("document.body ? document.body.innerText.slice(0,1500) : ''"))

# Hunt for identity string (AGENT vs GAUTAM) anywhere in DOM text
ident = pg.eval("""
(function(){
  var txt = document.body ? document.body.innerText : '';
  var hits = [];
  ['AGENT','Agent','GAUTAM','Gautam','gautam','agent'].forEach(function(k){
    if(txt.indexOf(k)>=0) hits.push(k);
  });
  // also check title-bar / user menu common selectors
  var sel = document.querySelector('[class*=user],[class*=User],[id*=user],[class*=account],[aria-label*=user]');
  return JSON.stringify({hits:hits, userEl: sel?(sel.innerText||'').slice(0,80):null});
})()
""")
print("IDENTITY HITS:", ident)
pg.screenshot("/tmp/amdwork/dashboard.png")
print("SHOT /tmp/amdwork/dashboard.png")
pg.close()
print("DONE_DASH")
