All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.2.0] - 2026-09-21
Added
- Atom question keys are restored in
Response.answers, enabling ergonomic access such asresponse.answers.is_urgent.noul; string keys remain strings. - Typed
Response.nouls,Response.choices, andResponse.scoresconvenience maps. - Score answer
legendand map-shapedprobabilities, matching the TypeSafe API response. request_idon successful responses and API errors when TypeSafe sendsx-typesafe-request-id.- Raw question maps and
:extra_bodyfor forward-compatible API fields. - Caller-defined structs as question containers; non-
nilfields are encoded as questions without serializing__struct__, optionalnilfields are omitted, and atom response keys are restored. - Graceful
UnknownAnswerparsing for answer kinds introduced after this SDK version. - Per-request
:max_retries,:retry_delay_ms, and:max_retry_delay_msoverrides. - Capped exponential retry backoff, support for numeric
Retry-After/retry-after-ms, and retries for transport-level connection failures. - Local validation errors for empty/colliding question keys and API question limits.
Changed
- Breaking while unreleased: atom-keyed questions now return atom-keyed
Response.answers; useresponse.answers.is_urgentinstead ofresponse.answers["is_urgent"]for atom input. - Breaking while unreleased:
ScoreAnswer.probabilitiesnow matches the API's string-keyed map shape rather than a list. - Question instructions and criteria types/documentation now support structured maps, lists, and
nildescriptions where the API permits them. - All JSON-object 2xx HTTP responses are accepted as successful evaluations.
[0.1.0] - 2026-09-20
Added
ExTypesafe.Client—Req-based HTTP client with Bearer auth and configurable exponential-backoff retry on429/529responsesExTypesafe.Config— option resolution with env var fallbacks (TYPESAFE_API_KEY,TYPESAFE_BASE_URL,TYPESAFE_DEFAULT_MODEL)ExTypesafe.Question— typed question structs:Noul,Choice,ScoreExTypesafe.Response— typed answer structs for all three question types plusUsagetoken countsExTypesafe.Error— unified error struct for API and transport-level failuresExTypesafe.system_one/4— primary public API wrapping the TypeSafe/v1/systemoneevaluation endpointReq.Testplug support via:plugclient option for zero-network-call testing