#![forbid(unsafe_code)]
mod approval;
mod context;
mod event;
mod history;
mod message;
mod progress;
mod provider;
mod runtime;
mod tool;
pub use approval::{ApprovalGate, ApprovalRequest};
pub use context::{
BudgetContextPolicy, ContextConfig, ContextError, ContextPolicy, ContextSelection,
};
pub use event::{CoreEvent, EventSink};
pub use history::HistoryLimits;
pub use message::{ImageInput, Message, ToolCall, TurnInput};
pub(crate) use progress::PROGRESS_INTERVAL;
pub use progress::{MAX_PROGRESS_EVENT_BYTES, MAX_PROGRESS_LINE_BYTES, ProgressSink};
pub use provider::{
AssistantResponse, Provider, ProviderError, ProviderErrorKind, ProviderRequest, TextDeltaSink,
Usage,
};
pub use runtime::{AgentConfig, AgentError, AgentRuntime, TurnOutcome};
pub use tool::{
Tool, ToolApprovals, ToolContext, ToolError, ToolFailure, ToolOutput, ToolRegistry, ToolRisk,
ToolSpec,
};