1pub mod error;
103pub mod io;
104pub mod messages;
105pub mod models;
106pub mod protocol;
107pub mod tool_inputs;
108pub mod types;
109
110#[cfg(feature = "async-client")]
112pub mod client_async;
113#[cfg(feature = "async-client")]
114pub mod client_raw_async;
115#[cfg(feature = "sync-client")]
116pub mod client_sync;
117
118#[cfg(any(feature = "sync-client", feature = "async-client"))]
120pub mod cli;
121#[cfg(any(feature = "sync-client", feature = "async-client"))]
122pub mod version;
123
124#[cfg(any(feature = "sync-client", feature = "async-client"))]
125mod process;
126
127pub use error::{Error, Result};
129pub use io::{
130 AnthropicError, AnthropicErrorDetails, ApiErrorType, AssistantMessageContent, ClaudeInput,
131 ClaudeOutput, ParseError, TranscriptMessage,
132};
133pub use messages::*;
134pub use models::ClaudeModel;
135pub use protocol::{MessageEnvelope, Protocol};
136pub use types::*;
137
138pub use io::{
140 CodeExecutionToolResultBlock, ContainerUploadBlock, ContentBlock, FallbackBlock, FallbackModel,
141 ImageBlock, ImageSource, ImageSourceType, McpToolResultBlock, McpToolUseBlock, MediaType,
142 ServerToolUseBlock, TextBlock, ThinkingBlock, ToolResultBlock, ToolResultContent,
143 WebSearchToolResultBlock,
144};
145
146pub use io::{
148 AskUserQuestionResponseError, ControlRequest, ControlRequestMessage, ControlRequestPayload,
149 ControlResponse, ControlResponseMessage, ControlResponsePayload, GetUsageResponse,
150 HookCallbackRequest, InitializeRequest, McpMessageRequest, ModelScopedRateLimit, Permission,
151 PermissionBehavior, PermissionDenial, PermissionDestination, PermissionModeName,
152 PermissionResult, PermissionRule, PermissionSuggestion, PermissionType, ToolCaller,
153 ToolPermissionRequest, ToolUseBlock, UsageBehavior, UsageBehaviors, UsageModelUsage,
154 UsageRateLimitWindow, UsageRateLimits, UsageSession,
155};
156
157pub use io::{
159 ApiKeySource, ApiRetryMessage, AssistantErrorKind, BackgroundTaskInfo,
160 BackgroundTasksChangedMessage, CodeChangePublishedMessage, CommandInfo, CommandsChangedMessage,
161 CompactBoundaryMessage, CompactMetadata, CompactionTrigger, ControlRequestProgressMessage,
162 ElicitationCompleteMessage, FailedPersistedFile, FilesPersistedMessage, HookProgressMessage,
163 HookResponseMessage, HookStartedMessage, InformationalMessage, InitMessage, InitPermissionMode,
164 KnownSystemEvent, LocalCommandOutputMessage, McpMeta, McpServerError, MemoryPaths,
165 MemoryRecallItem, MemoryRecallMessage, MessageOrigin, MessageRole, MirrorErrorKey,
166 MirrorErrorMessage, ModelRefusalFallbackMessage, ModelRefusalNoFallbackMessage,
167 NotificationMessage, OutputStyle, PermissionDeniedMessage, PersistedFile, PluginDiagnostic,
168 PluginInfo, PluginInstallMessage, PreservedMessages, PreservedSegment, StatusMessage,
169 StatusMessageStatus, StopReason, SummarizeMetadata, SystemMessage, SystemSubtype,
170 TaskNotificationMessage, TaskPatch, TaskProgressMessage, TaskStartedMessage, TaskStatus,
171 TaskType, TaskUpdatedMessage, TaskUsage, ThinkingTokensMessage, ToolResultMeta, ToolUseMeta,
172 VcsMutationKind, VcsStateChangedMessage, WorkerShuttingDownMessage,
173};
174
175pub use io::{
177 AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState, ConversationResetMessage,
178 PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
179 ToolUseSummaryMessage,
180};
181
182pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
184
185pub use io::{
187 OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
188 RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
189};
190
191pub use io::{
193 AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason, ServerToolUse,
194 SubagentResult, SubagentToolStats, SubagentUsageRollup, UsageInfo,
195};
196
197pub use tool_inputs::{
199 AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
200 ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
201 MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
202 NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
203 SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
204 ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
205};
206
207#[cfg(feature = "async-client")]
209pub use client_async::{AsyncClient, AsyncStreamProcessor};
210#[cfg(feature = "async-client")]
211pub use client_raw_async::RawAsyncClient;
212#[cfg(feature = "sync-client")]
213pub use client_sync::{StreamProcessor, SyncClient};
214
215#[cfg(any(feature = "sync-client", feature = "async-client"))]
217pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
218
219#[cfg(test)]
220mod tests {
221 #[test]
222 fn it_works() {
223 assert_eq!(2 + 2, 4);
224 }
225}