1#[derive(Debug, thiserror::Error)]
5pub enum SubAgentError {
6 #[error("parse error in {path}: {reason}")]
7 Parse { path: String, reason: String },
8
9 #[error("invalid definition: {0}")]
10 Invalid(String),
11
12 #[error("agent not found: {0}")]
13 NotFound(String),
14
15 #[error("spawn failed: {0}")]
16 Spawn(String),
17
18 #[error("concurrency limit reached (active: {active}, max: {max})")]
19 ConcurrencyLimit { active: usize, max: usize },
20
21 #[error("cancelled")]
22 Cancelled,
23
24 #[error("invalid command: {0}")]
25 InvalidCommand(String),
26
27 #[error("transcript error: {0}")]
28 Transcript(String),
29
30 #[error("ambiguous id prefix '{0}': matches {1} agents")]
31 AmbiguousId(String, usize),
32
33 #[error("agent '{0}' is still running; cancel it first or wait for completion")]
34 StillRunning(String),
35
36 #[error("memory error for agent '{name}': {reason}")]
37 Memory { name: String, reason: String },
38
39 #[error("I/O error at {path}: {reason}")]
40 Io { path: String, reason: String },
41
42 #[error("LLM call failed: {0}")]
43 Llm(String),
44
45 #[error("channel send failed: {0}")]
46 Channel(String),
47
48 #[error("task panicked: {0}")]
49 TaskPanic(String),
50}