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

PROJECT_ROOT="${PROJECT_ROOT:-/home/happyuser/projects/DEX}"

usage() {
  cat <<'USAGE'
Usage:
  scripts/request_supervised_job.sh <tmux_session_name> <command string>

Writes a request file for dex_control_room to start with run_tmux_supervised.sh.
Use this from inside Codex supervisor runs when direct tmux access is unavailable.
USAGE
}

if [[ "${1:-}" == "-h" || "${1:-}" == "--help" || "$#" -lt 2 ]]; then
  usage
  exit 2
fi

SESSION_NAME="$1"
shift
COMMAND="$*"

cd "$PROJECT_ROOT"
mkdir -p .agent/job_requests .agent/job_requests/handled .agent/job_requests/failed

RUN_ID="$(date -u +%Y%m%dT%H%M%SZ)"
SAFE_SESSION="$(printf '%s' "$SESSION_NAME" | tr -c 'A-Za-z0-9_.-' '_')"
REQUEST_FILE=".agent/job_requests/${SAFE_SESSION}_${RUN_ID}.request"
TMP_FILE="${REQUEST_FILE}.tmp"

COMMAND_B64="$(printf '%s' "$COMMAND" | base64 -w0)"

{
  echo "RUN_ID=$RUN_ID"
  echo "SESSION_NAME=$SESSION_NAME"
  echo "COMMAND_B64=$COMMAND_B64"
  echo "REQUESTED_UTC=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
} > "$TMP_FILE"

mv "$TMP_FILE" "$REQUEST_FILE"

echo "Queued supervised job request: $REQUEST_FILE"
echo "Session: $SESSION_NAME"
