chromewright 0.8.0

Browser automation MCP server via Chrome DevTools Protocol (CDP)
Documentation
//! Internal implementation crate for the `chromewright` CLI.
//!
//! The supported user-facing surface is the `chromewright` binary and its MCP tool contract.
//! This crate remains public for repository-internal tests and refactors, but the Rust embedding
//! API is not treated as a stable product surface yet.

#[doc(hidden)]
pub mod browser;
#[doc(hidden)]
pub mod contract;
#[doc(hidden)]
pub mod dom;
#[doc(hidden)]
pub mod error;
#[doc(hidden)]
pub mod tools;

#[cfg(feature = "tui")]
#[doc(hidden)]
pub mod semantic;

#[cfg(feature = "tui")]
#[doc(hidden)]
pub mod tui;

#[cfg(feature = "mcp-handler")]
#[doc(hidden)]
pub mod mcp;

#[doc(hidden)]
pub use browser::{BrowserSession, ClosedTabSummary, ConnectionOptions, LaunchOptions, TabInfo};
#[doc(hidden)]
pub use dom::{
    BoundingBox, DocumentMetadata, DomTree, ElementNode, FrameMetadata, NodeRef, SnapshotNode,
};
#[doc(hidden)]
pub use error::{BrowserError, Result};
#[doc(hidden)]
pub use tools::{Tool, ToolContext, ToolRegistry, ToolResult};

#[cfg(feature = "tui")]
#[doc(hidden)]
pub use semantic::{
    ComponentProjection, DebugNode, DebugProjection, LandmarkRole, MAX_RENDER_OUTPUT_CHARS,
    MAX_SEMANTIC_COMPONENTS, MAX_SEMANTIC_DEPTH, MAX_SEMANTIC_SELECT_OPTIONS,
    MAX_SEMANTIC_STRING_CHARS, MAX_SEMANTIC_TOTAL_TEXT_CHARS, OutlineEntry, OutlineProjection,
    RenderError, RenderedOutput, SelectOption, SemanticAttrs, SemanticComponent, SemanticDocument,
    SemanticJsonProjection, SemanticKind, SemanticRatatuiView, SemanticRef, SemanticRefError,
    buffer_to_lines, extract_semantic_document, render_component_json, render_component_markdown,
    render_debug, render_outline, render_ratatui_buffer, render_ratatui_lines,
    render_semantic_json, render_semantic_markdown, truncate_output,
};

#[cfg(feature = "tui")]
#[doc(hidden)]
pub use tui::{BrowserSessionPolicy, ManagedHeadlessSession, TuiConfig, TuiOptions, run_tui};

#[cfg(feature = "mcp-handler")]
#[doc(hidden)]
pub use mcp::BrowserServer;
#[cfg(feature = "mcp-handler")]
#[doc(hidden)]
pub use rmcp::ServiceExt;