#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd -- "$SCRIPT_DIR/.." && pwd)" REPO_PYTHON="$REPO_ROOT/.venv/bin/python" CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" BIN_DIR="$CODEX_HOME/bin" if [[ ! -x "$REPO_PYTHON" ]]; then echo "Missing OpenSpace Python runtime: $REPO_PYTHON" >&2 exit 1 fi mkdir -p "$BIN_DIR" cat > "$BIN_DIR/openspace-global-mcp" <&2 exit 1 fi workspace="\${OPENSPACE_WORKSPACE:-\$PWD}" if git_root="\$(git -C "\$workspace" rev-parse --show-toplevel 2>/dev/null)"; then workspace="\$git_root" fi project_name="\$(basename "\$workspace")" if [[ -z "\$project_name" || "\$project_name" == "/" || "\$project_name" == "." ]]; then project_name="default" fi project_skill_dir="\${HOME}/.codex/projects/\${project_name}/skills" mkdir -p "\$project_skill_dir" "\${HOME}/.codex/skills" export OPENSPACE_WORKSPACE="\$workspace" export OPENSPACE_HOST_SKILL_DIRS="\${OPENSPACE_HOST_SKILL_DIRS:-\${project_skill_dir},\${HOME}/.codex/skills}" exec "\$REPO_PYTHON" -m openspace.mcp_server --transport stdio EOF cat > "$BIN_DIR/openspace-evolution-global-mcp" <&2 exit 1 fi workspace="\${OPENSPACE_WORKSPACE:-\$PWD}" if git_root="\$(git -C "\$workspace" rev-parse --show-toplevel 2>/dev/null)"; then workspace="\$git_root" fi export OPENSPACE_WORKSPACE="\$workspace" project_name="\$(basename "\$OPENSPACE_WORKSPACE")" if [[ -z "\$project_name" || "\$project_name" == "/" || "\$project_name" == "." ]]; then project_name="default" fi project_skill_dir="\${HOME}/.codex/projects/\${project_name}/skills" mkdir -p "\$project_skill_dir" "\${HOME}/.codex/skills" export OPENSPACE_HOST_SKILL_DIRS="\${OPENSPACE_HOST_SKILL_DIRS:-\${project_skill_dir},\${HOME}/.codex/skills}" exec "\$REPO_PYTHON" -m openspace.evolution_mcp_server --transport stdio EOF chmod +x "$BIN_DIR/openspace-global-mcp" "$BIN_DIR/openspace-evolution-global-mcp" cat <