codetether-agent 4.5.2

A2A-native AI coding agent for the CodeTether ecosystem
Documentation
use super::super::helpers::require_string;
use super::super::input::BrowserCtlInput;
use crate::browser::{
    BrowserCommand,
    request::{ScreenshotRequest, WaitRequest},
};

pub(in crate::tool::browserctl) async fn wait(
    input: &BrowserCtlInput,
) -> Result<crate::browser::BrowserOutput, crate::browser::BrowserError> {
    let request = WaitRequest {
        text: input.text.clone(),
        text_gone: input.text_gone.clone(),
        url_contains: input.url_contains.clone(),
        selector: input.selector.clone(),
        frame_selector: input.frame_selector.clone(),
        state: input.state.clone().unwrap_or_else(|| "visible".into()),
        timeout_ms: input.timeout_ms.unwrap_or(5_000),
    };
    super::execute(input, BrowserCommand::Wait(request)).await
}

pub(in crate::tool::browserctl) async fn screenshot(
    input: &BrowserCtlInput,
) -> Result<crate::browser::BrowserOutput, crate::browser::BrowserError> {
    let _ = require_string(&input.path, "path")?;
    let request = ScreenshotRequest {
        selector: input.selector.clone(),
        frame_selector: input.frame_selector.clone(),
        full_page: input.full_page.unwrap_or(true),
    };
    super::execute(input, BrowserCommand::Screenshot(request)).await
}