#!/usr/bin/env python3
"""Read only a synthetic reproduction database. No database writes or manual status mapping."""
import argparse, json, sqlite3
p=argparse.ArgumentParser()
p.add_argument('database'); p.add_argument('thread'); a=p.parse_args()
c=sqlite3.connect('file:'+a.database+'?mode=ro',uri=True)
c.row_factory=sqlite3.Row
queries={
'assistantMessages': "SELECT status, ordinal, length(json_extract(payload_json,'$.text')) AS characters, substr(json_extract(payload_json,'$.text'),-350) AS tail FROM orchestration_v2_projection_turn_items WHERE thread_id=? AND type='assistant_message' ORDER BY ordinal",
'providerTurns': "SELECT ordinal,status FROM orchestration_v2_projection_provider_turns WHERE thread_id=? ORDER BY ordinal"
}
print(json.dumps({key:[dict(row) for row in c.execute(sql,(a.thread,))] for key,sql in queries.items()},indent=2))
