Files
buzz/crates/buzz-agent/Cargo.toml
2026-09-21 15:31:39 -04:00

94 lines
3.2 KiB
TOML

[package]
name = "buzz-agent"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Minimal, unbreakable ACP-compliant agent. Non-streaming. Tool-calls-as-output."
readme = "README.md"
keywords = ["acp", "agent", "llm", "mcp", "minimal"]
categories = ["command-line-utilities", "web-programming"]
[lib]
name = "buzz_agent"
path = "src/lib.rs"
[[bin]]
name = "buzz-agent"
path = "src/main.rs"
# Test-only fake MCP server. Built unconditionally because cargo can't gate
# bins on `cfg(test)`, but it's tiny and only used by integration tests.
[[bin]]
name = "fake-mcp"
path = "tests/bin/fake_mcp.rs"
# Test-only lock holder: a real second process that takes the coordinator's
# cross-process advisory lock, so the auth tests can prove genuine
# inter-process single-flight and crash-release rather than same-process
# handles. Tiny; only used by the databricks auth integration tests.
[[bin]]
name = "lock-holder"
path = "tests/bin/lock_holder.rs"
# Test-only auth worker: a real second process that runs the PUBLIC auth
# coordinator API (`acquire_with_intent`) with a scripted browser opener and a
# shared temp cache, so the auth tests can prove the cross-process single-flight
# contract end-to-end — durable cooldown sharing and one-grant/one-cache races
# across a genuine process boundary, not two in-process handles. Only used by
# the databricks auth integration tests.
[[bin]]
name = "auth-worker"
path = "tests/bin/auth_worker.rs"
[dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "io-std", "io-util", "sync", "process", "time", "net"] }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
reqwest = { workspace = true, features = ["json", "rustls", "form"] }
rmcp = { version = "1", default-features = false, features = ["client", "transport-child-process"] }
arc-swap = "1"
getrandom = "0.4"
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
# OAuth 2.0 PKCE for Databricks (and future browser-auth providers).
async-trait = "0.1"
axum = { workspace = true }
base64 = "0.22"
hex = { workspace = true }
sha2 = { workspace = true }
url = { workspace = true }
urlencoding = "2"
webbrowser = "1"
dirs = "6"
# Cross-process advisory file lock (flock on Unix, LockFileEx on Windows) for
# the auth coordinator's single-flight. Kept off std's `File::try_lock` so the
# crate stays buildable on the repo's declared 1.88 MSRV (those std APIs are
# 1.89+).
fs2 = "0.4"
[target.'cfg(unix)'.dependencies]
nix = { version = "0.31", default-features = false, features = ["signal", "process"] }
[dev-dependencies]
tokio = { workspace = true, features = ["test-util", "rt-multi-thread", "macros", "io-std", "io-util", "sync", "process", "time", "net"] }
nix = { version = "0.31", default-features = false, features = ["signal", "process"] }
axum = { workspace = true }
hex = { workspace = true }
serde = { workspace = true }
sha2 = { workspace = true }
tempfile = "3"
[[bin]]
name = "beehive-databricks"
path = "src/bin/beehive_databricks.rs"
[target.'cfg(target_os = "macos")'.dependencies]
security-framework = "=3.7.0"
[[bin]]
name = "beehive-owner-key"
path = "src/bin/beehive_owner_key.rs"