mod io;
pub mod error;
pub mod jsonrpc;
pub mod messages;
pub mod protocol;
#[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 stderr_drain;
#[cfg(feature = "sync-client")]
pub mod client_sync;
#[cfg(feature = "async-client")]
pub mod client_async;
pub use io::events::{
ItemCompletedEvent, ItemStartedEvent, ItemUpdatedEvent, ThreadError, ThreadErrorEvent,
ThreadEvent, ThreadStartedEvent, TurnCompletedEvent, TurnFailedEvent, TurnStartedEvent, Usage,
};
pub use io::items::{
AgentMessageItem, CommandExecutionItem, CommandExecutionStatus, ErrorItem, FileChangeItem,
FileUpdateChange, McpToolCallError, McpToolCallItem, McpToolCallResult, McpToolCallStatus,
PatchApplyStatus, PatchChangeKind, ReasoningItem, ThreadItem, TodoItem, TodoListItem,
WebSearchItem,
};
pub use io::options::{
ApprovalMode, ModelReasoningEffort, SandboxMode, ThreadOptions, WebSearchMode,
};
pub use error::{Error, ParseError, Result};
pub use jsonrpc::{
JsonRpcError, JsonRpcErrorData, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest,
JsonRpcResponse, RequestId,
};
pub use protocol::{
AccountLoginCompletedNotification, AccountRateLimitsUpdatedNotification,
AccountUpdatedNotification, AgentMessageDeltaNotification, AppListUpdatedNotification,
ClientInfo, CmdOutputDeltaNotification, CommandApprovalDecision,
CommandExecOutputDeltaNotification, CommandExecutionApprovalParams,
CommandExecutionApprovalResponse, ConfigWarningNotification, ContextCompactedNotification,
DeprecationNoticeNotification, ErrorNotification,
ExternalAgentConfigImportCompletedNotification, FileChangeApprovalDecision,
FileChangeApprovalParams, FileChangeApprovalResponse, FileChangeOutputDeltaNotification,
FileChangePatchUpdatedNotification, FsChangedNotification,
FuzzyFileSearchSessionCompletedNotification, FuzzyFileSearchSessionUpdatedNotification,
GuardianWarningNotification, HookCompletedNotification, HookStartedNotification,
InitializeCapabilities, InitializeParams, InitializeResponse, ItemCompletedNotification,
ItemGuardianApprovalReviewCompletedNotification, ItemGuardianApprovalReviewStartedNotification,
ItemStartedNotification, McpServerOauthLoginCompletedNotification,
McpServerStartupStatusUpdatedNotification, McpToolCallProgressNotification,
ModelReroutedNotification, ModelVerificationNotification, PlanDeltaNotification,
ProcessExitedNotification, ProcessOutputDeltaNotification, RateLimitWindow, RateLimits,
ReasoningDeltaNotification, ReasoningSummaryPartAddedNotification,
ReasoningTextDeltaNotification, RemoteControlStatusChangedNotification,
ServerRequestResolvedNotification, SkillsChangedNotification, TerminalInteractionNotification,
ThreadArchiveParams, ThreadArchiveResponse, ThreadArchivedNotification,
ThreadClosedNotification, ThreadGoalClearedNotification, ThreadGoalUpdatedNotification,
ThreadInfo, ThreadNameUpdatedNotification, ThreadRealtimeClosedNotification,
ThreadRealtimeErrorNotification, ThreadRealtimeItemAddedNotification,
ThreadRealtimeOutputAudioDeltaNotification, ThreadRealtimeSdpNotification,
ThreadRealtimeStartedNotification, ThreadRealtimeTranscriptDeltaNotification,
ThreadRealtimeTranscriptDoneNotification, ThreadStartParams, ThreadStartResponse,
ThreadStartedNotification, ThreadStatus, ThreadStatusChangedNotification,
ThreadTokenUsageUpdatedNotification, ThreadUnarchivedNotification, TokenCounts, TokenUsage,
Turn, TurnCompletedNotification, TurnDiffUpdatedNotification, TurnError, TurnInterruptParams,
TurnInterruptResponse, TurnPlanStep, TurnPlanStepStatus, TurnPlanUpdatedNotification,
TurnStartParams, TurnStartResponse, TurnStartedNotification, TurnStatus, UserInput,
WarningNotification, WindowsSandboxSetupCompletedNotification,
WindowsWorldWritableWarningNotification,
};
pub use io::items::{UserMessageContent, UserMessageItem};
pub use messages::{Notification, ServerMessage, ServerRequest};
#[cfg(any(feature = "sync-client", feature = "async-client"))]
pub use cli::AppServerBuilder;
#[cfg(feature = "sync-client")]
pub use client_sync::{EventIterator, SyncClient};
#[cfg(feature = "async-client")]
pub use client_async::{AsyncClient, EventStream};