[package] name = "agent_abstraction" version = "0.1.0" edition = "2024" authors = ["Your Name "] license = "MIT OR Apache-2.0" description = "Agent abstraction layer for RCoder" publish = false [features] default = [] # Pingora 代理模式:API Key 和 Base URL 使用占位符,由 Pingora 代理注入真实值 # Windows 不支持 Pingora,禁用此 feature 时直接使用真实的 API Key 和 Base URL proxy = [] [dependencies] # 依赖其他 crate agent_config = { path = "../agent_config" } shared_types = { path = "../shared_types" } # 异步运行时 tokio = { workspace = true } # 异步 trait async-trait = { workspace = true } # 错误处理 thiserror = { workspace = true } anyhow = { workspace = true } # 并发集合 dashmap = { workspace = true } # 缓存 moka = { workspace = true } # 目录操作 dirs = { workspace = true } # 文件系统监听 notify = { workspace = true } # 日期时间 chrono = { workspace = true, features = ["serde"] } # UUID 生成 uuid = { workspace = true, features = ["v4"] } # 序列化 serde_json = { workspace = true } # 日志 tracing = { workspace = true } # 兼容性 tokio-util = { workspace = true } # ACP 协议 - 官方 SDK(完全 Send-safe,无需 LocalSet) agent-client-protocol = { workspace = true } # 跨平台命令查找 which = { workspace = true } # MCP 协议 - rmcp 官方库: https://github.com/modelcontextprotocol/rust-sdk rmcp = { workspace = true } # 序列化 serde = { workspace = true } # 进程组管理(用于清理整个进程树) # Unix: process-group (setpgid), Windows: job-object # process-wrap 内部通过 #[cfg] 控制各平台类型的可用性 process-wrap = { version = "9.0", features = ["tokio1", "process-group", "job-object"] } [target.'cfg(unix)'.dependencies] # Unix 信号处理 nix = { workspace = true, features = ["signal"] } [target.'cfg(windows)'.dependencies] # process-wrap CreationFlags 需要 PROCESS_CREATION_FLAGS 类型 windows = { version = "0.62", features = ["Win32_System_Threading"] } [dev-dependencies] tempfile = "3.8"