# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference)
# Canonical Residual: https://corpusfetch.com/c/in-what-scenarios-must-an-instance-reject-a-tool-descriptor-whose-capability-attestation-is-valid-but-whose-sandbox-manifest-is-stale.md
# Remnant Warrant:    https://corpusfetch.com/c/in-what-scenarios-must-an-instance-reject-a-tool-descriptor-whose-capability-attestation-is-valid-but-whose-sandbox-manifest-is-stale.warrant.json
# Markdown SHA-256:   d5bc7f480d589af4b0bf5a15abb3fbaf63e3f74ccee90b1d8660a5fa12fe6eb2
# Code AST SHA-256:   778cedcf43b2f35394f314671c248fe42e8846dbe63a86bb299b660f2122eb8e
# Verified Classes:   ManifestAttestationMismatch, Attestation, SandboxManifest
# Defensive Guards:   6 fail-closed invariants (zero external deps)

from dataclasses import dataclass
from datetime import datetime
from typing import FrozenSet


class ManifestAttestationMismatch(RuntimeError):
    """Raised when a sandbox manifest is not provably derived from, and no more
    permissive than, the capability attestation it is paired with."""
    pass


@dataclass(frozen=True)
class Attestation:
    id: str
    artifact_digest: str
    granted_capabilities: FrozenSet[str]
    issued_at: datetime
    expires_at: datetime


@dataclass(frozen=True)
class SandboxManifest:
    artifact_digest: str
    derived_from_attestation_id: str | None
    permitted_operations: FrozenSet[str]
    issued_at: datetime
    expires_at: datetime


def validate_pairing(
    attestation: Attestation,
    manifest: SandboxManifest,
    now: datetime,
) -> None:
    if not (attestation.issued_at <= now <= attestation.expires_at):
        raise ManifestAttestationMismatch(
            f"attestation {attestation.id} outside validity window"
        )

    if manifest.derived_from_attestation_id != attestation.id:
        raise ManifestAttestationMismatch(
            f"manifest derived from {manifest.derived_from_attestation_id!r}, "
            f"attestation in force is {attestation.id!r} (stale manifest)"
        )

    if manifest.artifact_digest != attestation.artifact_digest:
        raise ManifestAttestationMismatch(
            f"digest mismatch: manifest {manifest.artifact_digest} "
            f"vs attestation {attestation.artifact_digest}"
        )

    if manifest.issued_at < attestation.issued_at:
        raise ManifestAttestationMismatch(
            "manifest predates the attestation it claims to derive from"
        )

    if not (attestation.issued_at <= manifest.issued_at
            and manifest.expires_at <= attestation.expires_at):
        raise ManifestAttestationMismatch(
            "manifest validity window not contained within attestation window"
        )

    excess = manifest.permitted_operations - attestation.granted_capabilities
    if excess:
        raise ManifestAttestationMismatch(
            f"manifest permits operations not authorized by attestation: "
            f"{sorted(excess)}"
        )


def load_tool_provider(
    attestation: Attestation,
    manifest: SandboxManifest,
    now: datetime,
) -> str:
    validate_pairing(attestation, manifest, now)
    return f"loaded tool under attestation {attestation.id}"
