codetether-rlm 0.1.0

Recursive Language Model processing for CodeTether
Documentation
use super::trace::MAX_EVENTS;
use super::*;

fn prompt(tokens: usize) -> ContextEvent {
    ContextEvent::SystemPrompt {
        content: "test".to_string(),
        tokens,
    }
}

#[test]
fn new_trace_has_zero_tokens() {
    let trace = ContextTrace::new(1000);
    assert_eq!(trace.total_tokens(), 0);
    assert_eq!(trace.remaining_tokens(), 1000);
}

#[test]
fn log_event_adds_tokens() {
    let mut trace = ContextTrace::new(1000);
    trace.log_event(prompt(100));
    assert_eq!(trace.total_tokens(), 100);
    assert_eq!(trace.remaining_tokens(), 900);
}

#[test]
fn budget_exceeded_check() {
    let mut trace = ContextTrace::new(100);
    trace.log_event(prompt(150));
    assert!(trace.is_over_budget());
}
mod event_filter;
mod eviction;
mod summary_stats;
mod token_count;