Remove redundant claude_anthropic wrapper
This commit is contained in:
156
claude_setup.sh
156
claude_setup.sh
@@ -252,159 +252,6 @@ _claude_offer_reauth() {
|
||||
esac
|
||||
}
|
||||
|
||||
# ── claude_anthropic ──────────────────────────────────────────
|
||||
claude_anthropic() {
|
||||
unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN
|
||||
unset CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
|
||||
|
||||
local _token="" _method=""
|
||||
|
||||
# Извлекаем OAuth-токен из credentials
|
||||
_token=$(python3 -c "
|
||||
import json, os
|
||||
try:
|
||||
with open(os.path.expanduser('~/.claude/.credentials.json')) as f:
|
||||
d = json.load(f)
|
||||
print(d.get('claudeAiOauth', {}).get('accessToken', ''))
|
||||
except: pass
|
||||
" 2>/dev/null)
|
||||
|
||||
if [ -n "$_token" ]; then
|
||||
_method="oauth"
|
||||
elif [ -n "${ANTHROPIC_API_KEY:-}" ]; then
|
||||
_token="$ANTHROPIC_API_KEY"
|
||||
_method="apikey"
|
||||
fi
|
||||
|
||||
# ── Pre-launch auth validation ──
|
||||
if [ "$_method" = "oauth" ]; then
|
||||
# OAuth-токен предназначен для внутренней авторизации Claude Code, а не для прямых API-вызовов.
|
||||
# Claude Code сам обрабатывает OAuth — прямой тест API с Bearer-токеном некорректен и даёт ложные 429.
|
||||
: # пропускаем проверку, Claude Code обработает авторизацию самостоятельно
|
||||
elif [ -n "$_token" ]; then
|
||||
echo -n "Проверка авторизации Anthropic... "
|
||||
_claude_test_api "https://api.anthropic.com/v1/messages" "x-api-key: $_token"
|
||||
|
||||
local _emsg
|
||||
case "$_CLAUDE_TEST_CODE" in
|
||||
200)
|
||||
echo -e "\033[0;32mOK\033[0m"
|
||||
;;
|
||||
401)
|
||||
_emsg=$(_claude_extract_error "$_CLAUDE_TEST_BODY")
|
||||
echo -e "\033[0;31mОШИБКА: Недействительная авторизация (HTTP 401)\033[0m"
|
||||
[ -n "$_emsg" ] && echo " $_emsg"
|
||||
echo ""
|
||||
echo "API-ключ недействителен."
|
||||
echo " export ANTHROPIC_API_KEY=sk-ant-..."
|
||||
echo ""
|
||||
read -r -p "Ввести новый ключ сейчас? [y/N] " _ans
|
||||
case "${_ans:-N}" in
|
||||
[Yy]*)
|
||||
read -r -p "Введите ключ: " _token
|
||||
[ -z "$_token" ] && { echo "Ключ не введён."; return 1; }
|
||||
echo -n "Проверяю новый ключ... "
|
||||
_claude_test_api "https://api.anthropic.com/v1/messages" "x-api-key: $_token"
|
||||
case "$_CLAUDE_TEST_CODE" in
|
||||
200) echo -e "\033[0;32mOK\033[0m"; ANTHROPIC_API_KEY="$_token" ;;
|
||||
*) echo -e "\033[0;31mОШИБКА (HTTP $_CLAUDE_TEST_CODE)\033[0m"; return 1 ;;
|
||||
esac
|
||||
;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
403)
|
||||
_emsg=$(_claude_extract_error "$_CLAUDE_TEST_BODY")
|
||||
echo ""
|
||||
echo -e "\033[0;33m[ПРЕДУПРЕЖДЕНИЕ]\033[0m Доступ запрещён (HTTP 403) — возможно, подписка не позволяет."
|
||||
[ -n "$_emsg" ] && echo " $_emsg"
|
||||
echo ""
|
||||
echo -n "Продолжить всё равно? (запросы могут не работать) [y/N] "
|
||||
local _ans; read -r _ans
|
||||
case "${_ans:-N}" in [Yy]*) ;; *) return 1 ;; esac
|
||||
;;
|
||||
429)
|
||||
_emsg=$(_claude_extract_error "$_CLAUDE_TEST_BODY")
|
||||
echo ""
|
||||
echo -e "\033[0;33m[ЛИМИТ]\033[0m Лимит запросов исчерпан или пустой баланс (HTTP 429)."
|
||||
[ -n "$_emsg" ] && echo " $_emsg"
|
||||
echo ""
|
||||
echo "Варианты:"
|
||||
echo " [C] Продолжить всё равно (может не работать)"
|
||||
echo " [Q] Выйти"
|
||||
echo -n "Выберите [C/q]: "
|
||||
local _ans; read -r _ans
|
||||
case "${_ans:-C}" in
|
||||
[Cc]) ;; # продолжаем
|
||||
*) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
000)
|
||||
echo ""
|
||||
echo -e "\033[0;33m[СЕТЬ]\033[0m Не удалось проверить авторизацию (нет сети?). Продолжаю..."
|
||||
;;
|
||||
*)
|
||||
_emsg=$(_claude_extract_error "$_CLAUDE_TEST_BODY")
|
||||
echo ""
|
||||
echo -e "\033[0;31m[ОШИБКА]\033[0m API вернул HTTP $_CLAUDE_TEST_CODE"
|
||||
[ -n "$_emsg" ] && echo " $_emsg"
|
||||
echo ""
|
||||
echo -n "Продолжить всё равно? [y/N] "
|
||||
local _ans; read -r _ans
|
||||
case "${_ans:-N}" in [Yy]*) ;; *) return 1 ;; esac
|
||||
;;
|
||||
esac
|
||||
else
|
||||
# Нет ни OAuth, ни API-ключа — предлагаем выбор
|
||||
echo ""
|
||||
echo -e "\033[1;33mАнтропная авторизация не найдена.\033[0m"
|
||||
echo ""
|
||||
echo "Варианты:"
|
||||
echo " [L] Залогиниться через браузер (OAuth)"
|
||||
echo " [K] Ввести API-ключ вручную"
|
||||
echo " [Q] Выйти"
|
||||
echo -n "Выберите [L/k/q]: "
|
||||
local _ans; read -r _ans
|
||||
case "${_ans:-L}" in
|
||||
[Ll])
|
||||
echo ""
|
||||
echo "Запускаю Claude Code — войдите в аккаунт Anthropic в интерфейсе..."
|
||||
# claude auth login + claude "$@" вызывали двойной auth flow (v2.x запускает
|
||||
# полный TUI внутри auth login). Запускаем claude напрямую: он сам откроет
|
||||
# браузер и попросит выбрать тип аккаунта в одном взаимодействии.
|
||||
ANTHROPIC_MODEL=claude-sonnet-4-6 \
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-8 \
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6 \
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5-20251001 \
|
||||
CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-4-5-20251001 \
|
||||
claude "$@"
|
||||
return "$?"
|
||||
;;
|
||||
[Kk])
|
||||
echo ""
|
||||
read -r -p "Введите Anthropic API ключ (sk-ant-...): " _token
|
||||
[ -z "$_token" ] && { echo "Ключ не введён."; return 1; }
|
||||
_method="apikey"
|
||||
echo -n "Проверяю ключ... "
|
||||
_claude_test_api "https://api.anthropic.com/v1/messages" "x-api-key: $_token"
|
||||
case "$_CLAUDE_TEST_CODE" in
|
||||
200) echo -e "\033[0;32mOK\033[0m"; export ANTHROPIC_API_KEY="$_token" ;;
|
||||
*) echo -e "\033[0;31mОШИБКА (HTTP $_CLAUDE_TEST_CODE)\033[0m"; return 1 ;;
|
||||
esac
|
||||
;;
|
||||
*) echo "Отменено."; return 1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Явно задаём модели Anthropic, чтобы не подхватился deepseek-chat из settings.json
|
||||
ANTHROPIC_MODEL=claude-sonnet-4-6 \
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-8 \
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6 \
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5-20251001 \
|
||||
CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-4-5-20251001 \
|
||||
claude "$@"
|
||||
}
|
||||
|
||||
# ── claude_gpt ────────────────────────────────────────────────
|
||||
claude_gpt() {
|
||||
local proxy_bin="$HOME/.local/bin/claude-code-proxy"
|
||||
@@ -534,7 +381,7 @@ claude_gpt() {
|
||||
esac
|
||||
|
||||
# Сохраняем Anthropic credentials перед запуском — команда /logout внутри Claude Code
|
||||
# удаляет их, хотя в режиме GPT они не нужны, но потом сломают claude_anthropic
|
||||
# удаляет их, хотя в режиме GPT они не нужны, но потом сломают оригинальный claude
|
||||
local _creds_file="$HOME/.claude/.credentials.json"
|
||||
local _creds_backup=""
|
||||
[ -f "$_creds_file" ] && _creds_backup=$(cat "$_creds_file")
|
||||
@@ -1031,7 +878,6 @@ echo -e "${GREEN} Установка завершена!${NC}"
|
||||
echo -e "${GREEN}════════════════════════════════════════════════════${NC}"
|
||||
echo ""
|
||||
echo "Доступные команды:"
|
||||
echo -e " ${CYAN}claude_anthropic${NC} — оригинальный Claude (Anthropic API)"
|
||||
echo -e " ${CYAN}claude_gpt${NC} — GPT-5.5 (ChatGPT Plus/Pro, браузерная авторизация)"
|
||||
echo -e " ${CYAN}claude_deepseek${NC} — DeepSeek (API ключ сохраняется)"
|
||||
echo -e " ${CYAN}claude_kimi${NC} — Kimi K2.6 (Moonshot AI, API ключ сохраняется)"
|
||||
|
||||
Reference in New Issue
Block a user