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