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