#!/usr/bin/env python3
"""Root unique intake of AI Store/Terminal Store profile updates."""
import hashlib
import json
import subprocess
import sys
from pathlib import Path
import integrate_20261010 as tool
from integrate_20261011_batches46_48 import item

HERE = Path(__file__).resolve().parent
REVIEW = Path('/private/tmp/cdx-ai-hk-course-b.Kmdirn/review-s2-481-489/verify_review.py')
REPORT = tool.AI + 'parallel-store-profile-20261013/ROOT_REVIEW.md'


def verify():
    assert hashlib.sha256(REVIEW.read_bytes()).hexdigest() == '5f87d63b900da44045b42df664abb111891d4d798aa4754e84d31916b7dd33af'
    result = json.loads(subprocess.check_output([sys.executable, '-B', str(REVIEW)]))
    assert result['verified_bounded_evidence'] and result['checks'] == 790
    assert result['author_result']['checks'] == 2693 and result['raw_HTTP'] == 14
    assert result['successful_updates'] == 4 and result['assets'] == 86
    for path, digest in result['source_pins'].items():
        data = subprocess.check_output(['git', '-C', str(tool.source_root('ai_api')), 'show', result['source_commit'] + ':' + path])
        assert hashlib.sha256(data).hexdigest() == digest


if __name__ == '__main__':
    audit = HERE / 'integration-20261013-store-profile.json'
    assert not audit.exists(), 'Never replay main'
    rows = [item('ai_api', 'POST', '/' + app + '/store/update', '', evidence=REPORT,
        risk='own-single-new-Store-profile-only-private-synthetic-principal',
        success_case='partial-evidence-original-profile-name-update-Chinese-four-byte-text-with-empty-logo',
        readback='tested-pass-complete18-native-columns-subsequent19-field-DTO-and-empty-own-references',
        parity='partial-evidence-full-JSON-types-values-no-password-or-RBAC-completion-claim',
        cleanup='one-new-owned-Store-per-side-retained-private-cache-removed-workers-stopped')
        for app in ['store', 'terminal']]
    rows += [item('ai_api', 'GET', '/' + app + '/store/info', '', evidence=REPORT, evidence_only=True)
             for app in ['store', 'terminal']]
    tool.main(rows, audit, verify)
