Skip to main content

bamboo_compression/
lib.rs

1//! Token budget management for LLM conversations.
2//!
3//! This module provides token budget management to prevent context window overflow
4//! while maintaining conversation continuity. It implements a hybrid approach
5//! combining rolling summary with recent message windowing.
6//!
7//! # Key Components
8//!
9//! - [`types`]: Core types like `TokenBudget`, `BudgetStrategy`, `PreparedContext`
10//! - [`counter`]: Token counting via BPE tokenizer (tiktoken) or heuristic estimation
11//! - [`segmenter`]: Message segmentation preserving tool-call atomicity
12//! - [`limits`]: Model context window limits registry
13//! - [`preparation`]: Context preparation with budget enforcement
14//! - [`summarizer`]: Conversation summarization for context preservation
15
16pub mod compression_tooling;
17pub mod counter;
18pub mod limits;
19pub mod preparation;
20pub mod segmenter;
21pub mod summarizer;
22pub mod types;
23
24pub use compression_tooling::{
25    active_messages_for_budget, apply_compression_plan, build_compression_plan_with_summary,
26    build_forced_compression_plan_with_summary, build_summary_prompt, compression_summary_message,
27    context_window_usage_percent, estimate_context_compression_exposure,
28    normalized_trigger_percent, summary_source_messages, CompressionPlan, CompressionPlanError,
29    ContextCompressionExposure,
30};
31pub use counter::{HeuristicTokenCounter, TiktokenTokenCounter, TokenCounter};
32pub use limits::{create_budget_for_model, ModelLimitsRegistry};
33pub use preparation::{estimate_prompt_cache_savings, prepare_hybrid_context};
34pub use segmenter::MessageSegmenter;
35pub use summarizer::{
36    HeuristicSummarizer, LlmSummarizer, Summarizer, SummaryManager, SummaryMode, SummaryTrigger,
37};
38pub use types::{BudgetError, BudgetStrategy, PreparedContext, TokenBudget, TokenUsageBreakdown};