1use crate::api::generated::types::RouteException;
2use progenitor::progenitor_client::Error as ProgenitorError;
3use rig::tool::server::ToolServerError;
4use rmcp::ServiceError;
5use rmcp::service::ClientInitializeError;
6use thiserror::Error;
7
8#[derive(Debug, Error)]
9pub enum Error {
10 #[error("mcp error: {0}")]
11 McpClientError(ClientInitializeError),
12
13 #[error("mcp error: {0}")]
14 McpStdioError(std::io::Error),
15
16 #[error("mcp error: {0}")]
17 McpNetworkError(reqwest::Error),
18
19 #[error("mcp error: {0}")]
20 McpServiceError(ServiceError),
21
22 #[error("completion error: {0}")]
23 PromptError(rig::completion::PromptError),
24
25 #[error("completion error: {0}")]
26 CompletionError(rig::completion::CompletionError),
27
28 #[error("tool error: {0}")]
29 ToolsetError(ToolServerError),
30
31 #[error("budget exhausted")]
32 BudgetExhausted,
33
34 #[error("api error {0}")]
35 ApiError(ProgenitorError<RouteException>),
36}