#!/usr/bin/env bash set -euo pipefail : "${DCP_INSTALL:=1}" : "${DCP_GLOBAL:=1}" : "${OPENCODE_CONFIG_DIR:=$HOME/.config/opencode}" : "${OPENCODE_BASELINE_DIR:=/opt/opencode}" log() { printf '[plugins] %s\n' "$*" } ensure_opencode() { if ! command -v opencode >/dev/null 2>&1; then log 'opencode is required before installing plugins' exit 1 fi } ensure_config_dir() { mkdir -p "$OPENCODE_CONFIG_DIR" } install_dcp() { [[ "${DCP_INSTALL}" == "1" ]] || return 0 : "${DCP_PACKAGE:=$(node -p 'require(process.argv[1]).config.dcpPackage' "${OPENCODE_BASELINE_DIR}/package.json")}" ensure_config_dir log 'installing Dynamic Context Pruning plugin' if [[ "${DCP_GLOBAL}" == "1" ]]; then opencode plugin "${DCP_PACKAGE}" --global else opencode plugin "${DCP_PACKAGE}" fi python3 /app/scripts/update_opencode_config.py plugin "${DCP_PACKAGE}" if [[ -n "${DCP_CONFIG_B64:-}" ]]; then log 'writing DCP config from DCP_CONFIG_B64' printf '%s' "$DCP_CONFIG_B64" | base64 -d > "$OPENCODE_CONFIG_DIR/dcp.jsonc" fi } ensure_opencode install_dcp