imadreamerboy's picture
Expose reviewed GOMA evidence pages to judge
d4da0d7 verified
Raw
History Blame Contribute Delete
5.98 kB
#!/usr/bin/env python3
"""Verify static Space metadata, file hashes, source pins, and inert content."""
from __future__ import annotations
import hashlib
import json
import re
import sys
from pathlib import Path
PACKAGE = Path(__file__).resolve().parent
MANIFEST = json.loads((PACKAGE / "hash_manifest.json").read_text(encoding="utf-8"))
MINIMUM_PAGES_TEXT_CHARACTERS = 200
def sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as handle:
for block in iter(lambda: handle.read(1024 * 1024), b""):
digest.update(block)
return digest.hexdigest()
def check(condition: bool, message: str) -> bool:
if condition:
print(f"PASS {message}")
return True
print(f"FAIL {message}", file=sys.stderr)
return False
def front_matter(text: str) -> dict[str, str]:
lines = text.splitlines()
if not lines or lines[0] != "---":
return {}
values: dict[str, str] = {}
for line in lines[1:]:
if line == "---":
return values
if ":" in line:
key, value = line.split(":", 1)
values[key.strip()] = value.strip().strip('"')
return {}
def front_matter_tags(text: str) -> set[str]:
lines = text.splitlines()
if not lines or lines[0] != "---":
return set()
tags: set[str] = set()
reading_tags = False
for line in lines[1:]:
if line == "---":
return tags
if line == "tags:":
reading_tags = True
continue
if reading_tags and line.startswith(" - "):
tags.add(line.removeprefix(" - ").strip())
continue
if line and not line.startswith(" "):
reading_tags = False
return tags
def pages_markdown_files(package: Path = PACKAGE) -> list[Path]:
pages_directory = package / "pages"
return sorted(path for path in pages_directory.glob("**/*.md") if path.is_file())
def stripped_markdown(text: str) -> str:
text = re.sub(r"\[([^\]]+)\]\([^)]*\)", r"\1", text)
text = re.sub(r"`([^`]*)`", r"\1", text)
text = re.sub(r"(?m)^\s{0,3}[#>*-]+\s?", "", text)
return re.sub(r"\s+", " ", text).strip()
def mapped_author_claims(page_files: list[Path]) -> list[str]:
claims: list[str] = []
pattern = re.compile(r"^## Author claim mapped\s*$\n(.*?)(?=^## |\Z)", re.MULTILINE | re.DOTALL)
for page in page_files:
match = pattern.search(page.read_text(encoding="utf-8"))
if match:
claims.append(stripped_markdown(match.group(1)))
return claims
def main() -> int:
checks: list[bool] = []
required = ["README.md", "index.html", "styles.css", "LICENSE", "hash_manifest.json", "verify_package.py"]
required.extend(MANIFEST["mapped_claim_pages"])
checks.append(check(all((PACKAGE / item).is_file() for item in required), "required static files exist"))
metadata = front_matter((PACKAGE / "README.md").read_text(encoding="utf-8"))
checks.append(check(metadata.get("sdk") == "static", "README sdk is static"))
checks.append(check(metadata.get("app_file") == "index.html", "README app_file is index.html"))
discovery_tags = set(MANIFEST["required_discovery_tags"])
checks.append(check(discovery_tags.issubset(front_matter_tags((PACKAGE / "README.md").read_text(encoding="utf-8"))), "README has required discovery tags"))
page_files = pages_markdown_files()
page_text = "\n".join(stripped_markdown(page.read_text(encoding="utf-8")) for page in page_files)
checks.append(check(bool(page_files), "pages Markdown inputs exist"))
checks.append(check(len(page_text) >= MINIMUM_PAGES_TEXT_CHARACTERS, "pages stripped Markdown meets minimum length"))
mapped_pages = set(MANIFEST["mapped_claim_pages"])
actual_page_paths = {page.relative_to(PACKAGE).as_posix() for page in page_files}
checks.append(check(mapped_pages.issubset(actual_page_paths), "mapped claim pages are judge inputs"))
claims = mapped_author_claims(page_files)
checks.append(check(len(claims) == len(mapped_pages) and len(claims) == len(set(claims)), "claim wording is complete and non-duplicated"))
checks.append(check(not (PACKAGE / "claims").exists(), "no duplicate legacy claim directory"))
allowlist = set(MANIFEST["public_release_allowlist"])
actual_files = {
path.relative_to(PACKAGE).as_posix()
for path in PACKAGE.rglob("*")
if path.is_file() and "__pycache__" not in path.parts
}
checks.append(check(actual_files == allowlist, "public release allowlist is exact"))
for relative, expected in MANIFEST["package_file_sha256"].items():
path = PACKAGE / relative
checks.append(check(path.is_file() and sha256(path) == expected, f"hash matches: {relative}"))
source_artifacts = MANIFEST["official_source_artifacts"]
checks.append(check(MANIFEST["claim_feed"]["immutable_revision"] == "arXiv:2606.21528v1", "claim-feed revision is pinned"))
checks.append(check(all(item.get("sha256") and item.get("etag") for item in source_artifacts), "source hashes and ETags are pinned"))
checks.append(check(MANIFEST["package"]["evidence_tier"] == "source/theorem crosswalk", "evidence tier is explicit"))
checks.append(check(not MANIFEST["package"]["redistributes_paper_or_source_archive"], "no paper or source archive redistribution"))
package_text = "\n".join(
path.read_text(encoding="utf-8")
for path in PACKAGE.rglob("*")
if path.is_file() and path.suffix in {".md", ".html", ".css", ".json"}
)
forbidden = ["/" + "Users/", "file:" + "//", "<" + "script", "javascript" + ":", "hf" + "_"]
checks.append(check(not any(token in package_text for token in forbidden), "no private paths, tokens, or active content markers"))
if all(checks):
print("PASS static release candidate is internally consistent")
return 0
return 1
if __name__ == "__main__":
raise SystemExit(main())