Jev Primitives Reference: Choice, Score, and Noul
Jev exposes exactly three native decision primitives: Choice, Score, and Noul. All evaluations execute across a shared contextual state block within a single request.
Every primitive is non-autoregressive and mathematically bounded. Choosing the correct primitive depends strictly on whether your decision is categorical, an ordered continuum, or a binary proposition.
Primitive Selection Matrix
| Primitive | Decision Topology | Hard Constraints | Output Structure | Confidence Field? |
|---|---|---|---|---|
| Choice | Discrete categorical selection from closed set | Max 255 choices | Selected choice string + full probability distribution | Yes (float) |
| Score | Ordered ordinal rubric evaluation | 2 to 10 defined levels | Probability-weighted continuous float (can land between levels) | Yes (float) |
| Noul | Binary proposition truth verification | Single declarative statement | Probability float [0.0, 1.0] | No (P(True) is the uncertainty) |
How to Choose: 3-Step Decision Rule
Use Choice
When the outcome is one option out of several distinct, mutually exclusive actions (e.g., routing queues, category classification, triage status).
Use Score
When measuring intensity, priority, risk levels, or quality tiers where level 3 is strictly greater than level 2.
Use Noul
When asserting whether a specific factual statement about the state is true or false (e.g. policy violations, identity verification, fraud flags).
Choice: Categorical Selection
Selects a single label from an unordered list of up to 255 predefined choices. Returns the winning choice, an overall model confidence score, and the complete probability distribution across all provided choices.
{
"id": "intent_classification",
"type": "choice",
"prompt": "Determine primary user request intent",
"choices": [
"billing_inquiry",
"technical_support",
"account_cancellation",
"feature_request",
"sales_contact"
]
}{
"id": "intent_classification",
"type": "choice",
"choice": "technical_support",
"confidence": 0.942,
"probabilities": {
"billing_inquiry": 0.015,
"technical_support": 0.942,
"account_cancellation": 0.003,
"feature_request": 0.028,
"sales_contact": 0.012
}
}Score: Ordered Rubric Evaluation
Evaluates state against an ordered rubric containing between 2 and 10 levels. Rather than forcing a discrete integer label, Jev computes a probability-weighted continuous float score across the distribution of levels. The returned score may land between levels (e.g. 3.42) reflecting uncertainty between adjacent criteria.
{
"id": "lead_qualification",
"type": "score",
"prompt": "Score inbound enterprise lead suitability based on company size, budget, and urgency",
"levels": [
{"level": 1, "description": "Individual hobbyist or student; no commercial budget"},
{"level": 2, "description": "Small team (<20 staff); self-service tier"},
{"level": 3, "description": "Mid-market (20-250 staff); evaluated budget available"},
{"level": 4, "description": "Enterprise (>250 staff); dedicated procurement and immediate timeline"}
]
}{
"id": "lead_qualification",
"type": "score",
"score": 3.42,
"confidence": 0.887,
"level_probabilities": {
"1": 0.002,
"2": 0.071,
"3": 0.435,
"4": 0.492
}
}Noul: Binary Proposition Truth Probability
Evaluates whether a single declarative statement holds true given the provided state. Returns a probability float from 0.0 (definitively false) to 1.0 (definitively true). TypeSafe trains Jev to optimize output probabilities against outcomes, though calibration is evaluated across groups of predictions and does not guarantee that an individual answer is correct.
P(True) directly expresses the model's output degree of belief. A probability of 0.50 represents maximum uncertainty, whereas 0.01 and 0.99 represent high certainty in falsehood or truth respectively.{
"id": "claim_verified",
"type": "noul",
"statement": "The user submitted a valid government-issued photo ID with matching date of birth."
}{
"id": "claim_verified",
"type": "noul",
"probability": 0.984
}Parallel Evaluation Across Multiple Primitives
You are not restricted to one primitive per API request. A single request can include any combination of Choice, Score, and Noul questions inside the questions array. Jev evaluates all questions in parallel against the shared state block, paying the state token cost only once across the entire batch.