"""Package an already verified review, never regenerate the source or video."""
import ast
import hashlib
import json
from pathlib import Path

root=Path(__file__).resolve().parent.parent
label='아이서티_컨텍스트라_싸움_쓰러짐_자체촬영_원본01'
download=root/(label+'_검토자료')
v=json.loads((download/'validation/video_validation.json').read_text())
assert v['status']=='PASS_WITH_DISCLOSED_SOURCE_EXCLUSIONS' and v['frame_count']==31937 and v['max_relative_pts_error_seconds']<.001
assert (download/'validation/layout_review.json').is_file(),'Human-facing band review must precede publication'
for p in (root/'helpers').glob('*.py'):ast.parse(p.read_text())
(download/'00_README_ko.txt').write_bytes((root/'00_README_ko.txt').read_bytes())
manifest=dict(schema_version='contextra.frame-review.v1',lifecycle='durable-large',cleanup_candidate_at='manual-review',
    label=label,original_filename='2026-10-28 15_48_17 이동형 #3.mp4',original_sha256=v['source_sha256'],original_bytes=95295905,
    review_filename=v['review_filename'],review_sha256=v['review_sha256'],frame_count=v['frame_count'],
    numbering=v['numbering'],relative_pts_origin=0,excluded=v['excluded'],retained_segments=v['retained_segments'],
    unmarked_input_relative_to_run='clean_joined.mp4',unmarked_input_sha256=hashlib.sha256((root/'clean_joined.mp4').read_bytes()).hexdigest(),
    user_scenario_intervals='NOT_ASSIGNED',other_camera_sync='NOT_PERFORMED',
    semantic_analysis=False,pose_tracking_inference=False)
(download/'input_manifest.json').write_text(json.dumps(manifest,ensure_ascii=False,indent=2),encoding='utf-8')
helpers={p.name:hashlib.sha256(p.read_bytes()).hexdigest() for p in sorted((root/'helpers').glob('*.py'))}
(download/'validation/helper_sha256.json').write_text(json.dumps(helpers,indent=2),encoding='utf-8')
files={str(p.relative_to(download)):hashlib.sha256(p.read_bytes()).hexdigest() for p in sorted(download.rglob('*')) if p.is_file() and p.name!='SHA256SUMS.json'}
(download/'SHA256SUMS.json').write_text(json.dumps(files,ensure_ascii=False,indent=2),encoding='utf-8')
for name,digest in files.items():assert hashlib.sha256((download/name).read_bytes()).hexdigest()==digest
summary=dict(status='PASS_WITH_DISCLOSED_SOURCE_EXCLUSIONS',download=str(download),files=len(files),total_bytes=sum(p.stat().st_size for p in download.rglob('*') if p.is_file()),
    sha256_manifest=hashlib.sha256((download/'SHA256SUMS.json').read_bytes()).hexdigest(),helper_ast_count=len(helpers))
(root/'reports/package_validation.json').write_text(json.dumps(summary,ensure_ascii=False,indent=2),encoding='utf-8')
print(json.dumps(summary,ensure_ascii=False))
