[workspace] members = ["crates/*"] exclude = ["tmp/*", "crates/ai-agents", "crates/codex-acp-agent"] resolver = "2" default-members = [ "crates/rcoder", "crates/agent_runner", "crates/shared_types", "crates/docker_manager", "crates/rcoder-proxy", "crates/duckdb_manager", "crates/container-runtime-api", ] [workspace.lints] rustdoc.unbroken_backticks = "warn" rustdoc.redundant_explicit_links = "warn" rust.unused_lifetimes = "warn" rust.unused_qualifications = "warn" rust.variant_size_differences = "warn" rust.allow_leading_underscore = "warn" [workspace.package] version = "0.1.0" edition = "2024" authors = ["soddy "] license = "MIT OR Apache-2.0" description = "Rust-based AI agent framework" publish = false [workspace.dependencies] # ACP Protocol - 官方 SDK(完全 Send-safe,无需 LocalSet) agent-client-protocol = { version = "0.11.1", features = ["unstable_session_usage"] } # MCP 协议 - rmcp 官方库 (升级到 0.12 以兼容 SACP) rmcp = { version = "0.12.0", features = ["server", "client", "transport-io", "transport-child-process", "schemars"] } piper = "0.2" clap = { version = "4.6", features = ["derive", "env"] } # Async runtime tokio = { version = "1.52", features = ["full"] } tokio-util = { version = "0.7", features = ["compat"] } async-trait = "0.1" smol = "2.0" # HTTP server axum = { version = "0.8", features = [ "http2", "query", "tracing", "ws", "multipart", "macros", ] } tower = "0.5" tower-http = { version = "0.6", features = ["cors", "trace"] } tonic = { version = "0.14.5", features = ["tls-native-roots"] } http = "1.0" http-body = "1.0" http-body-util = "0.1" # Database sqlx = { version = "0.8", features = [ "runtime-tokio-rustls", "sqlite", "chrono", "uuid", ] } duckdb = { version = "1.4", features = ["bundled"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.148" serde_json_lenient = "0.2" schemars = { version = "1.2", features = ["derive"] } config = "0.15" # Error handling anyhow = "1.0" thiserror = "2.0" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } log = "0.4" env_logger = "0.11" # OpenTelemetry (统一使用 0.30 以兼容 tracing-opentelemetry) opentelemetry = "0.31" opentelemetry_sdk = { version = "0.31", features = ["rt-tokio"] } opentelemetry-otlp = { version = "0.31", features = [ "grpc-tonic", "http-proto", ] } tracing-opentelemetry = "0.32" axum-tracing-opentelemetry = "0.33" # Prometheus Metrics metrics = "0.24" metrics-exporter-prometheus = "0.18" # UUID uuid = { version = "1.0", features = ["serde", "v4", "v7"] } # Date/time chrono = { version = "0.4", features = ["serde"] } # File system watching notify = "8.2" # File system utilities tokio-fs = "0.1" path-clean = "1.0" # Utilities dashmap = "6.0" futures = "0.3" futures-util = "0.3" itertools = "0.14" bytes = "1.11" arrayvec = "0.7" # collections = "0.2" # 这个包不存在 url = { version = "2.5", features = ["serde"] } # TLS/Crypto rustls = { version = "0.23", features = ["ring"] } # Additional utilities indoc = "2.0" parking_lot = "0.12" convert_case = "0.11" handlebars = { version = "6.3", features = ["rust-embed"] } rust-embed = "8.0" zstd = "0.13" # 构建工具 derive_builder = "0.20" # Zed 核心功能依赖 libc = "0.2" nix = { version = "0.31.2", features = ["fs", "process", "term", "signal"] } unindent = "0.2" # 使用 crates.io 版本 open = "5.0" # 使用 crates.io 版本 git2 = "0.20.4" tree-sitter-rust = "0.24" # 使用 crates.io 版本 # Additional dependencies for nuwax_parser sha2 = "0.11" hex = "0.4" walkdir = "2.5" reqwest = { version = "0.13", features = ["json", "stream"] } # 项目依赖 - 保留核心功能 aho-corasick = "1.0" # askpass = "0.1" # 这个包不存在 base64 = "0.22" circular-buffer = "1.2" fancy-regex = "0.18" fuzzy = "0.0.1" globset = "0.4" image = "0.25" indexmap = "2.14" pathdiff = "0.2" postage = "0.5" regex = "1.0" semver = "1.0" shellexpand = "3.1" shlex = "1.0" smallvec = "1.15" toml = "0.9" which = "8.0" # Dev dependencies for testing ctor = "0.13" pretty_assertions = "1.4" tempfile = "3.24" rand = "0.10" tokio-test = "0.4" expect-test = "1.5" # File system utilities dirs = "6.0" # Archive utilities flate2 = "1.0" tar = "0.4" zip = "8.6" utoipa = { version = "5.4", features = ["axum_extras", "uuid", "chrono"] } utoipa-swagger-ui = { version = "9.0", features = ["axum"] } ringbuf = "0.5" diffy = { version = "0.5" } pingora = { version = "0.8", features = ["lb", "rustls"] } pingora-core = { version = "0.8", features = ["rustls"] } pingora-http = "0.8" pingora-proxy = { version = "0.8", features = ["rustls"] } pingora-load-balancing = { version = "0.8", features = ["rustls"] } matchit = "0.9.2" structopt = "0.3" bollard = { version = "0.21" } # Cache library moka = { version = "0.12", features = ["future", "sync"] } # i18n (国际化) rust-i18n = "4" # Internal crates rcoder-telemetry = { path = "crates/rcoder-telemetry" } # Pyroscope Continuous Profiling pyroscope = "0.5" pyroscope_pprofrs = "0.2"