Skip to main content

outrig_cli/
error.rs

1//! Error type for the binary. Wraps [`outrig::error::OutrigError`] plus
2//! the bin-only variants for LLM resolution and Rig prompt failures.
3
4use 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>;