[package]
name = "kindling-server"
description = "Local daemon runtime for kindling memory, exposed over a project-aware local API."
homepage.workspace = true
documentation = "https://docs.rs/kindling-server"
readme = "README.md"
keywords = ["memory", "ai", "daemon", "context", "agent"]
categories = ["development-tools"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true

[dependencies]
kindling-types = { path = "../kindling-types", version = "0.3.0" }
kindling-store = { path = "../kindling-store", version = "0.3.0" }
kindling-service = { path = "../kindling-service", version = "0.3.0" }
axum = "0.8"
tokio = { version = "1", features = [
    "rt-multi-thread",
    "macros",
    "net",
    "time",
    "signal",
    "sync",
] }
tower = "0.5"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
# Used ONLY to resolve the machine-local UTC offset at a given instant for the
# SessionStart `toLocaleString` parity formatter. The civil-date arithmetic is
# hand-rolled in `inject.rs`; chrono just answers "what is the local offset now"
# (honouring the `TZ` env var on Unix, exactly like the Node hook process). We
# deliberately avoid `chrono-tz` (a large bundled IANA database).
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }

[target.'cfg(unix)'.dependencies]
nix = { version = "0.31", features = ["signal", "process"] }

[dev-dependencies]
tempfile = "3"
hyper = { version = "1", features = ["client", "http1"] }
hyper-util = { version = "0.1", features = [
    "client",
    "client-legacy",
    "http1",
    "tokio",
] }
http-body-util = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "time"] }

[lints]
workspace = true
