[package]
edition = "2021"
name = "apollo-agent"
version = "0.3.1"
build = false
exclude = [".cursor/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Local-first Rust AI agent runtime — Telegram-first, trait-driven, SurrealDB + RocksDB state layer."
homepage = "https://github.com/tschk/apollo"
documentation = "https://docs.rs/apollo-agent"
readme = "README.md"
keywords = [
"agent",
"ai",
"llm",
"telegram",
"automation",
]
categories = [
"command-line-utilities",
"web-programming::http-client",
]
license = "MPL-2.0"
repository = "https://github.com/tschk/apollo"
[features]
all-channels = [
"channel-cli",
"channel-telegram",
"channel-discord",
"channel-slack",
"channel-whatsapp",
"channel-signal",
"channel-matrix",
"channel-irc",
"channel-googlechat",
"channel-msteams",
]
all-plugins = [
"plugin-web",
"plugin-browser",
"plugin-skills",
"plugin-advanced",
"computer-use-praefectus",
]
all-providers = [
"provider-anthropic",
"provider-copilot",
"provider-ollama",
]
channel-cli = []
channel-discord = []
channel-googlechat = []
channel-irc = []
channel-matrix = []
channel-msteams = []
channel-signal = []
channel-slack = []
channel-telegram = []
channel-whatsapp = []
computer-use-praefectus = [
"dep:praefectus",
"dep:ed25519-dalek",
]
core = []
default = [
"core",
"channel-cli",
"channel-telegram",
"provider-anthropic",
"provider-ollama",
"rs-ai",
"zkr-memory",
"plugin-web",
"plugin-skills",
]
desktop = [
"plugin-browser",
"computer-use-praefectus",
]
full = [
"all-channels",
"all-providers",
"all-plugins",
"swarm",
]
plugin-advanced = []
plugin-browser = []
plugin-skills = []
plugin-web = []
provider-anthropic = []
provider-copilot = []
provider-ollama = []
rs-ai = [
"dep:rs_ai",
"dep:rs_ai_core",
"dep:rs_ai_providers",
]
swarm = []
zkr-memory = ["dep:zkr"]
[lib]
name = "apollo"
path = "src/lib.rs"
[[bin]]
name = "apollo"
path = "src/main.rs"
[[bin]]
name = "apollo-install"
path = "src/bin/apollo_install.rs"
[[test]]
name = "swarm_integration"
path = "tests/swarm_integration.rs"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.7"
features = ["ws"]
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.cron]
version = "0.12"
[dependencies.dirs]
version = "5.0"
[dependencies.dotenvy]
version = "0.15"
[dependencies.ed25519-dalek]
version = "2.1"
features = ["rand_core"]
optional = true
[dependencies.futures-util]
version = "0.3"
[dependencies.libc]
version = "0.2"
[dependencies.notify]
version = "6"
features = ["serde"]
[dependencies.parking_lot]
version = "0.12"
[dependencies.praefectus]
version = "=0.4.0"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rocksdb]
version = "0.23"
[dependencies.rs_ai]
version = "0.2"
optional = true
[dependencies.rs_ai_core]
version = "0.2"
optional = true
[dependencies.rs_ai_providers]
version = "0.2"
features = [
"claude",
"chatgpt",
"gemini",
"openai-compatible",
"xai",
"cloudflare",
]
optional = true
[dependencies.rx4]
version = "0.4.8"
features = [
"ipc",
"builtin-tools",
"providers",
"mcp",
"skills",
"graph-memory",
"zkr-memory",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.shlex]
version = "1.3"
[dependencies.surrealdb]
version = "2.1"
features = ["kv-rocksdb"]
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
"io-util",
"sync",
"time",
"fs",
"signal",
"process",
"io-std",
]
[dependencies.toml]
version = "0.8"
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
"json",
]
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.zkr]
version = "0.4.1"
optional = true
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
strip = true