[package] name = "jouledesk-github" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true description = "Joule Desk — live delivery for chat/forge surfaces (jouledesk/1 §8): receive an @joule mention (GitHub or Slack), do the work with a real model under a real energy meter, seal a verifiable efficiency/1, and post the reply back via the surface's API." [lib] name = "jouledesk_github" path = "src/lib.rs" [[bin]] name = "jouledesk-github" path = "src/main.rs" [dependencies] jouledesk = { path = "../jouledesk" } # The host's best energy meter: Apple-Silicon IOReport where its CPU rail is live, # else the Mac's whole-machine power from the SMC (sealed and posted as modeled), # else the load-average estimator (sealed and posted as an estimate). jouleclaw-energy = { path = "../../../../jouleclaw/jouleclaw-rs/crates/jouleclaw-energy", default-features = false, features = ["ioreport", "smc"] } # The model subprocess's own CPU energy, where the host counts each process's # (macOS): `TreeMeter`, rooted at the model's process. sandbox-meter = { path = "../../../../sandbox/sandbox-rs/crates/sandbox-meter" } serde_json = "1" ureq = { version = "3", features = ["json"] } tiny_http = "0.12" # macOS: the model's process is waited for without being reaped (`waitid` with # `WNOWAIT`), so the tree meter reads its exited count. [target.'cfg(target_os = "macos")'.dependencies] libc = "0.2" [dev-dependencies] # Tests read the sealed efficiency/1 receipt back to check its provenance. jcp-efficiency = { path = "../../../../jcp/jcp-rs/crates/jcp-efficiency" }