Decisions models evaluate a shared state against typed questions and return calibrated structured answers (choice | score | noul). They are not chat completions and not embeddings. Motivating catalog example: jev-1.13-ts (TypeSafe Jev / System One). After tag detection, models tagged Decision / decisions / typesafe / systemone / system-one classify as ModelType=DECISIONS (Decision-class wins over a coexisting LLM tag).

Headers

Same as other prompt modalities — see Chat, audio, and embeddings.

Request

POST /v1/decisions Normative body (TypeSafe System One / OpenRouter Decisions core):
  • Required: state, questions.
  • Optional model in the body is overwritten by the provider models-config.modelName (embeddings parity).
  • Unknown request fields (e.g. OpenRouter provider, user) are forwarded to the upstream.
  • Non-streaming only in v0 — single JSON response.

Response

Branch on answers.<id>.choice / .score / .noul — never on chat choices[].message.content.

Provider setup (summary)

Providers register a models-config.json row with: Details: models-config.json.

Auth

Scoped agent users need decisions in their rpcwhitelist (alongside or instead of chat / embeddings). See API authentication.