mesh-llm-config 0.75.0

Configuration parsing and validation for mesh-llm
Documentation
use super::shared::{
    equals_string_condition, not_in_condition, push_dependency_disable, push_non_empty_constraint,
    set_numeric, set_static_options, set_static_unavailable, set_text_format,
};
use super::*;

pub(super) fn apply_skippy_behavior(setting: &mut ConfigSettingSchema, prefix: &str, suffix: &str) {
    match suffix {
        "stage_model_path" => {
            set_text_format(setting, ConfigTextFormat::Path);
            push_non_empty_constraint(setting);
        }
        "stage_role" | "stage_topology" | "binary_stage_transport" => {
            push_non_empty_constraint(setting);
        }
        "activation_wire_dtype" | "prefill_chunking" => set_static_options(setting),
        "openai_frontend_mode" => set_static_unavailable(
            setting,
            "OpenAI frontend override wiring is intentionally rejected on the built-in schema surface.",
        ),
        "lifecycle_startup_timeout_ms"
        | "lifecycle_readiness_interval_ms"
        | "lifecycle_health_interval_ms" => {
            set_numeric(setting, Some(1.0), None, Some(1.0), Some("ms"));
        }
        "prefill_chunk_size" => {
            set_numeric(setting, Some(1.0), None, Some(1.0), Some("tokens"));
            push_chunk_dependency(setting, prefix, "fixed", "prefill_chunk_size");
        }
        "prefill_chunk_schedule" => {
            set_text_format(setting, ConfigTextFormat::CsvPositiveInts);
            push_non_empty_constraint(setting);
            push_chunk_dependency(setting, prefix, "schedule", "prefill_chunk_schedule");
        }
        _ => {}
    }
}

fn push_chunk_dependency(
    setting: &mut ConfigSettingSchema,
    prefix: &str,
    required_mode: &str,
    leaf: &str,
) {
    let path = format!("{prefix}.prefill_chunking");
    let allowed = vec![ConfigConditionValue::String(required_mode.to_string())];
    let current = format!("{prefix}.{leaf}");

    control_behavior_mut(setting)
        .enable_when
        .push(equals_string_condition(&path, required_mode));
    push_dependency_disable(
        setting,
        not_in_condition(&path, allowed),
        format!("{current} requires {path} = \"{required_mode}\""),
    );
}

fn control_behavior_mut(setting: &mut ConfigSettingSchema) -> &mut ConfigControlBehavior {
    setting
        .control_behavior
        .get_or_insert_with(ConfigControlBehavior::default)
}