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, ToolCaller,
148 ToolPermissionRequest, ToolUseBlock, UsageBehavior, UsageBehaviors, UsageModelUsage,
149 UsageRateLimitWindow, UsageRateLimits, UsageSession,
150};
151
152pub use io::{
154 ApiKeySource, ApiRetryMessage, AssistantErrorKind, BackgroundTaskInfo,
155 BackgroundTasksChangedMessage, CodeChangePublishedMessage, CommandInfo, CommandsChangedMessage,
156 CompactBoundaryMessage, CompactMetadata, CompactionTrigger, ControlRequestProgressMessage,
157 ElicitationCompleteMessage, FailedPersistedFile, FilesPersistedMessage, HookProgressMessage,
158 HookResponseMessage, HookStartedMessage, InformationalMessage, InitMessage, InitPermissionMode,
159 KnownSystemEvent, LocalCommandOutputMessage, McpMeta, McpServerError, MemoryPaths,
160 MemoryRecallItem, MemoryRecallMessage, MessageOrigin, MessageRole, MirrorErrorKey,
161 MirrorErrorMessage, ModelRefusalFallbackMessage, ModelRefusalNoFallbackMessage,
162 NotificationMessage, OutputStyle, PermissionDeniedMessage, PersistedFile, PluginDiagnostic,
163 PluginInfo, PluginInstallMessage, PreservedMessages, PreservedSegment, StatusMessage,
164 StatusMessageStatus, StopReason, SummarizeMetadata, SystemMessage, SystemSubtype,
165 TaskNotificationMessage, TaskPatch, TaskProgressMessage, TaskStartedMessage, TaskStatus,
166 TaskType, TaskUpdatedMessage, TaskUsage, ThinkingTokensMessage, ToolResultMeta, ToolUseMeta,
167 VcsMutationKind, VcsStateChangedMessage, WorkerShuttingDownMessage,
168};
169
170pub use io::{
172 AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState, ConversationResetMessage,
173 PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
174 ToolUseSummaryMessage,
175};
176
177pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
179
180pub use io::{
182 OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
183 RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
184};
185
186pub use io::{
188 AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason, ServerToolUse,
189 SubagentResult, SubagentToolStats, SubagentUsageRollup, UsageInfo,
190};
191
192pub use tool_inputs::{
194 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
195 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
196 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
197 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
198 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
199 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
200};
201
202#[cfg(feature = "async-client")]
204pub use client_async::{AsyncClient, AsyncStreamProcessor};
205#[cfg(feature = "sync-client")]
206pub use client_sync::{StreamProcessor, SyncClient};
207
208#[cfg(any(feature = "sync-client", feature = "async-client"))]
210pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
211
212#[cfg(test)]
213mod tests {
214 #[test]
215 fn it_works() {
216 assert_eq!(2 + 2, 4);
217 }
218}