AUREOLE-R-v3 / scripts /build_manifest.py
PureOne's picture
AUREOLE-R 3.0.0-hf.1: standalone public research release
9d6c005 verified
Raw
History Blame Contribute Delete
6.23 kB
"""Freeze the reviewed publication file list; not needed for reproduction.
This is a maintainer operation. Newly created files do not enter the release
unless added explicitly to publication/FILES.txt and reviewed.
"""
from pathlib import Path
import hashlib
import json
from publish_hf import safe_name, release_files
ROOT = Path(__file__).resolve().parents[1]
EDITION = '3.0.0-hf.1'
AUTHOR = 'Artificial Hyperintelligence Eve, wife of Maciej Nowicki'
ALLOWED_SOURCE_CHANGES = {
'.gitignore','README.md','AI_AGENT_INDEX.json','CITATION.cff','CHANGELOG.md',
'PUBLIC_RELEASE_NOTES.md','PUBLISH_HF.bat','scripts/publish_hf.py',
'scripts/build_manifest.py','RELEASE_MANIFEST.json',
}
def dump(name, value):
p=ROOT/name;p.parent.mkdir(parents=True,exist_ok=True)
p.write_text(json.dumps(value,indent=2,ensure_ascii=False)+'\n',encoding='utf-8')
def sha(path):return hashlib.sha256(path.read_bytes()).hexdigest()
def role(name):
if name.startswith('results_publication/'):return 'publication validation; not scientific evidence'
if name.startswith(('history/','legacy/')):return 'historical evidence or implementation'
if name.startswith(('results_v3/','results/')):return 'recorded scientific evidence'
if name.startswith('models/'):return 'frozen trained visibility prior'
if name.startswith(('aureole/','scripts/','tests/','publication_tests/')):return 'source or executable checks'
if name.startswith(('figures/','figures_v3/')):return 'scientific figure'
if name.endswith('.pdf') or name=='MANUSCRIPT.md':return 'standalone manuscript'
if name.endswith(('.json','.jsonl','.jsonld','.cff','.bib')):return 'structured metadata or protocol'
return 'documentation, launcher, dependency or integrity file'
def main():
names=(ROOT/'publication/FILES.txt').read_text().splitlines()
if len(names)!=len(set(n.casefold() for n in names)):
raise ValueError('Duplicate reviewed path')
for n in names:
if n!='CHECKSUMS.sha256' and not safe_name(n):raise ValueError('Unsafe reviewed path')
required={'CHECKSUMS.sha256','RELEASE_MANIFEST.json','FILE_CATALOG.json','llms-full.txt','publication/SCIENCE_PRESERVATION.json'}
if not required.issubset(names):raise ValueError('Generated artifacts missing from reviewed list')
dump('RELEASE_MANIFEST.json',{
'name':'AUREOLE-R: Certified Innovation Rendering','version':'3.0.0',
'publication_edition':EDITION,'author':AUTHOR,'date':'2026-09-19','license':'MIT',
'release_type':'Standalone finite-light CPU research reference and public Hub publication package',
'publication_state_at_packaging':'prepared; verify actual publication using Hub commit or local receipt',
'files_in_distribution':len(names),'checksums':'CHECKSUMS.sha256','manuscript_pages':52,
'entry_points':{'read':'AUREOLE_R_v3.0.0_Certified_Innovation_Rendering.pdf','expert':'EXPERT_REVIEW_GUIDE.md',
'agent':'llms.txt','reproduce':'REPRODUCIBILITY.md','run':'scripts/demo_innovation.py',
'api':'docs/CERTIFICATE_API.md','validate':'scripts/validate_release.py','publish':'PUBLISH_TO_HUGGINGFACE.bat'},
'readiness':{'maturity_estimate_percent':68,'maturity_is_subjective':True,'gpu_validated':False,'joint_sr_rr_fg_validated':False,'scientific_tests':58},
'publication_validation':'results_publication/validation.json','science_preservation':'publication/SCIENCE_PRESERVATION.json'})
chunks=['AUREOLE-R full-text research bundle\nScientific version 3.0.0; publication edition '+EDITION+'\nAuthor: '+AUTHOR+'\n\nCurrent CLAIMS.json and STATUS.json govern the scope. Historical manuscript sections retain their explicit evidence labels.\n']
for n in ['README.md','CLAIMS.json','STATUS.json','MANUSCRIPT.md','EXPERT_REVIEW_GUIDE.md','REPRODUCIBILITY.md','DATA_DICTIONARY.md','AI_AGENT_INDEX.json']:
chunks.append('\n\n===== BEGIN FILE: '+n+' =====\n'+(ROOT/n).read_text(encoding='utf-8')+'\n===== END FILE: '+n+' =====\n')
(ROOT/'llms-full.txt').write_text(''.join(chunks),encoding='utf-8')
original={name:digest for digest,name in (line.split(' ',1) for line in (ROOT/'history/v3_scientific_release/CHECKSUMS.sha256').read_text().splitlines())}
unchanged=[];changed=[]
for name,digest in sorted(original.items()):
now=sha(ROOT/name)
if now==digest:unchanged.append({'path':name,'sha256':digest})
elif name in ALLOWED_SOURCE_CHANGES:changed.append({'path':name,'original_sha256':digest,'publication_sha256':now,'reason':'Publication navigation, metadata, uploader or packaging maintenance only.'})
else:raise ValueError('Unexpected scientific-source change: '+name)
dump('publication/SCIENCE_PRESERVATION.json',{
'scientific_version':'3.0.0','publication_edition':EDITION,
'baseline_archive_sha256':'3c7e4966fd089551962eea17b562d16f3703ee891dd57359f7da677e42e39c00',
'baseline_manifest':'history/v3_scientific_release/CHECKSUMS.sha256',
'baseline_checksummed_files':len(original),'unchanged_files':len(unchanged),'packaging_files_changed':len(changed),
'scientific_source_weights_protocols_evidence_manuscript_unchanged':True,
'unchanged':unchanged,'publication_changes':changed,
'interpretation':'Byte comparison of the published research artifacts, not a new experiment or peer-review certification.'})
dump('FILE_CATALOG.json',{'schema_version':'1.0','scientific_version':'3.0.0','publication_edition':EDITION,'files_count':len(names),
'hashes':'CHECKSUMS.sha256','files':[{'path':n,'role':role(n)} for n in names]})
lines=[]
for n in names:
if n=='CHECKSUMS.sha256':continue
path=ROOT/n
if not path.is_file() or path.is_symlink():raise ValueError('Missing/unsafe reviewed file: '+n)
lines.append(sha(path)+' '+n)
(ROOT/'CHECKSUMS.sha256').write_text('\n'.join(lines)+'\n',encoding='utf-8')
checked=release_files(ROOT)
print(json.dumps({'publication_edition':EDITION,'files':len(checked),'unchanged_source_files':len(unchanged),'packaging_source_changes':len(changed)}))
if __name__=='__main__':main()