errand-bot 0.1.0

Run a coding agent from a chat channel, in a sandbox it cannot escape.
[package]
name = "errand-bot"
version = "0.1.0"
edition = "2024"
rust-version = "1.98"
description = "Run a coding agent from a chat channel, in a sandbox it cannot escape."
authors = ["Rabindra Dhakal <contact@qaidvoid.dev>"]
repository = "https://github.com/QaidVoid/errand"
license = "MIT OR Apache-2.0"
readme = "README.md"
keywords = ["agent", "chat", "sandbox", "daemon", "discord"]
categories = ["command-line-utilities", "development-tools"]
exclude = ["/docs", "/web", "/packaging", "/test"]

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

[dependencies]
axum = "0.8.9"
futures-util = { version = "0.3.34", features = ["io"] }
getrandom = "0.4.3"
http = "1.5.0"
jiff = "0.2.37"
jsonc-parser = { version = "0.33.2", features = ["serde"] }
nix = { version = "0.31.3", features = ["signal", "process", "fs"] }
reqwest = { version = "0.13.5", features = ["json", "stream"] }
rusqlite = { version = "0.40.2", features = ["bundled"] }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = { version = "1.0.151", features = ["preserve_order"] }
serenity = { version = "0.12.5", default-features = false, features = ["builder", "client", "gateway", "model", "http", "rustls_backend", "cache"] }
tempfile = "3.27.0"
thiserror = "2.0.20"
tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "time", "sync", "process", "io-util", "net", "fs", "signal"] }

[lints.rust]
unsafe_code = "forbid"
warnings = "deny"

[lints.clippy]
pedantic = "deny"

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