~/wiki/syntheses
Glossary
TL;DR One alphabetical table. Terms that are literal API or SDK identifiers are in backticks and spelled exactly as the wire format spells them; everything else is a concept, pattern, or company term. Follow the link for the contract, the numbers, and the gotchas.
| Term | Definition | See |
|---|---|---|
401 / 422 / 429 / 529 |
The four documented HTTP failures: bad or missing key, request-body validation error, rate limit exceeded, and service overloaded. 429 and 529 are retryable with backoff; 401 and 422 are not. |
HTTP status codes, rate limits, retry semantics |
Agent skill (typesafe-ai) |
TypeSafe's skill for coding agents, shipped as the Claude Code plugin typesafe (version 0.5.7, MIT) and via npx skills add. Its central instruction is that the live docs, not the skill, are the source of truth. |
The typesafe-ai agent skill and Claude Code plugin |
| Alias | A moving model name — jev-latest (most recent stable release, the SDK default) and jev-preview (most recent release of any kind). Both currently resolve to jev-1.13.0; pin the versioned ID if you have tuned thresholds. |
Models, aliases, pricing, rate limits, context |
| Answer | The typed value returned for one question, carrying the same type as the question that produced it. Choice and Score answers add probabilities and confidence; a Noul answer is a single number. |
Primitives: Choice, Score, Noul |
answers |
The response map keyed by the question ids you chose. It replaced preview's ordered responses array, so v1 code looks answers up by key, never by position. |
HTTP API: POST /v1/systemone and GET /v1/models |
| Btok / Mtok | TypeSafe's billing units: a Btok is a billion tokens, an Mtok a million. Jev is $42 per Btok / $0.042 per Mtok on input tokens, with output tokens free. | Models, aliases, pricing, rate limits, context |
| Calibration | The property that across many predictions, outcomes assigned probability 0.8 occur about 80% of the time. It is a statement about groups of answers and guarantees nothing about any single one. | AI primer: why calibrated decision models |
| Cardinality ceiling | The launch post states Jev "supports a cardinality up to 255"; above that, TypeSafe used a two-stage system of independent scoring followed by an explicit choice, "hence the occassional slowdown". | Choice questions |
| Choice | The primitive that selects one option from a set you define in criteria. It returns the winning option, a probability distribution over every option, and a confidence. |
Choice questions |
choice |
The Choice answer field holding the highest-probability option name. In the preview API this field was called chosen. |
HTTP API: POST /v1/systemone and GET /v1/models |
| Composite scoring | The pattern of asking several independent Score questions in one call, normalising each to 0–1, and combining them with weights your code owns — so changing priorities means changing a coefficient, not a prompt. | Composite scoring |
| Confidence | A 0–1 statistic computed from an answer's probabilities that summarises how concentrated the distribution is. Present on Choice and Score answers only; the formula is not published, so compute your own from probabilities if you need a specific measure. |
Confidence vs probability |
| Confidence-gated routing | The pattern of treating confidence as a second decision axis: a floor below which nothing is automated, then a per-action threshold sized to the consequences of being wrong. | Confidence-gated routing |
| Consensus labels | TypeSafe's term for the reference answers in its workflow evals, produced by averaging GPT-6 Astra and Claude Fable 5.1 at high thinking. "Accuracy" in those evals means agreement with this average, not correctness. | Workflow evals: how TypeSafe measures Jev |
| Console | https://console.typesafe.ai — login, the Playground, and API keys at /settings/keys. The MCA calls it the "Web Interface". |
console.typesafe.ai (console + playground) |
| Context budget | 64k tokens per request for state plus all questions, and 32k tokens for state plus the single longest question. Because state counts in both, a large state shrinks both headrooms. |
Models, aliases, pricing, rate limits, context |
| Cookbook | One of eighteen worked upstream recipes: a state, a set of questions with their exact instructions and criteria, and the composition logic in ordinary Python. |
Cookbooks overview |
cooksafe |
The helper package every published cookbook installs from https://pypi.typesafe.ai/, which returned 404 publicly as of 2026-09-17. Nothing in the recipes depends on it — install typesafe-sdk and reimplement JsonCache and make_playground_link. |
Cookbooks overview |
| Credits | The metered balance the MCA bills usage against; purchased Credits expire at the earlier of end of Term or 12 months after purchase, and the consumption rate "may vary based on account settings, including the model used". | Legal: MCA, DPA, privacy, data retention |
criteria |
The field that defines a question's answer space: a map of option → description for Choice, an ordered array of level descriptions for Score, and an optional {true, false} clarification for Noul. |
Primitives: Choice, Score, Noul |
| DPA | TypeSafe's Data Processing Addendum (last updated 2026-04-24), incorporated into the MCA and controlling where the two conflict. It sets the processor role, 72-hour breach notice, annual audit right, and the EU/UK/Swiss transfer mechanisms. | Legal: MCA, DPA, privacy, data retention |
| Early access | Jev's availability status since 2026-09-15: waitlisted, not open self-serve signup. | Jev (model) |
EntryType |
The JSON type every prompt-bearing field accepts — string, object, array, or null — so an instruction or an option description can be a structured object rather than a sentence. |
Structured instructions, options, levels, criteria |
| Expected score | What a Score answer's score actually is: the probability-weighted mean of the level numbers, which is why it can fall between levels and why two different distributions can produce the same value. Do not interpolate it into a real-world magnitude. |
Score questions |
| Fan-out (speculative) | The pattern of sending every question your decision tree might need in one call — including branches you have not taken — and discarding the answers code does not use. Questions run in parallel, so extra ones cost tokens rather than latency. | Speculative fan-out |
instructions |
The field carrying the judgment you want made. Marked required by the API docs for all three question types, though the OpenAPI schema lists it as nullable — always send it. | HTTP API: POST /v1/systemone and GET /v1/models |
| Intent routing | The pattern of classifying a request with one cheap Jev call, then dispatching to the cheapest adequate handler: plain code, a specialist LLM, or a human. | Intent routing |
| Jaggedness | TypeSafe's term for a model's uneven capability surface. The jev-1.13 jaggedness page documents nine failure modes and the mitigation for each. |
Jev 1.13 jaggedness: known failure modes |
| Jev | TypeSafe's first and flagship System One model, named after William Stanley Jevons. Text in, typed decisions with calibrated probabilities out. | Jev (model) |
jev-1.13.0 |
The current versioned model ID as of 2026-09-17, and what both aliases resolve to. The response's model field reports the version that actually answered. |
Models, aliases, pricing, rate limits, context |
JsonCache |
The cookbook helper that memoizes results into a JSON file keyed on the call's arguments — including a rubric hash and the model name — so republished cookbook numbers reproduce without API spend. | Cookbooks overview |
legend |
The Score answer field mapping each level number (as a string key) back to the criteria description you supplied, so you can label a score without keeping the rubric around. New in v1. | Score questions |
| Literal reading | Jaggedness failure mode 1: jev-1.13 answers the question you wrote rather than the one you meant, taking scoping words, negations, and implied conditions at face value. |
Jev 1.13 jaggedness: known failure modes |
| Machine-Native Intelligence | TypeSafe's term for AI with software-like properties — structure, reliability, observability, testability, speed, consistency, low cost — as opposed to chat-shaped AI aimed at a human reader. | AI primer: why calibrated decision models |
| MCA | The Master Customer Agreement (last updated 2026-08-27), TypeSafe's commercial contract. It defines Input, Output, Telemetry, the acceptable-use restrictions, the liability cap, and the absence of any uptime SLA. | Legal: MCA, DPA, privacy, data retention |
| Mode dropping | The RLHF side effect TypeSafe cites as motivation for RLCD: preference optimisation narrows a model toward a favoured style, a milder version of GAN-style mode collapse. | AI primer: why calibrated decision models |
model |
The required request field naming the model or alias to use, normally "jev-latest". The same field on the response reports which version answered, and the two can differ. |
HTTP API: POST /v1/systemone and GET /v1/models |
| Noul | The yes/no primitive. It returns a single probability that the statement is true and carries no confidence field; criteria.true / criteria.false optionally clarify what yes and no mean. |
Noul (yes/no) questions |
noul |
The Noul answer field: a number from 0 (no) to 1 (yes), with values near 0.5 meaning genuinely uncertain rather than "medium". Called probability in the preview API. |
Noul (yes/no) questions |
nouls / choices / scores |
The three cached typed views on a Python SystemOneResponse, alongside the documented answers map. Upstream samples use both spellings. |
Python SDK responses, answers, usage, models |
| OpenAPI document | The machine-readable contract at https://docs.typesafe.ai/openapi.json: openapi: 3.1.0, info.title: "TypeSafe", info.version: 0.2.0, two paths and sixteen component schemas. |
OpenAPI component schemas |
| Parallel sampler | The architectural claim behind Jev's speed: all outputs are produced in a single query rather than one token at a time conditioned on the last, which is why adding questions barely changes latency. | System One Models |
| Playground | The console's interactive surface at /playground, where a state and question set can be tried and shared as a #share/... or ?share=shr_... link — the form the cookbooks' share links take. |
console.typesafe.ai (console + playground) |
| Preview endpoint | The retired POST /preview/evaluation API, replaced by POST /v1/systemone. It used document, a prompts array, options/levels, and a responses array, and its confidence used a different computation. |
Migrating from /preview/evaluation to /v1/systemone |
| Primitive | One of the three question/answer pairs — Choice, Score, Noul — that make up every Jev request. You compose their typed answers in code rather than asking one big question. | Primitives: Choice, Score, Noul |
probabilities |
The distribution an answer returns over your Choice options or Score levels, summing to approximately 1. It is the raw signal; confidence is one summary of it, and you can compute others. |
Confidence vs probability |
| Question | One judgment for the model to make about the state, defined by a type, instructions, and usually criteria. Every question in a request sees the same state and is evaluated independently. |
Primitives: Choice, Score, Noul |
| Question ID | The key you choose in the questions map, which the answer comes back under. It is never sent to the model, so the full meaning must live in instructions. |
HTTP API: POST /v1/systemone and GET /v1/models |
retry-after / retry-after-ms |
Response headers naming how long to wait before retrying. Both SDKs prefer retry-after-ms when present and cap any honoured server delay at 60 seconds before falling back to their own backoff. |
HTTP status codes, rate limits, retry semantics |
RetryPolicy |
The SDK object controlling retries: by default 2 retries, 500 ms initial backoff doubling to a 5,000 ms cap, 25% jitter, retryable statuses {408, 429, 500–599}. Since 0.6.0 invalid values raise at construction. |
Python SDK retries, exceptions, constants |
| RLCD | Reinforcement Learning for Calibrated Decisions — TypeSafe's post-training method, presented as a third path alongside RLHF and RLVR, optimising probabilities against outcomes instead of text against preference. | AI primer: why calibrated decision models |
| RLHF | Reinforcement learning from human feedback — the method that turned pretrained models into chatbots, co-invented by TypeSafe cofounder Diogo Almeida, and the one TypeSafe positions itself against. | AI primer: why calibrated decision models |
| RLVR | Reinforcement learning with verifiable rewards — the method behind reasoning models strong at programmatically checkable tasks, at higher latency and cost. | AI primer: why calibrated decision models |
| Score | The primitive that rates a state against an ordered array of described levels, returning a probability-weighted position plus legend, probabilities, and confidence. |
Score questions |
score |
The Score answer field: a float between 0 and len(criteria) - 1. Called expectation in the preview API. |
HTTP API: POST /v1/systemone and GET /v1/models |
state |
The single input every question in a request is evaluated against — a string, JSON object, or array of text values, and nothing else. Unrelated material in it costs accuracy. | State: what you send Jev |
| System 1 / System 2 | Kahneman's distinction in Thinking, Fast and Slow between fast intuitive judgment and slow deliberate reasoning, from which TypeSafe takes the name "System One". | System One Models |
| System One LLM wrapper | TypeSafe's harness that constrains an LLM to emit System One-compatible structured decisions, used for the LLM baselines in its workflow evals. TypeSafe notes it "tends to be slower and more expensive" than unconstrained decisions. | Workflow evals: how TypeSafe measures Jev |
| System One model | The model class: evaluates one state, returns typed answers and calibrated probabilities, never generated text, with the answer space fixed in advance. | System One Models |
system-one-adapter |
The open-source Python package (v0.1.4) that answers typesafe_sdk questions with an OpenAI or Anthropic model instead of Jev, returning the same answer objects plus latency, token and per-attempt traces. |
system-one-adapter: LLM-backed drop-in for TypeSafeClient |
| Telemetry | The MCA's carve-out category — "technical logs, hashes, summary statistics and classifications, metrics, and learnings" — which TypeSafe may process without restriction and which survives termination. | Legal: MCA, DPA, privacy, data retention |
TYPESAFE_* env vars |
Exactly four are read by the SDKs: TYPESAFE_API_KEY, TYPESAFE_BASE_URL, TYPESAFE_DEFAULT_MODEL, TYPESAFE_LOG_LEVEL. TYPESAFE_MODEL, TYPESAFE_PRICE and similar names appear only in cookbook code. |
TYPESAFE_* environment variables across SDKs |
typesafe-client |
The legacy Python package for the preview API. Every release (0.1.x and 1.0.x) sends document and no longer works against the API — replaced by typesafe-sdk. |
Migrating from /preview/evaluation to /v1/systemone |
typesafe-sdk / @typesafe-ai/sdk |
The official Python (PyPI, import typesafe_sdk) and JavaScript/TypeScript (npm) clients, both at 0.6.0 and both MIT. Note the unrelated PyPI package typesafe is not TypeSafe AI's. |
Python SDK: install, clients, system_one() |
| Uncertain band | The application-side pattern of mapping a middle range of probability or confidence to an explicit third outcome — human review — instead of forcing yes/no. TypeSafe's cookbooks use 0.30–0.70 for Nouls and a 0.60 top-probability floor for Choices. |
Cookbook: Self-consistency — nouls |
usage |
The response object reporting input_tokens and output_tokens. Only input tokens are billed; it replaced preview's placeholder billing_units. |
HTTP API: POST /v1/systemone and GET /v1/models |
| v1 API | The current stable API: POST /v1/systemone and GET /v1/models under https://api.typesafe.ai, with state, a questions map, and an answers map. |
HTTP API: POST /v1/systemone and GET /v1/models |
| Workflow eval | TypeSafe's published evaluation format: a fixed code workflow, every model run through the identical harness, scored against consensus labels. Source of the "193.6x faster, 444.6x cheaper" claim. | Workflow evals: how TypeSafe measures Jev |
| ZDR | Zero data retention, offered "for enterprise customers" via privacy@typesafe.ai. Outside ZDR no retention period is stated anywhere in the legal documents. | Legal: MCA, DPA, privacy, data retention |
Related
- FAQ for agents and developers — the same material as questions and answers
- Versions and timeline (models, SDKs, API, company) — when each version of the above shipped
- Jev vs LLM JSON mode / structured outputs — the terms that only matter in comparison
- Primitives: Choice, Score, Noul — the core vocabulary in context
- HTTP API: POST /v1/systemone and GET /v1/models — every wire-level identifier defined above
- Playbook for LLM agents building with Jev — how the terms fit together in a build
Sources
- wiki pages listed in the frontmatter (all under
wiki/) - raw/docs/models.md (https://docs.typesafe.ai/models), raw/docs/api.md (https://docs.typesafe.ai/api)
- raw/site/openapi.json (https://docs.typesafe.ai/openapi.json) —
info.version0.2.0 - raw/site/blog-introducing-system-one.txt (https://typesafe.ai/blog/introducing-system-one-models-and-jev) — parallel sampler, cardinality 255