gitcortex 0.2.2

Git-aware code knowledge graph — incremental AST indexing on every commit, MCP server for AI assistants
use std::{fs, path::Path};

use anyhow::{Context, Result};
use serde_json::json;

use crate::cmd::init::helpers::home_dir;

pub fn install(_repo_root: &Path) -> Result<()> {
    write_antigravity_mcp()?;
    Ok(())
}

fn write_antigravity_mcp() -> Result<()> {
    let dir = home_dir().join(".antigravity");
    fs::create_dir_all(&dir)?;
    let path = dir.join("mcp.json");

    let mut root = if path.exists() {
        let text = fs::read_to_string(&path).context("read ~/.antigravity/mcp.json")?;
        serde_json::from_str::<serde_json::Value>(&text).unwrap_or(json!({}))
    } else {
        json!({})
    };

    if root.pointer("/mcpServers/gitcortex").is_some() {
        return Ok(());
    }

    root["mcpServers"]["gitcortex"] = json!({ "command": "gcx", "args": ["serve"] });
    let text = serde_json::to_string_pretty(&root).context("serialize ~/.antigravity/mcp.json")?;
    fs::write(path, text).context("write ~/.antigravity/mcp.json")?;
    Ok(())
}