ai-agent 0.13.4

Idiomatic agent sdk inspired by the claude code source leak
Documentation
// Source: /data/home/swei/claudecode/openclaudecode/src/tools/WebBrowserTool/WebBrowserPanel.tsx
//! WebBrowser tool - returns null (feature not implemented)

use crate::types::*;

/// WebBrowser tool name
pub const WEB_BROWSER_TOOL_NAME: &str = "WebBrowser";

/// WebBrowser tool - placeholder for web browser functionality
/// Feature-gated (WEB_BROWSER_TOOL) in TypeScript, returns null
pub struct WebBrowserTool;

impl WebBrowserTool {
    pub fn new() -> Self {
        Self
    }

    pub fn name(&self) -> &str {
        WEB_BROWSER_TOOL_NAME
    }

    pub fn description(&self) -> &str {
        "Control a web browser (not implemented)"
    }

    pub fn input_schema(&self) -> ToolInputSchema {
        ToolInputSchema {
            schema_type: "object".to_string(),
            properties: serde_json::json!({}),
            required: None,
        }
    }

    pub async fn execute(
        &self,
        _input: serde_json::Value,
        _context: &ToolContext,
    ) -> Result<ToolResult, crate::error::AgentError> {
        Err(crate::error::AgentError::ToolNotImplemented(
            "WebBrowser tool is not implemented".to_string(),
        ))
    }
}

impl Default for WebBrowserTool {
    fn default() -> Self {
        Self::new()
    }
}