contextpolicy

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MinSupportedContextWindowTokens     int64 = 256000
	DefaultContextWindowTokens          int64 = MinSupportedContextWindowTokens
	DefaultMaxOutputTokens              int64 = 0
	DefaultReservedOutputTokens         int64 = 64000
	DefaultAutoCompactRatioPercent      int64 = 90
	DefaultCompactedContextTargetTokens int64 = 50000
	DefaultReservedSummaryTokens        int64 = 20000
	DefaultRecentTailTokens             int64 = 12000
	DefaultRecentUserTokens             int64 = 15000
	DefaultCheckpointOverheadTokens     int64 = 2000
	DefaultEstimatorSource                    = "generic_conservative"
	DefaultEstimatorMethod                    = EstimateMethodMessageContext
)

Variables

This section is empty.

Functions

func EstimateMessageTokens

func EstimateMessageTokens(msg session.Message) int64

func EstimateTextTokens

func EstimateTextTokens(value string) int64

func HasValues

func HasValues(policy Policy) bool

func OutputHeadroom

func OutputHeadroom(policy Policy) int64

func RatioLimitTokens

func RatioLimitTokens(policy Policy) int64

func RequestSafeLimitTokens

func RequestSafeLimitTokens(policy Policy) int64

func Threshold

func Threshold(policy Policy) int64

Types

type ContextPressure

type ContextPressure struct {
	WindowInputTokens    int64              `json:"window_input_tokens,omitempty"`
	ProjectedInputTokens int64              `json:"projected_input_tokens,omitempty"`
	ContextWindowTokens  int64              `json:"context_window_tokens,omitempty"`
	ThresholdTokens      int64              `json:"threshold_tokens,omitempty"`
	RequestSafeLimit     int64              `json:"request_safe_limit_tokens,omitempty"`
	OutputHeadroomTokens int64              `json:"output_headroom_tokens,omitempty"`
	Signal               PressureSignal     `json:"pressure_signal,omitempty"`
	Source               PressureSource     `json:"pressure_source,omitempty"`
	EstimateMethod       EstimateMethod     `json:"estimate_method,omitempty"`
	Confidence           EstimateConfidence `json:"confidence,omitempty"`
	CompactionNeeded     bool               `json:"compaction_needed,omitempty"`
	HardLimitExceeded    bool               `json:"hard_limit_exceeded,omitempty"`
}

func PressureFromManual added in v0.3.27

func PressureFromManual(usage Usage, policy Policy) ContextPressure

func PressureFromMissingNativeUsage

func PressureFromMissingNativeUsage(estimate RequestEstimate, policy Policy) ContextPressure

func PressureFromNativeUsage

func PressureFromNativeUsage(usage NativeUsage, policy Policy) ContextPressure

func PressureFromOverflow

func PressureFromOverflow(policy Policy) ContextPressure

func PressureFromProjectedRequest

func PressureFromProjectedRequest(estimate RequestEstimate, delta RequestDeltaEstimate, policy Policy) ContextPressure

type EstimateConfidence

type EstimateConfidence string
const (
	EstimateExact        EstimateConfidence = "exact"
	EstimateApproximate  EstimateConfidence = "approximate"
	EstimateConservative EstimateConfidence = "conservative"
)

type EstimateMethod

type EstimateMethod string
const (
	EstimateMethodGenericPayload          EstimateMethod = "generic_payload_estimate"
	EstimateMethodProviderRenderedPayload EstimateMethod = "provider_rendered_payload_estimate"
	EstimateMethodMessageContext          EstimateMethod = "message_context_estimate"
	EstimateMethodOfficialPreflightCount  EstimateMethod = "official_preflight_count"
	EstimateMethodUnknown                 EstimateMethod = "unknown_estimate_method"
)

func MethodForEstimateSource

func MethodForEstimateSource(source string, defaultMethod EstimateMethod) EstimateMethod

type MessageContextEstimate

type MessageContextEstimate struct {
	PrefixTokens  int64              `json:"prefix_tokens,omitempty"`
	MessageTokens int64              `json:"message_tokens,omitempty"`
	InputTokens   int64              `json:"input_tokens,omitempty"`
	Source        string             `json:"source,omitempty"`
	Method        EstimateMethod     `json:"method,omitempty"`
	Confidence    EstimateConfidence `json:"confidence,omitempty"`
}

func (MessageContextEstimate) Normalized

type NativeUsage

type NativeUsage struct {
	InputTokens       int64
	CacheReadTokens   int64
	CacheWriteTokens  int64
	WindowInputTokens int64
	Available         bool
}

type Policy

