116 lines
3.1 KiB
YAML
116 lines
3.1 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
PROJECT_NAME: '{{.PROJECT_NAME | default "myproject"}}'
|
|
|
|
tasks:
|
|
context:sync:
|
|
desc: Regenerate all harness-specific context files
|
|
cmds:
|
|
- bash scripts/context-sync.sh
|
|
sources:
|
|
- .context/PROJECT.md
|
|
- .skills/*/SKILL.md
|
|
|
|
context:sync:claude:
|
|
cmds: [bash scripts/context-sync.sh claude]
|
|
context:sync:agents:
|
|
cmds: [bash scripts/context-sync.sh agents]
|
|
context:sync:cursor:
|
|
cmds: [bash scripts/context-sync.sh cursor]
|
|
|
|
dev:
|
|
desc: Start development server
|
|
cmds:
|
|
- go run ./cmd/server
|
|
|
|
build:
|
|
desc: Build the binary
|
|
cmds:
|
|
- go build -o bin/{{.PROJECT_NAME}} ./cmd/server
|
|
|
|
check:
|
|
desc: Run all checks (lint + test + vet)
|
|
cmds:
|
|
- task: lint
|
|
- task: test
|
|
- task: vet
|
|
|
|
lint:
|
|
cmds: [golangci-lint run ./...]
|
|
test:
|
|
cmds: [go test -race -count=1 ./...]
|
|
vet:
|
|
cmds:
|
|
- go vet ./...
|
|
- govulncheck ./... || true
|
|
|
|
up:
|
|
desc: Start containers
|
|
cmds: [docker compose up -d]
|
|
down:
|
|
cmds: [docker compose down]
|
|
|
|
init:
|
|
desc: Initialize a new project from this template
|
|
cmds:
|
|
- bash scripts/init.sh
|
|
|
|
supervisor:dev:
|
|
desc: Run supervisor MCP server (development)
|
|
cmds:
|
|
- go run ./cmd/supervisor
|
|
|
|
supervisor:build:
|
|
desc: Build supervisor binary
|
|
cmds:
|
|
- go build -o bin/supervisor ./cmd/supervisor
|
|
|
|
supervisor:test:smoke:
|
|
desc: Smoke test supervisor via MCP (requires supervisor:dev running)
|
|
cmds:
|
|
- |
|
|
curl -s -X POST http://localhost:${SUPERVISOR_PORT:-3200}/mcp \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | jq .
|
|
|
|
start:
|
|
desc: Start the full hyperguild (ingestion + supervisor) in a tmux session
|
|
cmds:
|
|
- |
|
|
tmux new-session -d -s hyperguild -x 220 -y 50 2>/dev/null || true
|
|
tmux rename-window -t hyperguild:0 'ingestion'
|
|
tmux send-keys -t hyperguild:ingestion "cd {{.ROOT_DIR}} && INGEST_BRAIN_DIR={{.ROOT_DIR}}/brain INGEST_PORT=3300 go run ./ingestion/cmd/server/" Enter
|
|
tmux new-window -t hyperguild -n 'supervisor'
|
|
tmux send-keys -t hyperguild:supervisor "cd {{.ROOT_DIR}} && SUPERVISOR_CONFIG_DIR={{.ROOT_DIR}}/config/supervisor SUPERVISOR_MODELS_FILE={{.ROOT_DIR}}/config/models.yaml SUPERVISOR_SESSIONS_DIR={{.ROOT_DIR}}/brain/sessions INGEST_BASE_URL=http://localhost:3300 go run ./cmd/supervisor/" Enter
|
|
tmux new-window -t hyperguild -n 'shell'
|
|
tmux select-window -t hyperguild:shell
|
|
tmux attach -t hyperguild
|
|
|
|
stop:
|
|
desc: Stop the hyperguild tmux session
|
|
cmds:
|
|
- tmux kill-session -t hyperguild 2>/dev/null || true
|
|
- echo "hyperguild stopped"
|
|
|
|
ingestion:build:
|
|
desc: Build ingestion server binary
|
|
cmds:
|
|
- go build -o bin/ingestion-server ./cmd/server
|
|
dir: ingestion
|
|
|
|
ingestion:dev:
|
|
desc: Run ingestion server in development mode
|
|
env:
|
|
INGEST_BRAIN_DIR: "{{.ROOT_DIR}}/brain"
|
|
INGEST_PORT: "3300"
|
|
cmds:
|
|
- go run ./cmd/server
|
|
dir: ingestion
|
|
|
|
ingestion:test:
|
|
desc: Run ingestion tests
|
|
cmds:
|
|
- go test ./... -v
|
|
dir: ingestion
|