LLM-based compactor that summarizes older conversation using an LLM.
It replaces older messages with a single summary message while preserving recent turns.
Compacts when context usage exceeds a threshold.
It identifies turns to keep (most recent N) and applies the configured
compaction strategy to older tool results.
Trait for conversation compaction strategies.
Implementations decide when and how to compact conversation history
to reduce token usage while preserving important context.