The governed gateway for Jev decision models.
Jev answers in milliseconds where an LLM writes paragraphs. Trifrost speaks the canonical POST /v1/systemone protocol — so your decisions get the same load balancing, failover, budgets, billing and signed audit your LLM traffic already has. Point it at hosted Jev, self-hosted Laya, or any Jev-compatible backend.
Reflex decisions, not prose.
Modern AI pipelines burn slow, expensive LLM calls on reflex decisions — route this ticket, allow this action, score this risk. Decision models (TypeSafe AI calls its one Jev, a "System One" model) make one typed decision per call: send a state, ask named questions, get calibrated answers your code can branch on. No prose, no parsing, no prompt drift.
- Typed answers — the answer shape is defined up front; your code branches on values, not vibes
- Calibrated probabilities — act automatically on high confidence, route low confidence to a human
- Batched questions — ask choice, score and yes/no questions on the same state in one round trip
choice
Which option wins? Criteria map option → when-to-pick-it. The answer carries the winner, per-option probabilities and a confidence.
{"choice": "billing", "confidence": 0.81}
score
Where on the rubric? Ordered level descriptions, 0..N. The answer is the position — fractional when the model leans between levels.
{"score": 2.4} // material impact
noul
Is this true? A calibrated P(yes), 0..1 — the gate primitive for escalate/allow/needs-review. No confidence field: the probability is the certainty.
{"noul": 0.95} // needs a human
Point your Jev client at Trifrost. It just works.
Trifrost serves the canonical POST /v1/systemone surface — {model, state, questions} in, typed {answers} out. Swap the base URL and the API key; keep your code.
# one request, three question kinds, one state curl -s $TRIFROST_URL/v1/systemone \ -H "Authorization: Bearer sk-bf-..." \ -d '{ "model": "jev-guard", "state": {"ticket": "Charged twice, payouts failing 3 days"}, "questions": { "team": {"type": "choice", "criteria": {"billing": "payments", ...}}, "severity": {"type": "score", "criteria": ["none", "limited", "material", "blocked"]}, "needs_human": {"type": "noul", "instructions": "Human right now?"} } }'
{ "answers": { "team": {"choice": "billing", "probabilities": {"billing": 0.88}, "confidence": 0.81}, "severity": {"score": 2.4}, "needs_human": {"noul": 0.95} } } # branch in code — the decision is yours: if needs_human.noul >= 0.8: escalate_now() elif team.choice == "none_of_the_above": review_queue() else: route_to(team.choice)
Put a fallback behind every decision.
The Jev guides all teach the same pattern: threshold in code, fall back to a human. But what happens when the decision provider itself is down? That's a gateway problem — and it's already solved.
Load-balance across Jev providers
Attach one alias to models on multiple decision providers — hosted Jev, self-hosted Laya, a third-party Jev API. rr_health / weighted / least_latency strategies, 30s cooldown on 429/5xx, half-open recovery. A 70–500ms decision stays a 70–500ms decision.
Budgets + per-question billing
Bill by upstream tokens (including Jev's input_tokens/output_tokens usage) or flat per question — cost_per_question × len(questions). Every team's decision spend lands in the same budget matrix, forecasts and chargeback reports as its LLM spend.
Every decision, audited
Exactly one HMAC-signed event_type='decision' row per call — success, failure, or blocked — with the question set, answers digest and token basis on the row. A denied decision is never invisible; a compliance officer can replay what was asked and answered, by whom, for how much.
Bring any Jev-compatible backend.
| Backend | Provider base URL | Notes |
|---|---|---|
| Hosted Jev (TypeSafe AI) | https://api.typesafe.ai | Models like jev-1.13.0; bring your TypeSafe API key |
| Self-hosted Laya (laya-serve) | http://your-host:8000 | Apache-2.0, speaks the same /v1/systemone wire protocol |
| Any Jev-API mirror | the provider's API root | Generic provider rows; mix all three behind one alias |
Jev, decision models, and Trifrost.
What is Jev?
Jev is a structured-decision model released by TypeSafe AI — a "System One" model that returns typed answers (Choice, Score, Noul) with calibrated probabilities instead of generated text, on the POST /v1/systemone endpoint. It is built for routing, triage, moderation and other in-app decision points where a fast, predictable verdict matters more than prose.
Does Trifrost host Jev?
No. Trifrost is the gateway in front of the decision backends you choose. Register a provider pointing at hosted Jev with your TypeSafe API key, at your own self-hosted laya-serve, or at any Jev-compatible provider — and Trifrost routes, load-balances, fails over, budgets and audits the traffic.
Is Trifrost affiliated with TypeSafe AI?
No. Trifrost is an independent gateway. Jev is TypeSafe AI's model; Trifrost implements the public /v1/systemone wire protocol so any Jev-native client works unmodified — nothing here is an endorsement by or partnership with TypeSafe AI.
What are Choice, Score and Noul?
The three Jev question kinds. Choice picks one option from a criteria map and returns per-option probabilities plus a confidence. Score places the state on an ordered rubric and returns the (possibly fractional) level. Noul answers a yes/no proposition with a calibrated 0..1 probability — the gate primitive for escalate/allow/needs-review flows.
How is decision-model usage billed?
Per model, either per_token — upstream usage including Jev's input_tokens/output_tokens, else a bytes-based estimate — or per_question at cost_per_question × question count. Both flow into the same budgets, spend analytics, forecasts and signed event rows as LLM traffic.
What happens when a Jev provider fails?
The same thing that happens when an LLM provider fails: the alias group fails over to the next healthy decision provider (429/5xx → 30s cooldown, half-open recovery), the failed attempt lands in the request's attempt trail, and the client sees one clean answer. High-frequency decision loops don't fall over because one backend did.
Try a decision right now.
The decisions playground ships with ready-to-run Jev workflow sets — support-ticket triage, frustration & urgency, issue routing, citation checks, and a full 22-question guard matrix.