[package]
name = "abk"
version = "0.5.21"
edition = "2021"
description = "Agent Builder Kit - Complete modular agent building blocks with feature-gated modules"
license = "MIT OR Apache-2.0"
authors = ["Podtan Team"]
keywords = ["agent", "llm", "config", "observability", "cli"]
categories = ["config", "development-tools", "command-line-utilities"]
repository = "https://github.com/podtan/abk"
homepage = "https://abk.podtan.com"
readme = "README.md"
[features]
default = []
config = ["serde", "serde_json", "toml", "anyhow", "chrono", "dotenv"]
observability = ["anyhow", "chrono", "serde_json"]
cli = ["colored", "unicode-width", "clap", "comfy-table", "chrono", "anyhow", "async-trait", "serde", "serde_json", "thiserror", "config", "checkpoint", "dirs", "shellexpand"]
checkpoint = ["serde", "serde_json", "thiserror", "anyhow", "tokio", "chrono", "sha2", "uuid", "toml", "umf", "uname", "hostname", "async-trait", "regex", "urlencoding"]
provider = ["serde", "serde_json", "anyhow", "async-trait", "wasmtime", "wasmtime-wasi", "reqwest", "futures-util", "umf", "tokio", "config"]
orchestration = ["anyhow", "tokio", "serde_json", "async-trait", "umf", "uuid", "futures-util", "provider"]
agent = ["serde", "serde_json", "anyhow", "tokio", "chrono", "async-trait", "umf", "cats", "regex", "wasmtime", "wasmtime-wasi", "config", "observability", "checkpoint", "provider", "orchestration", "executor", "extension"]
executor = ["anyhow", "tokio"]
extension = ["serde", "serde_json", "toml", "anyhow", "thiserror", "tokio", "wasmtime", "wasmtime-wasi", "wasmparser", "tracing"]
registry = ["serde", "serde_json", "thiserror", "umf"]
registry-mcp = ["registry", "reqwest", "tokio", "anyhow"]
all = ["config", "observability", "cli", "checkpoint", "provider", "orchestration", "agent", "extension", "registry", "registry-mcp"]
storage-documentdb = ["checkpoint", "mongodb", "futures-util"]
[dependencies]
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
toml = { version = "0.8", optional = true }
anyhow = { version = "1.0", optional = true }
chrono = { version = "0.4", features = ["serde"], optional = true }
dotenv = { version = "0.15", optional = true }
colored = { version = "2.0", optional = true }
unicode-width = { version = "0.1", optional = true }
clap = { version = "4.0", features = ["derive"], optional = true }
comfy-table = { version = "7.0", optional = true }
dirs = { version = "5.0", optional = true }
shellexpand = { version = "3.0", optional = true }
thiserror = { version = "1.0", optional = true }
tokio = { version = "1.0", features = ["fs", "io-util", "sync", "time"], optional = true }
sha2 = { version = "0.10", optional = true }
uuid = { version = "1.0", features = ["v4"], optional = true }
umf = { version = "0.2.4", features = ["streaming", "internal", "mcp"], optional = true }
uname = { version = "0.1", optional = true }
hostname = { version = "0.4", optional = true }
async-trait = { version = "0.1", optional = true }
wasmtime = { version = "25", optional = true }
wasmtime-wasi = { version = "25", optional = true }
reqwest = { version = "0.12", features = ["stream", "rustls-tls-webpki-roots", "json"], default-features = false, optional = true }
futures-util = { version = "0.3", optional = true }
wasmparser = { version = "0.201", optional = true }
tracing = { version = "0.1", optional = true }
cats = { version = "0.1.13", optional = true }
regex = { version = "1.0", optional = true }
urlencoding = { version = "2.1", optional = true }
mongodb = { version = "3.1", optional = true }
[dev-dependencies]
tempfile = "3.0"
tokio = { version = "1.0", features = ["macros", "rt", "test-util", "time"] }
tokio-test = "0.4"
toml = "0.8"
serde_json = "1.0"
anyhow = "1.0"
async-trait = "0.1"
umf = { version = "0.2.4", features = ["streaming", "internal", "mcp"] }
[workspace]