# Utilities for running the OpenCode agent in a Docker Sandbox.
# Requires the `sbx` CLI: https://docs.docker.com/ai/sandboxes/install/
#
# `sbx` doesn't have a nested sandbox-in-sandbox mode, so these targets are
# meant to be run on your host machine from this directory (where sbxenv.yaml
# lives), not from inside another sandbox.

NAME             ?= opencode-v2
AGENT            ?= opencode
IMAGE_TAG        ?= opencode-v2:local
OPENCODE_VERSION ?= 2.0.26

.PHONY: help cli-check image build install

help:
	@echo "NAME=$(NAME) AGENT=$(AGENT) OPENCODE_VERSION=$(OPENCODE_VERSION)"
	@echo ""
	@echo "  make image                        build the $(IMAGE_TAG) image pinning the opencode CLI version"
	@echo "  make build   [OPENCODE_VERSION=...] build the image and register it with sbx as a local template"
	@echo "  make install                      install the opencode-sandbox shim to ~/.local/bin"

cli-check:
	@command -v sbx >/dev/null 2>&1 || { \
		echo "sbx CLI not found. Install it: https://docs.docker.com/ai/sandboxes/install/"; \
		exit 1; \
	}
	@sbx version

image:
	docker build --build-arg OPENCODE_VERSION=$(OPENCODE_VERSION) -t $(IMAGE_TAG) .

build: cli-check image
	docker image save $(IMAGE_TAG) -o /tmp/opencode-v2.tar
	sbx template load /tmp/opencode-v2.tar

install:
	sh ./install.sh

