Files
qiming/qiming-rcoder/crates/agent_runner/Cargo.toml
2026-06-01 13:54:52 +08:00

123 lines
3.4 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[package]
name = "agent_runner"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
[lib]
name = "agent_runner"
path = "src/lib.rs"
[features]
default = ["http-server", "grpc-server"]
# HTTP 服务器功能:启用 HTTP REST API 和 SSE 进度流
# 注意:启用 http-server 时会同时启动 gRPC除非明确禁用
http-server = []
# gRPC 服务功能:启用 gRPC 服务
# 在 http-server 模式下:
# - 启用 grpc-server同时运行 HTTP + gRPC
# - 禁用 grpc-server仅运行 HTTP无 gRPC
grpc-server = []
# Pingora 代理模式API Key 和 Base URL 使用占位符,由 Pingora 代理注入真实值
# Windows 不支持 Pingora禁用此 feature 时直接使用真实的 API Key 和 Base URL
proxy = ["agent_abstraction/proxy", "dep:rcoder-proxy"]
# 测试相关 features
testing = ["test-blocking"]
test-blocking = [] # 启用测试用阻塞注入 (用于极端场景测试)
# OpenTelemetry 追踪 feature
otel = [] # 启用 OpenTelemetry 追踪功能
# Pyroscope 连续性能分析
pyroscope = ["dep:pyroscope", "dep:pyroscope_pprofrs"]
[dependencies]
# Internal crates
shared_types = { path = "../shared_types" }
agent_config = { path = "../agent_config" }
agent_abstraction = { path = "../agent_abstraction" }
rcoder-proxy = { path = "../rcoder-proxy", optional = true }
rcoder-telemetry = { workspace = true }
clap = { workspace = true }
# ACP Protocol - 官方 SDK完全 Send-safe无需 LocalSet
agent-client-protocol = { workspace = true }
async-trait = "0.1"
parking_lot = "0.12"
tempfile = { workspace = true }
# HTTP server
axum = { workspace = true, features = ["multipart"] }
tower = { workspace = true }
tower-http = { workspace = true, features = ["cors", "trace", "limit"] }
futures = { workspace = true }
tokio-stream = "0.1"
async-stream = "0.3"
# gRPC Server
tonic = { workspace = true }
# Serialization
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_yaml = "0.9"
derive_builder = { workspace = true }
# Workspace dependencies
tokio = { workspace = true, features = ["full"] }
tokio-util = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = [
"fmt",
"env-filter",
"json",
] }
tracing-appender = "0.2"
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["serde"] }
dashmap = { workspace = true }
bytes = "1.0"
futures-util = { workspace = true }
piper = "0.2"
base64 = { workspace = true }
reqwest = { workspace = true }
rustls = { workspace = true }
# OpenTelemetry
opentelemetry = { workspace = true }
opentelemetry_sdk = { workspace = true }
tracing-opentelemetry = { workspace = true }
axum-tracing-opentelemetry = { workspace = true }
# File system
tokio-fs = { workspace = true }
path-clean = { workspace = true }
# OpenAPI documentation
utoipa = { workspace = true }
utoipa-swagger-ui = { workspace = true }
# Validation
garde = { version = "0.22.1", features = ["derive"] }
ringbuf = { workspace = true }
# Atomic swap for sender replacement
arc-swap = "1.8"
# Pyroscope Continuous Profiling
pyroscope = { workspace = true, optional = true }
pyroscope_pprofrs = { workspace = true, optional = true }
# Unix 信号处理(用于僵尸进程回收,仅 Unix 平台)
[target.'cfg(unix)'.dependencies]
nix = { workspace = true, features = ["signal", "process"] }