[package]
name = "abk"
version = "0.1.47"
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"]
executor = ["anyhow", "tokio"]
all = ["config", "observability", "cli", "checkpoint", "provider", "orchestration", "agent"]

# Storage backend features (optional)
storage-documentdb = ["checkpoint", "mongodb", "futures-util"]

[dependencies]
# Config feature 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 }

# CLI feature dependencies
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 }

# Checkpoint feature dependencies
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.1.3", features = ["streaming"], optional = true }
uname = { version = "0.1", optional = true }
hostname = { version = "0.4", optional = true }

# Provider feature dependencies
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"], default-features = false, optional = true }
futures-util = { version = "0.3", optional = true }

# Agent feature dependencies
cats = { version = "0.1.2", optional = true }
regex = { version = "1.0", optional = true }
urlencoding = { version = "2.1", optional = true }

# Storage backend dependencies (optional)
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"
serde_json = "1.0"
anyhow = "1.0"
async-trait = "0.1"
umf = { version = "0.1.3", features = ["streaming"] }


[workspace]
# Empty workspace to prevent being included in parent workspace

