llm-output-guard · live

Degeneracy Bench

Every detector in the package, running in your browser on whatever you paste. No API key, no request, no server — the library is zero-dependency and synchronous, so this page runs the real thing. The numbers below are what checkOutput returns.

$ npm i llm-output-guard
Specimen 0 chars
Degenerate — should be caught
Healthy traps — should not be caught

Readout
ok
threshold under over → fails

      

Scores, not booleans

Each detector returns 0–1 and you pick the line. The tick on each track is the threshold for the selected preset — switch presets and watch the ticks move while the scores stay put.

Every detector runs

Nothing short-circuits on the first failure, so a verdict shows the whole picture rather than whichever check happened to be ordered first. Passing scores are reported too — those are what you feed to your metrics.

False positives cost more

A miss is annoying; discarding a healthy response and retrying against a slower provider is worse. That is why the corpus carries traps — markdown tables, repeated list prefixes, rhetorical refrains — that a naive detector flags.

Word and character modes

Chinese, Japanese and Thai put no spaces between words, so a whole clause is one token and word n‑grams measure nothing. TAIL_LOOP switches to characters and reads its own threshold — the label shows which ran.