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, FeedbackDraftQueuedMessage,
167 FilesPersistedMessage, HookProgressMessage, HookResponseMessage, HookStartedMessage,
168 InformationalMessage, InitMessage, InitPermissionMode, KnownSystemEvent,
169 LocalCommandOutputMessage, McpMeta, McpServerError, MemoryPaths, MemoryRecallItem,
170 MemoryRecallMessage, MessageOrigin, MessageRole, MirrorErrorKey, MirrorErrorMessage,
171 ModelRefusalFallbackMessage, ModelRefusalNoFallbackMessage, NotificationMessage, OutputStyle,
172 PermissionDeniedMessage, PersistedFile, PluginDiagnostic, PluginInfo, PluginInstallMessage,
173 PreservedMessages, PreservedSegment, RefusalFallbackScope, StatusMessage, StatusMessageStatus,
174 StopReason, SummarizeMetadata, SystemMessage, SystemSubtype, TaskNotificationMessage,
175 TaskPatch, TaskProgressMessage, TaskStartedMessage, TaskStatus, TaskType, TaskUpdatedMessage,
176 TaskUsage, ThinkingTokensMessage, ToolResultMeta, ToolUseMeta, VcsMutationKind,
177 VcsStateChangedMessage, WorkerShuttingDownMessage,
178};
179
180pub use io::{
182 AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState, ConversationResetMessage,
183 PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
184 ToolUseSummaryMessage,
185};
186
187pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
189
190pub use io::{
192 OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
193 RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
194};
195
196pub use io::{
198 AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason, ServerToolUse,
199 SubagentResult, SubagentToolStats, SubagentUsageRollup, UsageInfo,
200};
201
202pub use tool_inputs::{
204 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
205 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
206 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
207 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
208 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
209 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
210};
211
212#[cfg(feature = "async-client")]
214pub use client_async::{AsyncClient, AsyncStreamProcessor};
215#[cfg(feature = "async-client")]
216pub use client_raw_async::RawAsyncClient;
217#[cfg(feature = "sync-client")]
218pub use client_sync::{StreamProcessor, SyncClient};
219
220#[cfg(any(feature = "sync-client", feature = "async-client"))]
222pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
223
224#[cfg(test)]
225mod tests {
226 #[test]
227 fn it_works() {
228 assert_eq!(2 + 2, 4);
229 }
230}