"""
Compression modules for infinite-running agents.

Two types of compression:
1. TC (Tool Call) Compression - compresses tool call results before they enter context
2. Rollout Compression - manages message history eviction (LRU-style)

These modules allow agents to run virtually indefinitely without context explosion.
"""

from .tc_compression import (
    TCCompressor,
    NoOpTCCompressor,
    NaiveSizeTCCompressor,
    get_tc_compressor,
)
from .rollout_compression import (
    RolloutCompressor,
    NoOpRolloutCompressor,
    LRURolloutCompressor,
    SlidingWindowRolloutCompressor,
    get_rollout_compressor,
)

__all__ = [
    # TC Compression
    "TCCompressor",
    "NoOpTCCompressor",
    "NaiveSizeTCCompressor",
    "get_tc_compressor",
    # Rollout Compression
    "RolloutCompressor",
    "NoOpRolloutCompressor",
    "LRURolloutCompressor",
    "SlidingWindowRolloutCompressor",
    "get_rollout_compressor",
]
