All notable user-visible changes are tracked here.
This is not a drop-in upgrade from 0.4.x. The main SDK entry points and namespaced request keys remain, but callers must account for these changes:
perplexity/sonar and migrate Sonar-specific provider options.:image/model; retired or implicit model defaults are no longer selected.:usage/search-units. Do not
interpret missing counters or unknown costs as zero.:partial-response in exception
data. Terminal events follow trailing metadata; premature EOF is incomplete.:gemini-native
or :vertex-gemini identity rather than the old :gemini tag.extra_body cannot override canonical model/messages/stream; Cohere and
Voyage rerank documents must be strings; Mistral embeddings reject
:embed/user. Bedrock pagination uses canonical :rerank/next-token.Add the three scoped surfaces identified by the pinned litellm-clj
comparison: Z.AI chat, native Gemini batch embeddings, and embeddings for
caller-registered Azure OpenAI deployments, including explicit Azure v1
routing.
Refresh the bundled LiteLLM and models.dev catalogs and extend registry-backed pricing across reported text, image, audio, cache, duration, request, and rerank billing dimensions. Missing usage or rates remain unknown.
Add persistent Responses WebSockets for ChatGPT OAuth (:codex-backend) with
:config {:transport :websocket}. HTTP/SSE remains the default: live
gpt-6-astra / low-effort benchmarks favored SSE for first-output latency.
WebSockets use the official streaming payload, isolated concurrent leases,
bounded buffers, inactivity timeouts and explicit disposal. API-key providers
are unchanged.
Automatically continue matching completed WebSocket conversations with
previous_response_id and delta-only input. Prefer the correct cached
connection; send full history after edits, configuration changes or reconnects.
Recover a rejected automatic response ID once only before generation starts.
Disable continuation with :config {:incremental? false}.
Align provider request, response, streaming, usage, file-attachment, stop sequence, structured-error, and Cohere v2 embedding/rerank handling with the current provider wire shapes while preserving provider-native replay and typed output data.
Preserve response/parser-reported costs instead of overwriting them with estimates, and avoid inventing required token totals or substituting text-token rates for separately billed image and audio usage.
Deliver stream deltas without mapcat read-ahead that could block an event
until additional provider data arrived.
Close streaming response bodies when an event callback throws.
Preserve Codex backend request rules for custom endpoint URLs, and apply configured headers to OAuth requests.
Preserve completed assistant message metadata for exact continuation without duplicating its canonical text or overriding user edits.
Use streamed completed output items when the backend's terminal output array is empty, preventing duplicate output in incremental requests.
Avoid redundant JSON serialization/deserialization when parsing buffered Codex responses.
:tool-calls finish reason./v1/sonar,
OpenRouter image generation to /images, and Vertex image generation from
discontinued Imagen endpoints to gemini-2.5-flash-image over
generateContent.:vertex-anthropic provider across the README supported-surface
table, the provider matrix (doc/providers.md), the configuration guide
(doc/provider-configuration.md), and the LiteLLM parity / shape-audit ledgers,
including credentials, model ids, and the region-gating (HTTP 404) caveat.:vertex-anthropic, a provider that serves Anthropic's Claude models
through Google Vertex AI. It reuses the native Anthropic Messages request body,
response parser, and streaming parser, and swaps in Vertex-specific transport:
the :rawPredict / :streamRawPredict endpoints with the model in the URL path,
GCP OAuth bearer auth via the existing ADC chain (instead of x-api-key), and an
anthropic_version body field. Authenticates with the same GCP credentials as
:vertex-gemini. Thinking blocks, tool use, file/document attachments, and native
cache markers behave as on :anthropic.scripts/vertex_anthropic_smoke.clj, a live smoke script mirroring
scripts/vertex_stream_smoke.clj.First published release to Clojars as
net.clojars.deadmeme5441/clojure-llm-sdk. Consume it with
{:mvn/version "0.1.0"} instead of a git SHA.
v*
tag builds, tests, and deploys the artifact automatically.:kimi-code, an OpenAI Chat Completions compatible provider for Kimi Code at https://api.kimi.com/coding/v1..env.example, contribution policy, security policy, issue templates, PR template, and Dependabot configuration.:kimi now reads MOONSHOT_API_KEY; :kimi-code reads KIMI_API_KEY.Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |