import json, pathlib, sys
run, server, output = map(pathlib.Path, sys.argv[1:])
records = [json.loads(line) for line in (run / 'raw.jsonl').read_text().splitlines()]
result = {'environment': 'Linux; real T3 development server; fresh worktree database; synthetic data; Claude provider', 'prompt': 'List my projects using the T3 project-list tool.', 'runs': []}
for record in records:
    if record['tool'] != 't3_thread_read' or record['args']['view'] != 'activity':
        continue
    data = record['result']['structuredContent']
    entry = {'runtimeMode': data['thread']['runtimeMode'], 'status': data['thread']['status'], 'pendingRequestCount': data['thread']['pendingRequestCount'], 'tools': []}
    for item in data['items']:
        if item['type'] != 'dynamic_tool':
            continue
        tool = json.loads(item['text'])
        if tool.get('toolName') == 'mcp__t3-code__t3_project_list':
            entry['tools'].append({'name': tool['toolName'], 'status': item['status'], 'input': tool['input'], 'resultProjectTitles': [p['title'] for p in tool['output']['structuredContent']['projects']]})
    result['runs'].append(entry)
result['serverStderrWarnings'] = [line[line.index('[CLAUDE_SDK_CAN_USE_TOOL_SHADOWED]'):] for line in server.read_text().splitlines() if '[CLAUDE_SDK_CAN_USE_TOOL_SHADOWED]' in line]
result['warningCount'] = len(result['serverStderrWarnings'])
result['redaction'] = 'Whitelisted runtime fields; machine identifiers, paths, credentials, runtime model metadata, and unrelated logs excluded.'
output.write_text(json.dumps(result, indent=2) + '\n')
