shouldAutoCompact method
Returns true when messages exceed the auto-compact threshold.
The threshold is contextWindow minus autocompactBufferTokens.
The circuit breaker trips after maxConsecutiveFailures consecutive
failures to prevent infinite retry loops.
Implementation
bool shouldAutoCompact(
List<Message> messages, {
int contextWindow = 200000,
}) {
if (_consecutiveFailures >= maxConsecutiveFailures) return false;
final threshold = contextWindow - autocompactBufferTokens;
final estimated = estimateTokenCount(messages);
return estimated >= threshold;
}