#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" TMP="$(mktemp -d /tmp/ompcb.XXXXXX 2>/dev/null || mktemp -d)" DAEMON_STARTED=0 cleanup() { if [[ "$DAEMON_STARTED" == 1 ]]; then HOME="$TMP/home" OMP_CODEX_BACKEND=mock node "$TMP/package/bin/codex.mjs" remote-control stop >/dev/null 2>&1 || true fi rm -rf "$TMP" } trap cleanup EXIT node "$ROOT/scripts/check.mjs" node --test --test-reporter=spec "$ROOT"/test/*.test.mjs mkdir -p "$TMP/package" "$TMP/home" cp -R "$ROOT"/. "$TMP/package/" find "$TMP/package" -type d -name node_modules -prune -exec rm -rf {} + 2>/dev/null || true node "$TMP/package/scripts/check.mjs" HOME="$TMP/home" node --test --test-reporter=spec "$TMP/package"/test/*.test.mjs node "$TMP/package/bin/codex.mjs" --version | grep -Eq '^codex-cli [^[:space:]]+$' HOME="$TMP/home" OMP_CODEX_BACKEND=mock node "$TMP/package/bin/codex.mjs" remote-control start --backend mock >/dev/null DAEMON_STARTED=1 HOME="$TMP/home" OMP_CODEX_BACKEND=mock node "$TMP/package/bin/codex.mjs" remote-control status >/dev/null HOME="$TMP/home" OMP_CODEX_BACKEND=mock node "$TMP/package/bin/codex.mjs" remote-control stop >/dev/null DAEMON_STARTED=0 printf '{\n "passed": true,\n "node": "%s",\n "checked": [\n "syntax",\n "unit and integration tests",\n "clean-copy tests",\n "version output",\n "Unix-socket daemon start/status/stop"\n ]\n}\n' "$(node --version)"