#!/usr/bin/env bash
set -Eeuo pipefail

PROJECT_ROOT="${PROJECT_ROOT:-/home/happyuser/projects/DEX}"
SESSION_NAME="${SESSION_NAME:-dex_control_room}"
STATUS_INTERVAL_SECONDS="${STATUS_INTERVAL_SECONDS:-60}"
BOOTSTRAP_TIMEBOX_SECONDS="${BOOTSTRAP_TIMEBOX_SECONDS:-900}"
BOOTSTRAP_MODEL="${BOOTSTRAP_MODEL:-}"
SUPERVISOR_IDLE_INTERVAL_SECONDS="${SUPERVISOR_IDLE_INTERVAL_SECONDS:-900}"
SUPERVISOR_BUSY_INTERVAL_SECONDS="${SUPERVISOR_BUSY_INTERVAL_SECONDS:-7200}"

cd "$PROJECT_ROOT"

if tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
  tmux kill-session -t "$SESSION_NAME"
fi

printf -v BOOTSTRAP_TIMEBOX_Q '%q' "$BOOTSTRAP_TIMEBOX_SECONDS"
printf -v BOOTSTRAP_MODEL_Q '%q' "$BOOTSTRAP_MODEL"
printf -v STATUS_INTERVAL_Q '%q' "$STATUS_INTERVAL_SECONDS"
printf -v SUPERVISOR_IDLE_Q '%q' "$SUPERVISOR_IDLE_INTERVAL_SECONDS"
printf -v SUPERVISOR_BUSY_Q '%q' "$SUPERVISOR_BUSY_INTERVAL_SECONDS"

tmux new-session -d -s "$SESSION_NAME" -c "$PROJECT_ROOT" \
  "env BOOTSTRAP_SUPERVISOR=1 BOOTSTRAP_TIMEBOX_SECONDS=$BOOTSTRAP_TIMEBOX_Q BOOTSTRAP_MODEL=$BOOTSTRAP_MODEL_Q STATUS_INTERVAL_SECONDS=$STATUS_INTERVAL_Q SUPERVISOR_IDLE_INTERVAL_SECONDS=$SUPERVISOR_IDLE_Q SUPERVISOR_BUSY_INTERVAL_SECONDS=$SUPERVISOR_BUSY_Q ./scripts/codex_event_control_room.sh"

echo "Started control-room session: $SESSION_NAME"
echo "Bootstrap Codex: yes"
echo "Status interval: ${STATUS_INTERVAL_SECONDS}s"
echo "Supervisor idle interval: ${SUPERVISOR_IDLE_INTERVAL_SECONDS}s"
echo "Supervisor busy interval: ${SUPERVISOR_BUSY_INTERVAL_SECONDS}s"
