[package]
name = "cuenv-core"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Core types and error handling for the cuenv ecosystem"
exclude = [
    "src/target/**",
]

[features]
default = []

[dependencies]
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = { workspace = true }
schemars = "1.0.4"
miette = { workspace = true }
petgraph = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
async-recursion = "1.1"
async-trait = "0.1"
futures = "0.3"
fs4 = { version = "0.11", features = ["tokio"] }

# Dependencies for hook execution system
dirs = { workspace = true }
sha2 = { workspace = true }
chrono = { workspace = true }
sysinfo = "0.30"
# For input resolution, snapshots, and hashing
globset = "0.4"
regex = "1.10"
walkdir = "2.5"
ignore = "0.4"
tar = "0.4"
zstd = { version = "0.13", features = ["zstdmt"] }
hex = "0.4"
cuenv-workspaces = { workspace = true, features = ["discovery-rust", "parsers-rust"] }
cuenv-events = { workspace = true }
cuenv-codeowners = { workspace = true }

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
tempfile = { workspace = true }
cucumber = { workspace = true }
tokio-test = { workspace = true }
eyre = "0.6"
