using Microsoft.Agents.AI.Compaction; namespace MeetingAssistant.Summary; #pragma warning disable MAAI001 public sealed class LiteLlmResponsesCompactionOptions { public bool Enabled { get; init; } public int ContextWindowTokens { get; init; } public int MaxOutputTokens { get; init; } public double RemainingRatio { get; init; } public string CompactPath { get; init; } = "responses/compact"; public CompactionStrategy? FallbackStrategy { get; init; } public int TriggerTokens { get { var contextWindow = Math.Max(1, ContextWindowTokens); var outputReserve = Math.Clamp(MaxOutputTokens, 0, contextWindow - 1); var inputBudget = contextWindow - outputReserve; var remainingRatio = Math.Clamp(RemainingRatio, 0.01, 0.90); return Math.Max(1, (int)Math.Floor(inputBudget * (1 - remainingRatio))); } } } #pragma warning restore MAAI001