Skip to main content

aether_cli/
error.rs

1use aether_auth::OAuthError;
2use aether_project::SettingsError;
3use aether_telemetry::TelemetryInitError;
4use std::io;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum CliError {
9    #[error("No prompt provided. Pass a prompt as an argument or pipe via stdin.")]
10    NoPrompt,
11    #[error("{0}")]
12    ConflictingArgs(String),
13    #[error("Invalid --options-json: {0}")]
14    InvalidOptionsJson(#[source] serde_json::Error),
15    #[error(transparent)]
16    ConflictingSettingsSources(#[from] crate::settings_args::ConflictingSettingsSources),
17    #[error("Failed to load settings: {0}")]
18    Settings(#[from] SettingsError),
19    #[error("Failed to initialize telemetry: {0}")]
20    Telemetry(#[from] TelemetryInitError),
21    #[error("Model error: {0}")]
22    ModelError(String),
23    #[error("MCP error: {0}")]
24    McpError(String),
25    #[error("IO error: {0}")]
26    IoError(#[from] io::Error),
27    #[error("Agent error: {0}")]
28    AgentError(String),
29    #[error("Credential store error: {0}")]
30    CredentialStore(#[from] OAuthError),
31}