Files
buzz/crates/buzz-cli/Cargo.toml
Michael Neale 2a947e383d Merge branch 'main' into micn/serverless-mode
* main: (128 commits)
  perf(timeline): gate heavy message render behind useDeferredValue (#1022)
  Add animated profile avatars (#1031)
  Polish direct message and members modals (#1054)
  Polish huddles UI (#1041)
  Fix video review comments in threads (#1056)
  Polish message reaction tray (#1002)
  Refine app loading skeletons (#1001)
  Polish channel modal forms (#1000)
  Normalize desktop icon sizing (#999)
  Add shared skeleton loader primitives (#998)
  chore(scripts): update post-screenshots repo name to block/buzz (#1042)
  docs: fix stale sprout repo references in RELEASING.md (#1043)
  chore(release): release version 0.3.23 (#1040)
  fix(release): publish manifest from successful platforms (#1039)
  chore(release): release version 0.3.22 (#1038)
  chore(release): release version 0.3.21 (#1037)
  fix(release): use signed NSIS installer for updates (#1036)
  handoff: pass full session history to summarizer (#1033)
  feat(emoji): latest-set-wins union for custom emoji across desktop, mobile, and CLI (#989)
  Fix relay NIP-11 software URL (#1030)
  ...

# Conflicts:
#	Cargo.lock
#	crates/buzz-acp/src/config.rs
#	crates/buzz-acp/src/relay.rs
#	crates/buzz-acp/src/serverless_relay.rs
#	crates/buzz-cli/src/client.rs
#	crates/buzz-cli/src/commands/channels.rs
#	crates/buzz-cli/src/commands/mem.rs
#	crates/buzz-cli/src/lib.rs
#	desktop/scripts/check-file-sizes.mjs
#	desktop/src-tauri/Cargo.lock
#	desktop/src-tauri/src/commands/messages.rs
#	desktop/src-tauri/src/commands/mod.rs
#	desktop/src-tauri/src/events.rs
#	desktop/src-tauri/src/lib.rs
#	desktop/src-tauri/src/managed_agents/runtime.rs
#	desktop/src-tauri/src/relay.rs
#	desktop/src/app/AppShell.tsx
#	desktop/src/app/AppTopChrome.tsx
#	desktop/src/features/messages/hooks.ts
#	desktop/src/features/sidebar/ui/AppSidebar.tsx
#	desktop/src/features/workspaces/ui/AddWorkspaceDialog.tsx
#	desktop/src/features/workspaces/ui/WelcomeSetup.tsx
#	desktop/src/features/workspaces/workspaceStorage.ts
#	desktop/src/shared/api/tauri.ts
#	justfile
2026-06-16 13:09:55 +10:00

76 lines
2.4 KiB
TOML

[package]
name = "buzz-cli"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Agent-first CLI for Buzz relay"
[lib]
name = "buzz_cli"
path = "src/lib.rs"
[[bin]]
name = "buzz"
path = "src/main.rs"
[dependencies]
# CLI argument parsing — derive macros + env var support (BUZZ_API_TOKEN auto-wired)
clap = { version = "4", features = ["derive", "env"] }
# HTTP client — async REST calls to the relay
reqwest = { workspace = true, features = ["json"] }
# Async runtime — tokio macros + multi-thread for reqwest
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "time"] }
# WebSocket transport for serverless mode (generic relays, no HTTP bridge)
tokio-tungstenite = { workspace = true }
futures-util = { workspace = true }
# rustls provider install for the serverless WS transport. The CLI links
# aws-lc-rs (via reqwest's rustls); install that provider at startup so
# tokio-tungstenite's direct TLS config has a process-level provider.
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "std"] }
# Serialization — JSON body building and response passthrough
serde = { workspace = true }
serde_json = { workspace = true }
# Structured error types with exit code mapping
thiserror = { workspace = true }
# Nostr event signing — used in `buzz auth`, auto-mint, and signed event writes
nostr = { workspace = true }
# UUID parsing for validate_uuid + event building
uuid = { workspace = true }
# Typed event builders for all write operations
buzz-sdk = { workspace = true }
buzz-core = { workspace = true }
# Base64 encoding — NIP-98 event serialization for Authorization header
base64 = "0.22"
# SHA-256 — NIP-98 payload hash tag, Blossom file hash, mem patch base-hash
sha2 = "0.11"
# Unified-diff parser and strict applier — `mem patch`
diffy = "0.5"
# Hex encoding — SHA-256 hash output for Blossom uploads
hex = { workspace = true }
# MIME type detection via magic bytes — file upload validation
infer = "0.19"
# URL parsing — extract server domain for Blossom auth tag
url = { workspace = true }
# Persona pack parsing, validation, and resolution
buzz-persona = { path = "../buzz-persona" }
# WebSocket client — ephemeral event publish (kind:20001 is WS-only on the relay)
buzz-ws-client = { path = "../buzz-ws-client" }