Statistical detector engine vendored from DeploySignal at SHA 5a72371, with Tessera-evolved deltas.
Status: extraction complete and consumption migration (R91/R92) closed — Tessera and DeploySignal both consume this package via git-dependency at a release tag. Current version: see CHANGELOG.md (prose copies of version numbers in this README have gone stale before; the changelog is the source of truth). Per-file vendoring provenance (which files match DeploySignal SHA 5a72371 vs carry Tessera-evolved deltas) is tracked in tessera/coordination/VENDORING-MANIFEST.md.
- Family A/C/D/E statistical detectors (mixture-supermartingale, betting e-process, hotelling, page-cusum, conformal, sequential MMD, spectral; the self-normalized fallback is deprecated — retained for tests only, see the caveat in
detectors/self-normalized-e-process-fallback.ts) - Ville-bounded any-time-valid hypothesis tests, with an honest validity boundary: under estimated (plug-in) baselines the per-shard
E[e|H0] ≤ 1requirement is not achievable on real telemetry, so the anytime-valid guarantee holds at the fleet e-BH/FDR layer, not per individual shard stream (ADRs 0011/0012) - Hierarchical per-shard / fleet e-value combination + e-BH FDR
- Topology BFS-on-undirected attribution (Slurm, K8s, NVLink, Neuron, TPU adapters)
- DeploySignal integration interface contract (
engine/ds-integration/) - L0 contract (counter-rate transform, missed-scrape catchup, wraparound handling)
- Per-shard runtime (Welford accumulator, warm-start, residual updates)
This package lives in its own repository and is consumed via git-dependency (no npm registry publish yet). Consumer's package.json:
{
"dependencies": {
"@johnpatrickwarren-oss/deploysignal-engine": "git+https://github.com/johnpatrickwarren-oss/deploysignal-engine.git#<commit-or-tag>"
}
}Pin to the latest release tag from CHANGELOG.md rather than a branch (tag == package.json version as of v0.6.1-pre).
npm install
npm run build # tsc → emits dist/
npm test # tsc + node --test dist/test/*.test.js
npm pack # emits johnpatrickwarren-oss-deploysignal-engine-<version>.tgzThe committed dist/ is kept byte-identical to a fresh rebuild (enforced by CI).
# Per-dataset calibrated NAB validation (default config)
node dist/tools/run-nab-per-dataset.js \
--nab-repo ~/concord/NAB --out report.json
# Optional opt-in calibration paths:
# --ar-p-calibration multi-lag AR(p) Yule-Walker + AIC order selection
# --seasonal-decomposition seasonal-naive (per-phase mean subtraction)
# --no-smoothing disable SLICE 6 anomaly-likelihood smoothing
# --no-prewhitening disable SLICE 5 AR(1) pre-whitening
# --use-hac-inflation SLICE 4 HAC long-run variance (legacy)For offline calibration against a representative production window (decouples calibration from runtime; produces a portable substrate JSON consumable by the engine and external consumers):
# Fit a substrate from a production CSV
node dist/tools/fit-production-substrate.js \
--csv production-data.csv \
--signal-name p99_latency \
--out substrate.json \
--ar-p --seasonal --spectralSubstrate schema: see types/production-ar-substrate.ts. Consumer
loader: tools/load-production-substrate.ts.
Canonical engine semantics live in the DeploySignal repository. Tessera-evolved deltas are tracked as per-file SHA pins (vendored-with-deltas vs vendored-at-pin).
Apache-2.0 — see LICENSE.