/** * Context Manager - Manage agent context windows * * Handles context budgeting, windowing, and optimization. */ /** * Context item */ export interface ContextItem { id: string; content: string; role: 'system' | 'user' | 'assistant' | 'tool'; priority: number; tokens: number; timestamp: number; metadata?: Record; } /** * Context budget */ export interface ContextBudget { maxTokens: number; reservedTokens: number; usedTokens: number; availableTokens: number; } /** * Context Manager configuration */ export interface ContextManagerConfig { /** Maximum context tokens */ maxTokens?: number; /** Reserved tokens for response */ reservedTokens?: number; /** Token estimation ratio (chars per token) */ tokenRatio?: number; /** Priority threshold for eviction */ evictionThreshold?: number; } /** * ContextManager - Manage context windows for agents */ export declare class ContextManager { readonly id: string; private items; private maxTokens; private reservedTokens; private tokenRatio; private evictionThreshold; constructor(config?: ContextManagerConfig); /** * Add item to context */ add(content: string, role: ContextItem['role'], options?: { priority?: number; metadata?: any; }): ContextItem; /** * Add system message */ addSystem(content: string, priority?: number): ContextItem; /** * Add user message */ addUser(content: string, priority?: number): ContextItem; /** * Add assistant message */ addAssistant(content: string, priority?: number): ContextItem; /** * Add tool result */ addTool(content: string, priority?: number): ContextItem; /** * Get all items */ getAll(): ContextItem[]; /** * Get items by role */ getByRole(role: ContextItem['role']): ContextItem[]; /** * Get budget info */ getBudget(): ContextBudget; /** * Build context string */ build(): string; /** * Build as messages array */ buildMessages(): Array<{ role: string; content: string; }>; /** * Clear context */ clear(): void; /** * Remove item by ID */ remove(id: string): boolean; /** * Compress context by summarizing old items */ compress(summarizer?: (items: ContextItem[]) => Promise): void; /** * Estimate tokens for text */ estimateTokens(text: string): number; /** * Enforce token limit */ private enforceLimit; /** * Get stats */ getStats(): { itemCount: number; totalTokens: number; byRole: Record; oldestTimestamp: number; newestTimestamp: number; }; } /** * Create context manager */ export declare function createContextManager(config?: ContextManagerConfig): ContextManager; export default ContextManager;