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