#!/usr/bin/env bash set -euo pipefail IFS=$'\n\t' AI_BRAIN_DIR="${1:-$HOME/Desktop/AI_Brain}" TMUX_SESSION="${2:-hypothalumus}" ENV_MASTER="$AI_BRAIN_DIR/env/master.env" LOG_DIR="$AI_BRAIN_DIR/logs" ADAPTER_PID="$AI_BRAIN_DIR/adapter.pid" ORCH_PID="$AI_BRAIN_DIR/orchestrator.pid" mkdir -p "$LOG_DIR" if [ ! -f "$ENV_MASTER" ]; then echo "Error: master.env not found at $ENV_MASTER" >&2 exit 1 fi # source into this shell so child processes inherit any env vars # shellcheck disable=SC1090 source "$ENV_MASTER" # Start adapter (detached) if command -v tmux >/dev/null 2>&1; then if ! tmux has-session -t "${TMUX_SESSION}-adapter" 2>/dev/null; then tmux new-session -d -s "${TMUX_SESSION}-adapter" "cd '$AI_BRAIN_DIR' && exec python3 adapter/adapter.py >> '$LOG_DIR/adapter.log' 2>&1" echo "Adapter started in tmux session ${TMUX_SESSION}-adapter" else echo "Adapter tmux session already exists." fi tmux display-message -p -t "${TMUX_SESSION}-adapter" '#{session_pid}' 2>/dev/null > "$ADAPTER_PID" || true else # nohup + disown to fully detach nohup bash -lc "cd '$AI_BRAIN_DIR' && python3 adapter/adapter.py >> '$LOG_DIR/adapter.log' 2>&1" >/dev/null 2>&1 & echo $! > "$ADAPTER_PID" disown %1 2>/dev/null || true echo "Adapter started (nohup) pid $(cat $ADAPTER_PID)" fi # Start orchestrator (detached) if command -v tmux >/dev/null 2>&1; then if ! tmux has-session -t "${TMUX_SESSION}-orch" 2>/dev/null; then tmux new-session -d -s "${TMUX_SESSION}-orch" "cd '$AI_BRAIN_DIR' && exec python3 orchestrator/orchestrator.py >> '$LOG_DIR/worker.log' 2>&1" echo "Orchestrator started in tmux session ${TMUX_SESSION}-orch" else echo "Orchestrator tmux session already exists." fi tmux display-message -p -t "${TMUX_SESSION}-orch" '#{session_pid}' 2>/dev/null > "$ORCH_PID" || true else nohup bash -lc "cd '$AI_BRAIN_DIR' && python3 orchestrator/orchestrator.py >> '$LOG_DIR/worker.log' 2>&1" >/dev/null 2>&1 & echo $! > "$ORCH_PID" disown %1 2>/dev/null || true echo "Orchestrator started (nohup) pid $(cat $ORCH_PID)" fi # Exit immediately with success — services detached echo "Start commands issued. Exiting starter script." exit 0