anthropic_sdk_dart 1.3.2
anthropic_sdk_dart: ^1.3.2 copied to clipboard
Dart client for the Anthropic API. Provides type-safe access to Claude models with streaming, tool use, and batch processing support.
1.3.2 #
1.3.1 #
1.3.0 #
This release adds inline streaming error detection and top-level cache control support for request parameters.
1.2.1 #
1.2.0 #
Added baseUrl and defaultHeaders parameters to withApiKey constructors, fixed WebSearchToolResultBlock.fromJson crash, and improved hashCode for list fields.
1.1.0 #
Added withApiKey convenience constructors for simplified client initialization and convenience methods for common API patterns like single-message responses and streaming text.
1.0.0 #
Note: This release has breaking changes.
TL;DR: Complete reimplementation with a new architecture, minimal dependencies, resource-based API, and improved developer experience. Hand-crafted models (no code generation), interceptor-driven architecture, comprehensive error handling, full Anthropic API coverage, and alignment with the latest Anthropic OpenAPI (2026-02-19).
What's new #
- Resource-based API organization:
client.messages— Message creation, streaming, token countingclient.messages.batches— Batch message processingclient.models— Model listing and retrievalclient.files— File upload/managementclient.skills— Custom skills management
- Architecture:
- Interceptor chain (Auth → Logging → Error → Transport with Retry wrapper).
- Authentication: API key or custom via
AuthProviderinterface. - Retry with exponential backoff + jitter (only for idempotent methods on 429, 5xx, timeouts).
- Abortable requests via
abortTriggerparameter. - SSE streaming parser for real-time responses.
- Central
AnthropicConfig(timeouts, retry policy, log level, baseUrl, auth).
- Hand-crafted models:
- No code generation dependencies (no freezed, json_serializable).
- Minimal runtime dependencies (
http,logging,metaonly). - Immutable models with
copyWithusing sentinel pattern. - Full type safety with sealed exception hierarchy.
- Improved DX:
- Simplified message creation (e.g.,
InputMessage.user(),InputMessage.assistant()). - Explicit streaming methods (
createStream()vscreate()). - Response helpers (
.text,.hasToolUse,.toolUseBlocks,.thinkingBlocks). - Rich logging with field redaction for sensitive data.
- Simplified message creation (e.g.,
- Full API coverage:
- Messages with tool calling, vision, documents, and citations.
- Extended thinking with budget control.
- Built-in tools (web search, bash, text editor, computer use, code execution, MCP).
- Message batches with JSONL results streaming.
- Files and Skills APIs (Beta).
Breaking Changes #
- Resource-based API: Methods reorganized under strongly-typed resources:
client.createMessage()→client.messages.create()client.createMessageStream()→client.messages.createStream()client.countMessageTokens()→client.messages.countTokens()client.createMessageBatch()→client.messages.batches.create()client.listMessageBatches()→client.messages.batches.list()client.listModels()→client.models.list()client.retrieveModel()→client.models.retrieve()
- Model class renames:
CreateMessageRequest→MessageCreateRequestMessage→InputMessageMessageContent.text()→InputMessage.user()/InputMessage.assistant()Block.text()→TextInputBlockBlock.image()→ImageInputBlockBlock.toolResult()→InputContentBlock.toolResult()Model.model(Models.xxx)→ String model ID (e.g.,'claude-sonnet-4-20250514')
- Configuration: New
AnthropicConfigwithAuthProviderpattern:AnthropicClient(apiKey: 'KEY')→AnthropicClient(config: AnthropicConfig(authProvider: ApiKeyProvider('KEY')))- Or use
AnthropicClient.fromEnvironment()to readANTHROPIC_API_KEY.
- Exceptions: Replaced
AnthropicClientExceptionwith typed hierarchy:ApiException,AuthenticationException,RateLimitException,ValidationException,TimeoutException,AbortedException.
- Streaming: Pattern matching replaces
.map()callbacks:event.map(contentBlockDelta: (e) => ...)→if (event is ContentBlockDeltaEvent) ...
- Enum type changes for better type safety:
Skill.source:String→SkillSourceenum (SkillSource.custom,SkillSource.anthropic)Message.role:String→MessageRoleenum (MessageRole.assistant)SkillsResource.list()sourceparameter:String?→SkillSource?
- Tooling API changes for improved type safety:
toolsparameter:List<Map<String, dynamic>>→List<ToolDefinition>toolChoiceparameter:Map<String, dynamic>→ToolChoice
- Session cleanup:
endSession()→close(). - Dependencies: Removed
freezed,json_serializable; now minimal (http,logging,meta).
See MIGRATION.md for step-by-step examples and mapping tables.
Commits #
- BREAKING FEAT: Complete v1.0.0 reimplementation (#5). (a0623960)
- BREAKING FEAT: Add typed ToolDefinition and SkillSource for improved type safety (#19). (48311502)
- FEAT: Add speed controls, new built-in tools, tool governance, and ToolCaller type (#35). (ad3c34c6)
- FEAT: Enhance models with documentation and add examples (#13). (bfd99bc6)
- FIX: Pre-release documentation and test fixes (#42). (2fb37b06)
- REFACTOR: Align client package architecture across SDK packages (#37). (cf741ee1)
- REFACTOR: Align API surface across all SDK packages (#36). (ed969cc7)
- DOCS: Refactors repository URLs to new location. (76835268)
0.3.1 #
- FIX: Add signature_delta support to BlockDelta (fixes #811) (#878). (1d281837)
- FIX: Update tool types and fix analyzer warnings (#876). (17613b1e)
- FEAT: Add citations_delta support to BlockDelta (#880). (4da916bf)
- FEAT: Add beta features support (#874). (28e4a23a)
- FEAT: Add schema enhancements (#873). (424d3225)
- FEAT: Add Models API (#872). (7962a867)
- FEAT: Add get message batch results endpoint (#871). (46fb2a5d)
- FEAT: Add delete message batch endpoint (#870). (6611e175)
- FEAT: Add cancel message batch endpoint (#869). (b7aa8602)
- FEAT: Add list message batches endpoint (#868). (745e369d)
- FEAT: Add token counting API (#858). (b0d61c92)
0.3.0 #
0.2.1 #
0.2.0+1 #
0.2.0 #
Note: This release has breaking changes, check the relevant issues for more details on how to migrate.
- FEAT: Add support for Message Batches (#585). (a41270a0)
- FEAT: Add claude-3-5-sonnet-20241022 to model catalog (#583). (0cc59e13)
- BREAKING FEAT: Add support for prompt caching (#587). (79dabaa5)
- BREAKING FEAT: Add computer use support (#586). (36c4a3e3)
- DOCS: Update anthropic_sdk_dart readme. (78b7bccf)
0.1.0 #
0.0.1-dev.1 #
- Bootstrap package.