autoreg-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok60915d52e8425
2026-10-20 02:16:32 +03:00
commit f58eafeb48
565 changed files with 60064 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
# TokenHarbor key-pool: формат, 429-диагностика, signup-статус
Операционные заметки по пулу TH-ключей для шлюза api.[REDACTED-NAME].com (one-api, VPS [REDACTED-IP], БД /opt/grok-gateway/new-api/one-api.db). Основной реger: `th_tonline_claim.py` (login t-online акков → verify → $5 claim → key → пуш). Skill `th-autoreg` user-owned — этот файл живёт здесь.
## 1. Формат tokenharbor_keys.txt — парсить поле, не строку
```
email | thk_live_<64 символа> | timestamp
email | thk_live_... | REVOKED | timestamp
```
- Bearer с ЦЕЛОЙ строкой вместо ключа → обманчивый `401 Invalid or revoked API key` (TH не различает «мусор» и «отозван»).
- Перед любым тестом: сплит по `|`, взять поле с префиксом `thk_live_`, отфильтровать `REVOKED` и `#`-комментарии.
- Ключ = `thk_live_` + 64 символа `[a-zA-Z0-9_-]`.
## 2. 429 «Hourly rate limit reached» — окно TH, не мёртвые ключи
Когда шлюз (сотни TH-каналов) выбивает часовой лимит free-модели, ВСЕ валидные live-ключи начинают отдавать 429 на прямых запросах к tokenharbor.ai. Лимит на модель/пул, НЕ на IP — повторяется с Windows и VPS одновременно.
**Диагностика (2 минуты, без SSH):**
1. Прямой запрос валидным ключом на `claude-haiku-5.5:free` → 429 hourly.
2. Тот же ключ на другой free-модели (`deepseek-v4-flash`) → если 200, ключи и роутинг ЖИВЫ, это модельное окно.
3. Через шлюз `https://api.[REDACTED-NAME].com/v1/chat/completions` (токен в ~/tmp/.testkey) проверить обе модели: 429 на haiku + 200 на другой TH-free модели = подтверждение.
**НЕ делать при таком 429:** ротацию прокси (лимит не по IP), «починку» mapping в one-api.db, перезапуск реger'а. Ждать сброса часового окна.
Free-модели TH (из /v1/models): claude-haiku-5.5, mimo-v2.6-flash, mimo-v2.5, deepseek-v4.1-flash, deepseek-v4-flash. Остальные ~60 — платные. Старые акки: `free allowance used, next period <дата>`.
## 3. Signup-путь сломан на стороне TH (не капча)
- `/login?mode=signup`: НЕТ видимого Turnstile (`[data-sitekey]`, `.cf-turnstile`, `window.turnstile`, challenges.cloudflare — все пусты).
- Форма сабмитится (React nativeSet + `input[type="password"]`), но сервер отвечает «We couldn't create your account right now» на ЛЮБЫЕ email — реальные из пула и фейковые gmx/t-online.
- Вывод: капча-солверы (2captcha/sidecar) signup не чинят; блок серверный. Не тратить баланс солверов.
- Рабочий путь пополнения пула: `th_tonline_claim.py N` — login уже существующих t-online аккаунтов (17k пул, письма доходят), claim $5, создание ключа, автопуш на шлюз.
- Волна ~1 акк/мин; лог `th_run_*.log`; прогресс `[N/200]`.
## 4. Синхронизация ключей в шлюз
- `th_sync_vps.py` — пуш ключей в one-api.db (channels tokenharbor). Прогон даёт +N свежих каналов; после синка `systemctl restart new-api`.
- Роутинг haiku: budsin-каналы с высоким priority и mapping `claude-haiku-5.5→claude-haiku-4-5` подменяют модель — при жалобе «haiku отдаёт 4.5» первым делом проверить budsin в abilities/model_mapping и удалить его haiku-строки.
- Проверка оригинальности ответа: `id` НЕ должен начинаться с `fw-` (fireworks-подмена), `model` в ответе = `claude-haiku-5.5`.
## 5. 2captcha для этого проекта (рабочий ключ в .env авторег-проекта, TWOCAPTCHA_KEY)
- Баланс/задачи ТОЛЬКО `POST https://api.2captcha.com/res.php` с lowercase-параметрами; GET → ERROR_EMPTY_METHOD; домен `2captcha.com/res.php` → 400 (Cloudflare).
- Баланс приходит в поле `request` как строка.
- Ключ из旧 записей памяти может быть опечаткой (ERROR_KEY_DOES_NOT_EXIST) — всегда валидировать getbalance перед волной.