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