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