[package]
name = "aidaemon"
version = "0.9.5"
edition = "2021"
description = "A personal AI agent that runs as a background daemon, accessible via Telegram, Slack, or Discord, with tool use, MCP integration, and persistent memory"
license = "MIT"
repository = "https://github.com/davo20019/aidaemon"
homepage = "https://aidaemon.ai/"
documentation = "https://docs.aidaemon.ai/"
readme = "README.md"
keywords = ["ai", "daemon", "telegram", "llm", "mcp"]
categories = ["command-line-utilities"]
exclude = ["*.db", "*.db-shm", "*.db-wal", ".env", "config.toml", "lcov.info", "*.profraw"]

[dependencies]
shell-words = "1.1"
tokio = { version = "1", features = ["full"] }
teloxide = { version = "0.17", features = ["macros"] }
reqwest = { version = "0.12", features = ["json", "blocking", "gzip", "deflate", "brotli"] }
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
async-trait = "0.1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
dotenvy = "0.15"
anyhow = "1"
thiserror = "2"
uuid = { version = "1", features = ["v4"] }
chrono = { version = "0.4", features = ["serde"] }
async-imap = "0.10"
async-native-tls = "0.5"
async-std = { version = "1", features = ["attributes"] }
futures = "0.3"
axum = "0.8"
dialoguer = "0.11"
chromiumoxide = { version = "0.8", features = ["tokio-runtime"], default-features = false, optional = true }
shellexpand = "3"
dirs = "6"
fastembed = "4"
tokio-util = "0.7.18"
libc = "0.2"
libsqlite3-sys = { version = "0.30", optional = true }
llm_readability = "0.0"
htmd = "0.1"
croner = "3"
regex = "1"
once_cell = "1"
serenity = { version = "0.12", features = ["client", "gateway", "model", "cache", "rustls_backend"], default-features = false, optional = true }
tokio-tungstenite = { version = "0.24", features = ["native-tls"], optional = true }
self_update = { version = "0.42", features = ["archive-tar", "compression-flate2"], default-features = false }
semver = "1"
zeroize = { version = "1", features = ["derive"] }
hmac = "0.12"
sha1 = "0.10"
sha2 = "0.10"
base64 = "0.22"
rand = "0.8"

[target.'cfg(target_os = "macos")'.dependencies]
keyring = { version = "3", features = ["apple-native"] }
tikv-jemallocator = "0.6"

[target.'cfg(target_os = "linux")'.dependencies]
keyring = { version = "3", features = ["sync-secret-service", "crypto-rust"] }
tikv-jemallocator = "0.6"

[target.'cfg(target_os = "windows")'.dependencies]
keyring = { version = "3", features = ["windows-native"] }

[features]
default = ["discord", "slack", "encryption", "browser"]
browser = ["dep:chromiumoxide"]
discord = ["dep:serenity"]
slack = ["dep:tokio-tungstenite"]
encryption = ["libsqlite3-sys/bundled-sqlcipher"]

[profile.release]
lto = true
codegen-units = 1
strip = true

[dev-dependencies]
tempfile = "3"
proptest = "1"
insta = { version = "1", features = ["yaml"] }
assert_cmd = "2"

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/aidaemon-{ target }{ archive-suffix }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/aidaemon-linux-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/aidaemon-linux-aarch64.tar.gz"

[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/aidaemon-macos-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/aidaemon-macos-aarch64.tar.gz"
