Versions in this module Expand all Collapse all v0 v0.8.0 May 3, 2026 v0.7.0 Apr 27, 2026 v0.6.0 Apr 26, 2026 Changes in this version + type Config struct + CompactionEnabled bool + CompactionThreshold int + MaxMessages int + MaxTokens int + ReserveTokens int + TokenCounter TokenCounter + func DefaultConfig() Config + type Engine struct + func New(config Config) *Engine + func (e *Engine) Apply(messages []provider.Message) []provider.Message + func (e *Engine) AvailableTokens(messages []provider.Message) int + func (e *Engine) EstimateTokens(messages []provider.Message) int + type MessagePair struct + Assistant provider.Message + User provider.Message + func ExtractPairs(messages []provider.Message) []MessagePair + type ModelTokenCounter struct + Fallback TokenCounter + Model string + func (c *ModelTokenCounter) Count(msg provider.Message) int + func (c *ModelTokenCounter) CountText(text string) int + type SimpleTokenCounter struct + CharsPerToken int + func (c *SimpleTokenCounter) Count(msg provider.Message) int + func (c *SimpleTokenCounter) CountText(text string) int + type TokenBudget struct + Reserved int + Total int + Used int + func (b *TokenBudget) Available() int + func (b *TokenBudget) Consume(tokens int) + func (b *TokenBudget) OverBudget() bool + func (b *TokenBudget) Reset() + type TokenCounter interface + Count func(msg provider.Message) int + CountText func(text string) int + type Window struct + func NewWindow(config WindowConfig) *Window + func (w *Window) Apply(messages []provider.Message) []provider.Message + type WindowConfig struct + MaxMessages int + MaxTokens int + Strategy WindowStrategy + TokenCounter TokenCounter + type WindowStrategy int + const WindowStrategyImportant + const WindowStrategyRecent + const WindowStrategySummarize