agent_sdk/
web.rs

1//! Web tools for search and fetching.
2//!
3//! This module provides tools for web operations:
4//!
5//! - [`WebSearchTool`] - Search the web using pluggable providers
6//! - [`SearchProvider`] - Trait for search provider implementations
7//! - [`BraveSearchProvider`] - Brave Search API integration
8//! - [`LinkFetchTool`] - Securely fetch and read web page content
9//! - [`UrlValidator`] - URL validation with SSRF protection
10//!
11//! # Example
12//!
13//! ```ignore
14//! use agent_sdk::web::{WebSearchTool, BraveSearchProvider, LinkFetchTool, UrlValidator};
15//!
16//! // Create a web search tool
17//! let provider = BraveSearchProvider::new(api_key);
18//! let search_tool = WebSearchTool::new(provider);
19//!
20//! // Create a link fetch tool with default security
21//! let fetch_tool = LinkFetchTool::new();
22//!
23//! // Or customize the URL validator
24//! let validator = UrlValidator::new()
25//!     .with_allowed_domains(vec!["example.com".to_string()]);
26//! let fetch_tool = LinkFetchTool::new().with_validator(validator);
27//! ```
28
29pub mod fetch;
30pub mod provider;
31pub mod search;
32pub mod security;
33
34pub use fetch::{FetchFormat, LinkFetchTool};
35pub use provider::{BraveSearchProvider, SearchProvider, SearchResponse, SearchResult};
36pub use search::WebSearchTool;
37pub use security::UrlValidator;