MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / should_compact

Function should_compact

crates/opencode-session/src/prompt.rs:2896–2912  ·  view source on GitHub ↗
(messages: &[SessionMessage], max_tokens: u64)

Source from the content-addressed store, hash-verified

2894}
2895
2896pub fn should_compact(messages: &[SessionMessage], max_tokens: u64) -> bool {
2897 let total_chars: usize = messages
2898 .iter()
2899 .map(|m| {
2900 m.parts
2901 .iter()
2902 .filter_map(|p| match &p.part_type {
2903 PartType::Text { text, .. } => Some(text.len()),
2904 _ => None,
2905 })
2906 .sum::<usize>()
2907 })
2908 .sum();
2909
2910 let estimated_tokens = total_chars / 4;
2911 estimated_tokens > max_tokens as usize
2912}
2913
2914pub fn trigger_compaction(session: &mut Session, messages: &[SessionMessage]) -> Option<String> {
2915 if !should_compact(messages, 100000) {

Callers 3

loop_innerMethod · 0.85
trigger_compactionFunction · 0.85

Calls

no outgoing calls