harn-vm 0.10.41

Async bytecode virtual machine for the Harn programming language
Documentation
use super::*;

#[test]
fn automatic_tier_routes_have_an_explicit_viable_tool_protocol() {
    let audit = crate::llm::capabilities::audit_builtin_catalogued_chat_model_tool_capabilities();
    for alias in ["frontier", "mid", "small"] {
        let (model, provider) = resolve_tier_model(alias, None)
            .unwrap_or_else(|| panic!("tier alias `{alias}` must resolve"));
        let entry = model_catalog_entry(&model).unwrap_or_else(|| {
            panic!("tier alias `{alias}` -> `{provider}/{model}` must be catalogued")
        });
        assert_eq!(
            entry.provider, provider,
            "tier alias `{alias}` must resolve to its catalogued provider"
        );
        assert!(
            !entry.deprecated && entry.availability == ModelAvailability::Serverless,
            "tier alias `{alias}` must be an active serverless route"
        );
        assert!(
            entry.pricing.is_some(),
            "tier alias `{alias}` must remain in the capability audit's catalog scope"
        );
        assert!(
            entry
                .capabilities
                .iter()
                .any(|capability| capability == "tools"),
            "tier alias `{alias}` must explicitly claim tool support"
        );
        assert!(
            !audit
                .gaps
                .iter()
                .any(|gap| gap.provider == provider && gap.model == model),
            "tier alias `{alias}` must have explicit native_tools and preferred_tool_format facts"
        );

        let caps = crate::llm::capabilities::lookup(&provider, &model);
        assert!(
            caps.native_tools || caps.text_tool_wire_format_supported,
            "tier alias `{alias}` must expose at least one declared tool channel"
        );
        let preferred = caps
            .preferred_tool_format
            .as_deref()
            .unwrap_or_else(|| panic!("tier alias `{alias}` must declare a preferred tool format"));
        assert!(
            crate::llm::capabilities::no_viable_tool_channel(&provider, &model).is_none(),
            "tier alias `{alias}` must not auto-route onto a tool-dead route"
        );
        assert!(
            crate::llm::capabilities::validate_tool_format(&provider, &model, preferred)
                .correction
                .is_none(),
            "tier alias `{alias}` preferred tool format `{preferred}` must be viable"
        );
    }
}