[package] name = "ontoref-daemon" version.workspace = true edition.workspace = true description = "Ontoref runtime daemon: NCL export cache, file watcher, actor registry, HTTP API" license.workspace = true [[bin]] name = "ontoref-daemon" path = "src/main.rs" [[bin]] name = "ontoref-tier" path = "src/bin/ontoref-tier.rs" [dependencies] stratum-db = { path = "../../../../stratumiops/code/crates/stratum-db", default-features = false, optional = true } platform-nats = { path = "../../../../stratumiops/code/crates/platform-nats", optional = true } axum = { workspace = true } tokio = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } notify = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } tower-http = { workspace = true } tera = { version = "1", default-features = false, features = ["builtins"], optional = true } argon2 = { version = "0.5", features = ["std"] } toml = { version = "0.8", optional = true } uuid = { workspace = true, optional = true } axum-server = { version = "0.7", features = ["tls-rustls"], optional = true } rmcp = { version = "1", features = ["server", "transport-io", "transport-streamable-http-server"], optional = true } schemars = { version = "1", optional = true } async-graphql = { version = "=8.0.0-rc.5", optional = true } async-graphql-axum = { version = "=8.0.0-rc.5", optional = true } thiserror = { workspace = true } dashmap = { workspace = true } clap = { workspace = true } anyhow = { workspace = true } bytes = { workspace = true } hostname = { workspace = true } reqwest = { workspace = true } tokio-stream = { version = "0.1", features = ["sync"] } inventory = { workspace = true } ontoref-derive = { path = "../ontoref-derive" } ontoref-ontology = { path = "../ontoref-ontology", features = ["derive"] } ontoref-ontology-content = { path = "../ontoref-ontology-content" } ontoref-ops = { path = "../ontoref-ops" } ontoref-oplog = { path = "../ontoref-oplog", optional = true } ontoref-sync = { path = "../ontoref-sync", optional = true } ontoref-core = { path = "../ontoref-core", optional = true } ontoref-types = { path = "../ontoref-types" } auth = { path = "../../../../stratumiops/code/stratum-ui/crates/auth", features = ["axum", "persist"] } ed25519-dalek = { workspace = true } blake3 = { workspace = true } tempfile = { workspace = true } ui = { path = "../../../../stratumiops/code/stratum-ui/crates/ui", optional = true } [target.'cfg(unix)'.dependencies] libc = { workspace = true } [features] default = ["db", "nats", "ui", "mcp", "graphql"] db = ["stratum-db/remote"] nats = ["dep:platform-nats", "dep:ontoref-sync", "dep:ontoref-core"] ui = ["dep:tera", "dep:toml", "dep:uuid", "dep:ui"] tls = ["ui", "dep:axum-server"] mcp = ["ui", "dep:rmcp", "dep:schemars"] graphql = ["dep:async-graphql", "dep:async-graphql-axum", "axum/ws"] # Persist signed witnesses to the per-project redb oplog when dispatching # ops (ADR-036). Opt-in, off by default — the default daemon stays # tier-orthogonal. Enables ontoref-ops witness append + the oplog handle. substrate = ["ontoref-ops/substrate", "dep:ontoref-oplog"] [dev-dependencies] tokio-test = { workspace = true } tempfile = { workspace = true } tower = { version = "0.5", features = ["util"] } ontoref-ops = { path = "../ontoref-ops" }