"""Create a portable delivery archive without task logs or previous revisions."""
from pathlib import Path
import hashlib,zipfile
root=Path(__file__).resolve().parent
names=['README.md','kit.glb','kit.json','materials.json','kit_source.blend','build_kit.py','geometry.py','prepare_materials.py','make_sheets.py','uv_check.py','validate_kit.py','browser_check.py','package_kit.py','kit_sheet.png','material_sheet.png','details_openings.png','details_exterior.png','details_roof.png','clay_check.png','reverse_check.png','runtime_check.json','audit.json','validation.json','uv_validation.json','build_evidence.json','REVIEW.md','critic_final.md']
files=[root/n for n in names]
for folder in ['materials','textures','viewer','cards']:files.extend(p for p in (root/folder).rglob('*') if p.is_file())
files.extend(root.glob('runtime_*.png'))
assert all(p.exists() for p in files)
files=sorted(set(files));checks=root/'checksums.sha256';checks.write_text(''.join(hashlib.sha256(p.read_bytes()).hexdigest()+'  '+str(p.relative_to(root))+'\n' for p in files));files.append(checks)
with zipfile.ZipFile(root/'modern-atom-kit-v1.zip','w',zipfile.ZIP_DEFLATED,compresslevel=6) as z:
 for p in files:z.write(p,'modern-atom-kit-v1/'+str(p.relative_to(root)))
print('Packaged',len(files),'files;', (root/'modern-atom-kit-v1.zip').stat().st_size,'bytes')
