Versions in this module Expand all Collapse all v0 v0.2.0 Jun 11, 2026 v0.1.0 Jun 10, 2026 Changes in this version + const ContextCompactPhaseComplete + const ContextCompactPhaseFailed + const ContextCompactPhaseStart + const ContextStatusEstimated + const ContextStatusHardLimit + const ContextStatusNearThreshold + const ContextStatusStable + const ContextStatusWillCompact + const ProviderUsagePhaseFinalContextStatus + const ProviderUsagePhaseStreamUsage + var ErrContentFiltered = errors.New("provider output was content filtered") + var ErrContextWouldOverflow = errors.New("provider request would exceed context window") + var ErrDuplicateToolCallID = errors.New("provider returned duplicate tool call id") + var ErrDuplicateTools = errors.New("agent loop repeated identical tool calls") + var ErrInvalidTokenEstimate = errors.New("provider token estimate missing source or method") + var ErrMixedControlTools = errors.New("provider returned control signal with ordinary tool calls") + var ErrNoProgress = errors.New("agent loop made no progress") + var ErrProviderFinishError = errors.New("provider returned error finish reason") + var ErrProviderTruncated = errors.New("provider output was truncated") + var ErrStopHookLoop = errors.New("stop hook requested too many continuations") + func ContextPressureDisplayStatus(pressure contextpolicy.ContextPressure) string + func ContextPressureThresholdRatio(pressure contextpolicy.ContextPressure) float64 + func ContextPressureUsedRatio(pressure contextpolicy.ContextPressure) float64 + type BudgetMetrics struct + Limit float64 + Run RunMetrics + Type string + Used float64 + type CompactionManager interface + Compact func(context.Context, CompactionRequest) (compaction.Result, []session.Message, error) + type CompactionRequest struct + ContextUsage contextpolicy.Usage + Details map[string]string + History []session.Message + Model string + Phase compaction.Phase + Policy contextpolicy.Policy + PreviousCompactionID string + PreviousSummary string + Provider provider.Provider + ProviderName string + Reason compaction.Reason + RunID string + SessionID string + Step int + TraceID string + Trigger compaction.Trigger + type CompletionPolicy string + const CompletionExplicitSignal + const CompletionNaturalStop + type CompletionReason string + const CompletionReasonHookStop + const CompletionReasonNaturalStop + const CompletionReasonToolSignal + type Config struct + Approver tools.Approver + Artifacts artifact.Store + Compactor CompactionManager + Options Options + Prompt cache.Store + Provider provider.Provider + Sink event.Sink + StopHook StopHook + Store session.Store + SystemPrompt string + Tools *tools.Registry + type ContextPressureTracker struct + func NewContextPressureTracker(sessionID string) *ContextPressureTracker + func (t *ContextPressureTracker) ConsumePendingCompaction() (contextpolicy.ContextPressure, bool) + func (t *ContextPressureTracker) ObserveSuccess(req provider.Request, history []session.Message, usage provider.Usage) (contextpolicy.ContextPressure, PressureAnchorState) + func (t *ContextPressureTracker) Overflow(policy contextpolicy.Policy) contextpolicy.ContextPressure + func (t *ContextPressureTracker) Project(req provider.Request, history []session.Message) contextpolicy.ContextPressure + func (t *ContextPressureTracker) SetAnchor(anchor PressureAnchorState) + type ContinuationReason string + const ContinueCompaction + const ContinueHook + const ContinueNoProgress + const ContinueProviderTruncated + const ContinueRetryEmpty + const ContinueToolResults + type ControlDisposition string + const ControlContinue + const ControlTerminal + const ControlWaiting + type ControlSignal struct + ArgsHash string + CallID string + Disposition ControlDisposition + Labels map[string]string + Name string + OutputText string + Payload map[string]any + type ControlSpec struct + Definitions []provider.ToolDefinition + Project func(provider.ToolCall) (ControlSignal, bool, error) + func DefaultControlSpec(policy CompletionPolicy) ControlSpec + type Engine struct + func New(cfg Config) (*Engine, error) + func (e *Engine) Options() Options + func (e *Engine) Run(ctx context.Context, userText string) Result + func (e *Engine) RunTurn(ctx context.Context, input RunInput) Result + func (e *Engine) SetApprover(approver tools.Approver) + func (e *Engine) SetSink(sink event.Sink) + func (e *Engine) SetStopHook(hook StopHook) + func (e *Engine) WithOptions(options Options) (*Engine, error) + type LocalCompactionManager struct + Generator compaction.SummaryGenerator + Now func() time.Time + func (m LocalCompactionManager) Compact(ctx context.Context, req CompactionRequest) (compaction.Result, []session.Message, error) + type Options struct + CacheNamespace string + CacheRetention cache.Retention + CompletionPolicy CompletionPolicy + ContextPolicy contextpolicy.Policy + ControlSpec ControlSpec + DuplicateToolLimit int + HostedToolDefinitions []provider.HostedToolDefinition + Labels RunLabels + MaxCostUSD float64 + MaxEmptyProviderRetries int + MaxLengthContinuations int + MaxStopHookContinuations int + MaxToolCalls int + MaxTotalTokens int64 + Model string + NoProgressLimit int + PreviousProviderState *provider.State + ProviderName string + RunID string + SessionID string + TraceID string + WallTime time.Duration + type PressureAnchorState = cache.PressureAnchorState + type ProviderUsageContextStatus struct + Attempt int + CompactionGeneration int + CompactionWindowID string + ContextPressure contextpolicy.ContextPressure + LogicalRequestID string + Phase string + RequestEstimate contextpolicy.RequestEstimate + RequestID string + Status string + ThresholdRatio float64 + Usage provider.Usage + UsedRatio float64 + type RequestShapeHashes = cache.RequestShapeHashes + type Result struct + CompletionReason CompletionReason + ContinuationReason ContinuationReason + ControlSignal *ControlSignal + Err error + FinishInferred bool + FinishReason provider.FinishReason + Messages []session.Message + Metrics RunMetrics + Output string + ProviderState *provider.State + RawFinishReason string + Status Status + type RunDecision struct + CompletionReason CompletionReason + ContinuationReason ContinuationReason + ControlSignal *ControlSignal + Detail string + FinishInferred bool + FinishReason provider.FinishReason + ProviderState *provider.State + RawFinishReason string + type RunInput struct + History []session.Message + Labels RunLabels + PreviousProviderState *provider.State + RunID string + SessionID string + TraceID string + type RunLabels struct + Correlation map[string]string + Host map[string]string + type RunMetrics struct + Compactions int + LLMRequests int + Retries int + Steps int + ToolCalls int + Usage provider.Usage + WallTimeMS int64 + func (m *RunMetrics) AddUsage(usage provider.Usage) + type Status string + const Cancelled + const Completed + const Failed + const Waiting + type StepMetrics struct + CompletionReason string + ContinuationReason string + FinishInferred bool + FinishReason string + Model string + Provider string + ProviderLatencyMS int64 + RawFinishReason string + Retries int + Step int + ToolCalls int + ToolLatencyMS int64 + Usage provider.Usage + type StepOutput struct + Calls []provider.ToolCall + FinishInferred bool + FinishReason provider.FinishReason + RawFinishReason string + Reasoning string + ResponseID string + ResponseState *provider.State + Retry bool + Text string + Truncated bool + Usage provider.Usage + type StopHook func(context.Context, StopHookContext) (StopHookResult, error) + type StopHookContext struct + FinishInferred bool + FinishReason provider.FinishReason + LastAssistant session.Message + Messages []session.Message + Metrics RunMetrics + RawFinishReason string + RunID string + SessionID string + Step int + TraceID string + type StopHookResult struct + Continue bool + Prompt string + Reason string