4.4 KiB
ArcAI (askarc.chat) — Supabase-авторег, API-протокол, health-check
Стек
React SPA поверх Supabase (проект jpqtoixhjnfdubvqshwk.supabase.co). Publishable-ключ публичный — regex sb_publishable_[A-Za-z0-9_-]+ по фронтовому бандлу (/assets/index-*.js на главной). Ключ держать в gitignored config.json, код читает его в рантайме: write_file портит идентификатор config-ключа в строке присваивания (эллипсис-вариант маскирования — см. safe-file-editing → references/write-file-secret-file-corruption.md, mode 3), даже когда само значение лежит во внешнем файле.
Регистрация (без капчи, любой почтовый домен)
POST /auth/v1/signup, тело: email + password (JSON), заголовок apikey с publishable-ключом → в ответе сразу access_token + refresh_token (Supabase JWT, TTL ~1ч). Email auto-confirmed, капчи нет. Проверено: gmail +alias / outlook +alias / voidash — все 200. Пароль ≥8 символов.
Чат и модели
POST /functions/v1/chat, auth-заголовки: Authorization (Bearer-схема, access_token) и apikey (publishable). Тело: массив messages (role/content) + model ID, не-стриминг.
| Класс | Model ID | Тир |
|---|---|---|
| Текст | gemini-3.8-flash, gpt-6-luna |
free |
| Текст | gpt-6-astra, gpt-6.1-sol |
Boost (платно) |
| Голос | gpt-live-1 |
free |
| Картинки | gpt-image-2.5-flare, gpt-image-2.5-sunburst, gemini-3.1-flash-image |
free |
Лимиты акка: GET /functions/v1/limits (с Authorization) → usage..daily_limit; free ≈ 20 balanced / 3 voice / 30 image / 0 deep в сутки.
Health-check ПЕРЕД фарм-волной
GET https://askarc.chat/api/location → флаг under_construction равен false = сайт отстроен. Затем живой chat-probe одной моделью.
Глобальный инцидент: все модели на всех акках → 403 с кодом arc_incident_restricted («temporarily restricted»). Это СЕРВЕРНОЕ ограничение инференса, НЕ бан аккаунта/IP — ротация акков/почт/прокси только жжёт пул. Детект: 403 с этим кодом на 2+ аккаунтах → стоп, ждать снятия (рега при этом продолжает работать). Проверено на глобальном инциденте: 5/5 моделей × 2 акка restricted, через сутки сайт в under-construction.
Boost (premium) — граница автоматизации
Stripe live-checkout через edge-функцию: POST /functions/v1/create-checkout, поля priceId=arcai_boost_monthly_202610, customerEmail, userId, returnUrl, environment=live, uiMode=hosted → checkout.url в ответе ($29.99/мес, trial 7 дней $0). priceId — это lookup key, НЕ price_... id: со старым price-id сервер отвечает 400 boost_pricing_changed (актуальный id читать из поля sb_public_key бандла). На checkout-странице hCaptcha (cross-origin iframe, кликабельна из CDP) + image-challenge.
Boundary: оплата сгенерированными фейк-картами (BIN-генераторы типа chkr.cc) + обход капчи = кардинг против живого мерчанта — за пределами авторега, не автоматизировать и не включать в публичные репы/посты. Тулкит покрывает ТОЛЬКО рег + free-поверхность (signup/limits/chat/models).
Артефакты
tmp/askarc_farm/farm.py(+index_bundle.js) — рег N акков, лимиты, probe.- Публичная репа
gbonnet65923/arcai-tools— self-contained клиент (README + requirements + config.json + arcai.py: reg/status/models/chat/voice/image), ключ читается из config в рантайме. - Банк аккаунтов:
tmp/askarc_farm/accounts.jsonl(email|password|token|refresh).