diff --git a/src/antigravity_provider/router/quota_collector.py b/src/antigravity_provider/router/quota_collector.py index 96bf0b4..f3805e4 100644 --- a/src/antigravity_provider/router/quota_collector.py +++ b/src/antigravity_provider/router/quota_collector.py @@ -754,8 +754,11 @@ class AccountQuotaService: биллинговым эндпоинтом grok.com. Именно оттуда берут данные и Grok Build, и /usage. - Важно: подписка SuperGrok и кредиты API — РАЗНЫЕ кошельки. Вызовы - через Hub списываются со второго, и именно его показывает этот ответ. + Что показывает ответ: предоплаченный баланс и лимит трат по мере + использования. Доступ к Grok даёт либо подписка SuperGrok на этом же + аккаунте (см. анонс x.ai/news/grok-hermes — OAuth без покупки кредитов), + либо купленные кредиты. Нули в обоих полях означают, что ни того, ни + другого на аккаунте нет. """ now = _utc_now() token = None @@ -831,9 +834,10 @@ class AccountQuotaService: reason = None if not prepaid and not cap: reason = ( - "Кредиты API исчерпаны: предоплаченный баланс и лимит по мере " - "использования равны нулю. Подписка SuperGrok их не пополняет — " - "это отдельный кошелёк." + "У этого аккаунта нет ни предоплаченного баланса, ни лимита по " + "мере использования. Доступ даёт либо подписка SuperGrok на ЭТОМ " + "же аккаунте, либо купленные кредиты — проверьте, что подключён " + "тот аккаунт, на котором оформлена подписка." ) return QuotaSnapshot( diff --git a/tests/test_grok_quota.py b/tests/test_grok_quota.py index b116ccd..9eb4d4f 100644 --- a/tests/test_grok_quota.py +++ b/tests/test_grok_quota.py @@ -45,7 +45,7 @@ def test_exhausted_account_explains_two_wallets(): snap = AccountQuotaService()._collect_grok_quota("grok-orch", _auth()) assert snap.source == "provider_api" - assert "SuperGrok" in (snap.unavailable_reason or ""), "не объяснено, что это разные кошельки" + assert "SuperGrok" in (snap.unavailable_reason or ""), "не объяснено, откуда берётся доступ" assert all(b.status == "exhausted" for b in snap.buckets)