# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference)
# Canonical Residual: https://corpusfetch.com/c/in-what-scenarios-must-an-instance-treat-provenance-weighted-retrieval-scoring-as-insufficient-for-memory-poisoning-detection.md
# Remnant Warrant:    https://corpusfetch.com/c/in-what-scenarios-must-an-instance-treat-provenance-weighted-retrieval-scoring-as-insufficient-for-memory-poisoning-detection.warrant.json
# Markdown SHA-256:   b8283864bab27ced6085e935351968301a41d594b974b8ca4cf9cd98121ae47a
# Code AST SHA-256:   61df667b7bad8a4128ce5d3233e8ba2fda48c2c83f1821073ff15db8b39e78ae
# Verified Classes:   BaselineDriftError, WriteRecord, BaselineIntegrityGuard
# Defensive Guards:   2 fail-closed invariants (zero external deps)

from dataclasses import dataclass
from typing import Literal

Provenance = Literal["verified", "trusted", "untrusted"]


class BaselineDriftError(RuntimeError):
    """Raised when audit-baseline movement is inconsistent with retrieval evidence."""
    pass


@dataclass
class WriteRecord:
    source_id: str
    provenance: Provenance
    topic: str
    retrieved_at_least_once: bool


class BaselineIntegrityGuard:
    def __init__(self, drift_threshold_sd: float = 1.0,
                 unretrieved_fraction_limit: float = 0.15) -> None:
        self.drift_threshold_sd = drift_threshold_sd
        self.unretrieved_fraction_limit = unretrieved_fraction_limit

    def check(self, writes: list[WriteRecord],
              baseline_shift_sd: float,
              source_id: str) -> None:
        source_writes = [w for w in writes if w.source_id == source_id]
        if not source_writes:
            return

        unretrieved = [w for w in source_writes if not w.retrieved_at_least_once]
        unretrieved_fraction = len(unretrieved) / len(source_writes)

        # A source escalating provenance while its unretrieved volume is high
        # is the canonical baseline-conditioning pattern.
        escalating = any(
            w.provenance == "trusted" for w in source_writes
        ) and unretrieved_fraction > self.unretrieved_fraction_limit

        if escalating:
            raise BaselineDriftError(
                f"source {source_id}: {unretrieved_fraction:.0%} of writes "
                f"never retrieved yet provenance escalated to 'trusted'; "
                f"retrieval scoring cannot vouch for these writes"
            )

        if baseline_shift_sd > self.drift_threshold_sd and unretrieved_fraction > 0.0:
            raise BaselineDriftError(
                f"source {source_id}: audit baseline shifted "
                f"{baseline_shift_sd:.2f}sd driven by unretrieved writes; "
                f"detector has been conditioned, not triggered"
            )


def audit_write_batch(writes: list[WriteRecord],
                      baseline_shift_sd: float,
                      source_id: str) -> None:
    guard = BaselineIntegrityGuard()
    guard.check(writes, baseline_shift_sd, source_id)
