Skip to main content

Typesafe AI Jev (Decisions)

Jev is TypeSafe AI's first "System One" model. It does not write text: you send a state (text or JSON) and a set of named, typed questions, and it returns calibrated answers to all of them in one call (reported 70–500 ms, 32K context, output tokens free). OpenTryOn exposes it through the new decide service with JevAdapter.

Use it for routing, moderation, attribute classification and QC gating over text or structured data (for example product copy, order notes or VLM captions). It has no image, audio or video input — for images use the open-weight Liquid d1 models; for video grounding and multiple-choice QA use open-weight VideoJev (videojev-4b / videojev-35b-a3b).

Early access

Jev is waitlisted. TypeSafe paused new sign-ups on 22 Sep 2026; check console.typesafe.ai for current status. The model is also served through OpenRouter (typesafe/jev-1.13), Vercel AI Gateway and DigitalOcean Inference — set TYPESAFE_BASE_URL to a compatible gateway if you use one. Endpoint and field names here follow the published System One API (POST /v1/systemone); confirm against your account's docs.

Authentication​

export TYPESAFE_API_KEY="..."
# export TYPESAFE_BASE_URL="https://api.typesafe.ai" # default

Question schema​

Shared by every decide model:

typeAnswercriteria
noulyes/no — returns P(yes), 0–1not used
choiceone option + probabilities + confidenceobject: option → when it applies (≥ 2 options)
scoreprobability-weighted level + legendordered list of 2–10 levels, lowest first

questions.json:

{
"formal": {"type": "noul", "instructions": "Is this garment formal wear?"},
"category": {
"type": "choice",
"instructions": "Which category is the garment?",
"criteria": {"dress": "one-piece gowns and dresses", "top": "shirts and blouses", "outerwear": "coats and jackets"}
},
"quality": {
"type": "score",
"instructions": "How complete is this product description?",
"criteria": ["missing key facts", "adequate", "complete"]
}
}

CLI​

opentryon decide --model jev \
--questions questions.json \
--state "Red satin evening gown, floor length, size 6, shown with heels"

Output is JSON (also saved under outputs/): {"model": ..., "answers": {"formal": {"type": "noul", "noul": 0.93}, "category": {"choice": "dress", "confidence": ..., "probabilities": {...}}, ...}, "usage": {...}}.

FlagNotes
--questions, -qJSON string or path to a JSON file — required
--state, -sText, JSON, or path to a file — required
--jev-modeljev-latest (default), jev-preview, jev-1.13.0

Python​

from tryon.api.typesafe import JevAdapter

out = JevAdapter().decide(
state={"title": "Linen shirt", "description": "Relaxed fit, short sleeve"},
questions={"season": {"type": "choice", "instructions": "Best season?",
"criteria": {"summer": "warm weather", "winter": "cold weather"}}},
)
print(out["answers"]["season"]["choice"])

Notes​

  • MCP tool: decide_jev; key: TYPESAFE_API_KEY (shown in the Connect rail as Typesafe AI (Jev)).
  • "Zero hallucinations" means guaranteed schema-valid answers, not guaranteed-correct ones; the probabilities are calibrated but vendor-reported.
  • The decide service is named-model-only in the planner: no chat intent routes to it and no defaults change.

See also: Liquid d1 (local).