binnacle 0.0.1-alpha.7

A CLI tool for AI agents and humans to track project graphs
Documentation
[package]
name = "binnacle"
version = "0.0.1-alpha.7"
edition = "2024"
description = "A CLI tool for AI agents and humans to track project graphs"
license = "MIT"
repository = "https://github.com/hbeberman/binnacle"
readme = "README.md"
keywords = ["agent", "ai", "graph"]
categories = ["development-tools", "command-line-utilities"]

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

[lib]
name = "binnacle"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]

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

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

# Database (not available on wasm32)
# rusqlite = { version = "0.31", features = ["bundled"] }  # See target-specific dependencies

# Time handling
chrono = { version = "0.4", features = ["serde"] }

# Hash-based ID generation
sha2 = "0.10"

# XDG directories
dirs = "5"

# UUID generation
uuid = { version = "1", features = ["v4"] }

# Error handling
thiserror = "1"

# Subprocess timeout
wait-timeout = "0.2"

# Temporary directory creation
tempfile = "3"

# Configuration file format
kdl = "6"

# Archive/compression
tar = "0.4"
flate2 = "1.0"
zstd = "0.13"
base64 = "0.22"

# Signal handling for graceful shutdown
ctrlc = "3"

# GUI dependencies (feature-gated)
axum = { version = "0.7", features = ["ws"], optional = true }
tokio = { version = "1", features = ["full"], optional = true }
tower = { version = "0.4", optional = true }
tower-http = { version = "0.5", features = ["fs", "cors"], optional = true }
futures = { version = "0.3", optional = true }
notify = { version = "6", optional = true }
tracing = { version = "0.1", optional = true }
regex = { version = "1", optional = true }
libc = { version = "0.2", optional = true }

[features]
gui = [
  "axum",
  "tokio",
  "tower",
  "tower-http",
  "futures",
  "notify",
  "tracing",
  "regex",
  "libc",
]
wasm = [
  "wasm-bindgen",
  "js-sys",
  "web-sys",
  "console_error_panic_hook",
  "getrandom/js",
  "ruzstd",
]

# Native-only dependencies (not compiled for wasm32)
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rusqlite = { version = "0.31", features = ["bundled"] }

# Unix-specific dependencies
[target.'cfg(unix)'.dependencies]
nix = { version = "0.30", features = ["user"] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = { version = "0.2", optional = true }
js-sys = { version = "0.3", optional = true }
web-sys = { version = "0.3", optional = true, features = ["console"] }
console_error_panic_hook = { version = "0.1", optional = true }
getrandom = { version = "0.2", optional = true }
ruzstd = { version = "0.7", optional = true }

[build-dependencies]
chrono = "0.4"

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = "3"
serial_test = "3"