# 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 = "takobull"
version = "0.2.1"
authors = [
    "Raja CSP Raman",
    "TakoBull contributors",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Ultra-lightweight personal AI Assistant for embedded systems - Rust port"
readme = "README.md"
keywords = [
    "ai",
    "assistant",
    "embedded",
    "lightweight",
    "rust",
]
categories = [
    "command-line-utilities",
    "development-tools",
]
license = "MIT"
repository = "https://github.com/kactlabs/takobull"

[features]
all-channels = [
    "channels-telegram",
    "channels-discord",
    "channels-dingtalk",
    "channels-line",
    "channels-qq",
    "channels-whatsapp",
]
all-providers = [
    "providers-openrouter",
    "providers-claude",
    "providers-openai",
    "providers-gemini",
    "providers-zhipu",
    "providers-deepseek",
    "providers-groq",
]
all-tools = [
    "tools-web-search",
    "tools-filesystem",
    "tools-shell",
    "tools-web-access",
    "tools-hardware",
    "tools-message",
    "tools-cron",
]
channels-dingtalk = []
channels-discord = []
channels-line = []
channels-qq = []
channels-telegram = []
channels-whatsapp = []
default = [
    "channels-telegram",
    "channels-discord",
    "providers-openrouter",
    "providers-claude",
]
providers-claude = []
providers-deepseek = []
providers-gemini = []
providers-groq = []
providers-openai = []
providers-openrouter = []
providers-zhipu = []
tools-cron = []
tools-filesystem = []
tools-hardware = [
    "i2cdev",
    "spidev",
]
tools-message = []
tools-shell = []
tools-web-access = ["scraper"]
tools-web-search = []
webhooks = [
    "axum",
    "tower",
]

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

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

[dependencies.anyhow]
version = "1.0"

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

[dependencies.axum]
version = "0.7"
optional = true

[dependencies.base64]
version = "0.21"

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

[dependencies.clap]
version = "4.4"
features = ["derive"]

[dependencies.cron]
version = "0.12"

[dependencies.dotenv]
version = "0.15"

[dependencies.futures]
version = "0.3"

[dependencies.i2cdev]
version = "0.5"
optional = true

[dependencies.num_cpus]
version = "1.16"

[dependencies.parking_lot]
version = "0.12"

[dependencies.rand]
version = "0.8"

[dependencies.regex]
version = "1.10"

[dependencies.reqwest]
version = "0.11"
features = [
    "json",
    "stream",
]

[dependencies.scraper]
version = "0.17"
optional = true

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

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_yaml]
version = "0.9"

[dependencies.sha2]
version = "0.10"

[dependencies.spidev]
version = "0.5"
optional = true

[dependencies.thiserror]
version = "1.0"

[dependencies.tokio]
version = "1.35"
features = ["full"]

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

[dependencies.toml]
version = "0.8"

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

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "env-filter",
    "fmt",
    "json",
]

[dependencies.uuid]
version = "1.6"
features = [
    "v4",
    "serde",
]

[dev-dependencies.mockall]
version = "0.12"

[dev-dependencies.proptest]
version = "1.4"

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

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

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true
