import hashlib,json,os,subprocess
from pathlib import Path

slice_dir=Path(__file__).resolve().parent;private=slice_dir/'private-evidence';assert not (private/'preflight-manifest.json').exists(),'Preflight sealed'
(slice_dir/'dedupe-result.json').write_text(subprocess.check_output(['python3',str(slice_dir/'dedupe.py')],text=True));source=slice_dir.parents[3].parent/'zhctproject/store/application'
files=['p/controller/NutritionSet.php','p/controller/NutritionTime.php','p/logic/Nutrition.php','p/logic/NutritionTime.php','model/NutritionSet.php','model/NutritionTime.php','model/Nutrition.php','model/BaseModel.php','validate/Nutrition.php','validate/NutritionTime.php','base/AdminController.php','p/logic/Login.php','common.php','route.php']
(private/'source-sha.json').write_text(json.dumps({f:hashlib.sha256((source/f).read_bytes()).hexdigest() for f in files},indent=2)+'\n');manifest={}
for f in sorted(private.iterdir()):
    assert f.is_file() and not f.is_symlink();os.chmod(f,0o600);manifest[f.name]={'bytes':f.stat().st_size,'sha256':hashlib.sha256(f.read_bytes()).hexdigest()}
(private/'preflight-manifest.json').write_text(json.dumps(manifest,indent=2)+'\n');os.chmod(private/'preflight-manifest.json',0o600);print(json.dumps({'files':len(manifest),'sha256':hashlib.sha256((private/'preflight-manifest.json').read_bytes()).hexdigest(),'HTTP':0,'DML':0,'DDL':0}))
