# Ori — ACP web client. `make help` lists the targets.

.PHONY: help deps build build-ui build-go test test-go test-ui run run-mock dev template desktop desktop-test clean

help: ## Show this help
	@grep -E '^[a-zA-Z_-]+:.*## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*## "}; {printf "  %-12s %s\n", $$1, $$2}'

deps: ## Install frontend dependencies
	cd ui && npm install

build-ui: ## Build the SPA into ui/dist
	cd ui && npm run build

build-go: ## Build the server and mock-agent binaries into bin/
	go build -o bin/ori ./cmd/ori
	go build -o bin/ori-mock-agent ./cmd/ori-mock-agent

build: build-ui build-go ## Build everything (SPA first, then the Go binary that embeds it)

test-go: ## Run the Go test suite
	go test ./...

test-ui: ## Run the frontend test suite
	cd ui && npm run test

test: test-go test-ui ## Run all tests

run: build ## Build then start the server on :8888 (Claude Code via ACP adapter)
	./bin/ori

run-mock: build ## Build then start the server with the demo mock agent (no Claude needed)
	./bin/ori --agent-cmd "bin/ori-mock-agent"

dev: ## Start the Vite dev server (expects `go run ./cmd/ori` in another terminal)
	cd ui && npm run dev

template: ## Build the k33g/ori sandbox template image (see kits/ori/README.md)
	docker build -f template/Dockerfile -t k33g/ori .

desktop: ## Build the Wails desktop shell into ori-desktop/build/bin (needs the wails CLI, see ori-desktop/README.md)
	cd ori-desktop && wails build

desktop-test: ## Run the desktop shell's pure-Go tests (no GUI toolchain needed)
	cd ori-desktop && go test ./internal/...

clean: ## Remove build artifacts
	rm -rf bin ui/dist/*
	@touch ui/dist/.gitkeep
