autoCompactIfNeeded method

Future<CompactionResult?> autoCompactIfNeeded({
  1. required List<Message> messages,
  2. required String systemPrompt,
  3. int contextWindow = 200000,
})

Auto-compact if needed. Returns null when no compaction was needed.

Implementation

Future<CompactionResult?> autoCompactIfNeeded({
  required List<Message> messages,
  required String systemPrompt,
  int contextWindow = 200000,
}) async {
  if (!shouldAutoCompact(messages, contextWindow: contextWindow)) {
    return null;
  }

  return compactConversation(
    messages: messages,
    systemPrompt: systemPrompt,
    contextWindow: contextWindow,
    isAutoCompact: true,
  );
}