#!/bin/zsh set -euo pipefail LABEL="com.local.ksay-kokoro" PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)" PYTHON_BIN="$PROJECT_DIR/.venv/bin/python" AGENT_DIR="$HOME/Library/LaunchAgents" PLIST="$AGENT_DIR/$LABEL.plist" LOG_DIR="$PROJECT_DIR/.logs" DOMAIN="gui/$(id -u)" CLI_LINK="/opt/homebrew/bin/ksay" if [[ ! -x "$PYTHON_BIN" ]]; then echo "Missing $PYTHON_BIN. Run npm run python:install first." >&2 exit 1 fi mkdir -p "$AGENT_DIR" "$LOG_DIR" cat > "$PLIST" < Label $LABEL ProgramArguments $PYTHON_BIN $PROJECT_DIR/scripts/ksay_server.py WorkingDirectory $PROJECT_DIR RunAtLoad KeepAlive ThrottleInterval 2 StandardOutPath $LOG_DIR/ksay.out.log StandardErrorPath $LOG_DIR/ksay.err.log PLIST plutil -lint "$PLIST" launchctl bootout "$DOMAIN" "$PLIST" 2>/dev/null || true launchctl bootstrap "$DOMAIN" "$PLIST" launchctl enable "$DOMAIN/$LABEL" launchctl kickstart -k "$DOMAIN/$LABEL" if [[ -d "$(dirname "$CLI_LINK")" && -w "$(dirname "$CLI_LINK")" ]]; then ln -sf "$PROJECT_DIR/bin/ksay" "$CLI_LINK" echo "Linked CLI: $CLI_LINK" else echo "Could not link $CLI_LINK. Add $PROJECT_DIR/bin to PATH or link bin/ksay manually." >&2 fi echo "Installed $LABEL" echo "Endpoint: http://127.0.0.1:7332" echo "Try: ksay --start" echo "Logs: $LOG_DIR/ksay.*.log"