"""Resolve pinned shared frame/backing assets without copying them into a card proof.""" from pathlib import Path import hashlib, json ROOT = Path(__file__).resolve().parent def digest(path): return hashlib.sha256(Path(path).read_bytes()).hexdigest() def load_tier(tier, version=None): index = json.loads((ROOT / 'manifest.json').read_text()) entry = index['tiers'][tier] version = version or entry['selectedVersion'] if version not in entry['versions']: raise ValueError(f'Unknown tier revision: {tier}/{version}') directory = ROOT / tier / version manifest = json.loads((directory / 'manifest.json').read_text()) for relative, record in manifest['files'].items(): path = directory / relative if not path.is_file() or digest(path) != record['sha256']: raise ValueError(f'Shared layer missing or changed: {tier}/{version}/{relative}') return { 'tier': tier, 'version': version, 'directory': directory, 'manifestSHA256': digest(directory / 'manifest.json'), 'layout': json.loads((directory / 'layout.json').read_text()), 'reviewStatus': manifest['reviewStatus'], 'assets': {name: directory / relative for name, relative in manifest['assets'].items()}, }