Skip to main content

coral_rs/
error.rs

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}