pub mod agent;
pub mod client;
pub mod conversation;
pub mod error;
pub mod handler;
pub mod hooks;
pub mod mcp_server;
pub mod model;
pub mod options;
pub mod permissions;
pub mod proto;
pub mod response;
pub mod tool;
pub mod transport;
mod util;
pub use agent::Agent;
pub use client::Client;
pub use conversation::{Conversation, Turn, TurnBuilder};
pub use error::Error;
pub use handler::{DefaultHandler, Handler, dispatch};
pub use hooks::{
Hooks, PostToolUseCallback, PostToolUseDecision, PostToolUseInput, PostToolUseOutput,
PreToolUseCallback, PreToolUseDecision, PreToolUseInput, PreToolUseOutput, StopCallback,
StopDecision, StopInput, StopOutput, UserPromptSubmitCallback, UserPromptSubmitDecision,
UserPromptSubmitInput, UserPromptSubmitOutput,
};
pub use mcp_server::McpServer;
pub use model::Model;
pub use options::Options;
pub use permissions::{
Callback as PermissionCallback, Decision, PermissionContext, PermissionMode, PermissionRule,
};
pub use proto::incoming::RateLimitStatus;
pub use proto::message::{AssistantError, Usage};
pub use response::{
ApiRetryResponse, CompleteResponse, ErrorResponse, HookLifecycleResponse, InitResponse,
NotificationResponse, RateLimitResponse, Response, Responses, TaskNotificationResponse,
TaskProgressResponse, TaskStartedResponse, TaskUpdatedResponse, TextResponse, ThinkingResponse,
ToolResultResponse, ToolUseResponse,
};
pub use tool::{Tool, ToolError, ToolInput};