apollo-agent 0.5.0

Local-first Rust AI agent runtime — Telegram-first, trait-driven, SurrealDB + RocksDB state layer.
Documentation
# 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 = "apollo-agent"
version = "0.5.0"
build = false
exclude = [
    "/.cursor/",
    "/memory/",
    "/USER.md",
    "/SOUL.md",
    "/IDENTITY.md",
    "/MEMORY.md",
    "/NOW.md",
    "/HEARTBEAT.md",
    "/gemini.md",
    "/apollo.json",
]
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-copilot",
    "provider-ollama",
]
channel-cli = []
channel-discord = []
channel-googlechat = ["dep:jsonwebtoken"]
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-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-copilot = []
provider-ollama = []
rs-ai = [
    "dep:rs_ai",
    "dep:rs_ai_core",
    "dep:rs_ai_providers",
    "dep:rs_ai_oauth",
]
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 = "channel_conformance"
path = "tests/channel_conformance.rs"

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

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

[[test]]
name = "rx4_engine"
path = "tests/rx4_engine.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.8"
features = ["ws"]

[dependencies.base64]
version = "0.22"

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

[dependencies.clap]
version = "4"
features = [
    "derive",
    "env",
]

[dependencies.cron]
version = "0.17"

[dependencies.dirs]
version = "6.0"

[dependencies.dotenvy]
version = "0.15"

[dependencies.ed25519-dalek]
version = "2.1"
features = ["rand_core"]
optional = true

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

[dependencies.jsonwebtoken]
version = "9"
features = ["use_pem"]
optional = true
default-features = false

[dependencies.libc]
version = "0.2"

[dependencies.parking_lot]
version = "0.12"

[dependencies.praefectus]
version = "0.8.0"
optional = true

[dependencies.rand]
version = "0.8"

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "multipart",
    "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_oauth]
version = "0.2.30"
optional = true
default-features = false

[dependencies.rs_ai_providers]
version = "0.2"
features = [
    "chatgpt",
    "gemini",
    "openai-compatible",
    "xai",
    "cloudflare",
]
optional = true

[dependencies.rx4]
version = "0.5.0"
features = [
    "ipc",
    "providers",
    "skills",
    "graph-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 = "1.1"

[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.axum]
version = "0.8"

[dev-dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "multipart",
    "rustls-tls",
]
default-features = false

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

[dev-dependencies.temp-env]
version = "0.3"

[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