#!/bin/sh set -e APPDIR="$(dirname "$(readlink -f "$0")")" export PATH="$APPDIR/usr/bin:$PATH" export EXTRAS_DIR="${EXTRAS_DIR:-$APPDIR/opt/kilocode/extras}" export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-$APPDIR/opt/patchright-browsers}" export CHROME_PATH="${CHROME_PATH:-$APPDIR/opt/google/chrome/chrome}" if [ -z "${HOME}" ] || [ ! -w "${HOME}" ]; then export HOME="/tmp/kilocode-home" fi mkdir -p "$HOME" export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" mkdir -p "$XDG_CONFIG_HOME" "$XDG_CACHE_HOME" "$XDG_DATA_HOME" # Ensure DATA_DIR is writable (default to current directory) if [ -z "${DATA_DIR}" ]; then DATA_DIR="$PWD/data" fi if [ ! -d "$DATA_DIR" ] || [ ! -w "$DATA_DIR" ]; then DATA_DIR="$PWD/data" fi mkdir -p "$DATA_DIR" export DATA_DIR VENV_DIR="$APPDIR/opt/kilocode/.venv" PY_BASE="$APPDIR/root/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu" PYTHON_BIN="$PY_BASE/bin/python3.14" export VIRTUAL_ENV="$VENV_DIR" export PYTHONHOME="$PY_BASE" export PYTHONPATH="$VENV_DIR/lib/python3.14/site-packages" SERVER_PY="$APPDIR/opt/kilocode/src/server.py" if [ ! -x "$PYTHON_BIN" ]; then echo "Python runtime not found: $PYTHON_BIN" >&2 exit 1 fi exec "$PYTHON_BIN" -u "$SERVER_PY"