//! Tool directive and configuration types.
//!
//! This module defines the domain types for controlling how individual tools
//! are routed during an agent session. A tool can be passed through to the
//! agent, intercepted by the editor, denied, hidden, handled by Dirigent
//! itself, or delegated to a plugin.
//!
//! # Key types
//!
//! - [`ToolHandler`] -- Enum of routing targets for a tool call.
//! - [`ToolDirective`] -- Binds a tool ID to a handler (passthrough or checked).
//! - [`ToolConfiguration`] -- Collection of directives with query and
//!   persistence helpers.
//!
//! These types are **not** feature-gated and are available on WASM targets,
//! since they are pure data types used by both the server runtime and the
//! web UI.

pub mod configuration;
pub mod directive;

// Re-export the main types at the module level for convenience.
pub use configuration::ToolConfiguration;
pub use directive::{ToolDirective, ToolHandler};
