[package] name = "huginn-daemon" version = "0.1.0" edition.workspace = true license.workspace = true publish.workspace = true # The organ's CultNet surface: the socket, the sessions, the process lifetime # and the operation envelope, and no rule. Every rule, the instance check, the # receipt, the status and the wire vocabulary are `huginn-mind`'s, and the leaf # and the store type are reached through it so one crate pins one revision. [lib] name = "huginn_daemon" path = "src/lib.rs" [[bin]] name = "huginn-daemon" path = "src/main.rs" [dependencies] anyhow = "1" base64 = "0.22" chrono = "0.4.44" cultnet-rs.workspace = true huginn-mind = { path = "../huginn-mind" } rmp-serde = "1" serde = { version = "1", features = ["derive"] } # The vector store's and the embedder's HTTP APIs are the xenos boundary, and # JSON exists in `index/ollama.rs` and `index/qdrant.rs` only. `ureq` 3 with # default features off is plain HTTP with no TLS (`rustls` and `gzip` are its # only defaults), which is all the private mesh needs. It stays below 3.4, # whose `base64` 0.23 would put a second `base64` in a tree that has one. serde_json = "1" sha2 = "0.10" signal-hook = "0.3" ureq = { version = "~3.3", default-features = false } [dev-dependencies] tempfile = "3" # Test-only: `Mind::store_path_for`, the grammar-checked door onto a raw # store's path. The daemon's own store-integrity tests reach a store directly # (to break a row on purpose) and must go through the same door `open` does # rather than reconstructing the path by hand (S3, residue batch). huginn-mind = { path = "../huginn-mind", features = ["test-support"] }