[package]
name = "dirigent_tools"
version = "0.1.0"
edition = "2021"

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

[dependencies]
# Policy types from dirigent_fermata
dirigent_fermata = { workspace = true }

# Async runtime — minimal feature set; no `net` so wasm consumers don't pull mio.
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "sync", "fs", "io-util", "time", "process"] }

# Bytes for tool result content
bytes = { version = "1", features = ["serde"] }
serde_bytes = "0.11"

# Async traits (object-safe async fn)
async-trait = "0.1"

# JSON Schema generation for tool input types
schemars = "1.0"

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

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Logging
tracing = "0.1"

# Text processing and pattern matching
regex = "1.0"
globset = "0.4"

# Diff generation
similar = { version = "2.6", features = ["inline"] }

# Path utilities for cross-platform path handling (especially Windows)
# Using dunce for reliable Windows path normalization
dunce = "1.0"

# Directory traversal for glob/search operations
walkdir = "2.0"

# Lazy static for global state
lazy_static = "1.5"

# Configuration serialization (for TOML/JSON config support)
toml = { version = "0.8", optional = true }

[dev-dependencies]
# Test dependencies
tokio = { version = "1", features = ["full", "test-util"] }
tempfile = "3.0"
toml = "0.8"

[features]
default = []
config = ["dep:toml"]
