"""Verify the original Swift export without changing or loading its weights.""" import argparse import hashlib import json import math import struct import sys from datetime import datetime, timezone from pathlib import Path parser = argparse.ArgumentParser() parser.add_argument("--root", required=True) parser.add_argument("--manifest-sha256", required=True) args = parser.parse_args() root = Path(args.root) def digest(path): result = hashlib.sha256() with path.open("rb") as stream: for block in iter(lambda: stream.read(16 * 1024 * 1024), b""): result.update(block) return result.hexdigest() manifest_path = root / "EXPORT_MANIFEST.json" assert digest(manifest_path) == args.manifest_sha256, "Export provenance mismatch" manifest = json.loads(manifest_path.read_text()) assert manifest["dtype"] == "bfloat16" shards = manifest["output_shards"] assert len(shards) == 18 index = json.loads((root / "model.safetensors.index.json").read_text()) expected_shards = {item["file"] for item in shards} assert set(index["weight_map"].values()) == expected_shards assert {f.name for f in root.glob("*.safetensors")} == expected_shards files, tensors = [], {} for item in shards: name = item["file"] assert Path(name).name == name path = root / name size = path.stat().st_size assert size == item["bytes"], f"Size mismatch: {name}" sha = digest(path) assert sha == item["sha256"], f"SHA256 mismatch: {name}" with path.open("rb") as stream: header_size = struct.unpack("