Thanks for checking out jevcache.
git clone https://github.com/kushals256/jevcache
cd jevcache
npm install
npm test
npm run build
npm startKeyless smoke:
MOCK_JEV=1 MOCK_UPSTREAM=1 npm start -- --demo- Keep the default path one-command (
npx @kushalicious/jevcache@latest). - Prefer fail-open: if the adjudicator fails, still call upstream.
- Precision-first: prefer miss over a wrong HIT.
- Package name stays
@kushalicious/jevcache— no rename / unpublish games. - New adjudicator backends: implement
IntentAdjudicator, register insrc/adjudicator/factory.ts, document whenjevcache doctor --livepasses (offline eval stays mock/OpenRouter). - Don’t commit
.env, keys, or localdata/. - Add or update tests when you touch fingerprint / store / server / adjudicator / stream paths.
- Never store or HIT-replay a completion that contains
tool_callsor legacyfunction_call. - Intent hits must stay inside one turn namespace. Different priors must not share a jev hit unless
JOB_CROSS_PRIOR=on. npm testmust pass with mocks only. Do not require live API keys.
- Wrong HIT / stale reuse → bug template, include
X-Jevcache-*headers.
Include: install method (npx / Docker / source), Node version, and whether /healthz works.