# Makefile pour dev container AI + MCP bootstrap # Variables PROJECT_DIR := $(shell pwd) CONTAINER_NAME := ai-dev-container WORKSPACE := /workspace MCP_LOG := $(WORKSPACE)/.ai_index/mcp.log # --- Dev Container Management --- # Build the container build: docker build -t $(CONTAINER_NAME) . # Run interactive container with mounted project run: docker run -v $(PROJECT_DIR):$(WORKSPACE) -it --rm $(CONTAINER_NAME) # Run container with MCP server in background run-mcp: docker run -v $(PROJECT_DIR):$(WORKSPACE) -it --rm $(CONTAINER_NAME) bash # --- MCP / Index Management --- # Initialize .ai_index init-index: @echo "[MAKE] Initializing .ai_index..." mkdir -p $(PROJECT_DIR)/.ai_index/ast mkdir -p $(PROJECT_DIR)/.ai_index/embeddings @if [ ! -f $(PROJECT_DIR)/.ai_index/graph.db ]; then \ sqlite3 $(PROJECT_DIR)/.ai_index/graph.db "VACUUM;"; \ fi # Run MCP tool (list imports) mcp-list: @echo "[MAKE] Running MCP list_imports.py..." python3 $(PROJECT_DIR)/opt/dev-tools/list_imports.py --project $(WORKSPACE) # Update embeddings (example) embeddings: @echo "[MAKE] Generating embeddings..." python3 $(PROJECT_DIR)/opt/dev-tools/generate_embeddings.py --project $(WORKSPACE) # Update graph (example) update-graph: @echo "[MAKE] Updating dependency graph..." python3 $(PROJECT_DIR)/opt/dev-tools/update_graph.py --project $(WORKSPACE) # Clean logs and temporary files clean: @echo "[MAKE] Cleaning .ai_index..." rm -f $(PROJECT_DIR)/.ai_index/*.log rm -rf $(PROJECT_DIR)/.ai_index/ast/* rm -rf $(PROJECT_DIR)/.ai_index/embeddings/* # Restart MCP server inside container restart-mcp: docker exec -it $(CONTAINER_NAME) bash -c "\ pkill -f mcp-server; \ /opt/bin/mcp-server --project $(WORKSPACE) > $(MCP_LOG) 2>&1 & \ " # --- Bootstrap for new project --- # Build container, init index bootstrap: build init-index @echo "[MAKE] Bootstrap complete. Run 'make run' to start the container."