[package]
name = "open_agent"
version = "0.2.1"
edition = "2021"
description = "Managed control plane for OpenCode-based agents"
authors = ["Open Agent Contributors"]

[dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }

# Web framework
axum = { version = "0.7", features = ["ws", "multipart"] }
tower-http = { version = "0.5", features = ["cors", "trace"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"

# HTTP client
reqwest = { version = "0.12", features = ["json", "stream"] }
reqwest-eventsource = "0.6"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Utilities
uuid = { version = "1", features = ["v4", "serde"] }
thiserror = "1"
async-trait = "0.1"
futures = "0.3"

# For tool implementations
walkdir = "2"
urlencoding = "2"
url = "2"
anyhow = "1"
async-stream = "0.3"
regex = "1"
async-recursion = "1"

# For memory/storage
chrono = { version = "0.4", features = ["serde"] }
rusqlite = { version = "0.31", features = ["bundled"] }

# For desktop tools (process management on Unix)
libc = "0.2"

# Auth (JWT)
jsonwebtoken = "9"

# Cryptography for secrets
aes-gcm = "0.10"
pbkdf2 = "0.12"
sha2 = "0.10"
rand = "0.8"
hex = "0.4"

# Remote console / file manager
base64 = "0.22"

# System monitoring
sysinfo = "0.32"
bytes = "1"
portable-pty = "0.9"
md5 = "0.7"
tokio-util = { version = "0.7", features = ["io"] }
# Keep MSRV-compatible idna_adapter for the production builder (rustc 1.75).
idna_adapter = "=1.1.0"

[[bin]]
name = "open_agent"
path = "src/main.rs"

[[bin]]
name = "desktop-mcp"
path = "src/bin/desktop_mcp.rs"

[[bin]]
name = "workspace-mcp"
path = "src/bin/workspace_mcp.rs"

[dev-dependencies]
tokio-test = "0.4"
tempfile = "3"
