Versions in this module Expand all Collapse all v1 v1.5.0 Oct 12, 2026 Changes in this version + func CountLines(content string) int + func CountTokensInContent(content string) int + type CompactionImpact struct + EstimatedFullCompactSavings int + EstimatedFullCompactTokens int + MicroCompactSavings int + MicroCompactTokens int + OriginalTokens int + type CompactionResult struct + ConsecutiveFailures int + DidCompact bool + Messages []types.Message + PostCompactTokens int + PreCompactTokens int + RuntimeMetadata *types.CompactionMetadata + Summary string + TargetTokens int + UsedMicroCompact bool + UsedSummaryCompact bool + type CompactionStrategy interface + AutoCompact func(ctx context.Context, systemPrompt string, messages []types.Message, ...) (CompactionResult, error) + CheckBlockingLimit func(systemPrompt string, messages []types.Message, model types.ModelIdentifier) error + type Config struct + AutoCompactBufferTokens int + AutoCompactThreshold float64 + CompactTargetPercentage float64 + ManualCompactBufferTokens int + MaxConsecutiveFailures int + MaxSummaryTokens int + SummaryModel types.ModelIdentifier + func DefaultConfig() *Config + type Engine struct + func NewEngine(apiClient *providers.Client, config *Config) *Engine + func (e *Engine) AutoCompact(ctx context.Context, systemPrompt string, messages []types.Message, ...) (CompactionResult, error) + func (e *Engine) AutoCompactThresholdTokens(model types.ModelIdentifier) int + func (e *Engine) BlockingLimitTokens(model types.ModelIdentifier) int + func (e *Engine) CalculateCompactionImpact(messages []types.Message) CompactionImpact + func (e *Engine) CalculateUsage(systemPrompt string, messages []types.Message) int + func (e *Engine) CheckBlockingLimit(systemPrompt string, messages []types.Message, model types.ModelIdentifier) error + func (e *Engine) Compact(ctx context.Context, systemPrompt string, messages []types.Message, ...) (CompactionResult, error) + func (e *Engine) EffectiveContextWindow(model types.ModelIdentifier) int + func (e *Engine) ShouldCompact(systemPrompt string, messages []types.Message, model types.ModelIdentifier) bool + func (e *Engine) TargetTokens(model types.ModelIdentifier) int + type MessagePreparer struct + func NewMessagePreparer() *MessagePreparer + func (p *MessagePreparer) CalculateMessageTokens(msg types.Message) int + func (p *MessagePreparer) CalculateMessagesTokens(messages []types.Message) int + func (p *MessagePreparer) CreateToolUseSummary(toolUses []types.ToolUseContent) string + func (p *MessagePreparer) CreateTurnSummary(turnNumber int, userMessage types.Message, assistantMessage types.Message, ...) string + func (p *MessagePreparer) GetCompactionTarget(messages []types.Message, contextWindow types.ContextWindow, ...) int + func (p *MessagePreparer) PrepareMessageForAPI(msg types.Message) types.Message + func (p *MessagePreparer) PrepareMessages(messages []types.Message, maxTurns int) []types.Message + func (p *MessagePreparer) PrepareToolResult(result types.ToolResultContent) types.ToolResultContent + func (p *MessagePreparer) PrepareToolUse(toolUse types.ToolUseContent) types.ToolUseContent + func (p *MessagePreparer) ShouldCompact(messages []types.Message, contextWindow types.ContextWindow, threshold float64) bool + func (p *MessagePreparer) SummarizeToolUses(msg types.Message) string + type MicroCompactor struct + func NewMicroCompactor() *MicroCompactor + func (m *MicroCompactor) CalculateToolResultSummary(result types.ToolResultContent) string + func (m *MicroCompactor) CalculateTrimSize(content string) int + func (m *MicroCompactor) EstimateToolResultTokens(result string) int + func (m *MicroCompactor) SetMaxToolResultSize(size int) + func (m *MicroCompactor) SetTrimStrategy(strategy TrimStrategy) + func (m *MicroCompactor) ShouldTrim(content string) bool + func (m *MicroCompactor) TrimContentWithMeta(content string) TrimmedContent + func (m *MicroCompactor) TrimToolResult(result types.ToolResultContent) types.ToolResultContent + func (m *MicroCompactor) TrimToolResults(results []types.ToolResultContent) []types.ToolResultContent + type TrackingState struct + ConsecutiveFailures int + type TrimStrategy string + const TrimStrategyPreview + const TrimStrategySnip + const TrimStrategyTruncate + type TrimmedContent struct + Content string + OriginalSize int + Preview string + Strategy TrimStrategy + TrimmedSize int