jevcache
Local decision cache keyed on (model, schema, state), with redaction and canonicalisation before hashing, for cheaper repeats and deterministic replay in CI.
Local decision cache keyed on (model, schema, state), with redaction and canonicalisation before hashing, for cheaper repeats and deterministic replay in CI. No license file at the time of writing.
# jevcache **The decision ledger for Jev-class models.** A Jev decision is (approximately) a pure function of `(model, schema, state)` — so it's memoizable. jevcache caches those decisions locally: same decisions, fewer bills, and deterministic replay in CI. It's backend-agnostic — point it at any local decision endpoint, a hosted Jev provider, or a mock — and it never proxies or resells inference (your key stays on your machine). - **Local-first & offline.** An embedded, zero-dependency store (in-memory map + append-only log). A point lookup is a map access — instant. - **Private by construction.** State is redacted and canonicalized *before* it's hashed, so the fingerprint is over decision-relevant content only; PII (emails, phones, long digit runs) and volatile fields (ids, timestamps) never enter the key. For sensitive schemas, a per-schema `salt` keeps outsiders from enumerating decided states. - **Deterministic CI.** Publish fixtures, `replay` them, catch model drift. > **This is the distribution repo** — the `jevcache` CLI binary and docs. > Install with `curl -fsSL jevcache.sh/install | sh`, or download a binary from [Releases](https://github.com/hyperspaceai/jevcache/releases). ## Install ```bash curl -fsSL jevcache.sh/install | sh ``` Installs a single static binary (~2–3 MB, no runtime) for macOS/Linux, arm64 or x64. The installer verifies a SHA-256 checksum before installing. `recall()` checks the local ledger only (never a backend); `decide()` recalls, then on a miss routes to your configured backend (`JEVCACHE_BACKEND=local|jev|mock`) and caches the result. The CLI is written in Rust; its fingerprint is byte-identical to this repo's TypeScript core, so a Rust ledger, the TS internals, and the hosted commons all share the same keys. ## CLI