1pub mod error;
103pub mod io;
104pub mod messages;
105pub mod models;
106pub mod protocol;
107pub mod tool_inputs;
108pub mod types;
109
110#[cfg(feature = "async-client")]
112pub mod client_async;
113#[cfg(feature = "sync-client")]
114pub mod client_sync;
115
116#[cfg(any(feature = "sync-client", feature = "async-client"))]
118pub mod cli;
119#[cfg(any(feature = "sync-client", feature = "async-client"))]
120pub mod version;
121
122pub use error::{Error, Result};
124pub use io::{
125 AnthropicError, AnthropicErrorDetails, ApiErrorType, AssistantMessageContent, ClaudeInput,
126 ClaudeOutput, ParseError, TranscriptMessage,
127};
128pub use messages::*;
129pub use models::ClaudeModel;
130pub use protocol::{MessageEnvelope, Protocol};
131pub use types::*;
132
133pub use io::{
135 CodeExecutionToolResultBlock, ContainerUploadBlock, ContentBlock, FallbackBlock, FallbackModel,
136 ImageBlock, ImageSource, ImageSourceType, McpToolResultBlock, McpToolUseBlock, MediaType,
137 ServerToolUseBlock, TextBlock, ThinkingBlock, ToolResultBlock, ToolResultContent,
138 WebSearchToolResultBlock,
139};
140
141pub use io::{
143 AskUserQuestionResponseError, ControlRequest, ControlRequestMessage, ControlRequestPayload,
144 ControlResponse, ControlResponseMessage, ControlResponsePayload, GetUsageResponse,
145 HookCallbackRequest, InitializeRequest, McpMessageRequest, ModelScopedRateLimit, Permission,
146 PermissionBehavior, PermissionDenial, PermissionDestination, PermissionModeName,
147 PermissionResult, PermissionRule, PermissionSuggestion, PermissionType,
148 SDKControlInterruptRequest, ToolCaller, ToolPermissionRequest, ToolUseBlock, UsageBehavior,
149 UsageBehaviors, UsageModelUsage, UsageRateLimitWindow, UsageRateLimits, UsageSession,
150};
151
152pub use io::{
154 ApiKeySource, ApiRetryMessage, AssistantErrorKind, BackgroundTaskInfo,
155 BackgroundTasksChangedMessage, CommandInfo, CommandsChangedMessage, CompactBoundaryMessage,
156 CompactMetadata, CompactionTrigger, ControlRequestProgressMessage, ElicitationCompleteMessage,
157 FailedPersistedFile, FilesPersistedMessage, HookProgressMessage, HookResponseMessage,
158 HookStartedMessage, InformationalMessage, InitMessage, InitPermissionMode, KnownSystemEvent,
159 LocalCommandOutputMessage, McpMeta, MemoryPaths, MemoryRecallItem, MemoryRecallMessage,
160 MessageOrigin, MessageRole, MirrorErrorKey, MirrorErrorMessage, ModelRefusalFallbackMessage,
161 ModelRefusalNoFallbackMessage, NotificationMessage, OutputStyle, PermissionDeniedMessage,
162 PersistedFile, PluginDiagnostic, PluginInfo, PluginInstallMessage, PreservedMessages,
163 PreservedSegment, StatusMessage, StatusMessageStatus, StopReason, SummarizeMetadata,
164 SystemMessage, SystemSubtype, TaskNotificationMessage, TaskPatch, TaskProgressMessage,
165 TaskStartedMessage, TaskStatus, TaskType, TaskUpdatedMessage, TaskUsage, ThinkingTokensMessage,
166 ToolUseMeta, WorkerShuttingDownMessage,
167};
168
169pub use io::{
171 AuthStatusMessage, ConversationResetMessage, PromptSuggestionMessage, StreamEventMessage,
172 ToolProgressMessage, ToolUseSummaryMessage,
173};
174
175pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
177
178pub use io::{
180 OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
181 RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
182};
183
184pub use io::{
186 AssistantUsage, CacheCreationDetails, DeferredToolUse, ServerToolUse, SubagentResult,
187 SubagentToolStats, SubagentUsageRollup, UsageInfo,
188};
189
190pub use tool_inputs::{
192 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
193 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
194 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
195 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
196 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
197 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
198};
199
200#[cfg(feature = "async-client")]
202pub use client_async::{AsyncClient, AsyncStreamProcessor};
203#[cfg(feature = "sync-client")]
204pub use client_sync::{StreamProcessor, SyncClient};
205
206#[cfg(any(feature = "sync-client", feature = "async-client"))]
208pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
209
210#[cfg(test)]
211mod tests {
212 #[test]
213 fn it_works() {
214 assert_eq!(2 + 2, 4);
215 }
216}