[REL] v0.3.0 — Initial public release
First public release of ALLM — a provider-neutral, streaming-first LLM
execution library for Elixir built against the
allm_engine_session_streaming_spec_v0_2 design. The package is alpha:
public APIs and on-disk session shapes may shift between releases as the
spec settles.
Other changes:
- Layer A serializable data:
Message,Thread,ToolCall,Request,Response,Session,StepResult,ChatResult,Event,Usage— round-trip through:erlang.term_to_binary/1and JSON - Stateless execution facade:
ALLM.generate/3,stream_generate/3,step/3,stream_step/3,chat/3,stream/3 - Stateful continuation via
ALLM.Sessionwith auto and per-tool manual orchestration modes and{:ask_user, ...}suspension - Streaming as the primitive — synchronous calls are reducers over a
closed
ALLM.Eventtagged-tuple union viaALLM.StreamCollector - Bundled adapters for OpenAI (Chat Completions + Responses), Anthropic Messages, and Google Gemini, all live-validated
- Vision input across all three providers via
ALLM.TextPart/ALLM.ImagePart - Image generation/edit/variation behaviour with an OpenAI Images adapter
- Telemetry events, retry policy, capability pre-flight, and BYOK key
resolution through
ALLM.Keys - Conformance harnesses (
ALLM.Test.AdapterConformance,ImageAdapterConformance) and a deterministicALLM.Providers.Faketest vehicle - Provider-neutral example scripts under
examples/runnable viaALLM_PROVIDER=<name> mix run examples/run_all.exs