browser_use/tools/
close.rs1use crate::error::{BrowserError, Result};
2use crate::tools::{Tool, ToolContext, ToolResult};
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8pub struct CloseParams {}
9
10#[derive(Default)]
12pub struct CloseTool;
13
14impl Tool for CloseTool {
15 type Params = CloseParams;
16
17 fn name(&self) -> &str {
18 "close"
19 }
20
21 fn execute_typed(&self, _params: CloseParams, context: &mut ToolContext) -> Result<ToolResult> {
22 context
27 .session
28 .close()
29 .map_err(|e| BrowserError::ToolExecutionFailed {
30 tool: "close".to_string(),
31 reason: e.to_string(),
32 })?;
33
34 Ok(ToolResult::success_with(serde_json::json!({
35 "message": "Browser closed successfully"
36 })))
37 }
38}