[workspace] # Independent package - not part of any workspace [package] name = "daemon-cli" version = "0.1.0" edition = "2021" authors = ["Akasha Development Team"] license = "MIT" repository = "https://github.com/provenance-io/prov-ecosystem" description = "Unified daemon and CLI for orchestrating prov-ecosystem services" [dependencies] # Async runtime tokio = { version = "1", features = ["full"] } tokio-util = "0.7" # HTTP server and networking axum = "0.8" tower = "0.5" tower-http = { version = "0.6", features = ["cors", "trace"] } hyper = "1.8" reqwest = { version = "0.12", features = ["json"] } http = "1.4" # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1.0" toml = "0.9" # Error handling thiserror = "2" anyhow = "1" # Logging and tracing tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } # CLI clap = { version = "4.5", features = ["derive"] } # Utilities uuid = { version = "1", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } which = "8" async-trait = "0.1" lru = "0.16" parking_lot = "0.12" sha2 = "0.10" config = "0.15" notify = "8.2" # Template rendering tera = "1.20" # i18n fluent = "0.17" fluent-bundle = "0.16" fluent-syntax = "0.12" unic-langid = "0.9" # Event bus async-broadcast = "0.7" # Database / persistence (optional) sqlx = { version = "0.8.6", features = ["runtime-tokio-rustls", "sqlite"], optional = true } # Nushell integration (optional) nu-engine = { version = "0.109", optional = true } nu-protocol = { version = "0.109", optional = true } nu-parser = { version = "0.109", optional = true } nu-command = { version = "0.109", optional = true } nu-system = { version = "0.109", optional = true } # Configuration language support (CLI wrappers - no pure Rust deps needed) # KCL and Nickel renderers delegate to official CLI binaries (kcl/nickel) # This follows the same pattern as nushell plugins for module system support # Ecosystem crate dependencies valida = { path = "../valida", optional = true } encrypt = { path = "../encrypt", optional = true } runtime = { path = "../runtime", optional = true } init-servs = { path = "../init-servs", optional = true } observability = { path = "../observability", optional = true } syntaxis-integration = { path = "../syntaxis-integration", optional = true } [dev-dependencies] criterion = "0.8" tokio-test = "0.4" tempfile = "3" mockall = "0.14" [features] # Nushell integration - enables all Nushell execution capabilities nushell = ["dep:nu-engine", "dep:nu-protocol", "dep:nu-parser", "dep:nu-command", "dep:nu-system"] # Persistent Nushell process executor for <5ms overhead nushell-persistent = ["nushell"] # Subprocess-based Nushell executor (fallback) nushell-subprocess = ["nushell"] # Configuration rendering # KCL and Nickel are enabled by feature flags but don't require optional dependencies # Renderers delegate to official CLI binaries (must be installed on system) kcl = [] nickel = [] tera-default = [] fluent-default = [] # Individual crate features - with dep: prefix for optional dependencies valida = ["dep:valida"] encrypt = ["dep:encrypt"] runtime = ["dep:runtime"] init-servs = ["dep:init-servs"] observability = ["dep:observability"] syntaxis = ["dep:syntaxis-integration"] audit = [] backup = [] gitops = [] n8n = [] virtualization = [] # Composite crates basic-crates = ["valida", "runtime", "encrypt"] extended-crates = ["init-servs", "observability"] # Event persistence event-persistence = ["sqlx"] # Default features (includes config rendering support) default = ["nushell-persistent", "kcl", "nickel", "tera-default", "fluent-default", "basic-crates", "syntaxis"] # Full feature set full = [ "nushell", "nushell-persistent", "kcl", "nickel", "tera-default", "fluent-default", "basic-crates", "extended-crates", "valida", "encrypt", "runtime", "init-servs", "observability", "syntaxis", "event-persistence", ] [[bin]] name = "prov-eco-daemon" path = "src/bin/prov-eco-daemon.rs" [[bin]] name = "prov-eco-cli" path = "src/bin/prov-eco-cli.rs" [[bin]] name = "provisioning-daemon-cli" path = "src/bin/provisioning_daemon.rs" required-features = ["nushell"] [lib] name = "daemon_cli" path = "src/lib.rs" [profile.release] opt-level = 3 lto = true codegen-units = 1 strip = true [profile.bench] opt-level = 3 lto = true