[package]
name = "nanobot"
version = "0.2.10"
edition = "2024"
description = "Rust port of nanobot, a lightweight personal AI assistant with tools and multi-channel gateway support."
license = "MIT"
repository = "https://github.com/citizenll/nanobot-rs"
homepage = "https://github.com/citizenll/nanobot-rs"
documentation = "https://docs.rs/nanobot"
readme = "README.en.md"
keywords = ["ai", "assistant", "agent", "llm", "chatbot"]
categories = ["command-line-utilities", "development-tools"]

[features]
default = []
feishu-websocket = ["dep:open-lark"]
dingtalk-stream = ["dep:dingtalk-stream-sdk-rust"]
qq-botrs = ["dep:botrs"]

[dependencies]
anyhow = "1.0"
async-trait = "0.1"
base64 = "0.22"
botrs = { version = "0.2.5", optional = true }
chrono = { version = "0.4", features = ["serde", "clock"] }
clap = { version = "4.5", features = ["derive"] }
cron = "0.15"
dingtalk-stream-sdk-rust = { version = "0.1.0", optional = true }
dirs = "6.0"
futures-util = "0.3"
html-escape = "0.2"
imap = "3.0.0-alpha.15"
lettre = "0.11.19"
litellm-rs = "0.3.1"
mailparse = "0.16.1"
mime_guess = "2.0"
open-lark = { version = "0.14.0", default-features = false, features = ["im", "websocket"], optional = true }
regex = "1.11"
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1.44", features = ["fs", "macros", "process", "rt-multi-thread", "signal", "sync", "time"] }
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
url = "2.5"
uuid = { version = "1.11", features = ["v4"] }
which = "7.0"

[patch.crates-io]
lark-websocket-protobuf = { path = "vendor/lark-websocket-protobuf-0.1.1" }
