pub mod error;
pub mod io;
pub mod messages;
pub mod models;
pub mod protocol;
pub mod tool_inputs;
pub mod types;
#[cfg(feature = "async-client")]
pub mod client_async;
#[cfg(feature = "sync-client")]
pub mod client_sync;
#[cfg(any(feature = "sync-client", feature = "async-client"))]
pub mod cli;
#[cfg(any(feature = "sync-client", feature = "async-client"))]
pub mod version;
pub use error::{Error, Result};
pub use io::{
AnthropicError, AnthropicErrorDetails, ApiErrorType, AssistantMessageContent, ClaudeInput,
ClaudeOutput, ParseError, TranscriptMessage,
};
pub use messages::*;
pub use models::ClaudeModel;
pub use protocol::{MessageEnvelope, Protocol};
pub use types::*;
pub use io::{
CodeExecutionToolResultBlock, ContainerUploadBlock, ContentBlock, FallbackBlock, FallbackModel,
ImageBlock, ImageSource, ImageSourceType, McpToolResultBlock, McpToolUseBlock, MediaType,
ServerToolUseBlock, TextBlock, ThinkingBlock, ToolResultBlock, ToolResultContent,
WebSearchToolResultBlock,
};
pub use io::{
AskUserQuestionResponseError, ControlRequest, ControlRequestMessage, ControlRequestPayload,
ControlResponse, ControlResponseMessage, ControlResponsePayload, GetUsageResponse,
HookCallbackRequest, InitializeRequest, McpMessageRequest, ModelScopedRateLimit, Permission,
PermissionBehavior, PermissionDenial, PermissionDestination, PermissionModeName,
PermissionResult, PermissionRule, PermissionSuggestion, PermissionType, ToolCaller,
ToolPermissionRequest, ToolUseBlock, UsageBehavior, UsageBehaviors, UsageModelUsage,
UsageRateLimitWindow, UsageRateLimits, UsageSession,
};
pub use io::{
ApiKeySource, ApiRetryMessage, AssistantErrorKind, BackgroundTaskInfo,
BackgroundTasksChangedMessage, CodeChangePublishedMessage, CommandInfo, CommandsChangedMessage,
CompactBoundaryMessage, CompactMetadata, CompactionTrigger, ControlRequestProgressMessage,
ElicitationCompleteMessage, FailedPersistedFile, FilesPersistedMessage, HookProgressMessage,
HookResponseMessage, HookStartedMessage, InformationalMessage, InitMessage, InitPermissionMode,
KnownSystemEvent, LocalCommandOutputMessage, McpMeta, McpServerError, MemoryPaths,
MemoryRecallItem, MemoryRecallMessage, MessageOrigin, MessageRole, MirrorErrorKey,
MirrorErrorMessage, ModelRefusalFallbackMessage, ModelRefusalNoFallbackMessage,
NotificationMessage, OutputStyle, PermissionDeniedMessage, PersistedFile, PluginDiagnostic,
PluginInfo, PluginInstallMessage, PreservedMessages, PreservedSegment, StatusMessage,
StatusMessageStatus, StopReason, SummarizeMetadata, SystemMessage, SystemSubtype,
TaskNotificationMessage, TaskPatch, TaskProgressMessage, TaskStartedMessage, TaskStatus,
TaskType, TaskUpdatedMessage, TaskUsage, ThinkingTokensMessage, ToolResultMeta, ToolUseMeta,
VcsMutationKind, VcsStateChangedMessage, WorkerShuttingDownMessage,
};
pub use io::{
AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState, ConversationResetMessage,
PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
ToolUseSummaryMessage,
};
pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
pub use io::{
OverageDisabledReason, OveragePeriodUtilization, OverageStatus, RateLimitErrorCode,
RateLimitEvent, RateLimitInfo, RateLimitStatus, RateLimitWindow,
};
pub use io::{
AssistantUsage, CacheCreationDetails, DeferredToolUse, FastModeDisabledReason, ServerToolUse,
SubagentResult, SubagentToolStats, SubagentUsageRollup, UsageInfo,
};
pub use tool_inputs::{
AllowedPrompt, AskUserQuestionInput, BashInput, EditInput, EnterPlanModeInput,
ExitPlanModeInput, GlobInput, GrepInput, GrepOutputMode, KillShellInput, LsInput,
MultiEditInput, MultiEditOperation, NotebookCellType, NotebookEditInput, NotebookEditMode,
NotebookReadInput, Question, QuestionMetadata, QuestionOption, ReadInput, ScheduleWakeupInput,
SkillInput, SubagentType, TaskInput, TaskOutputInput, TodoItem, TodoStatus, TodoWriteInput,
ToolInput, ToolSearchInput, WebFetchInput, WebSearchInput, WriteInput,
};
#[cfg(feature = "async-client")]
pub use client_async::{AsyncClient, AsyncStreamProcessor};
#[cfg(feature = "sync-client")]
pub use client_sync::{StreamProcessor, SyncClient};
#[cfg(any(feature = "sync-client", feature = "async-client"))]
pub use cli::{ClaudeCliBuilder, CliFlag, InputFormat, OutputFormat, PermissionMode};
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}