import json, sqlite3, sys
from pathlib import Path
# Read only the isolated synthetic scenario database, never a live installation.
database = Path(sys.argv[1]).resolve()
connection = sqlite3.connect(database.as_uri() + '?mode=ro', uri=True)
wakes, summaries, runs = [], [], {}
def visit(value):
    if isinstance(value, dict):
        if value.get('type') == 'notification' and isinstance(value.get('summary'), str):
            summary = value['summary']
            if summary not in summaries:
                summaries.append(summary)
        for child in value.values(): visit(child)
    elif isinstance(value, list):
        for child in value: visit(child)
    elif isinstance(value, str) and value.startswith('Update on pull request #42'):
        if value not in wakes: wakes.append(value)
for event_type, payload in connection.execute('select event_type, payload_json from orchestration_events order by sequence'):
    data = json.loads(payload)
    visit(data)
    if event_type == 'run.updated': runs[data['id']] = data['status']
print('Synthetic PR watch — actual persisted server output')
print('Environment: real server and web client; fresh synthetic state; replay agent; synthetic GitHub HTTP responses.')
print('\nAgent turns:')
for number, status in enumerate(runs.values(), 1): print(f'  Turn {number}: {status}')
print('\nWake summaries:')
for summary in summaries: print('  ' + summary)
print('\nWake messages:')
for number, wake in enumerate(wakes, 1): print(f'\nWake {number}\n{wake}')
print('\nAI-assisted; verified with the tests and tools listed above.')
