import hashlib
import json
import shutil
from pathlib import Path

P=Path(__file__).resolve().parent
main=P.parents[3]/'zhctproject'/'ai_api'
old=json.loads((P/'source-frozen-sha.json').read_text())
accepted={'app/common/model/staff/Staff.php':'3ee8723072f2f24c3b9f5c2b70167545416a25098f3b4246d8926655b2385ffe',
          'app/store/service/investigate/NutritionLack.php':'73fd850b8b538e49434ad88247962cd11be27d71c11183ec1563d7975e9bafad'}
final=dict(old['files'])
for name,sha in old['files'].items():
    actual=hashlib.sha256((P/'source'/name).read_bytes()).hexdigest()
    assert actual==sha, name+' original clone drift before final stage'
for name,sha in accepted.items():
    assert hashlib.sha256((main/name).read_bytes()).hexdigest()==sha
    preserved=P/'private/source-original'/name
    preserved.parent.mkdir(parents=True,exist_ok=True)
    shutil.copy2(P/'source'/name,preserved)
    preserved.chmod(0o600)
    shutil.copy2(main/name,P/'source'/name)
    final[name]=sha
assert {k for k in final if final[k]!=old['files'][k]}==set(accepted)
(P/'source-final-sha.json').write_text(json.dumps({'scope':'Only Root-applied exact two source changes; original6168 pins retained separately','accepted_changes':accepted,'files':final},indent=2)+'\n')
print(json.dumps({'frozen_original':len(final),'approved_delta':2,'HTTP':0,'DML':0,'DDL':0}))
