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