IHUB_BASE ?= https://hub.coulomb.social
IHUB_OPERATOR_KEY_FILE ?=
OPS_HUB_RUNTIME_KEY_OUTPUT ?=
HUB_CORE_REPO ?= ../hub-core
HUB_CORE_PYTHON ?= $(HUB_CORE_REPO)/.venv/bin/python

.PHONY: help hub-extension-check hub-core-conformance interhub-gate interhub-bootstrap interhub-bootstrap-dry-run interhub-bootstrap-help test

help:
	@echo "Targets:"
	@echo "  hub-extension-check      Validate the owner package against hub-core 0.1.0 schemas/catalog"
	@echo "  hub-core-conformance     Exercise the owner package in a disposable hub-core runtime"
	@echo "  interhub-gate            Probe whether production Inter-Hub exposes the ops-hub bootstrap API surface"
	@echo "  interhub-bootstrap-help  Show bootstrap helper options"
	@echo "  interhub-bootstrap-dry-run  Plan bootstrap actions with IHUB_OPERATOR_KEY_FILE (no mutations)"
	@echo "  interhub-bootstrap       Run attended ops-hub Inter-Hub bootstrap with IHUB_OPERATOR_KEY_FILE"
	@echo "  test                     Run unit tests"

hub-extension-check:
	@test -x "$(HUB_CORE_PYTHON)" || \
		(echo "hub-core environment missing at $(HUB_CORE_PYTHON)" >&2; exit 2)
	PYTHONPATH=src "$(HUB_CORE_PYTHON)" scripts/hub-extension-check.py \
		--hub-core-repo "$(HUB_CORE_REPO)"

hub-core-conformance:
	@test -x "$(HUB_CORE_PYTHON)" || \
		(echo "hub-core environment missing at $(HUB_CORE_PYTHON)" >&2; exit 2)
	PYTHONPATH=src "$(HUB_CORE_PYTHON)" scripts/hub-core-conformance.py \
		--hub-core-repo "$(HUB_CORE_REPO)"

interhub-gate:
	IHUB_BASE="$(IHUB_BASE)" python3 scripts/interhub-gate-probe.py

interhub-bootstrap-help:
	python3 scripts/ops-hub-bootstrap-api.py --help

interhub-bootstrap-dry-run:
	@test -n "$(IHUB_OPERATOR_KEY_FILE)" || \
		(echo "IHUB_OPERATOR_KEY_FILE is required; materialize the operator key into a 0600 temp file first." >&2; exit 2)
	IHUB_BASE="$(IHUB_BASE)" \
	IHUB_OPERATOR_KEY_FILE="$(IHUB_OPERATOR_KEY_FILE)" \
	python3 scripts/ops-hub-bootstrap-api.py --dry-run

interhub-bootstrap:
	@test -n "$(IHUB_OPERATOR_KEY_FILE)" || \
		(echo "IHUB_OPERATOR_KEY_FILE is required; materialize the operator key into a 0600 temp file first." >&2; exit 2)
	IHUB_BASE="$(IHUB_BASE)" \
	IHUB_OPERATOR_KEY_FILE="$(IHUB_OPERATOR_KEY_FILE)" \
	OPS_HUB_RUNTIME_KEY_OUTPUT="$(OPS_HUB_RUNTIME_KEY_OUTPUT)" \
	python3 scripts/ops-hub-bootstrap-api.py

test:
	PYTHONPATH=src python3 -m unittest discover -s tests -v
