[package]
edition = "2024"
name = "kwaak"
version = "0.19.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Run a team of autonomous agents on your code, right from your terminal"
homepage = "https://github.com/bosun-ai/kwaak"
readme = "README.md"
keywords = [
"terminal",
"swiftide",
"tui",
"ai",
"llm",
]
categories = [
"development-tools",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/bosun-ai/kwaak"
[features]
default = [
"otel",
"duckdb",
]
duckdb = [
"dep:duckdb",
"dep:libduckdb-sys",
"swiftide/duckdb",
]
evaluations = []
otel = [
"dep:tracing-opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry",
"dep:opentelemetry-otlp",
]
[lib]
name = "kwaak"
path = "src/lib.rs"
[[bin]]
name = "kwaak"
path = "src/main.rs"
required-features = ["duckdb"]
[[test]]
name = "auto_scrolling"
path = "tests/auto_scrolling.rs"
[[test]]
name = "cli_init"
path = "tests/cli_init.rs"
[[test]]
name = "diff_commands"
path = "tests/diff_commands.rs"
[[test]]
name = "retry_chat"
path = "tests/retry_chat.rs"
[[test]]
name = "test_tools"
path = "tests/test_tools.rs"
[dependencies.ansi-to-tui]
version = "7.0.0"
[dependencies.anyhow]
version = "1.0.98"
[dependencies.async-anthropic]
version = "0.6.0"
[dependencies.async-openai]
version = "0.29.0"
[dependencies.async-trait]
version = "0.1.87"
[dependencies.backoff]
version = "0.4.0"
[dependencies.clap]
version = "4.5.38"
features = ["derive"]
[dependencies.config]
version = "0.15.6"
features = [
"toml",
"convert-case",
]
[dependencies.copypasta]
version = "0.10.1"
[dependencies.crossterm]
version = "0.28.1"
[dependencies.derive_builder]
version = "0.20.2"
[dependencies.diffy]
version = "0.4.2"
[dependencies.dirs]
version = "6.0.0"
[dependencies.duckdb]
version = "=1.3.1"
features = ["bundled"]
optional = true
[dependencies.dyn-clone]
version = "1.0.18"
[dependencies.futures]
version = "0.3.31"
[dependencies.htmd]
version = "0.2.1"
[dependencies.ignore]
version = "0.4.23"
[dependencies.indoc]
version = "2.0.5"
[dependencies.inquire]
version = "0.7.5"
[dependencies.jsonwebtoken]
version = "9.3.1"
[dependencies.libduckdb-sys]
version = "=1.3.1"
features = ["bundled"]
optional = true
[dependencies.log]
version = "0.4.26"
[dependencies.num_cpus]
version = "1.16.0"
[dependencies.octocrab]
version = "0.44.1"
[dependencies.opentelemetry]
version = "0.29.1"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.29.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.29.0"
features = ["rt-tokio"]
optional = true
[dependencies.ratatui]
version = "0.29.0"
features = ["unstable-rendered-line-info"]
[dependencies.ratatui-splash-screen]
version = "0.1.4"
[dependencies.regex]
version = "1.11.1"
[dependencies.reqwest]
version = "0.12.12"
features = [
"rustls-tls",
"charset",
"http2",
"macos-system-configuration",
]
default-features = false
[dependencies.rmcp]
version = "0.5.0"
features = [
"transport-child-process",
"client",
]
[dependencies.rust-embed]
version = "8.7.0"
features = ["debug-embed"]
[dependencies.secrecy]
version = "0.10.3"
features = ["serde"]
[dependencies.serde]
version = "1.0.218"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.140"
[dependencies.shell-escape]
version = "0.1.5"
[dependencies.strip-ansi-escapes]
version = "0.2.1"
[dependencies.strum]
version = "0.27.1"
[dependencies.strum_macros]
version = "0.27.1"
[dependencies.swiftide]
version = "0.30.0"
features = [
"openai",
"tree-sitter",
"ollama",
"swiftide-agents",
"open-router",
"anthropic",
"mcp",
]
[dependencies.swiftide-docker-executor]
version = "0.12.3"
[dependencies.tavily]
version = "2.0.3"
[dependencies.tempfile]
version = "3.20.0"
[dependencies.tera]
version = "1.20.0"
[dependencies.throbber-widgets-tui]
version = "0.8.0"
[dependencies.tokio]
version = "1.44.2"
features = [
"full",
"sync",
]
[dependencies.tokio-util]
version = "0.7.13"
features = ["rt"]
[dependencies.toml]
version = "0.9.5"
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-appender]
version = "0.2.3"
[dependencies.tracing-opentelemetry]
version = "0.30.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.19"
features = ["env-filter"]
[dependencies.tui-logger]
version = "0.14.5"
features = ["tracing-support"]
[dependencies.tui-markdown]
version = "0.3.5"
[dependencies.tui-textarea]
version = "0.7.0"
[dependencies.update-informer]
version = "1.2.0"
features = [
"crates",
"ureq",
"rustls-tls",
]
default-features = false
[dependencies.url]
version = "2.5.4"
[dependencies.uuid]
version = "1.15.1"
features = ["v4"]
[dev-dependencies.assert_cmd]
version = "2.0.17"
[dev-dependencies.insta]
version = "1.42.2"
[dev-dependencies.mockall]
version = "0.13.1"
[dev-dependencies.predicates]
version = "3.1.3"
[dev-dependencies.rexpect]
version = "0.6.0"
[dev-dependencies.swiftide]
version = "0.30"
features = ["test-utils"]
[dev-dependencies.test-log]
version = "0.2.17"
features = ["trace"]
[target."cfg(linux)".dependencies.openssl]
version = "0.10.72"
features = ["vendored"]
[target."cfg(linux)".dependencies.openssl-sys]
version = "0.9.107"
features = ["vendored"]
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
needless_borrow = "allow"
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(coverage,coverage_nightly)"]
[profile.dist]
lto = "thin"
inherits = "release"
[profile.profiling]
debug = 2
inherits = "release"