//! Pre-execution validation for kaish scripts.
//!
//! The validator runs after parsing but before execution to catch errors early.
//! It validates:
//!
//! - **Command existence**: Are commands defined (builtin, user-defined, MCP)?
//! - **Argument schemas**: Required params present? Known flags? Type compatibility?
//! - **Semantic constraints**: Regex compiles? seq increment != 0? count > 0?
//! - **Variable bindings**: Warn on possibly undefined variables
//! - **Control flow**: break/continue outside loop? return outside function?
//!
//! # Example
//!
//! ```ignore
//! use kaish_kernel::validator::Validator;
//! use kaish_kernel::parser::parse;
//!
//! let program = parse("nonexistent_cmd arg")?;
//! let validator = Validator::new(®istry, &user_tools);
//! let issues = validator.validate(&program);
//!
//! for issue in &issues {
//! println!("{}", issue.format(source));
//! }
//! ```
pub use ;
pub use ScopeTracker;
pub use ;