1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum SettingsError {
8 #[error("Failed to parse settings file: {0}")]
10 ParseError(String),
11
12 #[error("Invalid model '{model}' for agent '{agent}': {error}")]
14 InvalidModel { agent: String, model: String, error: String },
15
16 #[error("Agent '{agent}' is missing required field: {field}")]
18 MissingField { agent: String, field: String },
19
20 #[error("Agent at index {index} has an empty name")]
22 EmptyAgentName { index: usize },
23
24 #[error("Agent name '{name}' is reserved and cannot be used")]
26 ReservedAgentName { name: String },
27
28 #[error("Duplicate agent name: '{name}'")]
30 DuplicateAgentName { name: String },
31
32 #[error("Agent '{agent}' must have at least one invocation flag (userInvocable or agentInvocable)")]
34 NoInvocationSurface { agent: String },
35
36 #[error("Invalid glob pattern '{pattern}' for agent '{agent}': {error}")]
38 InvalidGlobPattern { agent: String, pattern: String, error: String },
39
40 #[error("Invalid inherited glob pattern '{pattern}': {error}")]
42 InvalidInheritedGlobPattern { pattern: String, error: String },
43
44 #[error("Prompt entry '{pattern}' for agent '{agent}' resolves to no files")]
46 ZeroMatchPrompt { agent: String, pattern: String },
47
48 #[error("Inherited prompt entry '{pattern}' resolves to no files")]
50 ZeroMatchInheritedPrompt { pattern: String },
51
52 #[error("Agent '{agent}' has no prompts after inheritance (neither inherited nor local)")]
54 NoPrompts { agent: String },
55
56 #[error("MCP config path '{path}' does not exist or is not a file")]
58 InvalidMcpConfigPath { path: String },
59
60 #[error("I/O error: {0}")]
62 IoError(String),
63
64 #[error("Agent '{name}' not found")]
66 AgentNotFound { name: String },
67
68 #[error("Duplicate prompt name: '{name}'")]
70 DuplicatePromptName { name: String },
71}