[package] name = "jcp-intercept" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true description = "Attested interceptor chains for JCP — a composable, ordered pipeline of transforms around each model and tool call. An interceptor may inspect or rewrite the request (redact a secret, trim context), refuse it, or hold it for a human; the chain runs them onion-order (forward before the call, reverse after) and seals EVERY step as an intercept/1 JCR-1 receipt carrying the before/after request digests and the metered energy. Ingest of the agent-middleware shape (before_model / after_model / wrap_tool_call composition) — with the per-step signed audit and honest joule accounting the incumbent's arbitrary in-process hooks lack." [dependencies] jcp-schema = { workspace = true } jcp-receipt = { workspace = true } jcp-energy = { workspace = true } ed25519-dalek = { workspace = true } serde_json = { workspace = true } hex = { workspace = true } thiserror = { workspace = true } [lints] workspace = true # The real-counter test reads this process's energy count with its own FFI: # an oracle that shares no code with the meter. [target.'cfg(target_os = "macos")'.dev-dependencies] libc = "0.2"