Open System OneGitHub

Adapters

Until providers serve Open System One themselves, a client or gateway translates. These are the mappings for today’s System One APIs. Each adapter also checks every answer against the answer guarantees and rejects what a model cannot do with the standard errors.

The TypeSafe and Cloudflare mappings were verified against their live APIs on 2026-11-07. The OpenAI mapping follows OpenAI’s published documentation.

TypeSafe

POST https://api.typesafe.ai/v1/systemone

Open System One is a superset of TypeSafe’s format, so requests and responses pass through unchanged, except:

Cloudflare Clef

POST https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/clef
Open System One Clef
model model, such as clef
state state
questions questions. Every question needs instructions: send the name when they are missing.
assets images: a list of data URLs, read before the state. At most 4, up to 4 MiB each and 8 MiB in total.

Cloudflare Clairic

POST https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/clairic
Open System One Clairic
model model, such as clairic
state state as text: send structured state as compact JSON
questions fields, with names of up to 64 characters, starting with a letter or _
assets images, as for Clef
reference_date reference_date
quantiles on an estimate options.include_quantiles, for the whole request
— options.return_state_text: true, so spans always have the text they index

OpenAI Decisions

POST https://api.openai.com/v1/decisions
Open System One OpenAI Decisions
state as a string input as a string
state as an object or array input: a user message with an input_json part
questions: { name: {…} } questions: [{ name, … }]
noul predicate, with criteria.true and criteria.false written into instructions
choice with criteria: { value: description } choice with choices: [{ value, description }]
score with criteria: [label, …] score with levels: [{ label }], 2 to 10
assets input_image parts with data URLs
OpenAI Decisions answer Open System One answer
answers: [{ name, … }] answers: { name: {…} }
predicate with probability noul with noul
choice with probabilities: [{ value, probability }] choice with probabilities: { value: probability }
score with probabilities: [{ value, label, probability }] score with probabilities: { index: probability } and legend: { index: label }
refusal No equivalent yet: the request fails