#![deny(missing_docs)]
#![deny(rust_2018_idioms)]
#![deny(rustdoc::broken_intra_doc_links)]

//! Tool dispatch utilities for the klieo agent framework.
//!
//! Provides [`ChainedInvoker`], a [`klieo_core::ToolInvoker`] impl
//! that:
//! - Looks up tools by name in a registered set.
//! - Validates JSON arguments against the tool's declared `json_schema`
//!   before invocation (rejects malformed model output early).
//! - Wraps each invocation in a `tokio::time::timeout` so a hung tool
//!   cannot stall the runtime indefinitely.
//!
//! Tools themselves can be hand-rolled `impl Tool` types or generated
//! by the `#[tool]` macro shipped in `klieo-macros` (Plan #4).

pub mod validation;
pub use validation::validate_args;

pub mod invoker;
pub use invoker::ChainedInvoker;
pub use invoker::InvokerError;
