context

package
v1.0.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextConfig

type ContextConfig struct {
	ContextWindow  int    // Maximum context window (e.g., 128000 for GPT-4)
	MaxTokens      int    // Maximum output tokens
	ReservedTokens int    // Tokens to reserve for response
	SystemPrompt   string // System prompt
}

ContextConfig configures the context manager

func DefaultConfig

func DefaultConfig() ContextConfig

DefaultConfig returns default context configuration

type ContextSummary

type ContextSummary struct {
	MessageCount    int `json:"message_count"`
	TokenCount      int `json:"token_count"`
	SystemTokens    int `json:"system_tokens"`
	AvailableTokens int `json:"available_tokens"`
	ContextWindow   int `json:"context_window"`
	ReservedTokens  int `json:"reserved_tokens"`
}

ContextSummary provides context statistics

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles conversation context and token management

func New

func New(config ContextConfig) *Manager

New creates a new context manager

func (*Manager) AddMessage

func (m *Manager) AddMessage(msg pkg.Message)

AddMessage adds a message to the context

func (*Manager) AddMessages

func (m *Manager) AddMessages(msgs []pkg.Message)

AddMessages adds multiple messages to the context

func (*Manager) AvailableTokens

func (m *Manager) AvailableTokens() int

AvailableTokens returns tokens available for new content

func (*Manager) Clear

func (m *Manager) Clear()

Clear removes all messages

func (*Manager) CompactContext

func (m *Manager) CompactContext() []pkg.Message

CompactContext creates a compressed version of the context

func (*Manager) FindMessageByRole

func (m *Manager) FindMessageByRole(role string) *pkg.Message

FindMessageByRole finds the last message with the specified role

func (*Manager) Fork

func (m *Manager) Fork() *Manager

Fork creates a copy of the context manager for branching conversations

func (*Manager) GetLastN

func (m *Manager) GetLastN(n int) []pkg.Message

GetLastN returns the last N messages

func (*Manager) GetMessages

func (m *Manager) GetMessages() []pkg.Message

GetMessages returns all messages in context

func (*Manager) GetMessagesForLLM

func (m *Manager) GetMessagesForLLM() []pkg.Message

GetMessagesForLLM returns messages formatted for LLM with system prompt

func (*Manager) GetSystemPrompt

func (m *Manager) GetSystemPrompt() string

GetSystemPrompt returns the current system prompt

func (*Manager) GetToolCalls

func (m *Manager) GetToolCalls() []pkg.ToolCall

GetToolCalls returns all tool calls from messages

func (*Manager) Merge

func (m *Manager) Merge(other *Manager)

Merge merges messages from another context manager

func (*Manager) MessageCount

func (m *Manager) MessageCount() int

MessageCount returns number of messages

func (*Manager) SetSystemPrompt

func (m *Manager) SetSystemPrompt(prompt string)

SetSystemPrompt updates the system prompt

func (*Manager) SetTokenCounter

func (m *Manager) SetTokenCounter(counter TokenCounter)

SetTokenCounter sets a custom token counter

func (*Manager) Summary

func (m *Manager) Summary() ContextSummary

Summary returns a context summary

func (*Manager) TokenCount

func (m *Manager) TokenCount() int

TokenCount returns current token count

type SimpleTokenCounter

type SimpleTokenCounter struct{}

SimpleTokenCounter provides a simple token estimation

func (*SimpleTokenCounter) Count

func (c *SimpleTokenCounter) Count(text string) int

Count estimates tokens using simple heuristics (4 chars ≈ 1 token)

func (*SimpleTokenCounter) CountMessages

func (c *SimpleTokenCounter) CountMessages(messages []pkg.Message) int

CountMessages counts tokens in a slice of messages

type TokenCounter

type TokenCounter interface {
	Count(text string) int
	CountMessages(messages []pkg.Message) int
}

TokenCounter interface for counting tokens

Jump to

Keyboard shortcuts

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