scribe-cli 0.5.1

Advanced code analysis and repository exploration library with AI-powered insights
Documentation
[workspace]
members = [
    ".",
    "scribe-core",
    "scribe-analysis", 
    "scribe-graph",
    "scribe-scanner",
    "scribe-patterns", 
    "scribe-selection",
    "scribe-scaling",
    "scribe-webservice",
]
default-members = ["."]
resolver = "2"

[workspace.package]
version = "0.5.1"
edition = "2021"
authors = ["Nathan Rice <nathan@sibylline.dev>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/sibyllinesoft/scribe"
homepage = "https://github.com/sibyllinesoft/scribe"
documentation = "https://docs.rs/scribe"
keywords = ["code-analysis", "ast", "repository", "documentation", "developer-tools"]
categories = ["development-tools", "text-processing", "parsing"]

[workspace.dependencies]
# Core dependencies used by multiple crates
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1.0", features = ["full"] }
rayon = "1.8"
thiserror = "1.0"
anyhow = "1.0"

# File system and path handling
walkdir = "2.4"
ignore = "0.4"
globset = "0.4"

# String processing and pattern matching
regex = "1.10"
tree-sitter = "0.20"
memchr = "2.6"
aho-corasick = "1.1"
bloom = "0.3"
smallvec = "1.13"
log = "0.4"

# Async and concurrency
futures = "0.3"
async-trait = "0.1"

# Data structures
indexmap = "2.0"
petgraph = "0.6"
dashmap = "5.5"

# Performance and optimization
once_cell = "1.19"
parking_lot = "0.12"


# Dev dependencies
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3.8"
tokio-test = "0.4"

[package]
name = "scribe-cli"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/scribe-cli"
description = "Advanced code analysis and repository exploration library with AI-powered insights"
keywords.workspace = true
categories.workspace = true
readme = "README.md"
exclude = ["workspace.toml"]

[lib]
name = "scribe"
path = "src/lib.rs"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] }

[features]
default = ["core", "analysis", "graph", "scanner", "patterns", "selection", "scaling", "web"]
cli = ["default"]

# Core features
core = ["dep:scribe-core"]
analysis = ["core", "dep:scribe-analysis"]
graph = ["core", "analysis", "dep:scribe-graph"]
scanner = ["core", "dep:scribe-scanner"]
patterns = ["core", "dep:scribe-patterns"]
selection = ["core", "analysis", "graph", "dep:scribe-selection"]
scaling = ["core", "dep:scribe-scaling"]
web = ["scaling", "dep:scribe-webservice"]

# Convenience feature groups
full = ["default", "scaling"]
minimal = ["core"]
fast = ["core", "scanner", "patterns"]
comprehensive = ["core", "analysis", "graph", "scanner", "patterns", "selection", "scaling", "web"]

[[bin]]
name = "scribe"
path = "src/bin/cli.rs"

[[bin]]
name = "test_budget_utilization"
path = "test_budget_utilization.rs"



[dependencies]
# CLI dependencies
clap = { version = "4.4", features = ["derive"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = { version = "0.4", features = ["serde"] }
open = "5.0"
indicatif = { version = "0.17", features = ["tokio", "futures", "rayon"] }

# Sub-crate dependencies with optional features
scribe-core = { path = "./scribe-core", version = "0.5.1", optional = true }
scribe-analysis = { path = "./scribe-analysis", version = "0.5.1", optional = true }
scribe-graph = { path = "./scribe-graph", version = "0.5.1", optional = true }
scribe-scanner = { path = "./scribe-scanner", version = "0.5.1", optional = true }
scribe-patterns = { path = "./scribe-patterns", version = "0.5.1", optional = true }
scribe-selection = { path = "./scribe-selection", version = "0.5.1", optional = true }
scribe-scaling = { path = "./scribe-scaling", version = "0.5.1", optional = true }
scribe-webservice = { path = "./scribe-webservice", version = "0.5.1", optional = true, default-features = false }

# Core dependencies used by multiple crates
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1.0", features = ["full"] }
rayon = "1.8"
thiserror = "1.0"
anyhow = "1.0"

# File system and path handling
walkdir = "2.4"
ignore = "0.4"
globset = "0.4"

# String processing and pattern matching
regex = "1.10"
tree-sitter = "0.20"
memchr = "2.6"
aho-corasick = "1.1"
bloom = "0.3"
smallvec = "1.13"
log = "0.4"

# Async and concurrency
futures = "0.3"
async-trait = "0.1"

# Data structures
indexmap = "2.0"
petgraph = "0.6"
dashmap = "5.5"

# Performance and optimization
once_cell = "1.19"
parking_lot = "0.12"

# Git integration
git2 = "0.18"

# HTTP client for GitHub cloning
reqwest = { version = "0.11", features = ["json"] }

# HTML generation and templating
handlebars = "4.5"

# Path and URL utilities
url = "2.4"
tempfile = "3.8"

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3.8"
tokio-test = "0.4"
env_logger = "0.10"

[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true
debug = false
opt-level = 3

[profile.dev]
debug = true
opt-level = 0

[profile.bench]
debug = true

# Disable warnings as errors for development
[workspace.lints.rust]
warnings = "warn"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] }