Jev Concepts
Last verified against the TypeSafe docs on 22 September 2026 · model jev-1.13.0
Jev answers typed questions about a piece of state. You send the content you want judged, plus one or more questions, and every question comes back as a value your code can branch on. This page is the index to the concepts behind that: the three question types, what each of them returns, and when to reach for which.
The three question types
Every Jev question is one of three types. They differ in the shape of the answer, not in how they are sent: you can mix all three in a single request, and the TypeSafe docs note that every question in a request sees the same state and is evaluated independently.
| Noul | Choice | Score | |
|---|---|---|---|
| Asks | Is this true? | Which of these options? | Which level? |
| `criteria` shape | Optional object with `true` and `false` descriptions | Map of option name to description | Ordered array of level descriptions |
| Returns | `noul` | `choice`, `probabilities`, `confidence` | `score`, `legend`, `probabilities`, `confidence` |
| Value range | 0 to 1 | One of your option keys | 0 to the top level number |
| Has `confidence` | No | Yes | Yes |
| Size limit | — | Up to 255 options | At least 2 levels, up to 10 |
| Your code does | An `if` | Branches per option | Compares to a threshold |
Which type should you use?
Pick the type that matches the shape of the answer you need, not the one that sounds closest to the question. The TypeSafe docs put it in terms of what your code does with the answer: a Choice between `refund`, `rebook` and `information` maps straight onto three code paths, a Score maps onto a threshold, and a Noul maps onto an `if`.
flowchart TD
A[What shape is the answer?] --> B{Yes or no?}
B -- Yes --> C[Noul]
B -- No --> D{Do the answers<br/>have an order?}
D -- No --> E[Choice]
D -- Yes --> F{Can you describe<br/>each level?}
F -- Yes --> G[Score]
F -- No --> EOne case is worth calling out, because the TypeSafe docs single it out too. "Is this candidate strong in Python?" looks like a yes/no question, but "strong" is a degree. A Noul of 0.5 there means the model gives yes and no equal probability, not that the candidate is halfway up some scale. If you want the degree, write a Score with levels you define; if you want a yes/no, define the condition so there is no middle ground.
Other concepts
- State — the content each question is asked about. It can be plain text or a JSON object, and questions can point at one part of it by path.
- Confidence — the 0-to-1 value Choice and Score answers carry, computed from how the probability is spread. Noul does not have one.
- Probabilities — the full distribution behind every Choice and Score answer, which sums to 1.
FAQ
What are Jev's primitives?
Choice, Score and Noul: the three question types you can send to a System One model. Each returns a different shape of typed answer, and you can mix them freely in one request.
Can I ask more than one question at a time?
Yes. The TypeSafe docs describe every question in a request as sharing the same state and being evaluated in parallel, independently of the others, so adding questions barely changes the response time and costs only the extra question tokens.
Does one question's answer affect another's?
No. The docs are explicit that one question's answer is not hidden context for another, which is why you can add or remove questions without changing the rest of the answers.
Which question type has a confidence value?
Choice and Score. Noul does not, because its probability distribution has only two outcomes and the single value describes it completely.
Sources
jev-ai.dev is an independent guide and is not affiliated with TypeSafe AI.