framework/contracts
Why this package exists
Section titled “Why this package exists”Storage must not import Prometheus types. Telemetry must not import processing runners. When two layers need the same shape — a saturation snapshot, a probe metric row, a worker metric delta — it lives here as a plain DTO: no I/O, no prometheus_client.
Examples:
SaturationSlice— registry window stats that telemetry only emits (saturation).ProbeBindings/ProbeRow— opaque candidate payload + metrics; the step decides the winner (probe).WorkerMetricDelta— what multi-worker drivers merge before emit.
Modules
Section titled “Modules”| File | Holds |
|---|---|
saturation_slices.py |
saturation / homogeneity slices |
dataset_metric_rows.py |
dataset snapshot/final and corpus-growth metric rows |
worker_metric_delta.py |
multi-worker metric deltas |
mapping_build.py |
mapping build result and stats |
reduce_merge.py |
reduce/merge result and stats |
embed_train_stats.py |
embed-train runtime statistics + as_public_dict() |
embed_train_metric_catalog.py |
live/final embed-train gauge name catalog |
probe.py |
opaque probe bindings and metric rows (no winner field) |
New cross-layer structures go here — not copied into storage/ or telemetry/.