#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
pub mod error;
pub mod event;
pub mod message;
#[cfg(test)]
mod message_tests;
pub mod model;
pub mod policy;
pub mod request;
pub mod runner;
pub mod subagent;
pub mod thinking;
pub mod tool;
pub use error::{CoreError, Result};
pub use event::{EventSink, NullEventSink, RunEvent, RunHooks};
pub use message::{AgentMessage, ContentBlock, ImageContent, Role, SignalMessage};
pub use model::{Model, ModelProvider, ModelRequest, ModelResponse, StreamEvent};
pub use policy::{PolicyVerdict, ToolPolicy};
pub use request::{ToolFactory, ToolRequestContext};
pub use runner::{run_agent, run_agent_streaming, FanoutTurnSink, RunConfig, RunOutcome, TurnSink};
pub use subagent::{
SubagentOptions, SubagentProfile, TaskTool, DEFAULT_MAX_DELEGATIONS, DEFAULT_MAX_DEPTH,
};
pub use thinking::ThinkingLevel;
pub use tool::{
InvokeContext, JsonValue, ParameterSchema, Tool, ToolCall, ToolDefinition, ToolResult,
};
pub use serde_json::Value as Json;