Release v1.0.0
Changes
- ci: run Vertex Claude integration tests without blocking the release (#547)
- fix(meta): ground web search in every returned search result (#546)
- feat: add the decision modality with TypeSafe Jev models (#545)
- test: stabilize the BFL flux-dev and web-search integration cases (#543)
- fix(elevenlabs): apply the default timeout to streamed speech (#544)
- fix: remove retired Moonshot and HuggingFace text registrations (#542)
- fix(groq): remove the shut-down llama-4-scout registration (#541)
- fix(groq): parse grounding from streamed executed_tools (#540)
- chore: prepare the 1.0.0 release gate (#539)
- fix(openai): remove the shut-down videos provider (#538)
- feat(meta): accept META_API_KEY alongside MODEL_API_KEY (#537)
- chore(deps-dev): bump pre-commit from 4.6.2 to 4.7.0 in the uv group (#536)
- release: v1.0.0 (#535)
- fix: align SDK templates and response handling (#534)
- docs: replace the README logo with the Celeste sculpture mark (#532)
- fix(anthropic): drop the temperature step on claude-opus-4-6 (#530)
- feat(bfl): add flux-3-image-klein to the images catalog (#531)
- feat(elevenlabs): add scribe_v2_medical to the audio catalog (#486)
- fix(anthropic): return empty max_tokens responses instead of raising (#523)
- fix(google): add audio/mulaw and audio/alaw to Gemini 3.8 TTS output formats (#490)
- fix(elevenlabs): remove Thai from the v2.5 TTS languages (#522)
- fix(byteplus): label image outputs with their declared format instead of PNG (#520)
- fix(anthropic): lower the claude-opus-4-6 max_tokens minimum to 0 (#487)
- fix(elevenlabs): mark eleven_v3 as streaming (#491)
- fix(elevenlabs): add Bulgarian and Croatian to the v2.5 TTS languages (#489)
- feat(bfl): add flux-3-image editing via per-model input image fields (#519)
- fix(google): skip kind in the Interactions WebSearch unsupported-field warning (#518)
- fix(google): stop sending google_search.exclude_domains on Interactions (#517)
- feat(xai): add multi-image editing via reference images (#516)
- fix(anthropic): send the documented Claude on Google Cloud request body and basic web search (#515)
- feat(bfl): add the grounding image parameter for flux-3-image (#513)
- fix(bfl): stop polling on the No Card Generated status (#512)
- fix(bfl): send native aspect_ratio for flux-3-image (#511)
- test(audio): fix stream speak chunk content assertion (#510)
- fix(elevenlabs): replace the retired Rachel default voice with its documented replacement (#509)
- feat(byteplus): add Seedream image editing and reference images (#508)
- feat(xai): map quality to the images resolution field (#507)
- feat(bfl): add flux-3-image to the images catalog (#506)
- feat(google): add resolution support to gemini-omni-1.1-flash (#505)
- fix(elevenlabs): replace the expiring default voices with their documented replacements (#504)
- fix(google): drop Preview from the Lyria 3.5 display name (#503)
- feat(meta): add Meta provider with Muse Wonder and Muse Spark 1.3 (#502)
- refactor(text): move reasoning effort strings from thinking_budget to thinking_level (#501)
- fix(openresponses): join every output message's text (#500)
- feat(google): add Gemini 4 Argon text model (#499)
- chore(deps): commit uv.lock and install it with --locked in CI (#498)
- fix(types): type output_schema as OutputSchema and drop the protocols mypy override (#497)
- fix(google): end Interactions streams at interaction.completed (#496)
- feat(anthropic): add Claude Haiku 5.5 text model (#495)
- feat(google): add gemini-nano-banana-2.1 to the images catalog (#493)
- chore(deps): pin mypy below 2.4 (#494)
- fix(elevenlabs): mark eleven_multilingual_v2 as streaming (#485)
- feat(elevenlabs): add eleven_v4 to the audio catalog (#484)
- feat(openai): add gpt-4o-transcribe-diarize to the audio catalog (#483)
- feat: add stream_post_bytes for binary stream framings (#480)
- feat(openai): add GPT-6.1 Sol text model (#479)
- feat(live): add the live modality with Gemini 3.8 Live and GPT-Live-1 (#477)
- feat(anthropic): add Claude Sonnet 5.5 text model (#468)
- fix(anthropic): bound claude-opus-4-6 thinking_budget to 1024 and its 128K max output (#469)
- fix(google): add 512 image size to gemini-3.1-flash-lite-image (#472)
- fix(google): remove audio/mp3 from Gemini 3.1 and 3.8 TTS output formats (#470)
- fix(google): add 1:4, 1:8, 4:1 and 8:1 aspect ratios to gemini-3-pro-image (#471)
- fix(xai): add xhigh reasoning effort to grok-4.5 and grok-4.3 (#475)
- fix(anthropic): lower the max_tokens minimum to 0 on twelve Claude text models (#476)
- fix(google): add minimal thinking level to Gemini 3.5 Flash-Lite and 3.6 Flash (#473)
- fix(openai): enable streaming for gpt-image-1.5 (#474)
- feat(openai): add gpt-image-2.5-sunburst to the images catalog (#455)
- feat(google): add gemini-3.8-flash-tts to the audio catalog (#452)
- feat(openai): add gpt-image-2.5-flare to the images catalog (#456)
- feat(xai): add grok-4.7 to the text catalog (#458)
- fix(openai): replay the full output turn when it holds more than messages and calls (#465)
- style(mistral): add the one-line docstring to _init_request (#467)
- fix(google): resend Interactions built-in tool steps and send dict results as the Vertex response (#464)
- fix(anthropic): carry toolset_name through tool calls and results (#459)
- fix(mistral): replay the ThinkChunk on reasoning turns (#463)
- fix(moonshot): send the tool name on tool result messages (#462)
- fix(deepseek): send reasoning_content back on every assistant turn (#461)
- fix(google): accept Vertex function calls without an id (#460)
- fix(openai): add structured outputs to gpt-4o-mini (#457)
- fix(google): add medium thinking level to Gemini 3.5 Flash-Lite and 3.6 Flash (#453)
- feat(google): add gemini-3.8-flash-lite-tts to the audio catalog (#451)
- fix(google): add 1:4, 1:8, 4:1 and 8:1 aspect ratios to gemini-3.1-flash-lite-image (#450)
- feat(byteplus): add dola-seedream-5-0-flash-260915 to the images catalog (#449)
- fix(anthropic): raise thinking_budget ceiling to the 64K max output on Haiku 4.5 and Opus 4.5 (#447)
- fix(byteplus): enable streaming for seedream-4-5-251128 (#448)
- feat(anthropic): add Claude Opus 5.5 text model (#446)
- feat(openai): register GPT-6 Sol and Luna text models (#438)
- fix(bfl): correct image family contracts and reference limits (#436)
- refactor(google): remove unused Imagen backend (#435)
- fix(anthropic): align Messages request and response contracts (#428)
- fix(google): remove discontinued Imagen 4 registrations (#418)
- fix(openai): remove three shut-down direct API registrations (#432)
- fix(bfl): honor settled image costs and terminal polling states (#426)
- fix(openai): correct reasoning efforts and schema support (#394)
- fix(xai): preserve every image output and its metadata (#374)
- fix(anthropic): retain compaction state for continuation (#430)
- fix(openresponses): retain hosted tool billing markers (#431)
- feat(openai): add GPT Transcribe with plural language hints (#413)
- fix(byteplus): accept unaligned Seedream Pro dimensions (#408)
- fix(google): complete Gemini TTS language metadata (#414)
- fix(google): rebase Interactions citations across text parts (#420)
- fix(openai): preserve applied speech format and support WAV (#412)
- fix(google): reconcile Lyria family and final song responses (#405)
- feat(openai): register GPT-6 Astra text model (#433)
- fix(bfl): correct FLUX.2 multi-reference image limits (#399)
- fix(google): drop reference images from veo-3.1-lite-generate-preview (#402)
- feat(google): add lyria-3.5 to the audio catalog (#400)
- fix: close SDK transports and preserve provider response metadata (#401)a
- feat(google): add the Lyria 3.5 music models to the audio catalog (#397)
- fix(google): add medium thinking level to Gemini 2.5 Pro and 2.5 Flash-Lite (#396)
- fix(anthropic): floor thinking_budget at 1024 on extended-only models (#395)
- fix(anthropic): allow forced tool use on claude-fable-5 (#393)
- feat(google): register Gemini 3.8 Flash text model (#391)
- feat(openai): add the gpt-4o-mini-transcribe-2025-12-15 snapshot to the audio catalog (#388)
- feat(byteplus): add seedream-4-5-251128 to the images catalog (#390)
- fix(google): add referenceImages support to Veo 3.1 Fast (#389)
- fix(anthropic): raise Opus 4.6 and Sonnet 4.6 max output to the documented 128K (#387)
- fix(google): add the documented TTS languages to the audio catalog (#382)
- fix(byteplus): sync Seedream 5.0 pro size tiers with API reference (#386)
- fix(openai): narrow tts-1 and tts-1-hd voices to the documented set (#385)
- feat(xai): add grok-imagine-image-2.0 and 21:9, 5:2 aspect ratios (#381)
- feat(google): register gemini-omni-1.1-flash in the videos catalog (#383)
- feat(anthropic): add Claude Fable 5.1 and Mythos 5.1 text models (#384)
- fix(google): preserve all Vertex text response parts (#373)
- fix(openai): preserve multiple image outputs (#356)
- feat(anthropic): add Mythos 5 and Opus 5 models (#360)
- fix(openai): support transparent GPT Image 2 backgrounds (#357)
- feat(openai): register chat-latest text model (#355)
- chore: remove OpenSpec remnants (#354)
- fix(groq): include usage in streamed chat completions (#351)
- feat(groq): register Qwen 3.8 27B text model (#350)
- feat(xai): register Grok 4.6 text model (#349)
- feat(google): register Gemini 3.7 Flash text model (#347)
- fix(google): route mixed tools through Interactions (#342)
- feat(segmentation): add fal SAM 3 image-RLE modality (#341)
- feat(images): wire Operation.UPSCALE with Topaz Labs Gigapixel (#340)
- feat(audio): add OpenAI, ElevenLabs, and Mistral transcription (#339)
- feat(audio): add transcribe with Groq Whisper STT (#337)
- fix(google): fall back for mixed interaction tools (#336)
- fix(google): validate mixed interaction tools (#334)
- fix(google): constrain 3.5 Flash Lite / 3.6 Flash thinking to low|high (#332)
- fix(models): model-watch catalog corrections (#331)
- feat(google): register Gemini 3.5 Flash Lite and 3.6 Flash (#330)
- fix(google): Lyria music rejects response_format.mime_type — drop output_format (#329)
- fix(google): map audio/mp4 to the Interactions m4a literal (#328)
- fix(google): send Interactions tool results as typed content blocks (#327)
- feat(videos): Gemini Omni video generation + editing via Interactions (#326)
- feat(google): seed parameter + UrlContext tool (#325)
- feat(audio): GENERATE operation + Google Lyria music models (#324)
- fix(google): restore generateContent parity on the Interactions path (#323)
- feat(google): migrate to the Interactions API (#321)
- fix(templates): _transform_output takes Unpack[{Modality}Parameters] in the dispatcher template (#322)
- docs: API-addition playbook, naming rules, templates (#318)
- test(core): dispatcher delegation guard (#317)
- refactor: unify composition-layer conventions (#316)
- docs: commit agent guide and fix stale docs (#315)
- fix: provider bugs and catalog corrections from model-watch findings (#314)
- feat(models): sync provider catalogs and capabilities (#313)
- feat(models): refresh catalogs and provider capabilities (#312)
- fix(mistral): align reasoning constraints and catalog with the live API (#311)
- Clean up test suite and remove legacy surfaces (#310)
- fix(google): replay native tool context across calls (#309)
- Add voice descriptions (#308)
- Exclude audio bytes from metadata (#307)
- Fix Gemini grounding source domains (#306)
- feat(models): register GPT-5.6 models (#305)
- feat(xai): add grok-4.5 text model (#304)
- Add BytePlus Seedream 5 Pro model (#302)
- fix(streaming): assemble raw_response so streamed usage is complete (#300)
- fix(anthropic): code-execution replay, max_tokens ceiling; tool kind discriminator (#299)
- fix anthropic native replay (#298)
- feat(anthropic): stream thinking summaries, fix haiku thinking budget, dynamic-filtering web search (#297)
- fix(anthropic): echo thinking-bearing assistant turns verbatim in tool loops (#296)
- fix(anthropic): move thinking effort to output_config (#295)
- feat(google): add gemini-3.1-flash-lite-image and fix Gemini image catalog errors (#294)
- feat(anthropic): add Claude Sonnet 5, Opus 4.8, and Fable 5 to catalog (#293)
- fix(google): add minimal thinking level to gemini-3.5-flash (#292)
- Update reasoning effort metadata (#291)
- feat(streaming): surface native web-search activity per chunk (#290)
- Retry transient HTTP failures + require all properties in strict schemas (#288)
- feat(text): add web search grounding (#287)
- refactor(telemetry): collapse 6 OpenTelemetry no-op stubs into one proxy (#286)
- fix(google): set includeServerSideToolInvocations for mixed tools (#285)
- feat(text): add OpenRouter provider via OpenResponses (#284)
- support multimodal text messages (#283)
- feat(models): add high-priority provider models (#282)
- feat(google): promote Gemini 3.1 Flash Lite to GA model id (#281)
- chore(models): remove 17 retired provider models from catalogs (#280)
- feat(google): add gemini-3.5-flash text model (#279)
- Validate returned tool call arguments (#278)
- fix(telemetry): drop use_span from _TracedStream.anext; eager-prime SSE under captured ctx (#277)
- feat(telemetry): emit gen_ai.response.model from Output.metadata["model"] (#275)
- feat(telemetry): widen usage attrs, add metrics histograms, opt-in content events (#273)
- feat(telemetry): emit gen_ai.usage attrs on streaming spans (#272)
- feat(telemetry): GenAI OpenTelemetry spans on
_predict and _stream (#270)
- feat(tools): ToolOutput / ToolError types + fix Pydantic content lowering (#267)
- feat(deepseek): register V4-Flash and V4-Pro models (#265)
- feat(models): register 7 new provider models (#264)
- fix(google): send tool schemas via parametersJsonSchema (#262) (#263)
- feat(parameters): describe Parameters TypedDicts and Constraint base (#261)
- revert: AuthenticationContext ambient primitive (#259) (#260)
- feat: add AuthenticationContext ambient primitive (#259)
- fix: drop call-arg exclusion from internal modality/provider mypy overrides (#258)
- fix: add total=False to modality Parameters TypedDicts (#256)
- feat: add reasoning output support for text generation (#208) (#254)
- feat: add tool_choice parameter for forced tool calling (#253)
- refactor: consolidate trivial parameter mapper wrappers (#252)
- fix: correct URL handling for document and media input (#251)
- feat: add document input support for text modality (#207) (#249)
- refactor: centralize operation methods on base modality clients (#248)
- feat: add multimodal embeddings with gemini-embedding-2-preview (#246)
- refactor: clean up re-exports in celeste/init.py (#233) (#245)
- docs: add unified CHANGELOG.md (#244)
Installation
uv add "celeste-ai==1.0.0"