Files
ARCADIA-Studio/harness/experiments/navigation-native-440-20260913/archive-builder.py
T

96 lines
5.4 KiB
Python

"""Copy the already closed native440 evidence; never execute a saved helper."""
from pathlib import Path
import hashlib
import json
import sys
if sys.flags.optimize:
raise SystemExit('Optimized Python is forbidden')
ROOT = Path(__file__).resolve().parents[1]
DEST = ROOT / '.local/n44d'
REL = 'harness/experiments/navigation-native-440-20260913'
OUT = DEST / REL
TRIAL = ROOT / '.local/native-qa/navigation-palette-20260913-01'
BASE = 'cccd66c5d522497dbecb28ce722644848943d009'
SOURCE = '44095f78c28b79d6d085863dc928adba8e24d955'
ORACLE = 'e1240295bd114d23d3f67a69e6b38bdb2e25bb0d'
def require(value, message):
if not value:
raise RuntimeError(message)
def identity(path):
data = path.read_bytes()
return {'bytes': len(data), 'sha256': hashlib.sha256(data).hexdigest()}
def read(path):
return json.loads(path.read_bytes())
require(not OUT.exists(), 'Archive output already exists')
require(read(TRIAL / 'closure.json')['exit'] == 0, 'Actual closure required')
OUT.mkdir(parents=True)
files = []
references = []
def copy(source, relative):
require(source.is_file() and not source.is_symlink(), str(source))
require(source.suffix.lower() not in ('.exe', '.dll', '.rlib', '.rmeta', '.pdb'), 'No binaries/caches')
target = OUT / relative
require(not target.exists(), 'Duplicate output: ' + relative)
before = source.read_bytes()
target.parent.mkdir(parents=True, exist_ok=True)
target.write_bytes(before)
require(source.read_bytes() == target.read_bytes() == before, 'Changed while copying: ' + str(source))
files.append({'path': target.relative_to(DEST).as_posix(), 'original': source.relative_to(ROOT).as_posix(), **identity(target)})
def tree(source, relative):
require(source.is_dir(), str(source))
for item in sorted(source.rglob('*')):
require(not item.is_symlink(), str(item))
if item.is_file():
copy(item, relative + '/' + item.relative_to(source).as_posix())
for folder in ['evidence', 'checkpoints', 'source-baseline', 'compact-baseline', 'lifecycle-baseline', 'topology-baseline', 'source-rename-expected']:
tree(TRIAL / folder, 'raw/trial/' + folder)
for folder in sorted(TRIAL.glob('checkpoint-*')):
require(set(p.name for p in folder.iterdir()) == {'run.json', 'stdout.log', 'stderr.log', 'verified-core-inputs.json'}, 'Unexpected oracle-run inventory')
tree(folder, 'raw/trial/' + folder.name)
for name in ['launch-request.json', 'launch.json', 'closure.json', 'stdout.log', 'stderr.log', 'preparation.json', 'source-example-preparation.json']:
copy(TRIAL / name, 'raw/trial/' + name)
for name in ['navigation-native-partial-independent-review-20260913.md', 'navigation-native-final-independent-review-20260913.md', 'navigation-native-final-independent-audit-20260913.json']:
copy(ROOT / '.local' / name, 'review/' + name)
for name in ['checkpoint-navigation-palette-20260913.py', 'checkpoint-navigation-palette-20260913-handoff.md', 'navigation-palette-native-session-command-r2.py', 'navigation-selection-native-final-44095f7.json', 'navigation-native-launch-r2-20260913.log', 'navigation-preview-details-scroll-finding-20260913.md']:
copy(ROOT / '.local' / name, 'raw/helpers/' + name)
copy(ROOT / '.local/native-qa/navigation-selection-stage-44095f7/manifest.json', 'raw/stage/manifest.json')
copy(Path(__file__).resolve(), 'archive-builder.py')
def reference(path, original=None):
require((DEST / path).is_file(), 'Missing published reference: ' + path)
record = {'path': path, 'commit': BASE, **identity(DEST / path)}
if original:
require((ROOT / original).read_bytes() == (DEST / path).read_bytes(), 'Published/local reference differs: ' + original)
record['original'] = original
references.append(record)
prior = 'harness/experiments/navigation-440-windows-20260913/'
reference(prior + 'manifest.json')
reference(prior + 'README.md')
reference(prior + 'verify.py')
for name in ['result.json', 'inputs.json', 'environment.json', 'cargo.jsonl', 'cargo.stderr.log']:
original = '.local/navigation-palette-gates-20260913/artifacts-44095f7/' + name
reference(prior + 'raw/' + original, original)
prep = 'harness/experiments/navigation-native-preparation-e124029-20260913/'
reference(prep + 'manifest.json')
reference(prep + 'README.md')
for name in ['native-qa/navigation-oracle-e124029/build.json', 'run-navigation-palette-oracle.py', 'navigation-palette-native-oracle.rs', 'build-navigation-palette-probe.py']:
reference(prep + 'evidence/.local/' + name, '.local/' + name)
reference('harness/experiments/navigation-palette-e124029-windows-20260913/gates/list-e124029.inputs.json', '.local/navigation-palette-gates-20260913/list-e124029.inputs.json')
manifest = {'schema': 'closed-native440-evidence-v1', 'source': SOURCE, 'oracle_source': ORACLE, 'publication_base': BASE,
'scope': 'Closed native440 trial, known Details-to-Preview FAIL preserved; no complete native/package acceptance.',
'files': files, 'references': references,
'omitted': 'Executables, runtime binaries and mutable caches are identified by original receipts, not included. Final work trees equal their final snapshots; profile/temp are not archived.'}
(OUT / 'manifest.pending.json').write_text(json.dumps(manifest, indent=2) + '\n', encoding='utf-8')
print(json.dumps({'output': str(OUT), 'raw_files': len(files), 'references': len(references), 'scope': 'Copied raw bytes; pending README/report/verifier and final manifest.'}))