"""File/hash/document checks only on test; no runtime or engine execution."""
import hashlib
import json
import re
import shutil
import sys
from pathlib import Path
from urllib.parse import unquote, urlsplit

root = Path(__file__).resolve().parent.parent
repo = Path('/workspace/contextra-analytics-runtime-lifecycle-refactor')
digest = lambda p: hashlib.sha256(p.read_bytes()).hexdigest()
files = []
for line in (root / 'results/SHA256SUMS').read_text().splitlines():
    expected, name = line.split('  ', 1)
    assert digest(root / 'results' / name) == expected, name
    files.append(name)
fingerprints = json.loads((root / 'results/source_fingerprints.json').read_text())
for name, expected in fingerprints.items():
    assert digest(repo / name) == expected, name
docs = [
    'docs/integration/FIGHT_R5_WEB_CONFIG.ko.md',
    'docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20261031T103126+0900-decision-fight-r5-runtime-contract.md',
    'docs/profiles/ltb1021/topics/runtime-lifecycle/run/20261031T103126+0900-run-fight-r5-runtime-integration.md',
]
checked = []
for name in docs:
    path = repo / name
    for target in re.findall(r'\]\(([^)]+)\)', path.read_text()):
        parsed = urlsplit(target)
        if parsed.scheme or not parsed.path:
            continue
        linked = (path.parent / unquote(parsed.path)).resolve()
        assert linked.is_file(), (name, target)
        checked.append(dict(document=name, target=target))
(root / 'documentation').mkdir(exist_ok=True)
for name in docs:
    shutil.copy2(repo / name, root / 'documentation' / Path(name).name)
report = dict(status='PASS', transfer_files=len(files), source_files=len(fingerprints),
    links=checked, source_head='ac1191a8d042074ab9a4d1ea3d99835b99983cd7',
    deployment=False, git_mutation=False)
(root / 'reports/closeout_validation.json').write_text(json.dumps(report, indent=2) + '\n')
manifest = dict(schema_version=1, run=root.name, validation='results/final_validation.json',
    transfer_checksums='results/SHA256SUMS', source_fingerprints='results/source_fingerprints.json',
    documentation={p.name:digest(p) for p in sorted((root/'documentation').glob('*.md'))},
    scope='Source and CPU isolated verification only; no deployment or operating configuration changes')
(root / 'manifest.json').write_text(json.dumps(manifest, indent=2) + '\n')
sys.path.insert(0, str(root.parent / '2026-10-29_contextra-fight-b-refine_r01/helpers'))
import control_refine as controller
remote = controller.old.RB + '/' + root.name
for item in ('reports', 'documentation', 'helpers', 'manifest.json', 'checkpoint.ko.md'):
    controller.old.scp(str(root / item), 'si@58.233.207.31:' + remote + '/')
print(json.dumps(dict(status='PASS', files=len(files), source_files=len(fingerprints), document_links=len(checked))))
