pub mod cache;
pub mod hash;
pub mod intensity;
pub mod redundancy;
pub mod summarize;
pub use cache::SessionContext;
pub use intensity::Intensity;
use crate::config::Config;
use std::path::Path;
pub fn pre_pass(
cfg: &Config,
sessions_dir: &Path,
used_tokens: u64,
) -> (SessionContext, Intensity, Config) {
let mut ctx = if cfg.context_cache_enabled {
SessionContext::load(sessions_dir)
} else {
SessionContext::default()
};
ctx.init_tunables_from_config(cfg);
let level = intensity::derive(used_tokens, cfg);
let scaled = intensity::scale(cfg, level);
(ctx, level, scaled)
}