feat: добавить ai-cursor лаунчер (нативный Cursor CLI agent)
Генерация нативного лаунчера ai-cursor для Cursor CLI (agent) с автоустановкой через cursor.com/install, интеграцией proxychains4 в VLESS-режиме, обновлением ~/.cursorrules и флагом --force (--yolo). Очистка старого ai-cursor из ~/.local/bin при нестандартном BIN_DIR. Добавлены тест генерации и упоминания в EFFORT_MAPPING/QUICK_START/README. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -2179,6 +2179,50 @@ chmod +x "$BIN_DIR/ai-gemini"
|
||||
# Подменяем путь к agy, если BIN_DIR отличается от ~/.local/bin
|
||||
[ "$BIN_DIR" != "$HOME/.local/bin" ] && sed -i "s|\$HOME/\.local/bin|\$HOME/${BIN_DIR#$HOME/}|g" "$BIN_DIR/ai-gemini"
|
||||
|
||||
# === ai-cursor ===
|
||||
cat > "$BIN_DIR/ai-cursor" << 'CURSOREOF'
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================
|
||||
# ai-cursor - запуск нативного Cursor CLI (agent)
|
||||
# ============================================================
|
||||
|
||||
cursor_bin="$HOME/.local/bin/agent"
|
||||
[ ! -f "$cursor_bin" ] && cursor_bin="$(command -v agent 2>/dev/null)"
|
||||
|
||||
if [ -z "$cursor_bin" ] || [ ! -f "$cursor_bin" ]; then
|
||||
echo "Cursor CLI (agent) не найден. Устанавливаю..."
|
||||
curl -fsSL https://cursor.com/install -fsS | bash
|
||||
cursor_bin="$HOME/.local/bin/agent"
|
||||
[ ! -f "$cursor_bin" ] && cursor_bin="$(command -v agent 2>/dev/null)"
|
||||
fi
|
||||
|
||||
if [ -z "$cursor_bin" ] || [ ! -f "$cursor_bin" ]; then
|
||||
echo "Ошибка: не удалось установить Cursor CLI."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/ai-api-helpers.sh" 2>/dev/null || true
|
||||
|
||||
# Cursor CLI нативно подтягивает ~/.cursorrules и проектные правила.
|
||||
# Обновляем ~/.cursorrules актуальными глобальными правилами (как AGENTS.md для codex).
|
||||
_build_ai_sys_prompt > /dev/null
|
||||
|
||||
# --force (alias --yolo) — авто-одобрение правок и команд, аналог
|
||||
# --dangerously-skip-permissions. Логин аккаунтом Cursor (OAuth при первом запуске);
|
||||
# опционально CURSOR_API_KEY прокидывается через env для headless/скриптов.
|
||||
"$cursor_bin" --force "$@"
|
||||
cursor_exit=$?
|
||||
(
|
||||
paplay /usr/share/sounds/freedesktop/stereo/complete.oga 2>/dev/null ||
|
||||
pw-play --volume=1 /usr/share/sounds/freedesktop/stereo/complete.oga 2>/dev/null ||
|
||||
aplay /usr/share/sounds/freedesktop/stereo/complete.oga 2>/dev/null
|
||||
) &
|
||||
exit $cursor_exit
|
||||
CURSOREOF
|
||||
chmod +x "$BIN_DIR/ai-cursor"
|
||||
# Подменяем путь к agent, если BIN_DIR отличается от ~/.local/bin
|
||||
[ "$BIN_DIR" != "$HOME/.local/bin" ] && sed -i "s|\$HOME/\.local/bin|\$HOME/${BIN_DIR#$HOME/}|g" "$BIN_DIR/ai-cursor"
|
||||
|
||||
# === ai-claude ===
|
||||
cat > "$BIN_DIR/ai-claude" << 'CLAUDEEOF'
|
||||
#!/usr/bin/env bash
|
||||
@@ -2285,6 +2329,7 @@ if [ "$USE_VLESS" -eq 1 ]; then
|
||||
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-glm"
|
||||
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-openrouter"
|
||||
sed -i 's|^\([[:space:]]*\)"\$agy_bin" --dangerously-skip-permissions "\$@"|\1proxychains4 -f "\$HOME/.proxychains-xray.conf" "\$agy_bin" --dangerously-skip-permissions "\$@"|' "$BIN_DIR/ai-gemini"
|
||||
sed -i 's|^\([[:space:]]*\)"\$cursor_bin" --force "\$@"|\1proxychains4 -f "\$HOME/.proxychains-xray.conf" "\$cursor_bin" --force "\$@"|' "$BIN_DIR/ai-cursor"
|
||||
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-claude"
|
||||
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-opencode"
|
||||
success "proxychains4 интегрирован"
|
||||
@@ -2307,7 +2352,7 @@ rm -f "$BIN_DIR/claude_gpt" "$BIN_DIR/claude_deepseek" "$BIN_DIR/claude_kimi" "$
|
||||
if [ "$BIN_DIR" != "$HOME/.local/bin" ]; then
|
||||
warn "BIN_DIR=$BIN_DIR — удаляю старые скрипты из ~/.local/bin/ ..."
|
||||
rm -f "$HOME/.local/bin/ai-gpt" "$HOME/.local/bin/ai-deepseek" "$HOME/.local/bin/ai-kimi" \
|
||||
"$HOME/.local/bin/ai-glm" "$HOME/.local/bin/ai-openrouter" "$HOME/.local/bin/ai-gemini" "$HOME/.local/bin/ai-claude" \
|
||||
"$HOME/.local/bin/ai-glm" "$HOME/.local/bin/ai-openrouter" "$HOME/.local/bin/ai-gemini" "$HOME/.local/bin/ai-cursor" "$HOME/.local/bin/ai-claude" \
|
||||
"$HOME/.local/bin/ai-opencode" \
|
||||
"$HOME/.local/bin/ai-api-helpers.sh" "$HOME/.local/bin/claude-gpt-effort-proxy.py"
|
||||
fi
|
||||
@@ -2333,6 +2378,7 @@ echo ""
|
||||
echo " Нативные CLI:"
|
||||
echo -e " ${CYAN}ai-gpt${NC} - OpenAI Codex (нативный CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-gemini${NC} - Gemini (нативный agy CLI, автоустановка)"
|
||||
echo -e " ${CYAN}ai-cursor${NC} - Cursor (нативный Cursor CLI, автоустановка)"
|
||||
echo ""
|
||||
echo " Android CLI:"
|
||||
echo -e " ${CYAN}android${NC} - Google Android CLI (SDK, эмулятор, проекты)"
|
||||
|
||||
Reference in New Issue
Block a user