codetether-agent 4.5.2

A2A-native AI coding agent for the CodeTether ecosystem
Documentation
use super::actions::{device, dom, dom_extra, eval, lifecycle, nav, tabs};
use super::input::{BrowserCtlAction, BrowserCtlInput};

pub(super) async fn dispatch(
    input: &BrowserCtlInput,
) -> Result<crate::browser::BrowserOutput, crate::browser::BrowserError> {
    match &input.action {
        BrowserCtlAction::Health => nav::health(input).await,
        BrowserCtlAction::Start => nav::start(input).await,
        BrowserCtlAction::Stop => nav::stop(input).await,
        BrowserCtlAction::Snapshot => nav::snapshot(input).await,
        BrowserCtlAction::Console => nav::console(input).await,
        BrowserCtlAction::Goto => nav::goto(input).await,
        BrowserCtlAction::Back => nav::back(input).await,
        BrowserCtlAction::Reload => nav::reload(input).await,
        BrowserCtlAction::Wait => lifecycle::wait(input).await,
        BrowserCtlAction::Click => dom::click(input).await,
        BrowserCtlAction::Fill => dom::fill(input).await,
        BrowserCtlAction::Type => dom::type_text(input).await,
        BrowserCtlAction::Press => dom::press(input).await,
        BrowserCtlAction::Text => dom::text(input).await,
        BrowserCtlAction::Html => dom::html(input).await,
        BrowserCtlAction::ClickText => dom_extra::click_text(input).await,
        BrowserCtlAction::FillNative => dom_extra::fill_native(input).await,
        BrowserCtlAction::Toggle => dom_extra::toggle(input).await,
        BrowserCtlAction::Eval => eval::eval(input).await,
        BrowserCtlAction::ConsoleEval => eval::console_eval(input).await,
        BrowserCtlAction::MouseClick => device::mouse_click(input).await,
        BrowserCtlAction::KeyboardType => device::keyboard_type(input).await,
        BrowserCtlAction::KeyboardPress => device::keyboard_press(input).await,
        BrowserCtlAction::Screenshot => lifecycle::screenshot(input).await,
        BrowserCtlAction::Tabs => tabs::tabs(input).await,
        BrowserCtlAction::TabsSelect => tabs::tabs_select(input).await,
        BrowserCtlAction::TabsNew => tabs::tabs_new(input).await,
        BrowserCtlAction::TabsClose => tabs::tabs_close(input).await,
    }
}