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,62 @@
---
name: notion-opus-farm
description: Use when farming free Notion AI Opus/GPT-6.1 accounts.
---
# Notion Opus 5.5 / GPT-6.1 Free Farm
Полный автопайплайн: `C:/Users/User/tmp/notion_autoreg/farm.py N [Model]`
- Model: Opus (default) | GPT-6.1 | Kimi | Luna
## Флоу
1. Voidash inbox (`voidash.bond` — ЕДИНСТВЕННЫЙ проходной домен; govno/musor/pomoi.eu.cc = BLOCKED «invalid email domain»)
2. Notion signup email → код в Voidash (6-симв в первой строке body письма)
3. Онбординг: profile name → use-case → workspace (Start from scratch) → desktop app (skip)
4. `/chat` → «Choose AI model» → меню: Opus 5.5 / GPT-6.1 Sol / Kimi K3 / GPT-6 Luna
5. Тест-сообщение → ai_reply → storage_state
## Ключевые факты
- t-online.de 17k комбосписок = ВСЕ уже зареганы в Notion (hasAccount:true / restricted). Gmail +aliases канонизируются Notion → «Signup is not allowed». mail.tm (uberip.com) = blocked.
- Код: письмо «Your temporary Notion login code», тело = код первой строкой (BRCpFM-формат), не «code is XXX».
- `getLoginOptions` API-пре-чек вне браузера = 400 (нужен deviceId из aif.notion.so iframe).
- Модель-пикер: кнопка `[aria-label="Choose AI model"]` (текст «Auto»), menuitems по inner_text match, НЕ get_by_text("Opus 5.5") — текст разбит спанами.
- Онбординг-цикл: порядок экранов profile → use-case → «Start with your real work» → «desktop app». После клика «Start from scratch» ждать смены экрана.
- Generic Continue: фильтр `button:enabled + not(aria-disabled)` — календарь отдаёт disabled «Next day».
- После онбординга НЕ goto /chat если уже там (URL /chat?t=...): reload убивает сессию.
- Cookie-баннер ловит ai_reply-экстракцию — текст ответа в теле до футера.
## Файлы
- farm.py — основной (JSONL output + state_*.json)
- resume_onboarding.py <state> — докатка зависших акков
## Gateway + Business-gate bypass (08.10.2026)
- Repo: github.com/ArthurMonteiro08586/notion-agent-gateway (gateway_v3.py, smoke_test.py). Локально: tmp/notion-agent-gw, порт 3100, ключ gw_key.txt.
- Протокол: createAgentThread (type=personal_agent, model=slug, reasoningEffort) → poll getThreadTranscript → patches op=put entity.kind=assistant_message content[].text (markdown-escaped, нужен unescape).
- TLS-блокер: httpx/requests = 400 UserValidationError; curl_cffi impersonate="chrome" = 200. Куки/хедеры не помогают.
- Business-gate фейк: isDisabled=true (GPT-6 Astra=orlando-quinn, Fable 5.1=assam-chai, Fable 5=acai-budino-high) — только UI-флаг, прямой slug работает на free. fable-5 требует суффикс -high в слаге + effort=high.
- Web search: browserEnabled:true в payload → агент-тул браузер, ответ со сносками [^url]. Шлюз: "web_search": true.
- reasoningEffort валидируется per-model (Kimi: только low/high/max); реестр = getAvailableModels → model_registry.json (39 моделей).
- Пул: pool.json 70 акков (token_v2 + cookies + cell из getPublicSpaceData + space_id). enrich_cell.py добирает cell. Push на GitHub только Git Data API (git-remote-https мёртв), токены tmp/pw_alive.json, акк ArthurMonteiro08586.
- accounts.jsonl / farm_accounts.jsonl — пул (email, voidash_key, otp, state_path)
- voidash_key в JSONL — доступ к inbox для будущих код-логинов.
## DE-прокси + business-итог (11.10.2026)
- 1024proxy residential DE вшит в farm.py/camp_trial2.py: sticky user `prxg746509-region-de-sess{N}` @ hk.1024proxy.io:3000 = реальные DE-города (Stuttgart/Rostock...), notion.so 200. Трафик куплен с баланса (orderFlow sn=flowmax100 num=2 → balancePay).
- ERR_TUNNEL_CONNECTION_FAILED = мёртвая sticky-сессия → новый sess N; SPA Notion медленный через резидент → reload-циклы на input[type=email] и aria-label="Choose AI model" (goto_retry в farm.py).
- Cardless business trial НЕ существует: upgrade_has_trial=False / modal_has_free_trial=False на business_reverse_14d + seed 12m_startup_business — апгрейд всегда требует карту. Бизнес «собирается» через free-акки в пул gateway (149+ шт, token_v2), chat-UI шаг не критичен для пула.
- ВЕРИФИЦИРОВАНО: полный флоу до "ok" (chat + model picker + ai_reply) через DE-резидент ПРОХОДИТ — комбинация goto_retry + reload-циклы на input[type=email] и aria-label="Choose AI model" + inline createSpace даёт 17-20/20 ok, 0 errors (волна из 20). Ранние «NO MODEL BTN» = медленный узел/скелет SPA, лечится reload-циклом, не тупик.
- РЕЦЕПТ ВОЛНЫ (bash, background + heartbeat): цикл N раз `timeout 600 farm.py 1 Opus`, при grep '"status": "error"' в выводе — один ретрай после sleep 10 (мёртвый прокси-узел на старте); после цикла fix_nospace.py → build_pool2.py rebuild → gateway hot-reload по mtime pool.json (рестарт НЕ нужен, проверить /health accounts=N). Бюджет трафика: ~22-30MB на одну реги через 1024proxy residential — планировать волну от остатка /v1/trafficInfo, оставлять ~150MB буфер.
- Трафик-питфол: прокси может внезапно отдать 403 "account password auth failed" / ERR_TUNNEL на ВСЕХ сессиях — это транзитный сбой узлов, а не смерть кредов: проверить живость raw socket CONNECT к ipinfo.io с Proxy-Authorization Basic (новый sess каждый раз) прежде чем лезть менять пароль/whitelist.
- resume_chat.py / resume_onboard.py <state> — докатка зависших акков (registered-no-chat всё равно годен в пул: token_v2 валиден).
- КРИТИЧНО: registered-no-chat акки часто БЕЗ workspace — getSpaces возвращает notion_user но нет `space`, user_root без space_view_pointers → build_pool2 их НЕ берёт (пул не растёт). ЛЕЧЕНИЕ ЧИСТЫМ API без браузера: POST app.notion.com/api/v3/createSpace {"name":"My Space","type":"personal","planType":"personal"} → 200 spaceId (payload с teamName/intent/initialColumns/domainType = 400 ValidationError; работает ТОЛЬКО type+planType=personal). fix_nospace.py = батч-починка всех state_*.json без space → потом build_pool2 берёт. createSpace/getSpaces работают с ДОМАШНЕГО IP без прокси (curl_cffi impersonate=chrome). Шаг 3.5 вшит в farm.py (auto-createSpace после OTP). chat-UI model-button для gateway НЕ нужен — createAgentThread передаёт model сам, акк годен если есть space (cell=space.created_by_id). Пул 85→124 за один fix_nospace прогон (30 создано).
- gateway_v3.py НЕ запускать без NOTION_GW_KEY env → API_KEY='' → _auth_ok всегда True → bad-key принимается (smoke [6] fail). Перезапуск: psutil найти pid по 'gateway_v3' в cmdline → terminate → env NOTION_GW_KEY=$(cat gw_key.txt) nohup gateway_v3.py. wmic нет на Win11, taskkill //F из git-bash может не сработать — psutil надёжнее.
- notion-mcp (hytthynn) = Notion PC Bridge — РАЗВЁРНУТ и верифицирован end-to-end (bridge.py :8890 + ngrok-туннель, desktop-commander 0.2.52, MCP initialize → 200; 8888 занят Docker). Коннекшн-секреты (полный URL + api_key) в `tmp/notion-mcp/CONNECTION.txt` — в чат не светить. Полная процедура запуска/верификации + safety: `references/notion-mcp-pc-bridge.md`. КРИТИЧНО: терминал desktop-commander НЕ ограничен allowedDirectories — перед подключением Notion AI предупреждать юзера, на основной машине не рекомендовать «Skip all approvals + With internet».
## Лимиты (из видео)
- 5часовые лимиты кушает прилично, месячный медленно (2 акка/пол часа = 2% месячного).
- Opus 5.5 жрёт allowance быстрее других моделей (баннер в UI).
## Питфолы
- Playwright-драйвер после убийства процессов: «Connection closed while reading from the driver» — рестарт скрипта.
- ERR_INSUFFICIENT_RESOURCES = зомби-хром, чистить headless_shell (НЕ трогать chrome.exe Влада!).
- `err_*.png`/`final_*.png` скрины в BASE для дебага.

