primer · TypeSafe Jev

Decisions, not prose.

Jev doesn't write text. You send it some content and a few typed questions; it sends back answers your code can use straight away. Your code owns the rules — Jev supplies the judgement.

one of a setDocs ↗

Choice

Jev picks one option from a list you define and gives the odds for every option, plus a confidence.

yes / no probabilityDocs ↗

Noul

Jev returns how likely the answer is yes, from 0 to 1. Ask one per condition when several can be true.

graded levelDocs ↗

Score

Jev rates something along levels you describe; the answer can land between levels so rankings stay smooth.

Five patterns behind every idea

pick one of a set
Docs ↗

Choice Router

How: a Jev `choice` question that routes each incoming item to one handler/category from a fixed option map, plus branch-specific questions asked in the same request

UI: a paste box that shows the chosen option, the full probability bar chart, and a 'needs review' badge when confidence is low

yes/no probability
Docs ↗

Noul Check

How: several independent Jev `noul` questions (one per condition) asked together over the same state, combined by explicit code rules

UI: a checklist of conditions, each with a 0-1 probability meter and a pass / review / fail colour from code-owned thresholds

graded ranking
Docs ↗

Score Ranker

How: comparable Jev `score` questions per candidate on 3-4 named dimensions, normalised with score/(levels-1) and combined with user-controlled weights in code

UI: a ranked list with weight sliders that re-rank instantly without calling Jev again

pick the real value
Docs ↗

Select, Don't Generate

How: code extracts candidate spans/values from the source, then a Jev `choice` (with a 'none' option) selects the intended one so the app copies real text instead of generating it

UI: the source text with candidate spans highlighted and the selected one locked in

check then hand off
Docs ↗

Verify & Escalate

How: a Jev `noul` checks each claim/field against its evidence; low or mid probabilities are escalated to a human review queue instead of auto-acting

UI: claim cards marked supported / unsupported / needs review, with a review queue column

One request, many answers

POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer $TYPESAFE_API_KEY

{
  "model": "jev-latest",
  "state": { "message": "Our venue cancelled — need a space by Thursday!" },
  "questions": {
    "team":   { "type": "choice", "instructions": "Which crew handles `message`?",
                "criteria": { "booking": "Venues and dates", "payments": "Fees", "none": "Nothing needed" } },
    "urgent": { "type": "noul",   "instructions": "Does `message` need a reply within 24h?" }
  }
}

→ answers.team.choice = "booking", answers.urgent.noul = 0.93

Keep TYPESAFE_API_KEY on the server. Questions in one request run in parallel and can't see each other's answers.

Try the demosBrowse 1,000 ideasdocs.typesafe.ai ↗