Releases: SimplyLiz/ContextCompressionEngine
Releases · SimplyLiz/ContextCompressionEngine
v1.0.0
Lossless context compression for LLMs. Zero dependencies. Zero API calls. Works everywhere JavaScript runs.
1.3–6.1x compression on synthetic scenarios, 1.5x on real Claude Code sessions (11.7M chars across 8,004 messages) — fully deterministic, no LLM needed. Every compression is losslessly reversible.
npm install context-compression-engineHighlights
- Lossless round-trip —
compress()thenuncompress()restores byte-identical originals via a verbatim store - Code-aware classification — code fences, SQL, JSON/YAML, API keys, URLs, and file paths are preserved verbatim
- Paragraph-aware sentence scoring — deterministic summarization that rewards technical identifiers and penalizes filler
- Code-bearing message splitting — surrounding prose gets compressed while embedded code stays intact
- Exact + fuzzy deduplication — cross-message duplicate detection eliminates repeated content
- LLM-powered summarization — plug in any provider (Claude, GPT, Gemini, Grok, Ollama) via
createSummarizer()andcreateEscalatingSummarizer() - Three-level fallback — LLM → deterministic → size guard, never makes output worse
- Token budget —
tokenBudgetbinary-searchesrecencyWindowto fit a target token count, withforceConvergehard-truncation as a safety net - Pluggable token counter — bring your own tokenizer or use the built-in
ceil(content.length / 3.5)estimator - Provenance tracking — every compressed message carries origin IDs, summary hashes, and version chains via
_cce_originalmetadata - Role-based preservation — protect system prompts or any role from compression with
preserve - Zero dependencies — pure TypeScript, ESM-only, Node 18+, also works in Deno, Bun, and edge runtimes
Quick start
import { compress, uncompress } from 'context-compression-engine';
const { messages: compressed, verbatim } = compress(messages, {
preserve: ['system'],
recencyWindow: 4,
});
// restore originals
const { messages: originals } = uncompress(compressed, verbatim);Stats
- 333 tests across all compression paths
- Benchmark suite with synthetic and real-session scenarios
- LLM benchmark with multi-provider comparison