ainl-memory 0.1.13

AINL graph-memory substrate - agent memory as execution graph
Documentation
//! Canonical mission subgraph edge labels.

/// Mission --HAS_FEATURE--> Feature
pub const HAS_FEATURE: &str = "HAS_FEATURE";
/// Feature --PRECONDITION--> Feature (DAG edge)
pub const PRECONDITION: &str = "PRECONDITION";
/// Feature --FULFILLS--> Assertion
pub const FULFILLS: &str = "FULFILLS";
/// Mission --HAS_ASSERTION--> Assertion
pub const HAS_ASSERTION: &str = "HAS_ASSERTION";
/// Mission --HAS_MILESTONE--> milestone grouping (reserved)
pub const HAS_MILESTONE: &str = "HAS_MILESTONE";
/// Feature --HANDED_OFF_BY--> Handoff
pub const HANDED_OFF_BY: &str = "HANDED_OFF_BY";
/// Episode --PROGRESS_FOR--> Feature (stall detection)
pub const PROGRESS_FOR: &str = "PROGRESS_FOR";
/// Feature --FIXES--> Assertion (auto-remediation)
pub const FIXES: &str = "FIXES";
/// Mission --VALIDATED_BY--> validation run summary
pub const VALIDATED_BY: &str = "VALIDATED_BY";

/// All mission-related edge labels accepted by graph writers.
pub const MISSION_EDGE_LABELS: &[&str] = &[
    HAS_FEATURE,
    PRECONDITION,
    FULFILLS,
    HAS_ASSERTION,
    HAS_MILESTONE,
    HANDED_OFF_BY,
    PROGRESS_FOR,
    FIXES,
    VALIDATED_BY,
];

/// Returns true when `label` is a known mission edge label.
pub fn is_mission_edge_label(label: &str) -> bool {
    MISSION_EDGE_LABELS
        .iter()
        .any(|l| label.eq_ignore_ascii_case(l))
}