rho-coding-agent 2.3.0

A fast Rust agent harness with a small footprint and opinionated defaults
[package]
name = "rho-coding-agent"
version = "2.3.0"
edition = "2021"
rust-version = "1.92"
description = "A fast Rust agent harness with a small footprint and opinionated defaults"
license = "MIT AND Apache-2.0"
repository = "https://github.com/matthewyjiang/rho"
readme = "../../README.md"
include = [
    "/src/**",
    "/tests/**",
    "/build.rs",
    "/CHANGELOG.md",
    "/README.md",
    "/LICENSE",
    "/THIRD-PARTY-NOTICES",
]

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

[dependencies]
rho-sdk = { version = "5.1.0", path = "../rho-sdk" }
rho-providers = { version = "3.0.0", path = "../rho-providers", default-features = false }
rho-tools = { version = "1.0.2", path = "../rho-tools", package = "rho-agent-tools" }
tokio = { version = "1", features = ["full"] }
reqwest = { workspace = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml_ng = "0.10"
clap = { version = "4", features = ["derive"] }
humantime = "2"
anyhow = "1"
thiserror = "2"
toml = "0.8"
uuid = { version = "1", features = ["v4"] }
async-trait = "0.1"
ratatui = { version = "0.30.2", default-features = false, features = ["crossterm"] }
# ratatui-core and logos serve the vendored txm module (src/tui/markdown/txm.rs).
ratatui-core = "0.1"
logos = "0.16"
ratatui-image = { version = "11.0.6", default-features = false, features = ["crossterm"] }
image = { version = "0.25.6", default-features = false, features = ["png", "jpeg", "gif", "webp"] }
crossterm = { version = "0.29.0", features = ["event-stream", "osc52"] }
futures-util = "0.3"
tokio-tungstenite = { version = "0.27", features = ["rustls-tls-native-roots"] }
rustls = { workspace = true }
rustls-platform-verifier = "0.7"
regex = "1"
rusqlite = { version = "0.32" }
keyring = "4.1.2"
rand = "0.8"
sha2 = "0.10"
starlark = "=0.14.2"
base64 = "0.22"
url = "2"
libc = "0.2"
unicode-segmentation = "1"
unicode-width = "0.2"
similar = "2"
same-file = "1"
shell-words = "1"
tempfile = "3"
fs2 = "0.4.3"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", default-features = false, features = [
    "ansi",
    "env-filter",
    "fmt",
    "std",
] }
pulldown-cmark = { version = "0.13.4", default-features = false, features = ["html"] }
katex-rs = "0.2.4"
syntect = { version = "5", default-features = false, features = ["regex-fancy", "parsing", "dump-load"] }
# Bat/syntect extra syntax dump (TypeScript, TOML, Dockerfile, ...). Matches fancy regex.
two-face = { version = "0.5", default-features = false, features = ["syntect-fancy"] }
mermaid-rs-renderer = { version = "=0.3.1", default-features = false }
arboard = { version = "3.6.1", default-features = false, features = ["wayland-data-control"] }
rmcp = { version = "3.1.1", default-features = false, features = [
    "auth",
    "client",
    "reqwest-tls-no-provider",
    "transport-child-process",
    "transport-streamable-http-client-reqwest",
    "which-command",
] }
http = "1"
jsonschema = { version = "0.49", default-features = false }
agent-client-protocol = "=2.0.0"

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
    "Win32_Foundation",
    "Win32_Security",
    "Win32_Storage_FileSystem",
    "Win32_System_Console",
    "Win32_System_Diagnostics_ToolHelp",
    "Win32_System_JobObjects",
    "Win32_System_Threading",
    "Win32_UI_Shell",
] }

[features]
default = ["bundled-sqlite"]
bundled-sqlite = ["rusqlite/bundled", "rho-providers/bundled-sqlite"]

# Cargo reads profiles only from the root package. Workspace builds use the
# copy in the repo-root Cargo.toml; this copy applies when the published crate
# is the root (`cargo install rho-coding-agent`). Keep both tables in sync.
# Do not add `panic = "abort"`: the TUI recovers from renderer panics with
# `catch_unwind` (tui/markdown/math.rs, mermaid.rs).
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"

[dev-dependencies]
pretty_assertions = "1"
rho-tui-pty = { path = "../rho-tui-pty" }

[build-dependencies]
winresource = "0.1.31"