1use thiserror::Error;
8
9#[derive(Debug, Error)]
10pub enum CodexBarError {
11 #[error(
12 "codexbar binary not found at {bin}. Install CodexBar or set bin_path/SEHER_CODEXBAR_BIN."
13 )]
14 NotFound { bin: String },
15
16 #[error("failed to spawn codexbar: {0}")]
17 Spawn(String),
18
19 #[error("codexbar usage timed out after {ms}ms (provider={provider})")]
20 Timeout { provider: String, ms: u128 },
21
22 #[error("codexbar usage exited with code {code:?} (provider={provider}): {stderr}")]
23 Exited {
24 code: Option<i32>,
25 provider: String,
26 stderr: String,
27 },
28
29 #[error("failed to parse codexbar JSON output: {0}")]
30 Parse(String),
31
32 #[error("codexbar returned a non-array JSON payload (provider={0})")]
33 NonArray(String),
34
35 #[error("codexbar returned no entry for provider={0}")]
36 NoEntry(String),
37}