"""Local result integrity only; no inference, Tracking or scenario execution."""
import ast
import hashlib
import json
from pathlib import Path

run=Path(__file__).resolve().parent.parent
root=run/'Contextra_Fall_Spatial_Review_20261101'
manifest=json.loads((root/'sha256_manifest.json').read_text())
total=0
for name,expected in manifest.items():
    path=root/name
    assert path.is_file() and not path.is_symlink(),name
    h=hashlib.sha256()
    with path.open('rb') as f:
        for block in iter(lambda:f.read(1024*1024),b''):h.update(block);total+=len(block)
    assert h.hexdigest()==expected,name
assert not list(root.rglob('*.mp4'))
helpers=list((run/'helpers').glob('*.py'))
for path in helpers:ast.parse(path.read_text(),filename=str(path))
value=dict(status='PASS',files=len(manifest),bytes=total,helper_ast=len(helpers),
    verified_videos=0,video_reason='USER_RENDER_DECISION_PENDING',source='remote package SHA256 manifest',
    private_material_in_download=False)
dest=run/'reports/transfer_validation.json';assert not dest.exists()
dest.write_text(json.dumps(value,indent=2))
print(json.dumps(value))
