添加qiming-rcoder模块

This commit is contained in:
Codex
2026-06-01 13:54:52 +08:00
parent 8092c4b1f8
commit 4b1a580132
539 changed files with 151650 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
[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"] }