use thiserror::Error;
use std::io;
#[derive(Debug, Error)]
pub enum TransportError {
#[error("SSH connection error: {0}")]
Connection(String),
#[error("Bootstrap error: {0}")]
Bootstrap(String),
#[error("Authentication failed: {0}")]
Authentication(String),
#[error("I/O error: {0}")]
Io(#[from] io::Error),
#[error("Operation timed out")]
Timeout,
#[error("Protocol error: {0}")]
Protocol(String),
#[error("Configuration error: {0}")]
Configuration(String),
#[error("Remote command failed with exit code {code}: {message}")]
CommandFailed {
code: i32,
message: String
},
}