# 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).