TypeSafe Jev classifier
Last updated
Jev is TypeSafe's "System One" endpoint — a typed classifier, not a chat model. Argus hands it a state plus a set of typed questions — noul (yes/no probability), choice (pick from a set), score(ordered scale) — and gets probabilities back. It can't emit prose, so it never acts as an LLM provider and never writes review output.
Its role is a cheap front-runner in front of the generative pipeline. When Jev answers confidently (act threshold around 0.95–0.97), Argus skips or shrinks the LLM call for that decision. Above that threshold Jev decides alone — it can auto-resolve a thread or drop a likely false positive with no LLM call. The uncertain middle band escalates to your configured models exactly as before. Don't send it arithmetic; it's a classifier.
Where it runs
When enabled, five surfaces consult Jev:
- Addressed judge — the auto-resolve check on push, over the finding text plus the inter-diff hunk.
- Convention-relation classifier — the memory write gate, over a candidate plus stored conventions.
- Intent verification — over the extracted PR-intent block (goal, non-goals, acceptance criteria), the file list, and finding summaries.
- Scoring false-positive pre-filter — over the PR title, author, up to 1500 chars of the PR body, the review-contract summary, and every finding.
- Triage shadow— path, status, and ~2400 chars of raw diff for PRs of up to 40 files (larger PRs skip it). Its depth answers are observe-only calibration; they never change which files get reviewed. Its per-file effort answers can raise a file's review reasoning effort (never lower it), with high picks capped at 1 in 4 reviewed files (minimum one); effort picks act at 0.7 confidence.
Enable it
Jev is off by default. With no key configured, Argus makes zero Jev calls. There are two ways to turn it on:
- Server key + opt-in flag (self-hosted or operator-managed). Both gates are required before any data leaves the deployment: set
TYPESAFE_API_KEYon the backend (the aliasTYPESAFE_AI_API_KEYis also accepted), and opt each installation in via thejev_classifierfeature flag. The flag defaults OFF — the env key alone never sends tenant data. - Per-installation BYOK. Add your own TypeSafe key in Integrations → TypeSafe Jev. A stored key takes precedence over the env key for that installation and does not require the
jev_classifierflag — saving the key is the consent to egress. A custom base URL can be stored alongside the key.
Opt in to the server-key path for one installation via SQL:
UPDATE installations
SET feature_flags = feature_flags || '{"jev_classifier": true}'::jsonb
WHERE installation_id = <github_installation_id>;Drop the WHEREclause only to opt in every installation fleet-wide — that sends every tenant's review data to TypeSafe.
What data leaves
When enabled for an installation, Jev calls send finding text, PR metadata plus a body excerpt, the extracted PR intent, diff excerpts for up to 40 files (triage shadow) plus inter-diff hunks for up to 20 auto-resolve candidates per push, and stored conventions to api.typesafe.ai(or your stored custom endpoint) — for that installation only. Nothing is sent for installations that haven't opted in or added their own key.
Cost and latency
Jev answers in ~200–300ms and bills at $0.042 per million input tokens; output tokens are free. Argus pins the model id to jev-1.13.0 — aliases like jev-latest move on release and would silently change answers behind the tuned thresholds.