package chatoyant
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
OCaml-first LLM SDK with Melange-generated JavaScript
Install
dune-project
Dependency
Authors
Maintainers
Sources
chatoyant-v0.12.2.tbz
sha256=a885dcf4b3c6ede268e2027bedf6955a5c889f7ed01c40b719f8369655957d47
sha512=0bb8dfa12157ba2e482927717c2242c1ea914dce1427801e405987811550afbd6d6b11f07d1e1379259360d17f4ca43ff81963bf407cddb7bedd0dfbb93a55ee
doc/CHANGELOG.html
Changelog
All notable changes to this project are documented here. The format follows Keep a Changelog, and the project adheres to Semantic Versioning.
0.12.2 — 2026-07-09
Added
- New models (July 2026 launches): OpenAI GPT-5.6 family (
gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna) plusgpt-5.5/gpt-5.5-pro; Anthropicclaude-fable-5,claude-opus-4-8,claude-opus-4-7, andclaude-sonnet-5; xAIgrok-4.5andgrok-4.3— with pricing, context windows, and model registry entries. - Anthropic request shaping per model generation. Claude 4.7+/Sonnet 5 requests use adaptive thinking (
{type: "adaptive", display: "summarized"}) withoutput_config.effort, and droptemperature/top_p(rejected with a 400 upstream); Fable 5 never sends a disabled thinking config. Older models keep the legacybudget_tokenssurface unchanged.
Changed
- Presets track the current generation:
best/balanced/reasoningnow resolve togpt-5.6-sol/gpt-5.6-terra/gpt-5.5-pro(OpenAI),claude-fable-5/claude-sonnet-5/claude-fable-5(Anthropic), andgrok-4.5/grok-4.3/grok-4.5(xAI); OpenAIfastisgpt-5.6-luna. - Pricing corrections: grok-4.20 dropped to
1.25/2.50 per MTok (cached $0.20) and its context window is 1M, matching xAI's current sheet.
0.12.1 — 2026-07-03
Fixed
- opam lower-bounds: constrain the TLS/crypto/HTTP stack (
tls,tls-eio,x509,ca-certs,mirage-crypto-rngto>= 1.0.0;cohttp-eioandhttpto>= 6.0.0). The native runtime uses the result-returningTls.Config.clientintroduced in tls 1.0, so pre-1.0 versions no longer resolve. - opam sandbox: the Eio HTTP transport test (
test_eio) moves from@runtestto a dedicated@integrationalias. It binds a local socket, which the network-less opam sandbox rejects (bind: EPERM); CI andmake teststill run it viadune build @integration.
0.12.0 — 2026-07-02
Changed
- Rewrote Chatoyant as an OCaml-first SDK. The library now exposes a native Eio API with result-returning calls and
.mlicontracts. The npm package is generated from the OCaml implementation with Melange and bundled with esbuild, and has no runtime npm dependencies. - JavaScript imports move to the package root. The former subpath entry points (
chatoyant/core,chatoyant/schema,chatoyant/tokens,chatoyant/providers/*) are collapsed into root exports and namespace objects. This is a breaking change for JavaScript consumers. - Provider errors are consolidated into
ProviderError. The per-provider error classes and guards (OpenAIError/isOpenAIError,AnthropicError,XAIError,LocalError, ...) are gone; catchProviderErrorand branch on itsproviderfield instead. - Low-level helper exports are removed. The preset lookup tables and helpers (
MODEL_PRESETS,CREATIVITY_PRESETS,REASONING_PRESETSand friends) are no longer exported — themodel: "fast",creativity, andreasoningoptions still resolve exactly as before. The per-provider SSE/accumulator toolkit (parseSSEStream,createAccumulator, ...),chatStreamToWritable/messageStreamToWritable, andbuildHeaders/buildUrlare internal now; use thechatStream*/messageStream*namespace methods. - The TypeScript type vocabulary is rebuilt. Provider wire types and per-call option interfaces from the old package are replaced by a smaller set of provider-neutral types (
GenerationOptions,GenerationResult,Usage,ProviderId, schema/JSON Schema types). Model name unions widen tostring. Some names change:MessageRole→Role,GenerateOptions→GenerationOptions,SchemaConstructor→SchemaClass,InferSchema→InferSchemaInstance/InferSchemaInput.
Added
- Native OCaml provider clients for OpenAI, Anthropic, xAI, OpenRouter, and local OpenAI-compatible servers.
- A standalone Draft 2020-12 JSON Schema parser and validator with OpenAI strict projection and typed OCaml codec generation.
- A
chatoyant.ppxproviding themodule%toolsyntax and[@@deriving chatoyant]codecs.
0.11.1 — 2026-04-15
- Final release of the TypeScript implementation. Earlier changelog history is available in the Git log prior to the OCaml port.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page