type Policy struct {
	ContextWindowTokens          int64          `json:"context_window_tokens,omitempty"`
	MaxOutputTokens              int64          `json:"max_output_tokens,omitempty"`
	ReservedOutputTokens         int64          `json:"reserved_output_tokens,omitempty"`
	ReservedSummaryTokens        int64          `json:"reserved_summary_tokens,omitempty"`
	RecentTailTokens             int64          `json:"recent_tail_tokens,omitempty"`
	RecentUserTokens             int64          `json:"recent_user_tokens,omitempty"`
	CompactedContextTargetTokens int64          `json:"compacted_context_target_tokens,omitempty"`
	EstimatorSource              string         `json:"estimator_source,omitempty"`
	EstimatorMethod              EstimateMethod `json:"estimator_method,omitempty"`
	MaxCompactionFailures        int            `json:"max_compaction_failures,omitempty"`
}

func MergeDefaults

func MergeDefaults(policy, defaults Policy) Policy

func Normalize

func Normalize(policy Policy) Policy

type PressureSignal

type PressureSignal string
const (
	PressureSignalNativeUsage PressureSignal = "native_usage"
	PressureSignalProjected   PressureSignal = "projected_request"
	PressureSignalOverflow    PressureSignal = "provider_overflow"
	PressureSignalManual      PressureSignal = "manual"
)

type PressureSource

type PressureSource string
const (
	PressureSourceProviderUsage       PressureSource = "provider_usage"
	PressureSourceUsageAnchoredDelta  PressureSource = "usage_anchored_delta"
	PressureSourceFullRequestEstimate PressureSource = "full_request_estimate"
	PressureSourceMissingNativeUsage  PressureSource = "missing_native_usage_request_estimate"
	PressureSourceManual              PressureSource = "manual"
)

type RequestDeltaEstimate

type RequestDeltaEstimate struct {
	MessageDeltaTokens        int64              `json:"message_delta_tokens,omitempty"`
	PrefixDeltaTokens         int64              `json:"prefix_delta_tokens,omitempty"`
	ToolDefinitionDeltaTokens int64              `json:"tool_definition_delta_tokens,omitempty"`
	EstimatedDeltaTokens      int64              `json:"estimated_delta_tokens,omitempty"`
	Source                    string             `json:"source,omitempty"`
	Method                    EstimateMethod     `json:"method,omitempty"`
	Confidence                EstimateConfidence `json:"confidence,omitempty"`
}

func (RequestDeltaEstimate) Normalized

type RequestEstimate

type RequestEstimate struct {
	PrefixTokens         int64              `json:"prefix_tokens,omitempty"`
	MessageTokens        int64              `json:"message_tokens,omitempty"`
	ToolDefinitionTokens int64              `json:"tool_definition_tokens,omitempty"`
	EstimatedInputTokens int64              `json:"estimated_input_tokens,omitempty"`
	Source               string             `json:"source,omitempty"`
	Method               EstimateMethod     `json:"method,omitempty"`
	Confidence           EstimateConfidence `json:"confidence,omitempty"`
}

func (RequestEstimate) Normalized

func (e RequestEstimate) Normalized(policy Policy) RequestEstimate

type Usage

type Usage struct {
	PrefixTokens      int64              `json:"prefix_tokens,omitempty"`
	MessageTokens     int64              `json:"message_tokens,omitempty"`
	InputTokens       int64              `json:"input_tokens,omitempty"`
	ContextWindow     int64              `json:"context_window,omitempty"`
	ThresholdTokens   int64              `json:"threshold_tokens,omitempty"`
	RatioLimitTokens  int64              `json:"ratio_limit_tokens,omitempty"`
	RequestSafeLimit  int64              `json:"request_safe_limit_tokens,omitempty"`
	MaxOutputTokens   int64              `json:"max_output_tokens,omitempty"`
	ReservedOutput    int64              `json:"reserved_output,omitempty"`
	ReservedSummary   int64              `json:"reserved_summary,omitempty"`
	OutputHeadroom    int64              `json:"output_headroom_tokens,omitempty"`
	AutoCompactRatio  int64              `json:"auto_compact_ratio_pct,omitempty"`
	RecentTailTokens  int64              `json:"recent_tail_tokens,omitempty"`
	RecentUserTokens  int64              `json:"recent_user_tokens,omitempty"`
	Source            string             `json:"source,omitempty"`
	Method            EstimateMethod     `json:"method,omitempty"`
	Confidence        EstimateConfidence `json:"confidence,omitempty"`
	CompactionNeeded  bool               `json:"compaction_needed,omitempty"`
	HardLimitExceeded bool               `json:"hard_limit_exceeded,omitempty"`
}

Usage is the compaction-internal message-context budget. It intentionally excludes request tool schemas, native usage, projected pressure, and triggers.

func EstimateMessageContext

func EstimateMessageContext(systemPrompt string, history []session.Message, policy Policy) Usage

func UsageFromEstimate

func UsageFromEstimate(estimate MessageContextEstimate, policy Policy) Usage

func UsageFromMessageContextEstimate

func UsageFromMessageContextEstimate(estimate MessageContextEstimate, policy Policy) Usage

Jump to

Keyboard shortcuts

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