codebase-graph 1.2.2

Native codebaseGraph CLI and MCP server for local code knowledge graphs.
#[path = "catalog_support.rs"]
pub(crate) mod support;

pub(crate) use self::support::schema_statements_from_copy_statements;
use self::support::{
    filter_architecture_group, metadata_payload, ARCHITECTURE_QUERIES_JSON, GRAPH_SCHEMA_JSON,
    QUERY_HELPERS_JSON,
};

pub fn load_catalog(kind: &str) -> Result<serde_json::Value, String> {
    let source = match kind {
        "schema" => GRAPH_SCHEMA_JSON,
        "query-helpers" => QUERY_HELPERS_JSON,
        "architecture-queries" => ARCHITECTURE_QUERIES_JSON,
        _ => return Err(format!("unknown catalog kind: {kind}")),
    };
    metadata_payload(source)
        .map_err(|error| format!("failed to parse embedded catalog {kind}: {error}"))
}

pub fn filter_catalog(
    kind: &str,
    payload: &mut serde_json::Value,
    group: Option<&str>,
) -> Result<(), String> {
    match (kind, group) {
        ("architecture-queries", Some(group)) => filter_architecture_group(payload, group),
        (_, Some(_)) => Err(format!("catalog {kind} does not support group filtering")),
        (_, None) => Ok(()),
    }
}