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. Argus asks only noul and choice questions. Jev 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 thresholds of 0.95–0.97, by surface), 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. It's a classifier, so no surface asks it for arithmetic.
Where it runs
When enabled, five surfaces consult Jev:
- Addressed judge — the auto-resolve check on push, over the finding text plus the file's inter-diff (up to 200 lines). At 0.97 or higher, and only when a second question says the fix is visible in the diff, the thread resolves with no LLM call. At 0.05 or lower it stays open. Anything between goes to the LLM judge.
- Convention-relation classifier — the memory write gate, over a candidate plus the similar stored conventions (duplicate, refines, contradicts or unrelated). The LLM call is skipped only when every relation is answered at 0.95 or higher; a convention over 2,000 characters always goes to the LLM.
- Intent verification — over the extracted PR-intent block (goal, non-goals, acceptance criteria), the file list, and finding summaries. Jev can only return the all-clear: goal delivered, every criterion met and no finding out of scope, each at 0.95 or higher. Any other verdict comes from the LLM.
- Scoring false-positive pre-filter — over the PR title, author, up to 1,500 chars of the PR body, the review-contract summary, and every finding. A finding rated a false positive at 0.97 or higher, and a concrete defect at 0.5 or lower, skips the judge and is dropped. Reviews with more than 60 findings, or no scoring model, skip it.
- Triage shadow — path, status, and ~2,400 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. Reviews reduced past the soft size limit ignore the raises.
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. 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 and has no dashboard toggle — the env key alone never sends tenant data. - Per-installation BYOK. Add your own TypeSafe key in Integrations → TypeSafe Jev (under Memory & classifiers). A stored key takes precedence over the env key for that installation, and a repo-scoped key wins for its repo. It 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 WHERE clause only to opt in every installation fleet-wide — that sends every tenant's review data to TypeSafe.
A custom endpoint must be an absolute https URL; plain http is accepted only for localhost and loopback, private or link-local addresses. If a stored endpoint fails that check, Jev is off for the installation rather than falling back to api.typesafe.ai.
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. Its spend is recorded in the token usage of the stage it front-runs. 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.