"""Read-only dump of a dev server's parent thread runs and subagents: state.py <statev2.sqlite> <threadId>"""
import json, sqlite3, sys
db = sqlite3.connect(f"file:{sys.argv[1]}?mode=ro", uri=True)
tid = sys.argv[2]
for (p,) in db.execute("SELECT payload_json FROM orchestration_v2_projection_runs WHERE thread_id=? ORDER BY json_extract(payload_json,'$.ordinal')", (tid,)):
    r = json.loads(p)
    print(f"RUN {r['ordinal']} status={r['status']} userMessageId={r['userMessageId']}")
    if r.get('delegatedCompletion'): print("   delegatedCompletion=" + json.dumps(r['delegatedCompletion']))
for (p,) in db.execute("SELECT payload_json FROM orchestration_v2_projection_run_attempts WHERE thread_id=? ORDER BY json_extract(payload_json,'$.runId'), json_extract(payload_json,'$.attemptOrdinal')", (tid,)):
    a = json.loads(p)
    print(f"ATTEMPT run={a['runId'][-10:]} #{a['attemptOrdinal']} reason={a['reason']} status={a['status']}")
for (p,) in db.execute("SELECT payload_json FROM orchestration_v2_projection_subagents WHERE thread_id=?", (tid,)):
    s = json.loads(p)
    print(f"SUB {s['id'][-12:]} status={s['status']} run={str(s.get('runId'))[-10:]} completionDelivery={json.dumps(s.get('completionDelivery'))}")
