[package]
name = "estoppl"
version = "0.5.0"
edition = "2024"
description = "Compliance proxy for AI agent tool calls — intercepts, signs, and logs MCP actions"
license = "Apache-2.0"
repository = "https://github.com/estoppl/estoppl"
homepage = "https://estoppl.ai"
keywords = ["mcp", "ai-agents", "audit", "compliance", "proxy"]
categories = ["command-line-utilities"]

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

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

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

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

# Cryptography
ed25519-dalek = { version = "2", features = ["rand_core"] }
sha2 = "0.10"
rand = "0.8"

# Local storage
rusqlite = { version = "0.31", features = ["bundled"] }

# HTTP client (for cloud ledger and upstream forwarding)
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }

# HTTP server (for HTTP/SSE proxy mode)
axum = "0.8"
futures = "0.3"
bytes = "1"

# Identity
uuid = { version = "1", features = ["v7"] }
chrono = { version = "0.4", features = ["serde"] }
base64 = "0.22"
hex = "0.4"

# Config
toml = "0.8"

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

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

[dev-dependencies]
tempfile = "3"
