Skip to main content

zeph_subagent/
error.rs

1// SPDX-FileCopyrightText: 2026 Andrei G <bug-ops>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4#[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}