На цій сторінці

На цій сторінці

Plugin internals

Перевизначення встановлення Plugin

Перевизначення встановлення Plugin дають змогу супроводжувачам спрямовувати встановлення Plugin під час налаштування на певний пакет npm або локальний tarball, створений командою npm pack, замість джерела з каталогу, вбудованого чи стандартного джерела npm. Вони призначені лише для E2E та перевірки пакетів; звичайні користувачі встановлюють плагіни за допомогою openclaw plugins install.

Середовище

Перевизначення вимкнені, якщо не задано обидві змінні:

bash
export OPENCLAW_ALLOW_PLUGIN_INSTALL_OVERRIDES=1export OPENCLAW_PLUGIN_INSTALL_OVERRIDES='{  "codex": "npm-pack:/tmp/openclaw-codex-2026.5.8.tgz",  "openclaw-web-search": "npm:@openclaw/web-search@2026.5.8"}'

Мапа перевизначень має формат JSON із ключами за ідентифікаторами плагінів. Значення підтримують:

Префікс Джерело
npm:<registry-spec> Пакети реєстру, точні версії або теги
npm-pack:<path.tgz> Локальні tarball-файли, створені командою npm pack; відносні шляхи визначаються від поточного робочого каталогу

Поведінка

Коли процес налаштування встановлює плагін, ідентифікатор якого є в мапі, OpenClaw використовує джерело перевизначення замість джерела з каталогу, вбудованого чи стандартного джерела npm. Це стосується початкового налаштування та будь-яких інших процесів, що використовують спільний інсталятор Plugin під час налаштування.

  • Перевизначення й надалі забезпечують відповідність очікуваному ідентифікатору плагіна: tarball, зіставлений із codex, має встановлювати плагін, ідентифікатор маніфесту якого — codex.
  • Перевизначення не успадковують офіційний статус довіреного джерела. Навіть коли запис каталогу зазвичай представляє пакет, що належить OpenClaw, перевизначення розглядається як надані оператором тестові вхідні дані.
  • Файли .env робочого простору не можуть увімкнути перевизначення встановлення; обидві змінні середовища є в списку заблокованих змінних dotenv робочого простору. Задавайте їх у довіреній оболонці, завданні CI або віддаленій тестовій команді, яка запускає OpenClaw.

E2E пакета

Використовуйте ізольований каталог стану, щоб установлені пакети та записи про встановлення не зачіпали ваш звичайний стан OpenClaw:

bash
npm pack extensions/codex --pack-destination /tmp OPENCLAW_STATE_DIR="$(mktemp -d)" \OPENCLAW_ALLOW_PLUGIN_INSTALL_OVERRIDES=1 \OPENCLAW_PLUGIN_INSTALL_OVERRIDES='{"codex":"npm-pack:/tmp/openclaw-codex-2026.5.8.tgz"}' \pnpm openclaw onboard --mode local

Перевірте встановлений пакет у каталозі стану:

bash
find "$OPENCLAW_STATE_DIR/npm/projects" -path '*/node_modules/@openclaw/codex/package.json' -printgrep -R '"@openclaw/codex"' "$OPENCLAW_STATE_DIR/npm/projects"/*/package-lock.json

Для E2E із реальним провайдером отримайте справжній ключ API з довіреної оболонки або секрету CI перед запуском тестової команди. Не виводьте ключі; повідомляйте лише джерело та чи був ключ наявний.

Was this useful?