#!/usr/bin/env python3
"""Audit only sanitized API/independent-source evidence; no credentials needed."""
import json
from pathlib import Path

BASE = Path(__file__).resolve().parent
read = lambda name: json.loads((BASE / name).read_text())
checks = {}
for lane in 'BC':
    evidence = read(f'evidence-{lane}.json')
    audit = read(f'final-audit-{lane}.json')
    checks[f'{lane}_50_actual_CLI_HTTP'] = evidence['actual_CLI_requests'] == 50
    checks[f'{lane}_source_values_and_rejections'] = evidence['all_independent_source_checks']
    checks[f'{lane}_consumed_references_per_request'] = evidence['all_consumed_reference_checks']
    checks[f'{lane}_all_10_real_method_paths'] = len(evidence['unique_method_paths']) == 10
    checks[f'{lane}_formal_API_delete_own_zero'] = all(t['owned_rows'] == 0 for t in audit['own_tables'].values()) and len(audit['own_tables']) == 2
    checks[f'{lane}_natural_rows_and_metadata_unchanged'] = all(t['natural_source_unchanged'] and t['metadata_unchanged'] for t in audit['own_tables'].values())
    checks[f'{lane}_final_consumed_reference_gate'] = audit['failure'] is None and all(r['unchanged'] for r in audit['references'].values()) and len(audit['references']) == 3
    for module in ('treatise', 'matchRecord'):
        for phase in ('read-green', 'cleanup'):
            cli = evidence['cli'][f'report-{module}-{phase}']
            checks[f'{lane}_{module}_{phase}_CLI_green'] = cli['stats']['assertions']['failed'] == 0
        final = [c for c in evidence['cases'] if c['label'] in (f'{module}.info_final', f'{module}.list_final')][-2:]
        checks[f'{lane}_{module}_final_complete_projection_values'] = len(final) == 2 and all(not c['source_api_differences'] for c in final)
        checks[f'{lane}_{module}_nonempty_detail_and_list'] = all(c['source_rows'] == 1 for c in final)
checks['C_actual_two_original_CREATE_BY_reds'] = sum(c['original_CREATE_BY_length_error'] for c in read('red-C.json')['cases']) == 2
checks['C_actual_create_time_only_read_red'] = {f for c in read('red-C.json')['cases'] for f in c['source_api_differences']} == {'create_time'}
checks.update(read('wire-comparison.json')['checks'])
out = {'checks': checks, 'passed': all(checks.values()), 'check_count': len(checks)}
print(json.dumps(out, ensure_ascii=False, indent=2))
raise SystemExit(0 if out['passed'] else 1)
