[package] name = "jouleclaw-foreman" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Foreman primitive ported from RCE (joulesperbit/crates/rce/src/foreman/traits.rs) — typed `ForemanResponse { Resolved | Defer | Reject }` escalation envelope + `Foreman` trait that any LlmBackend can wrap. RCE's discipline of treating the AI as 'a resolver of ambiguity, not a generator of static artifacts' becomes substrate-typed: an escalation context goes in, a typed verdict comes out (a deterministic resolution to promote, an explicit defer, or a refusal). Ships the trait + the typed envelope + a deterministic mock + an LlmForeman adapter wrapping any jouleclaw-llm backend." [dependencies] jouleclaw-llm = { path = "../jouleclaw-llm" } jouleclaw-reason = { path = "../jouleclaw-reason" } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } chrono = { workspace = true, features = ["serde"] }