harn-vm 0.10.119

Async bytecode virtual machine for the Harn programming language
Documentation
use std::collections::HashSet;
use std::sync::{Mutex, OnceLock};

pub(super) fn warn_unmatched_route_once(provider: &str, model: &str) {
    static WARNED: OnceLock<Mutex<HashSet<String>>> = OnceLock::new();
    let first = WARNED
        .get_or_init(|| Mutex::new(HashSet::new()))
        .lock()
        .expect("unmatched capability warning cache poisoned")
        .insert(format!("{provider}/{model}"));
    if first {
        tracing::warn!(
            target: "harn::llm::capabilities",
            provider,
            model,
            "no capability rule or provider default matched; using conservative defaults"
        );
    }
}