1use thiserror::Error;
5
6pub use outrig::error::OutrigError;
7
8use crate::llm::LlmResolveError;
9
10#[derive(Debug, Error)]
11pub enum CliError {
12 #[error(transparent)]
13 Outrig(#[from] OutrigError),
14
15 #[error("{0}")]
16 LlmResolve(#[from] LlmResolveError),
17
18 #[error("agent prompt failed: {0}")]
19 Prompt(#[from] rig::completion::PromptError),
20}
21
22impl From<std::io::Error> for CliError {
23 fn from(e: std::io::Error) -> Self {
24 CliError::Outrig(OutrigError::Io(e))
25 }
26}
27
28impl From<rmcp::service::ServerInitializeError> for CliError {
29 fn from(e: rmcp::service::ServerInitializeError) -> Self {
30 CliError::Outrig(OutrigError::from(e))
31 }
32}
33
34pub type Result<T> = std::result::Result<T, CliError>;