import sys, json
sys.path.insert(0, "/tmp/curo")
import cdp_agent as C

pages = C.list_pages()
print("=== TARGETS ===")
for p in pages:
    print(p.get("type"), "|", (p.get("title") or "")[:60], "|", (p.get("url") or "")[:100])

t = C.find_target() if pages else None
if not t:
    print("NO PAGE TARGET")
    sys.exit(0)

pg = C.attach(t)
pg.enable()
print("\n=== CURRENT PAGE ===")
print("URL:", pg.eval("location.href"))
print("TITLE:", pg.eval("document.title"))

# Enumerate password/text inputs to understand the change-password form
inputs = pg.eval("""
JSON.stringify(Array.from(document.querySelectorAll('input')).map((el,i)=>({
  i:i, type:el.type, id:el.id, name:el.name,
  ph:el.placeholder||'', label:(el.getAttribute('aria-label')||''),
  vis: !!(el.offsetParent), val_len:(el.value||'').length
})))
""")
print("\n=== INPUTS ===")
try:
    for r in json.loads(inputs):
        print(r)
except Exception:
    print(inputs)

# Find buttons / submit
btns = pg.eval("""
JSON.stringify(Array.from(document.querySelectorAll('button,input[type=submit],a')).map(el=>({
  tag:el.tagName, type:el.type||'', id:el.id||'',
  txt:(el.innerText||el.value||'').trim().slice(0,40), vis:!!(el.offsetParent)
})).filter(b=>b.vis && b.txt))
""")
print("\n=== CLICKABLE (visible w/ text) ===")
try:
    for b in json.loads(btns):
        print(b)
except Exception:
    print(btns)

# Grab any visible error / instruction text
body_txt = pg.eval("document.body.innerText.slice(0,1200)")
print("\n=== BODY TEXT (first 1200) ===")
print(body_txt)

pg.screenshot("/tmp/curo/agent_state_probe.png")
print("\nSCREENSHOT: /tmp/curo/agent_state_probe.png")
pg.close()
