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