[package]
name = "koda-cli"
version = "0.2.11"
edition = "2024"
description = "A high-performance AI coding agent for macOS and Linux"
license = "MIT"
repository = "https://github.com/lijunzh/koda"
homepage = "https://github.com/lijunzh/koda"
readme = "README.md"
keywords = ["ai", "coding-agent", "llm", "cli", "unix"]
categories = ["command-line-utilities", "development-tools"]
authors = ["Lijun Zhu"]

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

[dependencies]
# Core engine
koda-core = { path = "../koda-core", version = "0.2.11" }

# CLI
clap = { version = "4", features = ["derive", "env"] }

# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt"] }

# Serialization (needed for CLI-level config)
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# TUI / Terminal
crossterm = { version = "0.29", features = ["event-stream"] }

# Syntax highlighting
syntect = { version = "5", default-features = false, features = ["default-syntaxes", "default-themes", "parsing", "html", "regex-fancy"] }
once_cell = "1"

# TUI (inline viewport: input + status bar)
ratatui = { version = "0.30", default-features = false, features = ["crossterm", "scrolling-regions"] }
ratatui-textarea = "0.9"
unicode-width = "0.2"

# Clipboard (for Ctrl+Y copy)
arboard = "3"

# ANSI escape code parsing for tool output
ansi-to-tui = "8"

# Logging (subscriber for CLI configuration)
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2"

# Error handling
anyhow = "1"

# Date/time — already a transitive dep via ratatui; declared directly so
# callers aren't silently depending on an undeclared transitive.
time = "0.3"

# Base64 encoding (for image input)
base64 = "0.22"
agent-client-protocol-schema = { version = "0.11", features = ["unstable_session_model", "unstable_session_list", "unstable"] }
tokio-tungstenite = "0.29"
futures-util = "0.3.32"
rpassword = "7.4.0"

[[bench]]
name = "render_bench"
harness = false

[dev-dependencies]
tempfile = "3"
koda-core = { path = "../koda-core", version = "0.2.11", features = ["test-support"] }
serde_json = "1"

