Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (47 loc) · 2.73 KB
/
Copy pathMakefile
File metadata and controls
63 lines (47 loc) · 2.73 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
# prometheus — one command per pillar.
#
# Make is not a framework — it's a 45-year-old command shortcut tool that
# ships with every Mac/Linux. Each target below is just the shell command
# you'd otherwise type. `make run` = "run the python below", nothing more.
#
# PY picks the project venv automatically so you never need to remember
# `source .venv/bin/activate` — both work, this is just fewer steps.
PY := $(shell [ -x .venv/bin/python ] && echo .venv/bin/python || echo python)
# Maintainers work on the repo's own .prometheus, never on the ~/.prometheus a person's
# real assistant uses (spec 002). An explicit PROMETHEUS_HOME still wins.
export PROMETHEUS_HOME ?= $(CURDIR)/.prometheus
.PHONY: run voice telegram discord brief dashboard trace eval eval-judge gate lint
.PHONY: run voice telegram whatsapp brief dashboard trace eval eval-judge gate lint
run: ## chat with Prometheus in the terminal
$(PY) -m prometheus
voice: ## talk to it — push-to-talk, or always-on with PROMETHEUS_WAKE_WORD
$(PY) -m prometheus voice
telegram: ## phone → laptop (needs TELEGRAM_BOT_TOKEN in .env)
$(PY) -m prometheus telegram
discord: ## Discord → laptop (needs DISCORD_BOT_TOKEN in .env)
$(PY) -m prometheus discord
whatsapp: ## WhatsApp → laptop (needs WHATSAPP_TOKEN in .env, public URL)
$(PY) -m prometheus whatsapp
brief: ## morning briefing from calendar + mail + memory (as a LOOP)
$(PY) -m prometheus brief
gather: ## same job as a GRAPH: 4 sources in parallel, then one digest
$(PY) -m prometheus gather
# The server holds dashboard.py in memory: static JS/CSS reload on refresh, but
# Python routes do NOT. After pulling a change that touches dashboard.py (or any
# imported module), stop this and re-run it, or the UI shows stale backend data.
dashboard: ## everything on one page — http://localhost:7777 (restart after a backend pull)
$(PY) -m prometheus.ops.dashboard
trace: ## deep trace waterfalls (Phoenix) at http://localhost:6006
$(PY) -m phoenix.server.main serve
eval: ## deterministic evals (0/1, no judge involved)
$(PY) -m pytest -q evals/deterministic
eval-judge: ## LLM-as-judge evals (scored %, needs an API key)
$(PY) -m pytest -q evals/judge
gate: ## the release gate: deterministic must pass, judge must clear threshold
$(PY) -m prometheus.ops.release_gate
shootout: ## same tasks, different brains: make shootout RUNS="kimi:kimi-k3 anthropic:claude-opus-4-8"
$(PY) scripts/shootout.py $(RUNS)
shootout-coding: ## coding round via pi, scored by tests: make shootout-coding RUNS="kimi:kimi-k3 anthropic:claude-opus-4-8"
$(PY) scripts/shootout.py $(RUNS) --coding
lint:
$(PY) -m ruff check prometheus evals scripts hosted