# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "abk"
version = "0.5.55"
authors = ["Podtan Team"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Agent Builder Kit - Complete modular agent building blocks with feature-gated modules"
homepage = "https://abk.podtan.com"
readme = "README.md"
keywords = [
    "agent",
    "llm",
    "config",
    "observability",
    "cli",
]
categories = [
    "config",
    "development-tools",
    "command-line-utilities",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/podtan/abk"

[features]
agent = [
    "serde",
    "serde_json",
    "anyhow",
    "tokio",
    "chrono",
    "async-trait",
    "umf",
    "cats",
    "regex",
    "wasmtime",
    "wasmtime-wasi",
    "config",
    "observability",
    "checkpoint",
    "provider",
    "orchestration",
    "executor",
    "extension",
]
all = [
    "config",
    "observability",
    "cli",
    "checkpoint",
    "provider",
    "orchestration",
    "agent",
    "extension",
    "registry",
    "registry-mcp",
]
checkpoint = [
    "serde",
    "serde_json",
    "thiserror",
    "anyhow",
    "tokio",
    "chrono",
    "sha2",
    "uuid",
    "toml",
    "umf",
    "hostname",
    "async-trait",
    "regex",
    "urlencoding",
]
cli = [
    "colored",
    "unicode-width",
    "clap",
    "comfy-table",
    "chrono",
    "anyhow",
    "async-trait",
    "serde",
    "serde_json",
    "thiserror",
    "config",
    "checkpoint",
    "dirs",
    "shellexpand",
]
config = [
    "serde",
    "serde_json",
    "toml",
    "anyhow",
    "chrono",
    "dotenv",
]
default = []
executor = [
    "anyhow",
    "tokio",
]
extension = [
    "serde",
    "serde_json",
    "toml",
    "anyhow",
    "thiserror",
    "tokio",
    "wasmtime",
    "wasmtime-wasi",
    "wasmparser",
    "tracing",
]
observability = [
    "anyhow",
    "chrono",
    "serde_json",
]
orchestration = [
    "anyhow",
    "tokio",
    "tokio-util",
    "serde_json",
    "async-trait",
    "umf",
    "uuid",
    "futures-util",
    "provider",
]
provider = [
    "serde",
    "serde_json",
    "anyhow",
    "async-trait",
    "wasmtime",
    "wasmtime-wasi",
    "reqwest",
    "futures-util",
    "umf",
    "tokio",
    "config",
]
registry = [
    "serde",
    "serde_json",
    "thiserror",
    "umf",
]
registry-mcp = [
    "registry",
    "reqwest",
    "tokio",
    "anyhow",
]
registry-mcp-token = [
    "registry-mcp",
    "dep:pep",
]
storage-documentdb = [
    "checkpoint",
    "mongodb",
    "futures-util",
]
tiktoken = ["tiktoken-rs"]

[lib]
name = "abk"
path = "src/lib.rs"

[[test]]
name = "documentdb_integration"
path = "tests/documentdb_integration.rs"

[[test]]
name = "extension_integration_test"
path = "tests/extension_integration_test.rs"

[[test]]
name = "orchestration_integration_test"
path = "tests/orchestration_integration_test.rs"
required-features = ["orchestration"]

[dependencies.anyhow]
version = "1.0"
optional = true

[dependencies.async-trait]
version = "0.1"
optional = true

[dependencies.cats]
version = "0.1.26"
optional = true

[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true

[dependencies.clap]
version = "4.0"
features = ["derive"]
optional = true

[dependencies.colored]
version = "2.0"
optional = true

[dependencies.comfy-table]
version = "7.0"
optional = true

[dependencies.dirs]
version = "5.0"
optional = true

[dependencies.dotenv]
version = "0.15"
optional = true

[dependencies.futures-util]
version = "0.3"
optional = true

[dependencies.hostname]
version = "0.4"
optional = true

[dependencies.mongodb]
version = "3.1"
optional = true

[dependencies.pep]
version = "0.3.1"
features = ["token-provider"]
optional = true

[dependencies.regex]
version = "1.0"
optional = true

[dependencies.reqwest]
version = "0.12"
features = [
    "stream",
    "rustls-tls-webpki-roots",
    "json",
]
optional = true
default-features = false

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.sha2]
version = "0.10"
optional = true

[dependencies.shellexpand]
version = "3.0"
optional = true

[dependencies.thiserror]
version = "1.0"
optional = true

[dependencies.tiktoken-rs]
version = "0.6"
optional = true

[dependencies.tokio]
version = "1.0"
features = [
    "fs",
    "io-util",
    "sync",
    "time",
]
optional = true

[dependencies.tokio-util]
version = "0.7"
optional = true

[dependencies.toml]
version = "0.8"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.umf]
version = "0.2.6"
features = [
    "streaming",
    "internal",
    "mcp",
]
optional = true

[dependencies.unicode-width]
version = "0.1"
optional = true

[dependencies.urlencoding]
version = "2.1"
optional = true

[dependencies.uuid]
version = "1.0"
features = ["v4"]
optional = true

[dependencies.wasmparser]
version = "0.201"
optional = true

[dependencies.wasmtime]
version = "25"
optional = true

[dependencies.wasmtime-wasi]
version = "25"
optional = true

[dev-dependencies.anyhow]
version = "1.0"

[dev-dependencies.async-trait]
version = "0.1"

[dev-dependencies.serde_json]
version = "1.0"

[dev-dependencies.tempfile]
version = "3.0"

[dev-dependencies.tokio]
version = "1.0"
features = [
    "macros",
    "rt",
    "test-util",
    "time",
]

[dev-dependencies.tokio-test]
version = "0.4"

[dev-dependencies.toml]
version = "0.8"

[dev-dependencies.umf]
version = "0.2.6"
features = [
    "streaming",
    "internal",
    "mcp",
]

[target."cfg(unix)".dependencies.uname]
version = "0.1"
optional = true

[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ['cfg(feature, values("tiktoken"))']
