67 lines
1.9 KiB
Makefile
67 lines
1.9 KiB
Makefile
|
|
# 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."
|