[package]
name = "bones-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "CLI binary for bones issue tracker"
repository.workspace = true
readme = "README.md"
include = ["src/**/*", "Cargo.toml", "Cargo.lock", "README.md", "images/bones-embed.jpg", "images/ui.webp"]
[[bin]]
name = "bn"
path = "src/main.rs"
[lints]
workspace = true
[dependencies]
anyhow = { workspace = true }
blake3 = { workspace = true }
bones-core = { workspace = true }
bones-search = { workspace = true }
bones-sim = { workspace = true }
bones-triage = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true }
clap_complete = { workspace = true }
petgraph = { workspace = true }
pulldown-cmark = { workspace = true }
rusqlite = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
toml = { workspace = true }
dirs = { workspace = true }
terseid = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter", "json"] }
opentelemetry = { version = "0.31", optional = true }
opentelemetry_sdk = { version = "0.31", optional = true, features = ["trace", "logs"] }
opentelemetry-otlp = { version = "0.31", optional = true, default-features = false, features = ["trace", "logs", "http-proto", "reqwest-blocking-client"] }
opentelemetry-appender-tracing = { version = "0.31", optional = true }
tracing-opentelemetry = { version = "0.32", optional = true }
rand = { workspace = true }
ureq = { version = "2.10", features = ["json"] }
ratatui = { workspace = true }
crossterm = { workspace = true }
dhat = { version = "0.3", optional = true }
tikv-jemallocator = { version = "0.6", optional = true }
mimalloc = { version = "0.1", default-features = false, optional = true }
[target.'cfg(not(windows))'.dependencies]
bones-search = { workspace = true, features = ["semantic-ort"] }
[target.'cfg(windows)'.dependencies]
bones-search = { workspace = true, features = ["semantic-model2vec"] }
[features]
default = ["otel"]
semantic = ["bones-search/semantic-ort"]
semantic-model2vec = ["bones-search/semantic-model2vec"]
otel = ["dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-otlp", "dep:opentelemetry-appender-tracing", "dep:tracing-opentelemetry"]
dhat-heap = ["dep:dhat"]
jemalloc = ["dep:tikv-jemallocator"]
mimalloc = ["dep:mimalloc"]
[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.1"
serde_json = { workspace = true }
tempfile = { workspace = true }
rusqlite = { workspace = true }
pulldown-cmark = { workspace = true }
ratatui = { workspace = true }
crossterm = { workspace = true }
[[bench]]
name = "tui_memory"
harness = false
[[bench]]
name = "tui_render_memory"
harness = false
[[bench]]
name = "tui_ort_memory"
harness = false