133 lines
5.2 KiB
Python
133 lines
5.2 KiB
Python
#!/usr/bin/env python3
|
|
import re
|
|
from typing import Any
|
|
|
|
|
|
SCRIPT_INTERFACE = "internal-module"
|
|
SCRIPT_INTERFACE_REASON = "Imported by world_class_evidence_contract.py to validate provider-backed holdout execution evidence from run rows."
|
|
|
|
SHA256_RE = re.compile(r"^[0-9a-fA-F]{64}$")
|
|
|
|
|
|
def add_error(errors: list[str], condition: bool, message: str) -> None:
|
|
if not condition:
|
|
errors.append(message)
|
|
|
|
|
|
def real_int(value: Any) -> int | None:
|
|
return value if isinstance(value, int) and not isinstance(value, bool) else None
|
|
|
|
|
|
def summary(payload: dict[str, Any]) -> dict[str, Any]:
|
|
value = payload.get("summary", {})
|
|
return value if isinstance(value, dict) else {}
|
|
|
|
|
|
def normalized(value: Any) -> str:
|
|
return str(value or "").strip().casefold()
|
|
|
|
|
|
def run_rows(execution: dict[str, Any]) -> list[dict[str, Any]]:
|
|
runs = execution.get("runs", [])
|
|
return [item for item in runs if isinstance(item, dict)] if isinstance(runs, list) else []
|
|
|
|
|
|
def positive_duration(value: Any) -> bool:
|
|
return isinstance(value, (int, float)) and not isinstance(value, bool) and value > 0
|
|
|
|
|
|
def observed_usage(run: dict[str, Any]) -> bool:
|
|
usage = run.get("usage", {})
|
|
if not isinstance(usage, dict) or usage.get("estimated") is not False:
|
|
return False
|
|
token_values = [
|
|
real_int(usage.get("input_tokens")),
|
|
real_int(usage.get("output_tokens")),
|
|
real_int(usage.get("total_tokens")),
|
|
]
|
|
return all(value is not None and value > 0 for value in token_values)
|
|
|
|
|
|
def provider_model_runs(execution: dict[str, Any], provenance: dict[str, Any]) -> list[dict[str, Any]]:
|
|
expected_provider = normalized(provenance.get("provider"))
|
|
expected_model = normalized(provenance.get("model"))
|
|
matches: list[dict[str, Any]] = []
|
|
for run in run_rows(execution):
|
|
if run.get("status") != "pass":
|
|
continue
|
|
if run.get("model_executed") is not True or run.get("execution_mode") != "model":
|
|
continue
|
|
if normalized(run.get("provider")) != expected_provider:
|
|
continue
|
|
if normalized(run.get("model")) != expected_model:
|
|
continue
|
|
if not observed_usage(run):
|
|
continue
|
|
if not positive_duration(run.get("duration_ms")):
|
|
continue
|
|
if not SHA256_RE.match(str(run.get("output_sha256", "")).strip()):
|
|
continue
|
|
matches.append(run)
|
|
return matches
|
|
|
|
|
|
def validate_provider_execution_report(
|
|
execution: dict[str, Any],
|
|
provenance: dict[str, Any],
|
|
errors: list[str],
|
|
) -> None:
|
|
execution_summary = summary(execution)
|
|
runs = run_rows(execution)
|
|
add_error(errors, execution.get("ok") is True, "provider-holdout output execution report ok must be true")
|
|
add_error(errors, bool(runs), "provider-holdout output execution report must include run rows")
|
|
|
|
computed_model_runs = sum(1 for run in runs if run.get("model_executed") is True)
|
|
computed_timing = sum(1 for run in runs if run.get("duration_ms") is not None)
|
|
computed_token_observed = sum(1 for run in runs if isinstance(run.get("usage"), dict) and run["usage"].get("estimated") is False)
|
|
computed_failures = sum(1 for run in runs if run.get("status") != "pass")
|
|
add_error(
|
|
errors,
|
|
real_int(execution_summary.get("model_executed_count")) == computed_model_runs,
|
|
"provider-holdout output execution summary.model_executed_count must match model-executed run rows",
|
|
)
|
|
add_error(
|
|
errors,
|
|
real_int(execution_summary.get("timing_observed_count")) == computed_timing,
|
|
"provider-holdout output execution summary.timing_observed_count must match timed run rows",
|
|
)
|
|
add_error(
|
|
errors,
|
|
real_int(execution_summary.get("token_observed_count")) == computed_token_observed,
|
|
"provider-holdout output execution summary.token_observed_count must match non-estimated usage rows",
|
|
)
|
|
add_error(
|
|
errors,
|
|
real_int(execution_summary.get("failure_count")) == computed_failures,
|
|
"provider-holdout output execution summary.failure_count must match failed run rows",
|
|
)
|
|
add_error(
|
|
errors,
|
|
bool(real_int(execution_summary.get("model_executed_count")) and execution_summary["model_executed_count"] > 0),
|
|
"provider-holdout output execution summary.model_executed_count must be >0",
|
|
)
|
|
add_error(
|
|
errors,
|
|
bool(real_int(execution_summary.get("timing_observed_count")) and execution_summary["timing_observed_count"] > 0),
|
|
"provider-holdout output execution summary.timing_observed_count must be >0",
|
|
)
|
|
add_error(
|
|
errors,
|
|
bool(real_int(execution_summary.get("token_observed_count")) and execution_summary["token_observed_count"] > 0),
|
|
"provider-holdout output execution summary.token_observed_count must be >0",
|
|
)
|
|
add_error(
|
|
errors,
|
|
execution_summary.get("failure_count") == 0,
|
|
"provider-holdout output execution summary.failure_count must be 0",
|
|
)
|
|
add_error(
|
|
errors,
|
|
bool(provider_model_runs(execution, provenance)),
|
|
"provider-holdout output execution runs must include a passing model run with matching provider, model, timing, non-estimated usage, and output hash",
|
|
)
|