npx skills add ...
npx skills add https://page-craft.4partners.io --skill pagecraft-provider
Подключение провайдера публикации (сейчас 4CMS) к сайту PageCraft и проверка, какой провайдер уже привязан. Используй, когда пользователь говорит «подключи 4cms к сайту», «проверь, есть ли провайдер у сайта», «обнови 4cms-токен у сайта», «какой провайдер у сайта».
npx skills add https://page-craft.4partners.io --skill pagecraft-provider
Этот skill учит агента управлять провайдером публикации сайта в PageCraft через V1 REST API: проверять, какой провайдер привязан, и привязывать/обновлять 4CMS.
pagecraft-pages.Перед pages-publish ВСЕГДА вызывай node scripts/provider-get.mjs <site_id>.
provider_type: null — провайдера нет. Публикация невозможна. Сообщи пользователю и предложи привязать 4CMS (provider-fourcms-set.mjs) или подключить провайдера в UI.provider_type: "fourcms" — публикация через 4CMS, можно идти дальше.provider_type: "ftp" — публикация через FTP. Этот skill токен FTP не настраивает (нет соответствующего V1-эндпоинта); сообщи пользователю что настройка делается в UI PageCraft.PUT — это полная замена, а не мёрж. provider-fourcms-set.mjs затирает любой предыдущий конфиг (включая FTP). Если у сайта стоял ftp и пользователь хочет переключиться на fourcms — это ок, но предупреди пользователя что прежние FTP-настройки будут удалены и их придётся ввести заново при возврате к FTP.
Никогда не печатай токен в stdout / в логи. Передавай через CLI-аргумент или флаг --stdin. В сценариях для других людей предпочитай --stdin чтобы токен не попал в историю shell.
Валидность токена против реального 4CMS API не проверяется. Токен просто сохраняется. Реальная проверка произойдёт при первой публикации страницы. Если хочешь быть уверен — после provider-fourcms-set.mjs сделай тестовую публикацию страницы через pagecraft-pages и убедись, что 4CMS вернул ID статьи.
PAGECRAFT_API_KEY — обязательная переменная: API-ключ pb_xxxx... (создаётся в UI PageCraft → API keys).PAGECRAFT_API_URL — опциональная: базовый host, по умолчанию https://page-craft.4partners.io (префикс /api/v1 добавляется автоматически). Legacy-имя PAGE_CRAFT_API (host с /api/v1) ещё поддерживается как fallback.| Команда | Endpoint | Когда вызывать |
|---|---|---|
node scripts/provider-get.mjs <site_id> | GET /sites/{id}/provider | Перед публикацией / для проверки текущего состояния |
node scripts/provider-fourcms-set.mjs <site_id> <api_token> | PUT /sites/{id}/provider/fourcms | Привязать 4CMS или обновить токен |
node scripts/provider-fourcms-set.mjs <site_id> --stdin | то же | То же, но токен из stdin (безопаснее) |
Ответ:
или
Возможные значения: "fourcms", "ftp", null.
Прямым аргументом:
Через stdin (рекомендуется в скриптах):
Ответ:
pagecraft-pagesТипичный полный сценарий онбординга:
pagecraft-provider (этот skill) — provider-get → если null, provider-fourcms-set.pagecraft-s3 — s3-status → s3-upload для медиа (если нужно).pagecraft-pages — собрать страницу из блоков и опубликовать (pages-publish).Не пытайся опубликовать страницу через pagecraft-pages без привязанного провайдера — 4CMS-публикация упадёт.
| Код | Причина |
|---|---|
| 401 | Нет / неверный PAGECRAFT_API_KEY |
| 404 | Сайт не существует или принадлежит другому пользователю |
| 422 | Пустой api_token |
echo -n "tk_xxxxxxxxxxxxxxxx" | node scripts/provider-fourcms-set.mjs 1 --stdinnode scripts/provider-get.mjs 1
# → {"provider_type": "fourcms"}