codebase-graph 1.3.0

Native codebaseGraph CLI and MCP server for local code knowledge graphs.
pub(super) fn serialize_error_block(payload: &serde_json::Value) -> String {
    let error = payload.get("error").unwrap_or(payload);
    format!(
        "error tool={} type={} message={}\n",
        block_value(value_str(error, "tool")),
        block_value(value_str(error, "type")),
        block_value(value_str(error, "message"))
    )
}

fn value_str<'a>(payload: &'a serde_json::Value, key: &str) -> &'a str {
    payload
        .get(key)
        .and_then(serde_json::Value::as_str)
        .unwrap_or("")
}

fn block_value(value: &str) -> String {
    if value.is_empty() {
        "\"\"".to_string()
    } else if value.chars().all(|character| {
        character.is_ascii_alphanumeric() || matches!(character, '_' | '-' | '.' | '/' | ':')
    }) {
        value.to_string()
    } else {
        serde_json::to_string(value).unwrap_or_else(|_| "\"\"".to_string())
    }
}