shouldAutoCompact function
Determine whether auto-compact should run.
Implementation
bool shouldAutoCompact(
List<CompactMessage> messages,
String model,
int contextWindow,
int tokenCount, {
String? querySource,
bool autoCompactEnabled = true,
int snipTokensFreed = 0,
}) {
// Recursion guards
if (querySource == 'session_memory' || querySource == 'compact') {
return false;
}
if (!autoCompactEnabled) return false;
final effectiveTokenCount = tokenCount - snipTokensFreed;
final state = calculateTokenWarningState(
effectiveTokenCount,
model,
contextWindow,
autoCompactEnabled: autoCompactEnabled,
);
return state.isAboveAutoCompactThreshold;
}