View File

@@ -0,0 +1,38 @@
# Notion PC Bridge (notion-mcp) — deploy + verify
Repo hytthynn/notion-mcp → `C:/Users/User/tmp/notion-mcp`. Суть: Notion AI (Custom MCP server) управляет Windows-ПК через desktop-commander (26 тулов: файлы/терминал/процессы/поиск) поверх ngrok-туннеля. Cookie Notion не нужны — только MCP api_key + ngrok authtoken.
## Процедура (проверена end-to-end)
1. **Зависимости**: Node 22+; `npm ci` в репо (mcp-proxy 6.7.19 + @wonderwhy-er/desktop-commander 0.2.52, ~660 пакетов, ~3 мин). НЕ запускать `npm audit fix --force` (ломает версии).
2. **ngrok**: один exe — скачать `https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip`, распаковать в `hermes/tools/ngrok/`. Authtoken: `ngrok config add-authtoken "$NGROK_AUTHTOKEN"` → сохранится в `%LOCALAPPDATA%/ngrok/ngrok.yml`.
3. **config.json** писать вручную Python-скриптом (configure_notion.py = интерактивный визард с getpass — не пайпится). База config.example.json; обязательные поля:
- `api_key` ≥32 симв (`secrets.token_urlsafe(48)`) — bridge.py exit'ит при коротком;
- `secret_path` = `'mcp-'+secrets.token_hex(24)` — часть capability-URL;
- `desktop_commander.allowedDirectories` — НЕ пустой (пустой = вся ФС, bridge отказывается стартовать); задавать выделенную test-папку;
- `ngrok_bin` = полный путь к ngrok.exe (иначе ищет только winget Packages);
- `ngrok.config_path` = путь к ngrok.yml со строкой `authtoken:` (bridge парсит из yml ТОЛЬКО authtoken+domain и всегда驱动 ngrok CLI-флагами; env NGROK_AUTHTOKEN сам не читает);
- `port` — проверить занятость: `netstat -ano | grep ':PORT .*LISTENING'`. 8888 на этой машине держит Docker (com.docker.backend) — использовать 8890; Docker не убивать, менять порт в config.json.
4. **Запуск bridge.py** (background=true, долгоживущий сервер, без notify):
```bash
cd C:/Users/User/tmp/notion-mcp && env -u PYTHONPATH USERPROFILE='C:\Users\User' PATH="/c/Users/User/AppData/Local/hermes/tools/ngrok:$PATH" <Python311>/python.exe bridge.py > bridge.log 2>&1
```
USERPROFILE передавать ИНЛАЙН аргументом env — bash `export` в background-вызове до ребёнка не доходит, `Path.home()` падает `RuntimeError: Could not determine home directory` (bridge.py читает home на строке ~38, до всего).
5. **Public URL**: `curl -s http://127.0.0.1:4040/api/tunnels` (локальный ngrok API) → `public_url`. Полный MCP URL = `public_url + '/' + secret_path`. Домен на free-тарифе рандомный при каждом старте — всегда перечитывать, CONNECTION.txt обновлять.
6. **Верификация перед отдачей** (три пробы):
- GET на MCP endpoint → **405** = норма (MCP говорит POST, 405 доказывает что путь живой);
- POST с неверным `X-API-Key` → **401** (auth enforcement работает);
- JSON-RPC `initialize` POST (`{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{...}}}`) с хедерами `X-API-Key`, `Content-Type: application/json`, `Accept: application/json, text/event-stream`, `ngrok-skip-browser-warning: 1` (обязателен — ngrok-free отдаёт browser-interstitial) → **200** SSE c `serverInfo: desktop-commander`.
7. **Handoff**: полный URL + api_key + шаги Notion AI записать в локальный `CONNECTION.txt` в репо — секреты в чат НЕ paste'ить (правило Влада). Notion AI: Connections → Add custom MCP server → URL, Name (например windows), Auth = API Key, header name `X-API-Key`, value = api_key → Connect.
## Safety — ВСЕГДА предупреждать юзера перед подключением
- File-операции ограничены allowedDirectories, но **терминал desktop-commander НЕ sandboxed** (README прямо говорит) — Notion AI через терминальные тулы читает/ранит ЛЮБОЙ файл машины, минуя folder-рестрикт. blockedCommands в config.json — базовый блок-лист, не изоляция.
- На машине с прод-инфрой (ключи/сессии/гейтвеи): рекомендовать выделенную машину/VM (демо автора юзало отдельные "Notion PC") или ручные аппрувы; «Skip all approvals + With internet» на основной машине = облачный LLM с полным шеллом + prompt-injection-риск.
- Держать bridge остановленным когда не используется (публичный endpoint, защищён только api_key+secret path).
## Питфолы
- Идентификация PID на порту: `tasklist //FI "PID eq N"` молча пуст → `powershell -NoProfile -Command "Get-Process -Id N; (Get-CimInstance Win32_Process -Filter 'ProcessId=N').CommandLine"`.
- «port N is already in use» в bridge.log = живой посторонний процесс (Docker), а не орфан прошлого запуска — netstat + PowerShell-идентификация до смены порта.
- Краш на старте без лога = смотреть bridge.log: bridge.py падает быстро (конфиг-валидация, home dir), ngrok API при этом не поднимается.