compaction

package
v7.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSummaryTitle = "Context Compaction Summary"
)
View Source
const SummarySchemaVersion = "floret.compaction.summary.v1"

Variables

View Source
var (
	ErrNoCutPoint       = errors.New("compaction has no safe cut point")
	ErrInvalidReference = errors.New("compaction reference is invalid")
)

Functions

func BuildActiveMessages

func BuildActiveMessages(result Result, tail []session.Message) []session.Message

func BuildActiveMessagesWithKeptUsers

func BuildActiveMessagesWithKeptUsers(result Result, keptUsers, tail []session.Message) []session.Message

func BuildCheckpointMessage

func BuildCheckpointMessage(summary string, keptUsers, tail []session.Message) session.Message

func ExtractCheckpointSummary

func ExtractCheckpointSummary(content string) string

func SummaryPrompt

func SummaryPrompt(prep Preparation, policy contextpolicy.Policy, outputCap int64) string

func SummaryPromptWithOptions

func SummaryPromptWithOptions(prep Preparation, policy contextpolicy.Policy, outputCap int64, options PromptOptions) string

func SummaryWriterSystemPrompt

func SummaryWriterSystemPrompt() string

func SummaryWriterSystemPromptWithOptions

func SummaryWriterSystemPromptWithOptions(options PromptOptions) string

Types

type ExtractiveSummaryGenerator

type ExtractiveSummaryGenerator struct {
	PromptOptions PromptOptions
}

func (ExtractiveSummaryGenerator) GenerateSummary

func (g ExtractiveSummaryGenerator) GenerateSummary(_ context.Context, prep Preparation) (string, error)

type Phase

type Phase string
const (
	PhasePrepare  Phase = "prepare"
	PhaseGenerate Phase = "generate"
	PhaseInstall  Phase = "install"
)

type Preparation

type Preparation struct {
	Request        Request
	CompactedHead  []session.Message
	RetainedTail   []session.Message
	ActiveMessages []session.Message
	Result         Result
}

func Prepare

func Prepare(ctx context.Context, req Request, generator SummaryGenerator) (Preparation, error)

type PromptOptions

type PromptOptions struct {
	WriterSystemPrompt string
	SummaryTitle       string
}

func DefaultPromptOptions

func DefaultPromptOptions() PromptOptions

func NormalizePromptOptions

func NormalizePromptOptions(options PromptOptions) PromptOptions

type Reason

type Reason string
const (
	ReasonThreshold          Reason = "threshold"
	ReasonProviderOverflow   Reason = "provider_overflow"
	ReasonFollowUpPressure   Reason = "follow_up_pressure"
	ReasonManual             Reason = "manual"
	ReasonOutputContinuation Reason = "output_continuation"
	ReasonContextLineage     Reason = "context_lineage"
)

type Request

type Request struct {
	CompactionID              string
	SupplementalAnchorEntryID string
	OperationID               string
	RequestID                 string
	Source                    string
	PreviousCompactionID      string
	PreviousGeneration        int
	PreviousWindowID          string
	PreviousSummary           string
	History                   []session.Message
	Policy                    contextpolicy.Policy
	Trigger                   Trigger
	Reason                    Reason
	Phase                     Phase
	Step                      int
	Details                   map[string]string
	Now                       time.Time
}

type Result

type Result struct {
	CompactionID            string              `json:"compaction_id"`
	OperationID             string              `json:"operation_id"`
	RequestID               string              `json:"request_id"`
	Source                  string              `json:"source"`
	PreviousCompactionID    string              `json:"previous_compaction_id,omitempty"`
	CompactionGeneration    int                 `json:"compaction_generation,omitempty"`
	CompactionWindowID      string              `json:"compaction_window_id,omitempty"`
	FirstKeptEntryID        string              `json:"first_kept_entry_id,omitempty"`
	KeptUserEntryIDs        []string            `json:"kept_user_entry_ids,omitempty"`
	CompactedThroughEntryID string              `json:"compacted_through_entry_id,omitempty"`
	Summary                 string              `json:"summary"`
	SummarySchemaVersion    string              `json:"summary_schema_version"`
	Trigger                 Trigger             `json:"trigger"`
	Reason                  Reason              `json:"reason"`
	Phase                   Phase               `json:"phase"`
	TokensBefore            int64               `json:"tokens_before"`
	TokensAfterEstimate     int64               `json:"tokens_after_estimate"`
	UsageBefore             contextpolicy.Usage `json:"usage_before"`
	UsageAfter              contextpolicy.Usage `json:"usage_after"`
	Details                 map[string]string   `json:"details,omitempty"`
	CreatedAt               time.Time           `json:"created_at"`
}

type SummaryGenerationDetails

type SummaryGenerationDetails struct {
	Attempts            int
	RetryReason         string
	RetryCapTokens      int64
	ProviderTruncated   bool
	PromptInputTokens   int64
	RequestBudgetTokens int64
}

type SummaryGenerator

type SummaryGenerator interface {
	GenerateSummary(context.Context, Preparation) (string, error)
}

type Trigger

type Trigger string
const (
	TriggerPreRequest   Trigger = "pre_request"
	TriggerPostResponse Trigger = "post_response"
	TriggerOverflow     Trigger = "context_overflow"
	TriggerManual       Trigger = "manual"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL