feat(lab): freeze RAVNOVES00 R0 acceptance contract

This commit is contained in:
DCCONSTRUCTIONS
2026-07-28 02:24:51 +03:00
parent 65a72d40a8
commit a2fcaa7b39
8 changed files with 1581 additions and 0 deletions
@@ -0,0 +1,64 @@
{
"schema_version": "missioncore.e37-acceptance-profile/v1",
"profile_id": "e37-ravnoves00-r0-acceptance/v1",
"source": {
"session_id": "20260720T065719Z_viewer_live",
"display_name": "RAVNOVES00",
"materialization_id": "e30-materialization-841af926d8d28ab93538c46d8f31278a2234c4d1c12c7dc4dc296b249d59735a",
"engineering_generation_id": "e30-engineering-generation-62a4fea10dea9b77f69ceac1af5bf0e4928d9c7716083c22258a03670fe5bd4f",
"human_generation_id": "e30-review-generation-7982a882558d0be690b4c7092e328c080bfcbf52478a220452be7e887a588250"
},
"denominator": {
"expected_items": 486,
"label_provenance": "engineering-reviewed-with-human-exceptions",
"independent_ground_truth": false
},
"split": {
"strategy": "deterministic-source-stratum-range-holdout",
"seed": "ravnoves00-r0-validation-v1",
"validation_fraction": 0.3,
"mutable_after_publication": false
},
"ontology": {
"presence": [
"object-present",
"occupied-environment",
"background-or-noise",
"unknown"
],
"geometry_association": [
"object-associated",
"independent-occupied",
"rejected-nonobject",
"insufficient-support",
"unknown"
],
"freshness": [
"current",
"held",
"stale",
"unavailable",
"unknown"
]
},
"metrics": {
"presence_target": 0.9,
"geometry_association_target": 0.9,
"freshness_target": 0.9,
"accounting_target": 1.0,
"maximum_false_free_claims": 0,
"targets_apply_separately": true
},
"severity": {
"levels": [
"standard",
"medium",
"high"
],
"high_impact_failure_blocks_gate": true
},
"authority": {
"commands_enabled": false,
"navigation_or_safety_accepted": false
}
}
@@ -0,0 +1,290 @@
#!/usr/bin/env python3
"""Build a minimal immutable E37 package for Worker 006."""
from __future__ import annotations
import argparse
import hashlib
import json
import os
import shutil
import uuid
from datetime import UTC, datetime
from pathlib import Path
from typing import Any
from k1link.compute.e37_acceptance_contract import (
E37_PACKAGE_SCHEMA,
E37_PROFILE_SCHEMA,
)
_RUNTIME_FILES = {
"runtime/k1link/__init__.py": "src/k1link/__init__.py",
"runtime/k1link/compute/__init__.py": None,
"runtime/k1link/compute/e37_acceptance_contract.py": (
"src/k1link/compute/e37_acceptance_contract.py"
),
"runtime/run_e37_acceptance_contract.py": (
"experiments/perception/worker/run_e37_acceptance_contract.py"
),
"runtime/Invoke-E37AcceptanceContract.ps1": (
"experiments/perception/worker/Invoke-E37AcceptanceContract.ps1"
),
}
_GENERATED_COMPUTE_INIT = (
'"""Minimal E37 worker projection; import the contract module explicitly."""\n'
)
_INPUT_FILES = {
"materialization": ("manifest.json", "materialized-items.jsonl"),
"engineering": ("manifest.json", "engineering-decisions.jsonl"),
"human": ("manifest.json", "review-decisions.jsonl"),
}
class E37WorkerPackageError(RuntimeError):
"""The E37 package source or immutable package is invalid."""
def build_e37_worker_package(
*,
repository_root: Path,
materialization_root: Path,
engineering_generation_root: Path,
human_generation_root: Path,
profile_path: Path,
output_root: Path,
) -> Path:
"""Build or verify one content-addressed E37 worker package."""
repository = repository_root.resolve(strict=True)
profile_source = profile_path.resolve(strict=True)
profile = _read_json(profile_source)
if profile.get("schema_version") != E37_PROFILE_SCHEMA:
raise E37WorkerPackageError("E37 package profile is incompatible")
roots = {
"materialization": materialization_root.resolve(strict=True),
"engineering": engineering_generation_root.resolve(strict=True),
"human": human_generation_root.resolve(strict=True),
}
expected_ids = {
"materialization": profile["source"]["materialization_id"],
"engineering": profile["source"]["engineering_generation_id"],
"human": profile["source"]["human_generation_id"],
}
sources: dict[str, Path | None] = {}
for target, relative in _RUNTIME_FILES.items():
source = None if relative is None else repository / relative
if source is not None and (not source.is_file() or source.is_symlink()):
raise E37WorkerPackageError(f"E37 runtime source is invalid: {relative}")
sources[target] = source
sources["profile.json"] = profile_source
for kind, filenames in _INPUT_FILES.items():
root = roots[kind]
if root.name != expected_ids[kind]:
raise E37WorkerPackageError(f"E37 {kind} identity changed")
for filename in filenames:
source = root / filename
if not source.is_file() or source.is_symlink():
raise E37WorkerPackageError(f"E37 {kind} artifact is invalid")
sources[f"input/{kind}/{root.name}/{filename}"] = source
descriptors = []
for relative, source in sorted(sources.items()):
payload = (
_GENERATED_COMPUTE_INIT.encode()
if source is None
else source.read_bytes()
)
descriptors.append(
{
"path": relative,
"byte_length": len(payload),
"sha256": hashlib.sha256(payload).hexdigest(),
}
)
identity = {
"schema_version": E37_PACKAGE_SCHEMA,
"classification": "immutable-ravnoves00-r0-worker-input",
"source_ids": expected_ids,
"profile_sha256": _sha256(profile_source),
"artifact_paths": [row["path"] for row in descriptors],
"source_artifacts": descriptors,
"authority": {
"commands_enabled": False,
"navigation_or_safety_accepted": False,
},
}
identity_sha256 = hashlib.sha256(_canonical_json(identity)).hexdigest()
package_id = f"e37-worker-package-{identity_sha256}"
output = output_root.expanduser().absolute()
output.mkdir(mode=0o700, parents=True, exist_ok=True)
destination = output / package_id
if destination.exists():
validate_e37_worker_package(destination)
return destination
staging = output / f".{package_id}.{uuid.uuid4().hex}.tmp"
staging.mkdir(mode=0o700, exist_ok=False)
try:
for relative, source in sources.items():
target = staging / relative
target.parent.mkdir(mode=0o700, parents=True, exist_ok=True)
if source is None:
target.write_text(_GENERATED_COMPUTE_INIT, encoding="utf-8")
else:
shutil.copyfile(source, target)
artifacts = [
{
"kind": relative,
"path": relative,
"byte_length": (staging / relative).stat().st_size,
"sha256": _sha256(staging / relative),
}
for relative in sorted(sources)
]
manifest = {
"schema_version": E37_PACKAGE_SCHEMA,
"package_id": package_id,
"identity_sha256": identity_sha256,
"identity": identity,
"created_at_utc": datetime.now(UTC)
.isoformat(timespec="milliseconds")
.replace("+00:00", "Z"),
"artifacts": artifacts,
}
_write_json(staging / "manifest.json", manifest)
validate_e37_worker_package(staging, allow_staging=True)
os.replace(staging, destination)
except BaseException:
shutil.rmtree(staging, ignore_errors=True)
raise
validate_e37_worker_package(destination)
return destination
def validate_e37_worker_package(
root: Path,
*,
allow_staging: bool = False,
) -> dict[str, Any]:
"""Validate package identity, exact file set, and every member digest."""
resolved = root.resolve(strict=True)
manifest = _read_json(resolved / "manifest.json")
identity = manifest.get("identity")
identity_sha256 = manifest.get("identity_sha256")
package_id = manifest.get("package_id")
artifacts = manifest.get("artifacts")
expected_name = (
isinstance(package_id, str)
and (
resolved.name == package_id
or (
allow_staging
and resolved.name.startswith(f".{package_id}.")
and resolved.name.endswith(".tmp")
)
)
)
if (
manifest.get("schema_version") != E37_PACKAGE_SCHEMA
or not isinstance(identity, dict)
or not isinstance(identity_sha256, str)
or hashlib.sha256(_canonical_json(identity)).hexdigest() != identity_sha256
or package_id != f"e37-worker-package-{identity_sha256}"
or not expected_name
or not isinstance(artifacts, list)
):
raise E37WorkerPackageError("E37 worker package identity is invalid")
expected_paths = set(identity.get("artifact_paths", []))
actual_paths = {
path.relative_to(resolved).as_posix()
for path in resolved.rglob("*")
if path.is_file()
}
if (
not expected_paths
or actual_paths != expected_paths | {"manifest.json"}
or len(artifacts) != len(expected_paths)
):
raise E37WorkerPackageError("E37 worker package file set changed")
observed: set[str] = set()
for row in artifacts:
if not isinstance(row, dict):
raise E37WorkerPackageError("E37 worker package artifact is invalid")
relative = row.get("path")
path = resolved / str(relative)
if (
not isinstance(relative, str)
or relative not in expected_paths
or relative in observed
or Path(relative).is_absolute()
or ".." in Path(relative).parts
or not path.is_file()
or path.is_symlink()
or row.get("kind") != relative
or row.get("byte_length") != path.stat().st_size
or row.get("sha256") != _sha256(path)
):
raise E37WorkerPackageError("E37 worker package artifact changed")
observed.add(relative)
if observed != expected_paths:
raise E37WorkerPackageError("E37 worker package artifact coverage changed")
return manifest
def _canonical_json(value: object) -> bytes:
return json.dumps(
value,
sort_keys=True,
separators=(",", ":"),
allow_nan=False,
).encode()
def _sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as stream:
while chunk := stream.read(1024 * 1024):
digest.update(chunk)
return digest.hexdigest()
def _read_json(path: Path) -> dict[str, Any]:
value = json.loads(path.read_text(encoding="utf-8-sig"))
if not isinstance(value, dict):
raise E37WorkerPackageError(f"JSON object expected: {path.name}")
return value
def _write_json(path: Path, value: object) -> None:
with path.open("x", encoding="utf-8", newline="\n") as stream:
json.dump(value, stream, indent=2, sort_keys=True)
stream.write("\n")
stream.flush()
os.fsync(stream.fileno())
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--repository-root", type=Path, required=True)
parser.add_argument("--materialization", type=Path, required=True)
parser.add_argument("--engineering-generation", type=Path, required=True)
parser.add_argument("--human-generation", type=Path, required=True)
parser.add_argument("--profile", type=Path, required=True)
parser.add_argument("--output-root", type=Path, required=True)
args = parser.parse_args()
package = build_e37_worker_package(
repository_root=args.repository_root,
materialization_root=args.materialization,
engineering_generation_root=args.engineering_generation,
human_generation_root=args.human_generation,
profile_path=args.profile,
output_root=args.output_root,
)
print(package)
return 0
if __name__ == "__main__":
raise SystemExit(main())
@@ -0,0 +1,52 @@
#!/usr/bin/env python3
"""Build the immutable RAVNOVES00 R0 acceptance contract."""
from __future__ import annotations
import argparse
import json
import os
from pathlib import Path
from k1link.compute.e37_acceptance_contract import (
build_e37_acceptance_contract,
)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--materialization", type=Path, required=True)
parser.add_argument("--engineering-generation", type=Path, required=True)
parser.add_argument("--human-generation", type=Path, required=True)
parser.add_argument("--profile", type=Path, required=True)
parser.add_argument("--output-root", type=Path, required=True)
parser.add_argument("--worker-node", default=os.environ.get("COMPUTERNAME"))
args = parser.parse_args()
result = build_e37_acceptance_contract(
materialization_root=args.materialization,
engineering_generation_root=args.engineering_generation,
human_generation_root=args.human_generation,
profile_path=args.profile,
output_root=args.output_root,
worker_node=args.worker_node,
)
print(
json.dumps(
{
"result_id": result.result_id,
"result_root": str(result.result_root),
"accepted": result.accepted,
"metrics": result.report["metrics"],
"rejection_reasons": result.report["acceptance"][
"rejection_reasons"
],
},
ensure_ascii=False,
sort_keys=True,
)
)
return 0 if result.accepted else 2
if __name__ == "__main__":
raise SystemExit(main())
@@ -0,0 +1,134 @@
[CmdletBinding()]
param(
[Parameter(Mandatory = $true)]
[string]$PackageRoot,
[string]$OutputRoot = "D:\NDC_MISSIONCORE\runtime\derived\e37-acceptance",
[string]$ContainerImage = "nvcr.io/nvidia/tritonserver:26.06-py3@sha256:58df7489c3f2276f9591d500a012dee03e23d35543ce3c390b4c001e6bf90794",
[ValidateRange(1, 1000)]
[int]$FreeGiBFloor = 300
)
$ErrorActionPreference = "Stop"
$ProgressPreference = "SilentlyContinue"
function Assert-LastExitCode([string]$Operation) {
if ($LASTEXITCODE -ne 0) {
throw "$Operation failed with exit code $LASTEXITCODE"
}
}
function Resolve-DDirectory([string]$Path, [string]$Label) {
$item = Get-Item -LiteralPath (Resolve-Path -LiteralPath $Path).Path -Force
$root = [IO.Path]::GetPathRoot($item.FullName).TrimEnd("\")
if (
-not $item.PSIsContainer -or
($item.Attributes -band [IO.FileAttributes]::ReparsePoint) -or
$root -ine "D:"
) {
throw "$Label must be a real D: directory"
}
return $item.FullName
}
function Convert-ToDockerPath([string]$Path) {
return $Path.Replace("\", "/")
}
function Assert-FreeSpace([string]$Phase) {
$free = [int64](Get-PSDrive -Name D).Free
$floor = [int64]$FreeGiBFloor * 1GB
Write-Host (
"DISK_GUARD PHASE={0} DRIVE=D FREE_BYTES={1} FREE_GIB={2} FLOOR_GIB={3}" -f
$Phase, $free, [math]::Round($free / 1GB, 3), $FreeGiBFloor
)
if ($free -lt ($floor + 1GB)) {
throw "D: lacks the guarded E37 reserve during $Phase"
}
return $free
}
$package = Resolve-DDirectory $PackageRoot "E37 package"
$packageManifestPath = Join-Path $package "manifest.json"
if (-not (Test-Path -LiteralPath $packageManifestPath -PathType Leaf)) {
throw "E37 package manifest is missing"
}
$packageManifest = Get-Content -LiteralPath $packageManifestPath -Raw |
ConvertFrom-Json
if (
$packageManifest.schema_version -ne "missioncore.e37-worker-package/v1" -or
$packageManifest.package_id -ne (Split-Path $package -Leaf) -or
$packageManifest.package_id -notmatch "^e37-worker-package-[a-f0-9]{64}$"
) {
throw "E37 package manifest is incompatible"
}
if (-not (Test-Path -LiteralPath $OutputRoot)) {
$null = New-Item -ItemType Directory -Path $OutputRoot
}
$output = Resolve-DDirectory $OutputRoot "E37 output root"
$freeBefore = Assert-FreeSpace "preflight"
& docker image inspect $ContainerImage *> $null
Assert-LastExitCode "Pinned E37 container image inspection"
$dockerPackage = Convert-ToDockerPath $package
$dockerOutput = Convert-ToDockerPath $output
$packageName = Split-Path $package -Leaf
$containerPackage = "/opt/e37-input/$packageName"
$command = @(
"run", "--rm",
"--network", "none",
"--read-only",
"--security-opt", "no-new-privileges:true",
"--cap-drop", "ALL",
"--pids-limit", "128",
"--tmpfs", "/tmp:rw,noexec,nosuid,size=64m",
"-e", "PYTHONDONTWRITEBYTECODE=1",
"-e", ("PYTHONPATH={0}/runtime" -f $containerPackage),
"-e", ("E37_WORKER_NODE={0}" -f $env:COMPUTERNAME),
"-v", ("{0}:{1}:ro" -f $dockerPackage, $containerPackage),
"-v", ("{0}:/output:rw" -f $dockerOutput),
"--entrypoint", "python3",
$ContainerImage,
("{0}/runtime/run_e37_acceptance_contract.py" -f $containerPackage),
"--package", $containerPackage,
"--output-root", "/output"
)
Write-Output ("PACKAGE_ID={0}" -f $packageManifest.package_id)
Write-Output ("PACKAGE_IDENTITY_SHA256={0}" -f $packageManifest.identity_sha256)
Write-Output ("CONTAINER_IMAGE={0}" -f $ContainerImage)
& docker @command
Assert-LastExitCode "E37 acceptance contract"
$matches = @(
Get-ChildItem -LiteralPath $output -Directory -Filter "e37-ravnoves-acceptance-*" |
Where-Object {
$manifestPath = Join-Path $_.FullName "manifest.json"
if (-not (Test-Path -LiteralPath $manifestPath -PathType Leaf)) {
return $false
}
$manifest = Get-Content -LiteralPath $manifestPath -Raw |
ConvertFrom-Json
return (
$manifest.schema_version -eq
"missioncore.e37-acceptance-contract/v1" -and
$manifest.acceptance_state -eq
"accepted-r0-source-scoped-contract" -and
$manifest.identity.execution.worker_node -eq $env:COMPUTERNAME
)
}
)
if ($matches.Count -ne 1) {
throw "E37 immutable result could not be resolved uniquely"
}
$resultRoot = $matches[0].FullName
$resultManifest = Get-Content -LiteralPath (
Join-Path $resultRoot "manifest.json"
) -Raw | ConvertFrom-Json
$freeAfter = Assert-FreeSpace "completed"
Write-Output ("RESULT_ROOT={0}" -f $resultRoot)
Write-Output ("RESULT_ID={0}" -f $resultManifest.result_id)
Write-Output ("ACCEPTANCE_STATE={0}" -f $resultManifest.acceptance_state)
Write-Output ("DISK_FREE_BYTES_BEFORE={0}" -f $freeBefore)
Write-Output ("DISK_FREE_BYTES_AFTER={0}" -f $freeAfter)
@@ -0,0 +1,128 @@
#!/usr/bin/env python3
"""Execute one immutable E37 package inside the bounded worker container."""
from __future__ import annotations
import argparse
import hashlib
import json
import os
from pathlib import Path
from typing import Any
from k1link.compute.e37_acceptance_contract import (
E37_PACKAGE_SCHEMA,
build_e37_acceptance_contract,
)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--package", type=Path, required=True)
parser.add_argument("--output-root", type=Path, required=True)
args = parser.parse_args()
package = args.package.resolve(strict=True)
manifest = _validate_package(package)
source_ids = manifest["identity"]["source_ids"]
result = build_e37_acceptance_contract(
materialization_root=(
package / "input" / "materialization" / source_ids["materialization"]
),
engineering_generation_root=(
package / "input" / "engineering" / source_ids["engineering"]
),
human_generation_root=(
package / "input" / "human" / source_ids["human"]
),
profile_path=package / "profile.json",
output_root=args.output_root,
worker_node=os.environ.get("E37_WORKER_NODE"),
)
print(
json.dumps(
{
"package_id": manifest["package_id"],
"result_id": result.result_id,
"result_root": str(result.result_root),
"accepted": result.accepted,
"metrics": result.report["metrics"],
},
ensure_ascii=False,
sort_keys=True,
)
)
return 0 if result.accepted else 2
def _validate_package(root: Path) -> dict[str, Any]:
manifest = _read_json(root / "manifest.json")
identity = manifest.get("identity")
identity_sha256 = manifest.get("identity_sha256")
package_id = manifest.get("package_id")
artifacts = manifest.get("artifacts")
if (
manifest.get("schema_version") != E37_PACKAGE_SCHEMA
or not isinstance(identity, dict)
or not isinstance(identity_sha256, str)
or hashlib.sha256(_canonical_json(identity)).hexdigest() != identity_sha256
or package_id != f"e37-worker-package-{identity_sha256}"
or root.name != package_id
or not isinstance(artifacts, list)
):
raise RuntimeError("E37 worker package identity is invalid")
expected = set(identity.get("artifact_paths", []))
actual = {
path.relative_to(root).as_posix()
for path in root.rglob("*")
if path.is_file()
}
if actual != expected | {"manifest.json"} or len(artifacts) != len(expected):
raise RuntimeError("E37 worker package file set changed")
observed: set[str] = set()
for row in artifacts:
relative = row.get("path") if isinstance(row, dict) else None
path = root / str(relative)
if (
not isinstance(relative, str)
or relative not in expected
or relative in observed
or Path(relative).is_absolute()
or ".." in Path(relative).parts
or not path.is_file()
or path.is_symlink()
or row.get("byte_length") != path.stat().st_size
or row.get("sha256") != _sha256(path)
):
raise RuntimeError("E37 worker package artifact changed")
observed.add(relative)
if observed != expected:
raise RuntimeError("E37 worker package artifact coverage changed")
return manifest
def _canonical_json(value: object) -> bytes:
return json.dumps(
value,
sort_keys=True,
separators=(",", ":"),
allow_nan=False,
).encode()
def _sha256(path: Path) -> str:
digest = hashlib.sha256()
with path.open("rb") as stream:
while chunk := stream.read(1024 * 1024):
digest.update(chunk)
return digest.hexdigest()
def _read_json(path: Path) -> dict[str, Any]:
value = json.loads(path.read_text(encoding="utf-8-sig"))
if not isinstance(value, dict):
raise RuntimeError(f"JSON object expected: {path.name}")
return value
if __name__ == "__main__":
raise SystemExit(main())