From 9d7d51aac16ae2e26449e8b69252132f16367cfd Mon Sep 17 00:00:00 2001 From: vitaly Date: Sun, 31 May 2026 19:06:50 +0700 Subject: [PATCH] Refactor: rename alias scripts to use ai-* prefix and add ai-claude proxy --- claude_setup.sh | 145 ++++++++++++++++++------------------------------ 1 file changed, 54 insertions(+), 91 deletions(-) diff --git a/claude_setup.sh b/claude_setup.sh index 4879e5d..4bc7f40 100755 --- a/claude_setup.sh +++ b/claude_setup.sh @@ -178,14 +178,14 @@ PYEOF chmod +x "$EFFORT_PROXY_BIN" success "claude-gpt-effort-proxy -> $EFFORT_PROXY_BIN" -# ── 4c. antigravity-claude-proxy (Gemini) ──────────────────── -info "Проверяю antigravity-claude-proxy..." -if command -v antigravity-claude-proxy &>/dev/null || command -v acc &>/dev/null; then - success "antigravity-claude-proxy уже установлен" +# ── 4c. antigravity CLI (Gemini) ────────────────────────── +info "Проверяю antigravity CLI (agy)..." +if ! command -v agy &>/dev/null; then + info "Устанавливаю agy..." + curl -fsSL https://antigravity.google/cli/install.sh | bash + success "agy установлен" else - info "Устанавливаю antigravity-claude-proxy (npm, без sudo)..." - npm install -g antigravity-claude-proxy@latest - success "antigravity-claude-proxy установлен" + success "agy уже установлен: $(agy --version 2>/dev/null | head -1)" fi # ── 6. Папка для конфигов ──────────────────────────────────── @@ -237,7 +237,7 @@ add_path_to_rc "$HOME/.bashrc" # ── 8. Генерация Standalone скриптов ──────────────────────── info "Генерирую standalone скрипты в $BIN_DIR..." -HELPERS_FILE="$BIN_DIR/claude_api_helpers.sh" +HELPERS_FILE="$BIN_DIR/ai-api-helpers.sh" cat > "$HELPERS_FILE" << 'HELPEREOF' #!/usr/bin/env bash @@ -403,10 +403,10 @@ _open_browser() { HELPEREOF chmod +x "$HELPERS_FILE" -# === claude_gpt === -cat > "$BIN_DIR/claude_gpt" << 'GPTEOF' +# === ai-gpt === +cat > "$BIN_DIR/ai-gpt" << 'GPTEOF' #!/usr/bin/env bash -# claude_gpt — запуск нативного OpenAI Codex +# ai-gpt — запуск нативного OpenAI Codex codex_bin="$HOME/.npm-global/bin/codex" [ ! -f "$codex_bin" ] && codex_bin="$(command -v codex 2>/dev/null)" @@ -425,13 +425,13 @@ fi exec "$codex_bin" "$@" GPTEOF -chmod +x "$BIN_DIR/claude_gpt" +chmod +x "$BIN_DIR/ai-gpt" -# === claude_deepseek === -cat > "$BIN_DIR/claude_deepseek" << 'DEEPSEEKEOF' +# === ai-deepseek === +cat > "$BIN_DIR/ai-deepseek" << 'DEEPSEEKEOF' #!/usr/bin/env bash -source ~/.local/bin/claude_api_helpers.sh +source ~/.local/bin/ai-api-helpers.sh key_file="$HOME/.config/claude-launcher/deepseek_key" api_key="" @@ -495,12 +495,12 @@ CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash \ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \ claude "$@" DEEPSEEKEOF -chmod +x "$BIN_DIR/claude_deepseek" +chmod +x "$BIN_DIR/ai-deepseek" -# === claude_kimi === -cat > "$BIN_DIR/claude_kimi" << 'KIMIEOF' +# === ai-kimi === +cat > "$BIN_DIR/ai-kimi" << 'KIMIEOF' #!/usr/bin/env bash -# claude_kimi — запуск нативного Kimi Code +# ai-kimi — запуск нативного Kimi Code kimi_bin="$HOME/.kimi-code/bin/kimi" [ ! -f "$kimi_bin" ] && kimi_bin="$(command -v kimi 2>/dev/null)" @@ -519,83 +519,44 @@ fi exec "$kimi_bin" "$@" KIMIEOF -chmod +x "$BIN_DIR/claude_kimi" +chmod +x "$BIN_DIR/ai-kimi" -# === claude_gemini === -cat > "$BIN_DIR/claude_gemini" << 'GEMINIEOF' +# === ai-gemini === +cat > "$BIN_DIR/ai-gemini" << 'GEMINIEOF' #!/usr/bin/env bash -source ~/.local/bin/claude_api_helpers.sh +# ============================================================ +# ai-gemini — запуск нативного antigravity CLI (agy) +# ============================================================ -acc_cmd="" -command -v antigravity-claude-proxy &>/dev/null && acc_cmd="antigravity-claude-proxy" -command -v acc &>/dev/null && acc_cmd="acc" +agy_bin="$HOME/.local/bin/agy" +[ ! -f "$agy_bin" ] && agy_bin="$(command -v agy 2>/dev/null)" -[ -z "$acc_cmd" ] && { echo "Ошибка: antigravity-claude-proxy не найден."; exit 1; } - -proxy_pid="" -cleanup() { [ -n "$proxy_pid" ] && kill "$proxy_pid" 2>/dev/null; } -trap cleanup EXIT INT TERM - -if ! curl -sf http://localhost:8080/health &>/dev/null; then - "$acc_cmd" start &>/tmp/antigravity-proxy.log & - proxy_pid=$! - echo "Запускаю Gemini прокси..." - i=0; while [ $i -lt 15 ]; do sleep 1; curl -sf http://localhost:8080/health &>/dev/null && break; i=$((i+1)); done +if [ -z "$agy_bin" ] || [ ! -f "$agy_bin" ]; then + echo "Antigravity CLI (agy) не найден. Устанавливаю..." + curl -fsSL https://antigravity.google/cli/install.sh | bash + agy_bin="$HOME/.local/bin/agy" + [ ! -f "$agy_bin" ] && agy_bin="$(command -v agy 2>/dev/null)" fi -has_auth=$(curl -sf "http://localhost:8080/account-limits" 2>/dev/null || echo "") -if [ -n "$has_auth" ]; then - total_count=$(echo "$has_auth" | python3 -c "import sys, json; print(len(json.load(sys.stdin).get('accounts', [])))" 2>/dev/null || echo "0") - invalid_count=$(echo "$has_auth" | python3 -c "import sys, json; print(len([a for a in json.load(sys.stdin).get('accounts', []) if a.get('isInvalid')]))" 2>/dev/null || echo "0") +if [ -z "$agy_bin" ] || [ ! -f "$agy_bin" ]; then + echo "Ошибка: не удалось установить antigravity CLI." + exit 1 fi -if [ -z "$has_auth" ] || [ "$total_count" = "0" ]; then - echo -e "\033[1;33m⚠️ ВНИМАНИЕ: Используйте ОТДЕЛЬНЫЙ Google-аккаунт!\033[0m" - _open_browser "http://localhost:8080" - echo "Нажмите Enter после завершения авторизации в браузере..." - read -r -elif [ "$invalid_count" -gt 0 ]; then - echo -e "\033[0;33m[ПРЕДУПРЕЖДЕНИЕ]\033[0m Обнаружены проблемные аккаунты ($invalid_count из $total_count)." -fi - -echo -n "Проверка доступа к Gemini API... " -_claude_test_api "http://localhost:8080/v1/messages" "x-api-key: dummy" "gemini-pro-agent" - -if [ "$_CLAUDE_TEST_CODE" != "400" ]; then - _handle_api_response "Gemini" "$_CLAUDE_TEST_CODE" "$_CLAUDE_TEST_BODY" "" - ret=$? - if [ $ret -ne 0 ]; then - if _claude_offer_reauth "Gemini"; then - _open_browser "http://localhost:8080" - echo "Нажмите Enter после авторизации/добавления..." - read -r - _claude_test_api "http://localhost:8080/v1/messages" "x-api-key: dummy" "gemini-pro-agent" - [ "$_CLAUDE_TEST_CODE" != "200" ] && [ "$_CLAUDE_TEST_CODE" != "400" ] && { echo "ОШИБКА"; exit 1; } - echo -e "\033[0;32mOK\033[0m" - else - exit 1 - fi - fi -else - _emsg=$(_claude_extract_error "$_CLAUDE_TEST_BODY") - if echo "$_emsg" | grep -q "RESOURCE_EXHAUSTED"; then - echo -e "\033[0;33m[КВОТА ИСЧЕРПАНА]\033[0m Все Gemini аккаунты исчерпали лимит запросов." - exit 1 - fi - echo -e "\033[0;32mOK\033[0m" -fi - -ANTHROPIC_BASE_URL=http://localhost:8080 \ -ANTHROPIC_AUTH_TOKEN=dummy \ -ANTHROPIC_MODEL=gemini-pro-agent \ -ANTHROPIC_DEFAULT_OPUS_MODEL=gemini-pro-agent \ -ANTHROPIC_DEFAULT_SONNET_MODEL=gemini-pro-agent \ -ANTHROPIC_DEFAULT_HAIKU_MODEL=gemini-3.5-flash-low \ -CLAUDE_CODE_SUBAGENT_MODEL=gemini-3.5-flash-low \ -CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \ -claude "$@" +exec "$agy_bin" "$@" GEMINIEOF -chmod +x "$BIN_DIR/claude_gemini" +chmod +x "$BIN_DIR/ai-gemini" + +# === ai-claude === +cat > "$BIN_DIR/ai-claude" << 'CLAUDEEOF' +#!/usr/bin/env bash +# ai-claude — запуск оригинального Claude Code (Anthropic) +exec claude "$@" +CLAUDEEOF +chmod +x "$BIN_DIR/ai-claude" + +info "Удаляю старые версии скриптов (claude_*)..." +rm -f "$BIN_DIR/claude_gpt" "$BIN_DIR/claude_deepseek" "$BIN_DIR/claude_kimi" "$BIN_DIR/claude_gemini" "$BIN_DIR/claude_api_helpers.sh" success "Скрипты сгенерированы." @@ -606,10 +567,12 @@ echo -e "${GREEN} Установка завершена!${NC}" echo -e "${GREEN}════════════════════════════════════════════════════${NC}" echo "" echo "Доступные команды (теперь это независимые скрипты в ~/.local/bin):" -echo -e " ${CYAN}claude_gpt${NC} — OpenAI Codex (нативный CLI, автоустановка)" -echo -e " ${CYAN}claude_deepseek${NC} — DeepSeek (API ключ сохраняется)" -echo -e " ${CYAN}claude_kimi${NC} — Kimi K2.6 (нативный CLI, автоустановка)" -echo -e " ${CYAN}claude_gemini${NC} — Gemini (Google OAuth через браузер)" +echo -e " ${CYAN}ai-claude${NC} — Оригинальный Claude Code (Anthropic)" +echo -e " ${CYAN}ai-gpt${NC} — OpenAI Codex (нативный CLI, автоустановка)" +echo -e " ${CYAN}ai-deepseek${NC} — DeepSeek (API ключ сохраняется)" +echo -e " ${CYAN}ai-kimi${NC} — Kimi K2.6 (нативный CLI, автоустановка)" +echo -e " ${CYAN}ai-gemini${NC} — Gemini (нативный agy CLI, автоустановка)" echo "" echo -e "${YELLOW}⚠️ Для Gemini используйте отдельный Google-аккаунт!${NC}" echo "" +echo -e "Чтобы команды были доступны сразу, выполните: ${GREEN}exec bash${NC}"