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