# SystemOneClient v0.3.0 - Table of Contents

> Client for System One decision models (TypeSafe Jev, Cloudflare Clef, OpenAI Decisions, OpenRouter, self-hosted): typed Choice, Noul and Score answers with full probability distributions, a behaviour and stub for tests.

## Pages

- [SystemOne Client](readme.md)
- [Changelog](changelog.md)

## Modules

- [SystemOneClient.Images](SystemOneClient.Images.md): Validation for the `images:` option.

- Client
  - [SystemOneClient](SystemOneClient.md): Client for System One decision models: TypeSafe Jev, Cloudflare Clef, OpenAI's Decisions
API, OpenRouter's decisions endpoint, and any self-hosted `/v1/systemone` server such as CLM.
  - [SystemOneClient.HTTP](SystemOneClient.HTTP.md): Real `SystemOneClient` implementation over Req.

- Providers
  - [SystemOneClient.Provider](SystemOneClient.Provider.md): Resolves where a request goes and how its response is shaped.
  - [SystemOneClient.Wire.OpenAIDecisions](SystemOneClient.Wire.OpenAIDecisions.md): Translation between the System One wire format and OpenAI's Decisions API
(`POST /v1/decisions`).

- Answers
  - [SystemOneClient.Answer](SystemOneClient.Answer.md): Typed answers returned by TypeSafe System One questions.
  - [SystemOneClient.Answer.Choice](SystemOneClient.Answer.Choice.md): One option from a defined set, with the full probability distribution.
  - [SystemOneClient.Answer.Noul](SystemOneClient.Answer.Noul.md): Probability that a condition holds.
  - [SystemOneClient.Answer.Refusal](SystemOneClient.Answer.Refusal.md): The model declined to answer this question (OpenAI's Decisions API can return
this per question). It carries no probability; treat it as "no answer".

  - [SystemOneClient.Answer.Score](SystemOneClient.Answer.Score.md): Probability-weighted position on ordered levels.

- Testing
  - [SystemOneClient.Stub](SystemOneClient.Stub.md): Test implementation of `SystemOneClient`: returns canned answers from `opts[:answers]`.

