Files
Agent-Tools/crates/agentdock-core/src/error.rs
T
leefer 01996a80fe Wave 2: 五件套打通全链路(安装/检测/配置/授权/诊断)
- 五个适配器 YAML 全字段补齐(codex/claude-code/gemini/kimi/opencode)
- agentdock-config:TOML/JSON 编解码 + 原子写 + 自动备份
- agentdock-diag:PATH/依赖版本/版本冲突/配置损坏四类规则
- agentdock-core:detectCli/previewAction/runAction 流式/readConfig/writeConfig/authStatus/diagnose
- Tauri IPC 命令 + CLI 详情页/安装确认弹窗/配置表单/诊断页
- cargo test 75 项通过(含 4 项真机 ignored 自测),前端 build 通过
2026-08-25 08:58:38 +08:00

53 lines
1.4 KiB
Rust

//! 编排层错误类型(中文)
use std::fmt;
#[derive(Debug)]
pub enum EngineError {
/// 未找到指定 CLI
NotFound(String),
/// 适配器层错误
Adapter(String),
/// 配置层错误
Config(String),
/// 进程执行错误
Exec(String),
/// 密钥库错误
Secrets(String),
/// 能力本波未实现
NotSupported(String),
}
impl fmt::Display for EngineError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
EngineError::NotFound(m) => write!(f, "未找到: {m}"),
EngineError::Adapter(m) => write!(f, "适配器: {m}"),
EngineError::Config(m) => write!(f, "配置: {m}"),
EngineError::Exec(m) => write!(f, "执行: {m}"),
EngineError::Secrets(m) => write!(f, "密钥库: {m}"),
EngineError::NotSupported(m) => write!(f, "未支持: {m}"),
}
}
}
impl std::error::Error for EngineError {}
impl From<agentdock_config::ConfigError> for EngineError {
fn from(e: agentdock_config::ConfigError) -> Self {
EngineError::Config(e.to_string())
}
}
impl From<agentdock_exec::ExecError> for EngineError {
fn from(e: agentdock_exec::ExecError) -> Self {
EngineError::Exec(e.to_string())
}
}
impl From<std::io::Error> for EngineError {
fn from(e: std::io::Error) -> Self {
EngineError::Exec(e.to_string())
}
}