Skip to main content

Module compress

Module compress 

Source
Expand description

Context compression for conversation history.

This module implements intelligent compression of conversation history to reduce token usage while preserving important information.

§Module Structure

  • config: Compression configuration and bias settings
  • types: Compression strategy, result, and segment types
  • compressor: AI compressor and compression functions
  • phase_detector: Conversation phase detection
  • dependency: Message dependency tracking

Structs§

AiCompressor
AI-based compressor using a Provider.
CircuitBreakerState
State for circuit breaker to prevent infinite retry loops.
CompressionBias
Compression bias - controls what to prioritize during compression.
CompressionConfig
Configuration for context compression.
CompressionHistoryEntry
Compression history entry for session metadata.
CompressionOutcome
Result of compression with metadata.
CompressionPipeline
Compression pipeline that orchestrates all modules.
CompressionResult
Result of a compression operation.
CompressionThresholds
Thresholds for content compression.
DependencyBuilder
Builder for dependency graphs.
DependencyGraph
Graph of message dependencies for preserving conversation coherence.
MessageDependency
Dependency relationship between ToolUse and ToolResult.
PhaseDetector
Detector for conversation phase.
PhaseWeights
Weight configuration for scoring based on conversation phase.
ScoredMessage
Message with its preservation score.
Scorer
Scorer for message preservation decisions.
SummarizedSegment
A segment of conversation history that has been summarized.
Summarizer
Summarizer for large content.
ToolCompressor
Compressor for tool results.

Enums§

AiCompressionMode
Mode for AI-assisted compression.
CompressionStrategy
Strategy for compressing conversation history.
ConversationPhase
Conversation phase detected from message history. Determines which weights to apply during scoring.
ThresholdLevel
Threshold level for compression warnings.
ValidationError
Validation errors for compression.

Constants§

AUTOCOMPACT_BUFFER_TOKENS
Token buffers for threshold levels (from Claude Code).
DEFAULT_COMPRESSION_THRESHOLD
Compression trigger threshold (percentage of context window). Lowered to 0.5 to compress earlier for long conversations (128K context -> 64K threshold)
DEFAULT_COMPRESSOR_MODEL
Default model for summarization.
DEFAULT_TARGET_RATIO
Target ratio after compression (keep this fraction of tokens).
ERROR_THRESHOLD_BUFFER_TOKENS
MANUAL_COMPACT_BUFFER_TOKENS
MAX_CONSECUTIVE_FAILURES
Maximum consecutive compression failures before stopping retries. Claude Code: “1,279 sessions had 50+ consecutive failures, wasting ~250K API calls/day”
MIN_MESSAGES_TO_KEEP
Minimum messages to keep after compression. Increased to preserve more recent context for continuity
TIME_BASED_MC_CLEARED_MESSAGE
Message to replace cleared tool result content (from Claude Code).
TIME_BASED_MC_GAP_THRESHOLD_MINUTES
Time-based microcompact threshold (minutes since last assistant message). When gap exceeds this, server cache has expired - clear old tool results.
WARNING_THRESHOLD_BUFFER_TOKENS

Traits§

Compressor
Compressor trait for different implementations.

Functions§

build_summary_prompt
Build a prompt for summarization.
compress_messages
Compress messages synchronously.
compress_messages_with_ai
Compress messages with AI assistance (async version).
compress_messages_with_full_ai
Compress messages with full AI support (async version).
compress_with_bias
Compress with bias-based scoring.
compress_with_pipeline
Legacy compression function (backward compatible).
estimate_tokens
Estimate token count for a message.
estimate_total_tokens
Estimate total tokens for a message list.
format_tokens
Format token count for display.
score_by_rules
Rule-based scoring for a message (public for pipeline use).
score_messages_only
Score messages without compressing (analysis only).
should_compress
Check if compression should be triggered.