use thiserror::Error;
#[derive(Error, Debug)]
pub enum ExtensionHostError {
#[error("Extension host spawn failed: {0}")]
SpawnFailed(String),
#[error("IPC connection error: {0}")]
IpcError(String),
#[error("Extension not found: {0}")]
ExtensionNotFound(String),
#[error("Extension already loaded: {0}")]
AlreadyLoaded(String),
#[error("Sandbox error: {0}")]
SandboxError(String),
#[error("Path validation failed: {0}")]
PathValidation(String),
#[error("Permission denied: {0}")]
PermissionDenied(String),
#[error("Rate limit exceeded")]
RateLimited,
#[error("Secret storage error: {0}")]
SecretError(String),
#[error("Invalid state: {from} -> {to}")]
InvalidState { from: String, to: String },
}