# Pinned reference runtime for the synthdetect eval container (issue #144, S2).
#
# This is the MAINTAINER eval runtime, not a shipped service image: it runs
# tools/synthdetect_infer.py inside a pinned CUDA container to produce raw-score
# journals the host scorer (tools/synthdetect_eval.py) consumes. The plan fixes
# PINNED FAIRSEQ as the reference and default serving runtime for Milestone 1
# (an HF-transformers port is a separate later paired-equivalence project, never
# a substitute here): the default candidate w2v2-aasist loads its wav2vec2-XLS-R
# SSL front-end through fairseq, so a numerically different runtime would be a
# different inference space even with identical weights.
#
# Weights are NOT installed here. They are CANDIDATE, license-gated, and live on
# maintainer storage; the container mounts them read-only at eval time. Only the
# runtime is baked, so a runtime bump is a visible, reviewable pin change.
#
# The exact fairseq build commit is frozen in S2b (the verify-sources pass that
# builds and validates this container on a GPU), recorded in provenance.eval.json
# alongside the weight shas. The Dockerfile passes it as FAIRSEQ_COMMIT so the
# git dependency below resolves to the frozen revision; a contract test binds the
# Dockerfile ARG to provenance.eval.json.
#
# Install order matters and is driven by the Dockerfile (numpy -> torch cu118 ->
# fairseq deps -> fairseq -> the rest); this file lists the non-torch pins for
# reference and CI so the pin set is reviewable without a build.

# Numeric base (installed before torch so fairseq's build sees a stable numpy).
numpy==1.23.5

# The reference SSL/CM stack for w2v2-aasist. fairseq is pinned by git commit at
# build time (FAIRSEQ_COMMIT); these are its runtime companions. omegaconf and
# hydra-core are pinned to the versions fairseq's config system expects.
omegaconf==2.0.6
hydra-core==1.0.7
bitarray==2.9.2
sacrebleu==2.4.0
tensorboardX==2.6.2.2

# Audio decode + canonicalization. soundfile decodes; the runner resamples to
# the frozen canonical form (16 kHz mono float32) with a pinned resampler so the
# per-clip sha stays stable across host library versions (see synthdetect_infer).
soundfile==0.12.1
soxr==0.3.7
scipy==1.10.1

# Determinism + provenance helpers used by the runner (no service framework here;
# this container runs a CLI, not a FastAPI app).
pyyaml==6.0.1
