-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
118 lines (84 loc) · 5.3 KB
/
Copy pathMakefile
File metadata and controls
118 lines (84 loc) · 5.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# LlamaVault — Offline AI Agent System
# =====================================
# All commands read from llamavault.yaml — edit that file to configure.
.PHONY: dev dev-down build health model-download model-list model-switch scan deploy config
CONFIG = llamavault.yaml
# ── Config Generation ────────────────────────────────────────────────
config: $(CONFIG) ## Generate .env from llamavault.yaml
@python3 scripts/gen-env.sh
@echo ".env generated from $(CONFIG)"
.env: $(CONFIG)
@python3 scripts/gen-env.sh
# ── Local Development ─────────────────────────────────────────────────
dev: .env ## Start all services in dev mode
@echo "=== LlamaVault Dev Mode ==="
@. scripts/config.sh && test -d "$$LV_PATHS_MODELS_DIR" && ls "$$LV_PATHS_MODELS_DIR"/*.gguf >/dev/null 2>&1 || \
(echo "No models found. Download one first:" && echo " make model-download" && exit 1)
docker compose -f docker-compose.dev.yml up --build
dev-down: ## Stop dev services
docker compose -f docker-compose.dev.yml down
dev-logs: ## Tail dev logs
docker compose -f docker-compose.dev.yml logs -f
# ── Production ────────────────────────────────────────────────────────
up: .env ## Start production services
docker compose up -d --build
down: ## Stop production services
docker compose down
logs: ## Tail production logs
docker compose logs -f
# ── Build ─────────────────────────────────────────────────────────────
build: ## Build all Docker images
docker compose build
build-llama: ## Build only the llama-server image
docker compose build llama-server
build-gateway: ## Build only the SAFE2 gateway image
docker compose build safe2-gateway
# ── Health ────────────────────────────────────────────────────────────
health: ## Check health of all services
@bash scripts/health-check.sh
# ── Model Management ─────────────────────────────────────────────────
model-download: ## Download model from llamavault.yaml (or MODEL=name)
@. scripts/config.sh && bash models/download.sh "$${MODEL:-$$LV_MODEL_NAME}"
model-list: ## List available and downloaded models
@echo "=== Available Models ==="
@bash models/download.sh
@echo ""
@echo "=== Downloaded Models ==="
@. scripts/config.sh && ls -lh "$$LV_PATHS_MODELS_DIR"/*.gguf 2>/dev/null || echo " (none)"
@echo ""
@echo "=== Active Model (llamavault.yaml) ==="
@. scripts/config.sh && echo " $$LV_MODEL_NAME ($$LV_MODEL_FILE)"
model-switch: ## Switch model: make model-switch MODEL=name
@test -n "$(MODEL)" || (. scripts/config.sh && echo "Usage: make model-switch MODEL=<name>" && echo "Current: $$LV_MODEL_NAME" && exit 1)
@bash scripts/model-switch.sh $(MODEL)
# ── Security ──────────────────────────────────────────────────────────
scan: ## Run AI SAFE² security scanner
@bash scripts/safe2-scan.sh
kill-switch-on: ## Activate the kill switch (halt all inference)
@. scripts/config.sh && curl -s -X POST "http://localhost:$$LV_AGENT_PORT/admin/kill-switch" \
-H "Content-Type: application/json" -d '{"active": true}' 2>/dev/null || \
curl -s -X POST http://localhost:8000/admin/kill-switch \
-H "Content-Type: application/json" -d '{"active": true}' | python3 -m json.tool
kill-switch-off: ## Deactivate the kill switch
@curl -s -X POST http://localhost:8000/admin/kill-switch \
-H "Content-Type: application/json" -d '{"active": false}' | python3 -m json.tool
# ── Deployment (AWS Lightsail) ────────────────────────────────────────
deploy: ## Full deploy to AWS Lightsail
@bash scripts/deploy.sh
infra-deploy: ## Deploy only CDK infrastructure
@bash scripts/deploy.sh --skip-scan --skip-image
show-config: ## Show current config from llamavault.yaml
@. scripts/config.sh && echo "=== LlamaVault Config ===" && \
echo "Model: $$LV_MODEL_NAME ($$LV_MODEL_FILE)" && \
echo "Context: $$LV_MODEL_CONTEXT_SIZE tokens" && \
echo "Threads: $$LV_MODEL_THREADS" && \
echo "Port: $$LV_AGENT_PORT" && \
echo "Models dir: $$LV_PATHS_MODELS_DIR" && \
echo "Data dir: $$LV_PATHS_DATA_DIR" && \
echo "Security: $$LV_SECURITY_LEVEL" && \
echo "MCP: $$LV_MCP_SERVERS_JSON" && \
echo "Deploy: $$LV_DEPLOY_BUNDLE in $$LV_DEPLOY_REGION"
# ── Help ──────────────────────────────────────────────────────────────
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-18s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := help