Skip to main content

Module context

Module context 

Source
Expand description

Context Management Module

This module provides comprehensive context management functionality aligned with

  • Token estimation for different content types
  • Dynamic context window management
  • Intelligent message summarization
  • Message compression
  • Prompt caching support
  • Message priority sorting
  • File mention resolution
  • AGENTS.md parsing

§Architecture

The module is organized into the following components:

  • types: Core type definitions (TokenUsage, ContextConfig, ConversationTurn, etc.)
  • token_estimator: Token estimation for different content types
  • window_manager: Dynamic context window management
  • summarizer: Intelligent message summarization
  • compressor: Message compression
  • cache_controller: Prompt caching support
  • priority_sorter: Message priority sorting
  • file_mention: File mention resolution
  • agents_md_parser: AGENTS.md parsing
  • manager: Enhanced context manager

§Quick Start

use aster::context::{EnhancedContextManager, ContextConfig, TokenEstimator};

// Create a context manager with default configuration
let mut manager = EnhancedContextManager::new(ContextConfig::default());
manager.set_system_prompt("You are a helpful assistant.");

// Add conversation turns
manager.add_turn(user_message, assistant_message, Some(usage));

// Get messages for API call
let messages = manager.get_messages();

// Check context usage
let usage = manager.get_context_usage();
println!("Context usage: {:.1}%", usage.percentage);

§Token Estimation

use aster::context::TokenEstimator;

let tokens = TokenEstimator::estimate_tokens("Hello, world!");
let message_tokens = TokenEstimator::estimate_message_tokens(&message);

§Message Compression

use aster::context::{MessageCompressor, CompressionConfig};

let compressed = MessageCompressor::compress_code_block(&code, 50);
let compressed_msg = MessageCompressor::compress_message(&message, &config);

Re-exports§

pub use token_estimator::TokenEstimator;
pub use window_manager::ContextWindowManager;
pub use window_manager::MODEL_CONTEXT_WINDOWS;
pub use compressor::MessageCompressor;
pub use compressor::DEFAULT_CODE_BLOCK_MAX_LINES;
pub use compressor::DEFAULT_FILE_CONTENT_MAX_CHARS;
pub use compressor::DEFAULT_TOOL_OUTPUT_MAX_CHARS;
pub use pruner::ProgressivePruner;
pub use summarizer::Summarizer;
pub use summarizer::SummarizerClient;
pub use summarizer::SummarizerResponse;
pub use summarizer::DEFAULT_SUMMARY_BUDGET;
pub use summarizer::MAX_SUMMARY_LENGTH;
pub use summarizer::SUMMARY_SYSTEM_PROMPT;
pub use cache_controller::CacheController;
pub use cache_controller::CacheEligibility;
pub use priority_sorter::PrioritySorter;
pub use file_mention::FileMentionResolver;
pub use file_mention::COMMON_EXTENSIONS;
pub use agents_md_parser::AgentsMdParser;
pub use manager::EnhancedContextManager;
pub use types::AgentsMdConfig;
pub use types::CacheConfig;
pub use types::CacheControl;
pub use types::CacheSavings;
pub use types::CacheStats;
pub use types::CacheType;
pub use types::CodeBlock;
pub use types::CompressionConfig;
pub use types::CompressionDetails;
pub use types::CompressionResult;
pub use types::ContextConfig;
pub use types::ContextError;
pub use types::ContextExport;
pub use types::ContextStats;
pub use types::ContextUsage;
pub use types::ContextWindowStats;
pub use types::ConversationTurn;
pub use types::FileMentionResult;
pub use types::MessagePriority;
pub use types::PrioritizedMessage;
pub use types::PruningConfig;
pub use types::PruningLevel;
pub use types::ResolvedFile;
pub use types::TokenUsage;
pub use types::CHARS_PER_TOKEN_ASIAN;
pub use types::CHARS_PER_TOKEN_CODE;
pub use types::CHARS_PER_TOKEN_DEFAULT;
pub use types::CODE_BLOCK_MAX_LINES;
pub use types::FILE_CONTENT_MAX_CHARS;
pub use types::TOOL_OUTPUT_MAX_CHARS;

Modules§

agents_md_parser
AGENTS.md Parser
cache_controller
Prompt Caching Controller Module
compressor
Message Compressor Module
file_mention
File Mention Resolver
manager
Enhanced Context Manager Module
priority_sorter
Message Priority Sorter Module
pruner
Progressive Pruner Module
summarizer
Summarizer Module
token_estimator
Token Estimator Module
types
Core type definitions for the context management module.
window_manager
Context Window Manager Module

Type Aliases§

ContextResult
Result type for context operations