orch-cli 0.91.2

Orch, the agent orchestration engine: runs coding agents on tasks and cron jobs
Documentation
[package]
# The crate name orch is taken on crates.io, the binary and the library keep the name orch
name = "orch-cli"
version = "0.91.2"
edition = "2021"
description = "Orch, the agent orchestration engine: runs coding agents on tasks and cron jobs"
license = "MIT"
repository = "https://github.com/gabrielkoerich/orch"
readme = "README.md"
keywords = ["agents", "orchestration", "cron", "claude", "codex"]
categories = ["command-line-utilities", "development-tools"]
# Only what the build reads: include_str! pulls prompts, test fixtures and the review workflow
include = ["src/**", "prompts/**", "migrations/**", "tests/**", ".github/workflows/orch-review.yml", "build.rs", "README.md"]

# cargo binstall orch-cli downloads the release binary, a target with no asset falls back to building from source
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/orch-{ target }"
pkg-fmt = "bin"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/orch-arm64"

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

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

[dependencies]
git-cow = "0.2"
# Async runtime
tokio = { version = "1", features = ["full"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_norway = "0.9"

# CLI
clap = { version = "4", features = ["derive"] }
clap_complete = "4"

# Cron
cron = "0.13"
chrono = { version = "0.4", features = ["serde"] }

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

# Error handling
anyhow = "1"
thiserror = "2"

# Async trait
async-trait = "0.1"

# SHA256 for dedup hashing and webhook signatures
sha2 = "0.10"

# URL encoding for label names
urlencoding = "2"

# Regex for leak detection
regex = "1"

# HTTP client for external APIs
reqwest = { version = "0.12", features = ["json"] }

# WebSocket client for Discord Gateway
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }

# Directory helpers
dirs = "6"

# File watching for config hot reload
notify = "7"

# SQLite via sqlx — unified task store (async, compile-time checked queries)
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }

# Command discovery for agents
which = "7"

# Simple process availability cache
once_cell = "1"

# HTTP server for webhooks
axum = "0.7"
tower-http = { version = "0.5", features = ["trace"] }

# HMAC for webhook signature verification
hmac = "0.12"

# Constant-time comparison for timing-safe signature verification
subtle = "2"

# GitHub App JWT authentication
jsonwebtoken = "10"
base64 = "0.22"

# Async combinators (FuturesUnordered for concurrent routing)
futures = "0.3"
uuid = { version = "1.23.0", features = ["v4"] }

# Concurrent hash set for in-flight auto-merge tracking
dashmap = "6"

# Scope guard for cleanup on task completion
scopeguard = "1"

[dev-dependencies]
tempfile = "3"
tokio-test = "0.4"
tower = { version = "0.5", features = ["util"] }
wiremock = "0.6"
serial_test = "3"

[profile.release]
opt-level = 3
lto = true
strip = true