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