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