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