123 lines
3.4 KiB
TOML
123 lines
3.4 KiB
TOML
[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"] }
|