"""Custom exceptions for the Ask-the-Web Agent.""" class AskTheWebError(Exception): """Base exception for Ask-the-Web Agent.""" pass class ConfigurationError(AskTheWebError): """Configuration-related errors.""" pass class LLMError(AskTheWebError): """LLM-related errors.""" pass class LLMConnectionError(LLMError): """LLM connection failed.""" pass class LLMRateLimitError(LLMError): """LLM rate limit exceeded.""" pass class LLMResponseError(LLMError): """Invalid LLM response.""" pass class ToolError(AskTheWebError): """Tool-related errors.""" pass class ToolNotFoundError(ToolError): """Tool not found in registry.""" pass class ToolExecutionError(ToolError): """Tool execution failed.""" pass class ToolTimeoutError(ToolError): """Tool execution timed out.""" pass class SearchError(ToolError): """Search-related errors.""" pass class SearchNoResultsError(SearchError): """Search returned no results.""" pass class ScrapingError(ToolError): """Web scraping errors.""" pass class AgentError(AskTheWebError): """Agent-related errors.""" pass class MaxIterationsError(AgentError): """Maximum iterations reached.""" pass class PlanningError(AgentError): """Workflow planning failed.""" pass class SynthesisError(AgentError): """Response synthesis failed.""" pass