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