Skip to main content

agentox_core/
error.rs

1//! Error types for AgentOx.
2
3/// Errors that can occur during transport operations (sending/receiving messages).
4#[derive(Debug, thiserror::Error)]
5pub enum TransportError {
6    #[error("I/O error: {0}")]
7    Io(#[from] std::io::Error),
8
9    #[error("JSON serialization error: {0}")]
10    Json(#[from] serde_json::Error),
11
12    #[error("no response received from server")]
13    NoResponse,
14
15    #[error("server process exited unexpectedly: {0}")]
16    ProcessExit(String),
17
18    #[error("operation timed out after {0:?}")]
19    Timeout(std::time::Duration),
20
21    #[error("command parsing error: {0}")]
22    CommandParse(String),
23
24    #[error("unsupported transport operation: {0}")]
25    Unsupported(String),
26
27    #[error("http transport error: {0}")]
28    Http(String),
29}
30
31/// Errors that can occur during an MCP session.
32#[derive(Debug, thiserror::Error)]
33pub enum SessionError {
34    #[error("transport error: {0}")]
35    Transport(#[from] TransportError),
36
37    #[error("JSON-RPC error {code}: {message}")]
38    JsonRpc { code: i64, message: String },
39
40    #[error("unexpected response format: {0}")]
41    UnexpectedFormat(String),
42
43    #[error("server not initialized")]
44    NotInitialized,
45}