mirror of
https://github.com/block/buzz.git
synced 2026-10-30 05:51:46 +00:00
87 lines
3.3 KiB
TOML
87 lines
3.3 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]
|
|
buzz-runtime-support = { path = "../buzz-runtime-support" }
|
|
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]
|
|
# Synthetic TLS OAuth/catalog servers exercise the strict HTTPS production path.
|
|
rcgen = { version = "0.14", default-features = false, features = ["crypto", "ring"] }
|
|
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"] }
|
|
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"
|