NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Core AI SDK for Dart with provider-agnostic model APIs.
Last release 4 days ago
04 Oct 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
6 releases · first in 2026
One column per month.
LanguageModelV4AbortSignal remains as a deprecated alias of AbortSignal for the whole 3.x line.
AI SDK Dart 3.0 is a coordinated major release across 17 packages, including four new packages.
AbortSignal reaches the live HTTP request in every built-in provider. A stream that ends early fails with a typed truncation error.responseMessages now contains only the messages that the current call generated. embedMany separates batch size from concurrency and validates the rows it gets back.ai_sdk_conversation: versioned, immutable conversation snapshots with a JSON persistence codec.ai_sdk_remote: Vercel AI UI-message stream transport for trusted backends.ai_sdk_json_schema: optional local JSON Schema validation (Draft 7 and 2020-12) for structured output.ai_sdk_telemetry: bounded OTLP/HTTP JSON metric export.Upgrade every ai_sdk package together. Custom embedding models must declare maxEmbeddingsPerCall and supportsParallelCalls. A decoder alone no longer means JSON Schema validation: use Schema.decoderOnly or ai_sdk_json_schema. LanguageModelV4AbortSignal remains as a deprecated alias of AbortSignal for the whole 3.x line.
Read the 2.x to 3.x migration guide before you upgrade. Each package's CHANGELOG lists its own changes.
All 17 packages are published on pub.dev. ai_sdk_realtime stays unpublished until it completes qualification.
Full Changelog: 2.0.0...3.0.0
AI SDK Dart 2.0 is a coordinated major release across all 13 packages.
AI SDK Dart 2.0 is a coordinated major release across all 13 packages.
Upgrade every ai_sdk package together. The obsolete V3 language-model contract, experimental API names, video surface, and old provider call fields were removed without compatibility shims.
Read the 2.0 migration guide before upgrading.
All 13 packages are published on pub.dev.
Full Changelog: 1.2.0...2.0.0
runtimeContext/telemetry names, explicit approval policies, and
machine-readable structured-stream benchmarks.withRetry now throws AiRetryError after retryable provider failures
exhaust the configured retry count, including the ordered errors history.
Cancellation, timeout-budget exhaustion, and non-retryable failures retain
their existing error types.AiToolCallRepairError and AiDownloadError types;
the SDK has no tool-call repair callback or downloader subsystem that could
throw them.Coordinated 1.2.0 release across all 13 packages — now live on pub.dev. A v6 hardening pass that makes the AI SDK Dart port more complete, honest, and
Coordinated 1.2.0 release across all 13 packages — now live on pub.dev. A v6 hardening pass that makes the AI SDK Dart port more complete, honest, and tested.
Non-2xx provider responses now throw a typed AiApiCallError carrying the provider's message, type, code, statusCode, raw body, and an isRetryable flag — consistently across every provider. The AiSdkError hierarchy moved into ai_sdk_provider (re-exported by ai_sdk_dart, so the public surface is unchanged).
ai_sdk_openai_compatible base (new package)A shared OpenAI Chat Completions implementation now powers OpenAI / Azure / Groq / Mistral. All 8 providers support tool use + multimodal image input; Cohere & Ollama gained them natively.
Real Server-Sent-Events streaming transport (SseClientTransport) plus a plain request/response HttpClientTransport; web-safe — dart:io is isolated behind conditional imports, so the client runs on Flutter web.
19 prebuilt, themeable Material widgets plus hardened controllers (ObjectStreamController.submit, ChatController.isStreaming, streaming-error surfacing). A restrained Material 3 redesign — bubbleless assistant transcript, an AiMotion motion/haptics vocabulary, and a first-class reduced-motion path. Fixed a PressableScale crash-on-dispose under reduced motion.
onAbort now interrupts an in-flight streamText; stopWhen can extend the tool loop past maxSteps. Removed the unusable generateVideo / VideoModelV1 (no backing provider). OpenAI image generation no longer sends response_format to gpt-image-1.
1,057 tests (924 Dart + 133 Flutter), 99.9% line coverage (11 of 12 packages at 100%), enforced by a CI coverage gate.
ai_sdk_provider · ai_sdk_dart · ai_sdk_openai_compatible · ai_sdk_openai · ai_sdk_anthropic · ai_sdk_google · ai_sdk_azure · ai_sdk_cohere · ai_sdk_groq · ai_sdk_mistral · ai_sdk_ollama · ai_sdk_mcp · ai_sdk_flutter_ui
See each package's CHANGELOG.md for full details.
Full Changelog: 1.1.0...1.2.0
AiApiCallError carrying the provider's
message / type / code / statusCode (and the raw response body), instead of a raw
DioException. The AiSdkError hierarchy was relocated into ai_sdk_provider so all provider
packages can throw it; ai_sdk_dart's public surface is unchanged via a re-export shim, and
existing imports keep working.onAbort now interrupts streaming. Cancelling the CancellationToken during a streamText
run stops the read loop immediately, instead of firing the callback while the underlying stream
kept draining to completion.stopWhen can extend the tool loop past maxSteps. Custom stop conditions are now the
authoritative loop terminator: a higher stepCountIs(...) (or any custom condition) is honored
even when maxSteps alone would have stopped earlier, matching Vercel AI SDK v6 semantics. A
1000-step safety cap still backstops runaway loops.generateVideo, AiNoVideoGeneratedError, the provider registry's video model category,
and the mockVideoModelV1 test helper. No provider ever implemented VideoModelV1 (also removed
from ai_sdk_provider), so this API could not be exercised. If you referenced any of these
symbols, delete the reference — there was no working code path behind them.resolveStopConditions, resolveStepBudget,
shouldStopAfterStep) and a completeIfPending fan-out helper, de-duplicating generateText
and streamText. No public API change.ai_sdk_dart now has 100% line coverage of lib/.Development environment setup: fix dependency conflict + add AGENTS.md by @codenameakshay in #1
Full Changelog: 1.0.0+1...1.1.0
embedMany() — batch embedding that fans out to the provider's doEmbed in configurable chunks, with merged usage stats.wrapEmbeddingModel() — middleware pipeline for embedding models, mirroring wrapLanguageModel for language models.customProvider() — on-the-fly provider construction from plain model-factory maps without a full createProviderRegistry setup.onAbort callback in streamText — fires synchronously when the caller's CancellationToken is cancelled, enabling graceful cleanup.timeout parameter — Duration? timeout added to generateText, streamText, generateObject, streamObject, embed, embedMany, generateImage, generateSpeech, transcribe, rerank. Wraps each underlying model call with Future.timeout.smoothStream delayInMs option — smoothStream(delayInMs: 20) adds per-chunk delay; experimentalTransform type is now Stream<String> Function(Stream<String>) (async), enabling arbitrary async transforms.generateObject / streamObject pass outputSchema — LanguageModelV3CallOptions.outputSchema is now set to schema.jsonSchema so providers that support native structured output (e.g. OpenAI response_format: json_schema) use it automatically.AiToolCallRepairError — thrown when a tool-call repair attempt fails.AiNoImageGeneratedError — thrown when generateImage receives no image content.AiNoVideoGeneratedError — thrown when generateVideo receives no video content.AiNoSpeechGeneratedError — thrown when generateSpeech receives no speech content.AiNoTranscriptGeneratedError — thrown when transcribe receives no transcript.AiRetryError — wraps the list of errors from all exhausted retry attempts.AiDownloadError — thrown when an attachment download fails.createProviderRegistry now supports 6 model categories: language, embedding, image, speech, transcription, and rerank models (previously language + embedding only).RegistrableProvider exposes imageModelFactory, speechModelFactory, transcriptionModelFactory, and rerankModelFactory factories.MockEmbeddingModelV3 — fake embedding model for conformance tests, mirroring MockLanguageModelV2.pruneMessages — removed duplicate messages that were incorrectly appended in multi-step loops when messages was pre-populated; semantics now match Vercel AI SDK v6.ai_sdk_azure — Azure OpenAI provider (AzureOpenAIProvider). Language models and embeddings via Azure-hosted deployments; configurable endpoint, apiKey, and apiVersion.ai_sdk_cohere — Cohere provider (cohere). Language models, text embeddings, and reranking (Command R, Command R+, embed-english-v3.0, rerank-english-v3.0).ai_sdk_groq — Groq provider (groq). Ultra-low latency inference for Llama, Mixtral, Gemma, and other Groq-hosted models.ai_sdk_mistral — Mistral AI provider (mistral). Language models and embeddings (Mistral Large, Mistral Small, Codestral, mistral-embed).ai_sdk_ollama — Ollama provider (ollama). Local inference for any model pulled via Ollama; no API key required.First stable release. Package renamed from ai → ai_sdk_dart to avoid conflicts with existing pub.dev packages.
First stable release. Package renamed from ai → ai_sdk_dart to avoid conflicts with existing pub.dev packages.
generateText / streamText with full v6 result parity — text, finishReason, usage, steps, toolCalls, toolResults, reasoning, sources, files, providerMetadata, request/response envelopes.generateObject / streamObject with Output.text/object/array/choice/json API.embed / embedMany with cosineSimilarity.generateImage, generateSpeech, transcribe, rerank.maxSteps, stopConditions, and prepareStep.tool<INPUT, OUTPUT>, dynamicTool, Schema<T>).ToolChoiceAuto, ToolChoiceRequired, ToolChoiceNone, ToolChoiceSpecific).needsApproval) and ToolLoopAgent for autonomous agentic loops.wrapLanguageModel, extractReasoningMiddleware, extractJsonMiddleware, simulateStreamingMiddleware, defaultSettingsMiddleware, addToolInputExamplesMiddleware.createProviderRegistry — resolve models by 'provider:modelId' string at runtime.smoothStream / experimentalTransform stream transform hooks.fullStream event taxonomy — 22 typed StreamTextEvent subtypes.onFinish, onStepFinish, onChunk, onError, experimentalOnStart, experimentalOnStepStart.AiSdkError sealed class hierarchy.generateId, createIdGenerator, simulateReadableStream.Full Changelog : https://github.com/codenameakshay/ai_sdk_dart/commits/1.0.0+1
Full Changelog: https://github.com/codenameakshay/ai_sdk_dart/commits/1.0.0+1
example/example.md with usage examples and links to runnable apps.Your coding agent can read these notes before it upgrades. Set up the MCP server →