feat: поддержка баланса OpenRouter в statusline + обновление модели-пикера
- Добавлен _openrouter_balance() в ai-api-helpers.sh - Statusline теперь показывает баланс для openrouter лаунчера - Обновлены дефолтные модели в ai-openrouter (Grok 4.20 как opus и т.д.) - Улучшена изоляция конфигов для deepseek/kimi/openrouter Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -170,6 +170,45 @@ for info in infos:
|
||||
parts.append(f'{sym}{total}')
|
||||
if parts:
|
||||
print(' '.join(parts))
|
||||
" 2>/dev/null)
|
||||
if [ -n "$new_balance" ]; then
|
||||
echo "$new_balance" > "$cache_file"
|
||||
fi
|
||||
fi
|
||||
) &
|
||||
fi
|
||||
fi
|
||||
elif [ "${AI_LAUNCHER:-}" = "openrouter" ]; then
|
||||
# --- Баланс OpenRouter ---
|
||||
# Моментально показываем кэшированный остаток, в фоне обновляем через API.
|
||||
cache_file="$HOME/.cache/ai-setup/openrouter_balance"
|
||||
if [ -f "$cache_file" ]; then
|
||||
balance=$(head -1 "$cache_file")
|
||||
[ -n "$balance" ] && printf " \033[38;5;78m%s\033[00m" "$balance"
|
||||
fi
|
||||
|
||||
# Фоновое обновление баланса (не чаще раза в 30 секунд)
|
||||
refresh_ts="$HOME/.cache/ai-setup/openrouter_balance_refresh_ts"
|
||||
now=$(date +%s)
|
||||
last=$(cat "$refresh_ts" 2>/dev/null || echo 0)
|
||||
if [ $(( now - last )) -gt 30 ]; then
|
||||
key_file="$HOME/.config/ai-setup/openrouter_key"
|
||||
if [ -f "$key_file" ]; then
|
||||
echo "$now" > "$refresh_ts" 2>/dev/null
|
||||
(
|
||||
api_key=$(cat "$key_file")
|
||||
resp=$(curl -s --max-time 10 "https://openrouter.ai/api/v1/credits" \
|
||||
-H "Authorization: Bearer $api_key" \
|
||||
-H "Accept: application/json" 2>/dev/null)
|
||||
if [ -n "$resp" ]; then
|
||||
new_balance=$(echo "$resp" | python3 -c "
|
||||
import sys, json
|
||||
d = json.load(sys.stdin)
|
||||
data = d.get('data', {})
|
||||
total = data.get('total_credits', 0) or 0
|
||||
usage = data.get('total_usage', 0) or 0
|
||||
remaining = total - usage
|
||||
print(f'${remaining:.2f}')
|
||||
" 2>/dev/null)
|
||||
if [ -n "$new_balance" ]; then
|
||||
echo "$new_balance" > "$cache_file"
|
||||
@@ -179,7 +218,7 @@ if parts:
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Рейт-лимиты для НЕ-DeepSeek провайдеров
|
||||
# Рейт-лимиты для НЕ-DeepSeek/OpenRouter провайдеров
|
||||
# Кеш специфичен для провайдера (model_id) И аккаунта (account): лимиты привязаны
|
||||
# к аккаунту, поэтому при переключении /switch-account проценты не должны смешиваться.
|
||||
_cache_key=$(echo "${model_id:-unknown}_${account:-}" | sed 's/[^a-zA-Z0-9._-]/_/g')
|
||||
|
||||
Reference in New Issue
Block a user