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