//! Browser automation and perception pipeline for the Common Agent Runtime.
//!
//! This crate provides:
//! - `BrowserBackend` trait: abstract interface for browser automation
//! - Perception pipeline: converts raw browser state (screenshots + a11y trees) into structured `UiMap` data
//! - Browser tool registration: registers `browse_*` tools with `car-engine`
//!
//! # Architecture
//!
//! `car-browser` is backend-agnostic. Consumers provide a `BrowserBackend` implementation:
//! - **Hydra** provides `TauriBackend` (drives Tauri's WebView)
//! - **Headless** uses `ChromiumBackend` (chromiumoxide)
//! - **Tests** use `MockBackend`

pub mod backend;
pub mod chromium;
pub mod models;
pub mod perception;
pub mod tools;

pub use backend::{BrowserBackend, BrowserError};
pub use chromium::ChromiumBackend;
pub use models::{A11yNode, Bounds, Modifier, Viewport, WaitCondition};
pub use tools::BrowserToolExecutor;
