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, ControlCancelRequest, ControlRequest, ControlRequestMessage,
156 ControlRequestPayload, ControlResponse, ControlResponseMessage, ControlResponsePayload,
157 GetUsageResponse, HookCallbackRequest, InitializeRequest, McpMessageRequest,
158 ModelScopedRateLimit, Permission, PermissionBehavior, PermissionDenial, PermissionDestination,
159 PermissionModeName, PermissionResult, PermissionRule, PermissionSuggestion, PermissionType,
160 ToolCaller, ToolPermissionRequest, ToolUseBlock, UsageBehavior, UsageBehaviors,
161 UsageModelUsage, 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, InheritedAsksSettledMessage, InitMessage,
176 InitPermissionMode, InstructionSizeWarningMessage, KnownSystemEvent, LocalCommandOutcome,
177 LocalCommandOutcomeKind, LocalCommandOutputMessage, LocalCommandRun, McpMeta, McpServerError,
178 MemoryPaths, 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, PromptSubmitOutcome, PromptSubmitOutcomeKind,
186 RefusalFallbackScope, RemedyFeature, RemedyFeatureCause, RemedyLoginProvider, RemedyPolicyKind,
187 SessionTitleChangedMessage, StatusMessage, StatusMessageStatus, StopReason, SummarizeMetadata,
188 SystemMessage, SystemSubtype, TaskEndReason, TaskHandback, TaskNotificationMessage, TaskPatch,
189 TaskProgressMessage, TaskStartedMessage, TaskStatus, TaskType, TaskUpdatedMessage, TaskUsage,
190 ThinkingTokensMessage, ToolPermissionDecision, ToolResultMeta, ToolResultRemedy,
191 ToolResultRemedyKind, ToolUseMeta, TurnHandoffAvailableMessage, TurnPreemptedMessage,
192 UiFocusMessage, UiInvalidateMessage, UiInvalidatedInstance, UiLogMessage, UiPane,
193 UiPanesMessage, UiScrollMessage, UiSiteComponent, UiStatusMessage, UiToastMessage, UsageReport,
194 UsageReportExtraUsage, UsageReportLimit, UsageReportRateLimits, UsageReportScope,
195 UsageReportScopeLabel, VcsMutationKind, VcsStateChangedMessage, ViewMode,
196 WorkerShuttingDownMessage,
197};
198
199pub use io::{
201 AbandonedBlocks, AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState,
202 CommandWakeupSource, ConversationResetMessage, ConversationResetTrigger,
203 PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
204 ToolUseSummaryMessage,
205};
206
207pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
209
210pub use io::{
212 AdminRequestOffer, AdminRequestOfferState, OverageDisabledReason, OveragePeriodUtilization,
213 OverageStatus, RateLimitErrorCode, RateLimitEvent, RateLimitInfo, RateLimitScope,
214 RateLimitStatus, RateLimitWindow, UsageCreditOffer, UsageCreditOfferKind,
215};
216
217pub use io::{
219 AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason,
220 GarbageCollectionCounts, InputAttachmentsDetail, ProcessGarbageCollections,
221 ResumeStoreConfirmDetail, RunnerExit, RunnerExitPhase, ServerToolUse, StartupFailureReason,
222 StreamPostQueuedBehind, SubagentKillCounts, SubagentRefusalCounts, SubagentResult,
223 SubagentSpawnRequests, SubagentStats, SubagentToolStats, SubagentUsageRollup,
224 TouchCompareCounts, TurnStartResumeKind, UsageInfo,
225};
226
227pub use tool_inputs::{
229 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
230 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
231 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
232 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
233 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
234 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
235};
236
237#[cfg(feature = "async-client")]
239pub use client_async::{AsyncClient, AsyncStreamProcessor};
240#[cfg(feature = "async-client")]
241pub use client_raw_async::RawAsyncClient;
242#[cfg(feature = "sync-client")]
243pub use client_sync::{StreamProcessor, SyncClient};
244
245#[cfg(any(feature = "sync-client", feature = "async-client"))]
247pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
248
249#[cfg(test)]
250mod tests {
251 #[test]
252 fn it_works() {
253 assert_eq!(2 + 2, 4);
254 }
255}