# 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 = "2024"
rust-version = "1.89"
name = "revka"
version = "2026.6.20"
authors = ["Kumiho Inc."]
build = "build.rs"
include = [
    "/src/**/*",
    "/build.rs",
    "/Cargo.toml",
    "/Cargo.lock",
    "/LICENSE*",
    "/README.md",
    "/web/dist/**/*",
    "/tool_descriptions/**/*",
    "/resources/sidecars/*.py",
    "/operator-mcp/pyproject.toml",
    "/operator-mcp/setup.py",
    "/operator-mcp/requirements.txt",
    "/operator-mcp/README.md",
    "/operator-mcp/operator_mcp/**/*.py",
    "/operator-mcp/operator_mcp/**/*.yaml",
    "/operator-mcp/session-manager/dist/**/*",
    "/operator-mcp/session-manager/package.json",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Revka — memory-native AI agent runtime powered by Kumiho"
readme = "README.md"
keywords = [
    "ai",
    "agent",
    "memory",
    "orchestration",
    "kumiho",
]
categories = [
    "command-line-utilities",
    "development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/KumihoIO/Revka"
resolver = "2"

[features]
browser-native = ["dep:fantoccini"]
channel-feishu = ["channel-lark"]
channel-lark = ["dep:prost"]
channel-matrix = ["dep:matrix-sdk"]
channel-nostr = ["dep:nostr-sdk"]
ci-all = [
    "channel-nostr",
    "hardware",
    "channel-matrix",
    "channel-lark",
    "observability-prometheus",
    "observability-otel",
    "peripheral-rpi",
    "browser-native",
    "sandbox-landlock",
    "sandbox-bubblewrap",
    "probe",
    "rag-pdf",
    "skill-creation",
    "whatsapp-web",
    "plugins-wasm",
]
default = [
    "observability-prometheus",
    "skill-creation",
]
fantoccini = ["browser-native"]
hardware = [
    "nusb",
    "tokio-serial",
]
landlock = ["sandbox-landlock"]
metrics = ["observability-prometheus"]
observability-otel = [
    "dep:opentelemetry",
    "dep:opentelemetry_sdk",
    "dep:opentelemetry-otlp",
]
observability-prometheus = ["dep:prometheus"]
peripheral-rpi = ["rppal"]
plugins-wasm = []
probe = ["dep:probe-rs"]
rag-pdf = ["dep:pdf-extract"]
sandbox-bubblewrap = []
sandbox-landlock = ["dep:landlock"]
skill-creation = []
voice-wake = ["dep:cpal"]
webauthn = []
whatsapp-web = [
    "dep:wa-rs",
    "dep:wa-rs-core",
    "dep:wa-rs-binary",
    "dep:wa-rs-proto",
    "dep:wa-rs-ureq-http",
    "dep:wa-rs-tokio-transport",
    "dep:serde-big-array",
    "dep:prost",
    "dep:qrcode",
]

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

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

[dependencies.aardvark-sys]
version = "0.1.0"

[dependencies.anyhow]
version = "1.0"

[dependencies.async-imap]
version = "0.11"
features = ["runtime-tokio"]
default-features = false

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

[dependencies.axum]
version = "0.8"
features = [
    "http1",
    "json",
    "tokio",
    "query",
    "ws",
    "macros",
    "multipart",
]
default-features = false

[dependencies.base64]
version = "0.22"

[dependencies.chacha20poly1305]
version = "0.10"

[dependencies.chrono]
version = "0.4"
features = [
    "clock",
    "std",
    "serde",
]
default-features = false

[dependencies.chrono-tz]
version = "0.10"

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

[dependencies.clap_complete]
version = "4.6"

[dependencies.console]
version = "0.16"

[dependencies.cron]
version = "0.16"

[dependencies.dialoguer]
version = "0.12"
features = ["fuzzy-select"]

[dependencies.directories]
version = "6.0"

[dependencies.fantoccini]
version = "0.22.1"
features = ["rustls-tls"]
optional = true
default-features = false

[dependencies.flate2]
version = "1.1"

[dependencies.fluent]
version = "0.17"

[dependencies.fluent-bundle]
version = "0.16"

[dependencies.futures-util]
version = "0.3"
features = [
    "sink",
    "alloc",
]
default-features = false

[dependencies.glob]
version = "0.3"

[dependencies.hex]
version = "0.4"

[dependencies.hmac]
version = "0.12"

[dependencies.hostname]
version = "0.4.2"

[dependencies.http-body-util]
version = "0.1"

[dependencies.hyper]
version = "1"
features = [
    "http1",
    "server",
]

[dependencies.hyper-util]
version = "0.1"
features = [
    "tokio",
    "server-auto",
    "server-graceful",
]

[dependencies.image]
version = "0.25"
features = [
    "jpeg",
    "png",
]
default-features = false

[dependencies.include_dir]
version = "0.7"

[dependencies.indicatif]
version = "0.18"

[dependencies.lettre]
version = "0.11.19"
features = [
    "builder",
    "smtp-transport",
    "rustls-tls",
]
default-features = false

[dependencies.mail-parser]
version = "0.11.2"

[dependencies.matrix-sdk]
version = "0.16"
features = [
    "e2e-encryption",
    "rustls-tls",
    "markdown",
    "sqlite",
]
optional = true
default-features = false

[dependencies.mime_guess]
version = "2"

[dependencies.nanohtml2text]
version = "0.2"

[dependencies.nostr-sdk]
version = "0.44"
features = [
    "nip04",
    "nip59",
]
optional = true
default-features = false

[dependencies.opentelemetry]
version = "0.31"
features = [
    "trace",
    "metrics",
]
optional = true
default-features = false

[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
    "trace",
    "metrics",
    "http-proto",
    "reqwest-blocking-client",
    "reqwest-rustls-webpki-roots",
]
optional = true
default-features = false

[dependencies.opentelemetry_sdk]
version = "0.31"
features = [
    "trace",
    "metrics",
]
optional = true
default-features = false

[dependencies.parking_lot]
version = "0.12"

[dependencies.portable-atomic]
version = "1"

[dependencies.portable-pty]
version = "0.9"

[dependencies.prometheus]
version = "0.14"
optional = true
default-features = false

[dependencies.prost]
version = "0.14"
features = ["derive"]
optional = true
default-features = false

[dependencies.rand]
version = "0.10"

[dependencies.regex]
version = "1.10"

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

[dependencies.ring]
version = "0.17"

[dependencies.rusqlite]
version = "0.37"
features = ["bundled"]

[dependencies.rust-embed]
version = "8"

[dependencies.rustls]
version = "0.23"

[dependencies.rustls-pemfile]
version = "2"

[dependencies.rustls-pki-types]
version = "1.14.1"

[dependencies.schemars]
version = "1.2"

[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false

[dependencies.serde-big-array]
version = "0.5"
optional = true

[dependencies.serde_json]
version = "1.0"
features = ["std"]
default-features = false

[dependencies.sha2]
version = "0.10"

[dependencies.shellexpand]
version = "3.1"

[dependencies.tar]
version = "0.4"

[dependencies.tempfile]
version = "3.26"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1.50"
features = [
    "rt-multi-thread",
    "macros",
    "time",
    "net",
    "io-util",
    "sync",
    "process",
    "io-std",
    "fs",
    "signal",
]
default-features = false

[dependencies.tokio-rustls]
version = "0.26.4"

[dependencies.tokio-serial]
version = "5"
optional = true
default-features = false

[dependencies.tokio-socks]
version = "0.5"

[dependencies.tokio-stream]
version = "0.1.18"
features = [
    "fs",
    "sync",
]
default-features = false

[dependencies.tokio-tungstenite]
version = "0.29"
features = ["rustls-tls-webpki-roots"]

[dependencies.tokio-util]
version = "0.7"
default-features = false

[dependencies.toml]
version = "1.0"

[dependencies.tower]
version = "0.5"
features = ["util"]
default-features = false

[dependencies.tower-http]
version = "0.6"
features = [
    "limit",
    "timeout",
]
default-features = false

[dependencies.tracing]
version = "0.1"
default-features = false

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

[dependencies.unic-langid]
version = "0.9"
features = ["macros"]

[dependencies.urlencoding]
version = "2.1"

[dependencies.uuid]
version = "1.22"
features = [
    "v4",
    "std",
]
default-features = false

[dependencies.webpki-roots]
version = "1.0.6"

[dependencies.which]
version = "8.0"

[dependencies.zip]
version = "8.6"
features = ["deflate-flate2"]
default-features = false

[dev-dependencies.criterion]
version = "0.8"
features = ["async_tokio"]

[dev-dependencies.rcgen]
version = "0.13"

[dev-dependencies.scopeguard]
version = "1.2"

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

[dev-dependencies.wiremock]
version = "0.6"

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.cpal]
version = "0.15"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.nusb]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.pdf-extract]
version = "0.10"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.probe-rs]
version = "0.31"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.qrcode]
version = "0.14"
optional = true

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs-binary]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs-core]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs-proto]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs-tokio-transport]
version = "0.2"
optional = true
default-features = false

[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies.wa-rs-ureq-http]
version = "0.2"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.landlock]
version = "0.4"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.rppal]
version = "0.22"
optional = true

[target."cfg(unix)".dependencies.libc]
version = "0.2"

[profile.ci]
lto = "thin"
codegen-units = 16
inherits = "release"

[profile.dev]
opt-level = 1
incremental = true

[profile.dist]
opt-level = "z"
lto = "fat"
codegen-units = 1
panic = "abort"
inherits = "release"
strip = true

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

[profile.release-fast]
codegen-units = 8
inherits = "release"
