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