[package]
name = "aether-wisp"
version = "0.5.2"
edition = "2024"
description = "A terminal UI for AI coding agents via the Agent Client Protocol (ACP)"
license = "MIT"
repository = "https://github.com/contextbridge/aether"
readme = "README.md"
keywords = ["tui", "ai", "agent", "acp", "terminal"]
categories = ["command-line-interface"]
[package.metadata.dist]
dist = false
[features]
testing = []
[lib]
name = "wisp"
path = "src/lib.rs"
[[bin]]
name = "wisp"
path = "src/main.rs"
[[test]]
name = "diff_model"
path = "tests/diff_model.rs"
required-features = ["testing"]
[[test]]
name = "git_contract"
path = "tests/git_contract.rs"
required-features = ["testing"]
[[test]]
name = "tui"
path = "tests/tui/main.rs"
required-features = ["testing"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
utils = { package = "aether-utils", path = "../utils", version = "0.2.14" }
acp_utils = { package = "aether-acp-utils", path = "../acp-utils", features = ["client"], version = "0.3.42" }
agent-client-protocol = { workspace = true }
ratatui = { workspace = true }
crossterm = { workspace = true }
futures = { workspace = true }
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "sync", "process", "time"] }
clap = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
tracing-appender = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
pulldown-cmark = { workspace = true }
syntect = { workspace = true }
two-face = { workspace = true }
similar = { workspace = true }
ignore = { workspace = true }
nucleo = { workspace = true }
base64 = { workspace = true }
mime_guess = { workspace = true }
url = { workspace = true }
unicode-width = { workspace = true }
[dev-dependencies]
acp_utils = { package = "aether-acp-utils", path = "../acp-utils", features = ["client", "testing"], version = "0.3.42" }
serde_json = { workspace = true }
tempfile = { workspace = true }