PY := .venv/bin/python
REMAIND := .venv/bin/remaind
SETUP_ARGS ?=
PROOF_2M_ARGS ?=
MODEL_TEST_ARGS ?=
LLAMA_SERVER_ARGS ?=

.PHONY: bootstrap setup install doctor status validate memory-bootstrap tune compact resume startup ask chat log profiles proof proof-model proof-2m model-test llama-server adversarial bench test verify prompt

bootstrap:
	./bootstrap.sh $(SETUP_ARGS)

setup:
	./install.sh $(SETUP_ARGS)

install: setup

doctor:
	$(PY) scripts/sovereign.py doctor

status:
	$(PY) scripts/sovereign.py status

validate:
	$(PY) scripts/sovereign.py validate

memory-bootstrap:
	$(PY) scripts/sovereign.py bootstrap

tune:
	$(PY) scripts/sovereign.py tune-thresholds

compact:
	$(PY) scripts/sovereign.py compact

resume:
	$(PY) scripts/sovereign.py resume

startup:
	$(PY) scripts/sovereign.py startup

ask:
	$(PY) scripts/sovereign.py ask "$(q)"

chat:
	$(PY) scripts/sovereign.py chat

log:
	$(PY) scripts/sovereign.py log "$(type)" "$(actor)" "$(summary)" --content "$(content)" --importance "$(importance)"

profiles:
	$(PY) scripts/sovereign.py profiles

proof:
	$(PY) scripts/continuity_proof.py run

proof-model:
	$(PY) scripts/continuity_proof.py run --ask-model

proof-2m:
	$(PY) scripts/sovereign.py proof-2m $(PROOF_2M_ARGS)

model-test:
	$(PY) scripts/sovereign.py model-test $(MODEL_TEST_ARGS)

llama-server:
	$(PY) scripts/sovereign.py llama-server $(LLAMA_SERVER_ARGS)

adversarial:
	$(PY) scripts/adversarial_proof.py

bench:
	$(PY) scripts/sovereign.py bench --force

test:
	$(PY) -m unittest discover -s tests -v

verify: test validate doctor resume startup adversarial

prompt:
	@if [ -f MASTER_INITIAL_PROMPT.local.md ]; then \
		cat MASTER_INITIAL_PROMPT.local.md; \
	else \
		cat MASTER_INITIAL_PROMPT.md; \
	fi
