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