pub mod error;
pub mod io;
pub mod messages;
pub mod models;
pub mod protocol;
pub mod tool_inputs;
pub mod types;
pub mod transcript;
#[cfg(feature = "auth")]
pub mod auth;
#[cfg(feature = "async-client")]
pub mod client_async;
#[cfg(feature = "async-client")]
pub mod client_raw_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;
#[cfg(any(feature = "sync-client", feature = "async-client"))]
mod process;
pub use error::{Error, Result};
pub use io::{
AnthropicError, AnthropicErrorDetails, ApiErrorType, AssistantMessageContent, ClaudeInput,
ClaudeOutput, ParseError, TranscriptMessage,
};
pub use messages::*;
pub use models::{ClaudeModel, EffortLevel};
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::{
ApplyFlagSettingsRequest, AskUserQuestionResponseError, ControlCancelRequest, 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::{
ApiErrorCut, ApiErrorMedia, ApiErrorMediaReason, ApiErrorParams, ApiErrorProvider,
ApiErrorRemedy, ApiKeySource, ApiRetryMessage, ApiRetryNoResponse, ArtifactReadVersion,
AssistantErrorKind, AutoModeRule, AutoModeRuleList, BackgroundTaskInfo,
BackgroundTasksChangedMessage, BatchToolUse, ClientThinking, CloudSessionDeltaMessage,
CodeChangePublishedMessage, CommandInfo, CommandsChangedMessage, CompactBoundaryMessage,
CompactMetadata, CompactionTrigger, ContextAgent, ContextCategory, ContextMcpTool,
ContextMemoryFile, ContextOverLimit, ContextSkill, ContextUsage, ControlRequestProgressMessage,
CyberVerificationStatus, DevIntentKind, DevIntentMessage, DevIntentTrigger,
ElicitationCompleteMessage, FailedPersistedFile, FeedbackDraftQueuedMessage,
FileAttachmentsMissingMessage, FilesPersistedMessage, HandbackReport, HookProgressMessage,
HookResponseMessage, HookStartedMessage, InformationalMessage, InheritedAsksSettledMessage,
InitMessage, InitPermissionMode, InstructionSizeWarningMessage, KnownSystemEvent,
LocalCommandOutcome, LocalCommandOutcomeKind, LocalCommandOutputMessage, LocalCommandRun,
LostSessionWrite, McpMeta, McpServerError, MemoryPaths, MemoryRecallItem, MemoryRecallMessage,
MessageOrigin, MessageRole, MirrorErrorKey, MirrorErrorMessage, MissingFileAttachment,
ModelRefusalFallbackMessage, ModelRefusalNoFallbackMessage, ModelRestriction,
NotificationMessage, OutputStyle, PeerMessageHoldCause, PeerMessageHoldMessage,
PeerMessageHoldOutcome, PeerMessageHoldState, PeerMessageLane, PerTurnEffortChangedMessage,
PermissionCheckStatus, PermissionCheckStatusMessage, PermissionDecisionOutcome,
PermissionDecisionReasonType, PermissionDeniedMessage, PermissionDeniedReasonCode,
PersistedFile, PluginDiagnostic, PluginInfo, PluginInstallMessage, PluginPrompt,
PreservedMessages, PreservedSegment, PromptSubmitOutcome, PromptSubmitOutcomeKind,
RefusalFallbackScope, RemedyFeature, RemedyFeatureCause, RemedyLoginProvider, RemedyPolicyKind,
SessionTitleChangedMessage, SessionWriteErrorCode, SessionWritesLostMessage, StatusMessage,
StatusMessageStatus, StopReason, SummarizeMetadata, SystemMessage, SystemSubtype,
TaskEndReason, TaskHandback, TaskNotificationMessage, TaskPatch, TaskProgressMessage,
TaskStartedMessage, TaskStatus, TaskType, TaskUpdatedMessage, TaskUsage, ThinkingTokensMessage,
ToolPermissionDecision, ToolResultMeta, ToolResultRemedy, ToolResultRemedyKind, ToolUseMeta,
TurnHandoffAvailableMessage, TurnPreemptedMessage, UiFocusMessage, UiInvalidateMessage,
UiInvalidatedInstance, UiLogMessage, UiNotifyCancelMessage, UiNotifyMessage, UiPane,
UiPanesMessage, UiPlacedMessage, UiPlacedRow, UiScrollMessage, UiSiteComponent,
UiStatusMessage, UiToastMessage, UsageReport, UsageReportExtraUsage, UsageReportLimit,
UsageReportRateLimits, UsageReportScope, UsageReportScopeLabel, VcsMutationKind,
VcsStateChangedMessage, ViewMode, WorkerShuttingDownMessage,
};
pub use io::{
AbandonedBlocks, AuthStatusMessage, CommandLifecycleMessage, CommandLifecycleState,
CommandWakeupSource, ConversationResetMessage, ConversationResetTrigger,
PromptSuggestionMessage, StreamEventMessage, SubagentRetry, ToolProgressMessage,
ToolUseSummaryMessage,
};
pub use io::{assert_fully_wrapped, audit_frame, FrameAudit};
pub use io::{
AdminRequestOffer, AdminRequestOfferState, OverageDisabledReason, OveragePeriodUtilization,
OverageStatus, RateLimitErrorCode, RateLimitEvent, RateLimitInfo, RateLimitScope,
RateLimitStatus, RateLimitWindow, UsageCreditOffer, UsageCreditOfferKind,
};
pub use io::{
AssistantUsage, CacheCreationDetails, DeferredToolUse, DiffersFilesCounts,
FastModeDisabledReason, GarbageCollectionCounts, InputAttachmentsDetail,
MessageNormalizationDetail, ProcessGarbageCollections, ProcessStateTime, ProcessTurnStates,
RequestBuildDetail, ResumeStoreConfirmDetail, RunnerExit, RunnerExitPhase, ServerToolUse,
StartupFailureReason, StreamPostQueuedBehind, SubagentKillCounts, SubagentRefusalCounts,
SubagentResult, SubagentSpawnRequests, SubagentStats, SubagentToolStats, SubagentUsageRollup,
ToolSchemaBuildDetail, TouchCompareCounts, TurnStartResumeKind, 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 = "async-client")]
pub use client_raw_async::RawAsyncClient;
#[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);
}
}