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_candidate_plan,
27    build_forced_compression_candidate_plan_with_fixed_tokens,
28    build_forced_compression_plan_with_summary, build_summary_prompt, compression_summary_message,
29    context_window_usage_percent, estimate_context_compression_exposure,
30    finalize_compression_candidate_plan, normalized_summary_target_ratio,
31    normalized_trigger_percent, summary_source_messages, CompressionCandidatePlan, CompressionPlan,
32    CompressionPlanError, ContextCompressionExposure, DEFAULT_SUMMARY_TARGET_RATIO,
33};
34pub use counter::{HeuristicTokenCounter, TiktokenTokenCounter, TokenCounter};
35pub use limits::{create_budget_for_model, ModelLimitsRegistry};
36pub use preparation::{estimate_prompt_cache_savings, prepare_hybrid_context};
37pub use segmenter::MessageSegmenter;
38pub use summarizer::{HeuristicSummarizer, Summarizer, SummaryManager, SummaryTrigger};
39pub use types::{BudgetError, BudgetStrategy, PreparedContext, TokenBudget, TokenUsageBreakdown};