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 PersistedFile, PluginDiagnostic, PluginInfo, PluginInstallMessage, PreservedMessages,
181 PreservedSegment, RefusalFallbackScope, StatusMessage, StatusMessageStatus, StopReason,
182 SummarizeMetadata, SystemMessage, SystemSubtype, TaskEndReason, TaskNotificationMessage,
183 TaskPatch, TaskProgressMessage, TaskStartedMessage, TaskStatus, TaskType, TaskUpdatedMessage,
184 TaskUsage, ThinkingTokensMessage, ToolResultMeta, ToolUseMeta, TurnHandoffAvailableMessage,
185 TurnPreemptedMessage, UsageReport, UsageReportExtraUsage, UsageReportLimit,
186 UsageReportRateLimits, UsageReportScope, UsageReportScopeLabel, VcsMutationKind,
187 VcsStateChangedMessage, WorkerShuttingDownMessage,
188};
189
190pub use io::{
192 AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState, ConversationResetMessage,
193 PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
194 ToolUseSummaryMessage,
195};
196
197pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
199
200pub use io::{
202 OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
203 RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
204};
205
206pub use io::{
208 AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason, RunnerExit,
209 RunnerExitPhase, ServerToolUse, StartupFailureReason, SubagentKillCounts,
210 SubagentRefusalCounts, SubagentResult, SubagentSpawnRequests, SubagentStats, SubagentToolStats,
211 SubagentUsageRollup, UsageInfo,
212};
213
214pub use tool_inputs::{
216 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
217 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
218 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
219 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
220 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
221 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
222};
223
224#[cfg(feature = "async-client")]
226pub use client_async::{AsyncClient, AsyncStreamProcessor};
227#[cfg(feature = "async-client")]
228pub use client_raw_async::RawAsyncClient;
229#[cfg(feature = "sync-client")]
230pub use client_sync::{StreamProcessor, SyncClient};
231
232#[cfg(any(feature = "sync-client", feature = "async-client"))]
234pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
235
236#[cfg(test)]
237mod tests {
238 #[test]
239 fn it_works() {
240 assert_eq!(2 + 2, 4);
241 }
242}