Skip to content

Releases: SimplyLiz/ContextCompressionEngine

Release list

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Feb 04:57

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-engine

Highlights

  • Lossless round-tripcompress() then uncompress() 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() and createEscalatingSummarizer()
  • Three-level fallback — LLM → deterministic → size guard, never makes output worse
  • Token budgettokenBudget binary-searches recencyWindow to fit a target token count, with forceConverge hard-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_original metadata
  • 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

Links