chore(i18n): refresh uk translations
This commit is contained in:
parent
ed12e05f02
commit
10529b2fbd
@ -1,25 +1,42 @@
|
||||
---
|
||||
read_when:
|
||||
- Вам потрібен точний сигнатурний тип `definePluginEntry` або `defineChannelPluginEntry`
|
||||
- Ви хочете зрозуміти режим реєстрації (`full` проти `setup` проти метаданих CLI)
|
||||
- Вам потрібен точний сигнатурний тип definePluginEntry або defineChannelPluginEntry
|
||||
- Ви хочете зрозуміти режим реєстрації (повний vs setup vs метадані CLI)
|
||||
- Ви шукаєте параметри точки входу
|
||||
sidebarTitle: Entry Points
|
||||
summary: Довідник для definePluginEntry, defineChannelPluginEntry та defineSetupPluginEntry
|
||||
summary: Довідка для definePluginEntry, defineChannelPluginEntry і defineSetupPluginEntry
|
||||
title: Точки входу Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-15T16:36:52Z"
|
||||
generated_at: "2026-04-21T22:18:59Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: aabca25bc9b8ff1b5bb4852bafe83640ffeba006ea6b6a8eff4e2c37a10f1fe4
|
||||
source_hash: 304501849aa835b775f9b7b85c507aaeb532f90bf6473d7644f0e41144d9a914
|
||||
source_path: plugins/sdk-entrypoints.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Точки входу Plugin
|
||||
|
||||
Кожен plugin експортує типовий об’єкт точки входу. SDK надає три хелпери для
|
||||
Кожен plugin експортує типовий об’єкт точки входу. SDK надає три допоміжні функції для
|
||||
їх створення.
|
||||
|
||||
Для встановлених plugin-ів `package.json` має спрямовувати завантаження під час виконання на зібраний
|
||||
JavaScript, коли він доступний:
|
||||
|
||||
```json
|
||||
{
|
||||
"openclaw": {
|
||||
"extensions": ["./src/index.ts"],
|
||||
"runtimeExtensions": ["./dist/index.js"],
|
||||
"setupEntry": "./src/setup-entry.ts",
|
||||
"runtimeSetupEntry": "./dist/setup-entry.js"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`extensions` і `setupEntry` залишаються чинними записами вихідного коду для розробки у workspace та git
|
||||
checkout. `runtimeExtensions` і `runtimeSetupEntry` мають пріоритет, коли OpenClaw завантажує встановлений package, і дають змогу npm package-ам уникати компіляції TypeScript під час виконання. Якщо встановлений package оголошує лише запис вихідного коду TypeScript, OpenClaw використає відповідний зібраний `dist/*.js` peer, якщо він існує, а потім повернеться до вихідного коду TypeScript.
|
||||
|
||||
<Tip>
|
||||
**Шукаєте покрокове пояснення?** Дивіться [Channel Plugins](/uk/plugins/sdk-channel-plugins)
|
||||
або [Provider Plugins](/uk/plugins/sdk-provider-plugins) для покрокових інструкцій.
|
||||
@ -29,7 +46,7 @@ x-i18n:
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/plugin-entry`
|
||||
|
||||
Для provider plugins, tool plugins, hook plugins і всього, що **не** є
|
||||
Для plugin-ів провайдерів, plugin-ів інструментів, plugin-ів хуків і всього, що **не є**
|
||||
каналом обміну повідомленнями.
|
||||
|
||||
```typescript
|
||||
@ -50,7 +67,7 @@ export default definePluginEntry({
|
||||
});
|
||||
```
|
||||
|
||||
| Поле | Тип | Обов’язково | Типово |
|
||||
| Поле | Тип | Обов’язкове | Типове значення |
|
||||
| -------------- | ---------------------------------------------------------------- | ----------- | ------------------- |
|
||||
| `id` | `string` | Так | — |
|
||||
| `name` | `string` | Так | — |
|
||||
@ -60,18 +77,18 @@ export default definePluginEntry({
|
||||
| `register` | `(api: OpenClawPluginApi) => void` | Так | — |
|
||||
|
||||
- `id` має збігатися з вашим маніфестом `openclaw.plugin.json`.
|
||||
- `kind` призначений для ексклюзивних слотів: `"memory"` або `"context-engine"`.
|
||||
- `kind` призначене для ексклюзивних слотів: `"memory"` або `"context-engine"`.
|
||||
- `configSchema` може бути функцією для лінивого обчислення.
|
||||
- OpenClaw розв’язує та мемоїзує цю схему під час першого доступу, тож затратні
|
||||
побудовники схем запускаються лише один раз.
|
||||
- OpenClaw розв’язує та мемоізує цю схему під час першого доступу, тому дорогі
|
||||
побудовники схем виконуються лише один раз.
|
||||
|
||||
## `defineChannelPluginEntry`
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/channel-core`
|
||||
|
||||
Обгортає `definePluginEntry` логікою, специфічною для каналу. Автоматично викликає
|
||||
`api.registerChannel({ plugin })`, відкриває необов’язковий шов метаданих CLI
|
||||
для кореневої довідки та керує `registerFull` залежно від режиму реєстрації.
|
||||
Обгортає `definePluginEntry` логікою, специфічною для каналів. Автоматично викликає
|
||||
`api.registerChannel({ plugin })`, надає необов’язковий seam метаданих CLI для кореневої довідки та
|
||||
обмежує `registerFull` відповідно до режиму реєстрації.
|
||||
|
||||
```typescript
|
||||
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
@ -91,7 +108,7 @@ export default defineChannelPluginEntry({
|
||||
});
|
||||
```
|
||||
|
||||
| Поле | Тип | Обов’язково | Типово |
|
||||
| Поле | Тип | Обов’язкове | Типове значення |
|
||||
| --------------------- | ---------------------------------------------------------------- | ----------- | ------------------- |
|
||||
| `id` | `string` | Так | — |
|
||||
| `name` | `string` | Так | — |
|
||||
@ -102,33 +119,33 @@ export default defineChannelPluginEntry({
|
||||
| `registerCliMetadata` | `(api: OpenClawPluginApi) => void` | Ні | — |
|
||||
| `registerFull` | `(api: OpenClawPluginApi) => void` | Ні | — |
|
||||
|
||||
- `setRuntime` викликається під час реєстрації, щоб ви могли зберегти посилання
|
||||
на runtime (зазвичай через `createPluginRuntimeStore`). Воно пропускається під час
|
||||
захоплення метаданих CLI.
|
||||
- `registerCliMetadata` виконується і під час `api.registrationMode === "cli-metadata"`,
|
||||
і під час `api.registrationMode === "full"`.
|
||||
Використовуйте його як канонічне місце для дескрипторів CLI, що належать каналу,
|
||||
щоб коренева довідка не активувала plugin, а звичайна реєстрація команд CLI
|
||||
залишалася сумісною з повним завантаженням plugin.
|
||||
- `setRuntime` викликається під час реєстрації, тож ви можете зберегти посилання на runtime
|
||||
(зазвичай через `createPluginRuntimeStore`). Воно пропускається під час захоплення
|
||||
метаданих CLI.
|
||||
- `registerCliMetadata` виконується як під час `api.registrationMode === "cli-metadata"`,
|
||||
так і під час `api.registrationMode === "full"`.
|
||||
Використовуйте його як канонічне місце для дескрипторів CLI, що належать каналу, щоб
|
||||
коренева довідка залишалася без активації, а звичайна реєстрація команд CLI залишалася сумісною
|
||||
з повним завантаженням plugin-ів.
|
||||
- `registerFull` виконується лише коли `api.registrationMode === "full"`. Воно пропускається
|
||||
під час завантаження лише для налаштування.
|
||||
- Як і в `definePluginEntry`, `configSchema` може бути лінивою фабрикою, а OpenClaw
|
||||
мемоїзує розв’язану схему під час першого доступу.
|
||||
- Для кореневих команд CLI, що належать plugin, віддавайте перевагу `api.registerCli(..., { descriptors: [...] })`,
|
||||
коли хочете, щоб команда лишалася ліниво завантажуваною, але не зникала з
|
||||
дерева розбору кореневого CLI. Для channel plugins краще реєструвати ці дескриптори
|
||||
з `registerCliMetadata(...)`, а `registerFull(...)` залишати для суто runtime-роботи.
|
||||
- Якщо `registerFull(...)` також реєструє методи Gateway RPC, тримайте їх у
|
||||
префіксі, специфічному для plugin. Зарезервовані простори назв адміністрування ядра (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) завжди примусово переводяться до
|
||||
під час завантаження лише для setup.
|
||||
- Як і у `definePluginEntry`, `configSchema` може бути лінивою фабрикою, а OpenClaw
|
||||
мемоізує розв’язану схему під час першого доступу.
|
||||
- Для кореневих команд CLI, що належать plugin-у, віддавайте перевагу `api.registerCli(..., { descriptors: [...] })`,
|
||||
якщо хочете, щоб команда залишалася ліниво завантажуваною без зникнення з
|
||||
дерева розбору кореневого CLI. Для channel plugin-ів краще реєструвати ці дескриптори
|
||||
з `registerCliMetadata(...)`, а `registerFull(...)` зосередити на роботі, потрібній лише під час виконання.
|
||||
- Якщо `registerFull(...)` також реєструє методи Gateway RPC, залишайте їх на
|
||||
префіксі, специфічному для plugin-а. Зарезервовані простори імен core admin (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) завжди примусово приводяться до
|
||||
`operator.admin`.
|
||||
|
||||
## `defineSetupPluginEntry`
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/channel-core`
|
||||
|
||||
Для полегшеного файла `setup-entry.ts`. Повертає лише `{ plugin }` без
|
||||
runtime або логіки CLI.
|
||||
Для полегшеного файлу `setup-entry.ts`. Повертає лише `{ plugin }` без
|
||||
логіки runtime або CLI.
|
||||
|
||||
```typescript
|
||||
import { defineSetupPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
@ -136,28 +153,27 @@ import { defineSetupPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
export default defineSetupPluginEntry(myChannelPlugin);
|
||||
```
|
||||
|
||||
OpenClaw завантажує це замість повної точки входу, коли канал вимкнений,
|
||||
не налаштований або коли ввімкнене відкладене завантаження. Дивіться
|
||||
[Налаштування та конфігурація](/uk/plugins/sdk-setup#setup-entry), щоб зрозуміти,
|
||||
коли це має значення.
|
||||
OpenClaw завантажує це замість повної точки входу, коли канал вимкнено,
|
||||
не налаштовано або коли ввімкнено відкладене завантаження. Див.
|
||||
[Setup and Config](/uk/plugins/sdk-setup#setup-entry), щоб зрозуміти, коли це має значення.
|
||||
|
||||
На практиці поєднуйте `defineSetupPluginEntry(...)` із вузькими сімействами
|
||||
хелперів для налаштування:
|
||||
допоміжних функцій setup:
|
||||
|
||||
- `openclaw/plugin-sdk/setup-runtime` для безпечних для runtime хелперів налаштування, таких як
|
||||
безпечні для імпорту адаптери setup patch, виведення приміток пошуку,
|
||||
`promptResolvedAllowFrom`, `splitSetupEntries` і делеговані проксі налаштування
|
||||
- `openclaw/plugin-sdk/channel-setup` для поверхонь налаштування з необов’язковим встановленням
|
||||
- `openclaw/plugin-sdk/setup-tools` для хелперів CLI/архіву/документації для налаштування/встановлення
|
||||
- `openclaw/plugin-sdk/setup-runtime` для безпечних для runtime допоміжних функцій setup, таких як
|
||||
import-safe адаптери патчів setup, вивід lookup-note,
|
||||
`promptResolvedAllowFrom`, `splitSetupEntries` і делеговані проксі setup
|
||||
- `openclaw/plugin-sdk/channel-setup` для поверхонь setup з необов’язковим встановленням
|
||||
- `openclaw/plugin-sdk/setup-tools` для допоміжних функцій setup/install CLI/archive/docs
|
||||
|
||||
Тримайте важкі SDK, реєстрацію CLI та довгоживучі runtime-сервіси в повній
|
||||
точці входу.
|
||||
|
||||
Вбудовані workspace channels, які розділяють поверхні налаштування та runtime,
|
||||
можуть натомість використовувати `defineBundledChannelSetupEntry(...)` з
|
||||
`openclaw/plugin-sdk/channel-entry-contract`. Цей контракт дозволяє точці входу
|
||||
налаштування зберігати безпечні для setup експорти plugin/secrets і водночас
|
||||
відкривати setter для runtime:
|
||||
Вбудовані workspace-канали, які розділяють поверхні setup і runtime, можуть
|
||||
замість цього використовувати `defineBundledChannelSetupEntry(...)` з
|
||||
`openclaw/plugin-sdk/channel-entry-contract`. Цей контракт дає змогу
|
||||
точці входу setup зберігати безпечні для setup експорти plugin/secrets, водночас надаючи
|
||||
setter runtime:
|
||||
|
||||
```typescript
|
||||
import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
||||
@ -175,22 +191,22 @@ export default defineBundledChannelSetupEntry({
|
||||
});
|
||||
```
|
||||
|
||||
Використовуйте цей вбудований контракт лише тоді, коли потокам налаштування
|
||||
справді потрібен полегшений setter runtime до завантаження повної точки входу каналу.
|
||||
Використовуйте цей вбудований контракт лише тоді, коли потокам setup справді потрібен полегшений
|
||||
setter runtime до завантаження повної точки входу каналу.
|
||||
|
||||
## Режим реєстрації
|
||||
|
||||
`api.registrationMode` повідомляє вашому plugin, як саме його було завантажено:
|
||||
`api.registrationMode` повідомляє вашому plugin-у, як саме його було завантажено:
|
||||
|
||||
| Режим | Коли | Що реєструвати |
|
||||
| ----------------- | --------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `"full"` | Звичайний запуск Gateway | Усе |
|
||||
| `"setup-only"` | Вимкнений/неналаштований канал | Лише реєстрацію каналу |
|
||||
| `"setup-runtime"` | Потік налаштування з доступним runtime | Реєстрацію каналу плюс лише полегшений runtime, потрібний до завантаження повної точки входу |
|
||||
| `"cli-metadata"` | Коренева довідка / захоплення метаданих CLI | Лише дескриптори CLI |
|
||||
| Режим | Коли | Що реєструвати |
|
||||
| ---------------- | --------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `"full"` | Звичайний запуск Gateway | Усе |
|
||||
| `"setup-only"` | Вимкнений/неналаштований канал | Лише реєстрацію каналу |
|
||||
| `"setup-runtime"`| Потік setup із доступним runtime | Реєстрацію каналу плюс лише полегшений runtime, потрібний до завантаження повної точки входу |
|
||||
| `"cli-metadata"` | Коренева довідка / захоплення метаданих CLI | Лише дескриптори CLI |
|
||||
|
||||
`defineChannelPluginEntry` обробляє цей поділ автоматично. Якщо ви використовуєте
|
||||
`definePluginEntry` напряму для каналу, перевіряйте режим самостійно:
|
||||
`defineChannelPluginEntry` обробляє це розділення автоматично. Якщо ви використовуєте
|
||||
`definePluginEntry` безпосередньо для каналу, перевіряйте режим самостійно:
|
||||
|
||||
```typescript
|
||||
register(api) {
|
||||
@ -202,42 +218,42 @@ register(api) {
|
||||
api.registerChannel({ plugin: myPlugin });
|
||||
if (api.registrationMode !== "full") return;
|
||||
|
||||
// Важкі реєстрації лише для runtime
|
||||
// Heavy runtime-only registrations
|
||||
api.registerService(/* ... */);
|
||||
}
|
||||
```
|
||||
|
||||
Сприймайте `"setup-runtime"` як вікно, у якому поверхні запуску лише для налаштування
|
||||
мають існувати без повторного входу в повний runtime вбудованого каналу. Добре
|
||||
підходять реєстрація каналу, безпечні для setup HTTP-маршрути, безпечні для setup
|
||||
методи Gateway і делеговані хелпери налаштування. Важкі фонові сервіси, реєстратори CLI
|
||||
та ініціалізація provider/client SDK усе ще мають належати до `"full"`.
|
||||
Розглядайте `"setup-runtime"` як вікно, у якому поверхні запуску лише для setup
|
||||
мають існувати без повторного входу в повний вбудований runtime каналу. Добре підходять
|
||||
реєстрація каналу, безпечні для setup HTTP-маршрути, безпечні для setup методи Gateway і
|
||||
делеговані допоміжні функції setup. Важкі фонові сервіси, реєстратори CLI та
|
||||
завантаження SDK провайдерів/клієнтів, як і раніше, мають належати `"full"`.
|
||||
|
||||
Зокрема для реєстраторів CLI:
|
||||
|
||||
- використовуйте `descriptors`, коли реєстратор володіє однією або кількома кореневими командами і ви
|
||||
хочете, щоб OpenClaw ліниво завантажував справжній модуль CLI під час першого виклику
|
||||
- переконайтеся, що ці дескриптори охоплюють кожен корінь команди верхнього рівня, який відкриває
|
||||
- переконайтеся, що ці дескриптори охоплюють кожний корінь команди верхнього рівня, який відкриває
|
||||
реєстратор
|
||||
- використовуйте лише `commands` тільки для eager-шляхів сумісності
|
||||
- використовуйте лише `commands` тільки для шляхів сумісності з eager-завантаженням
|
||||
|
||||
## Форми plugin
|
||||
## Форми plugin-ів
|
||||
|
||||
OpenClaw класифікує завантажені plugins за їхньою поведінкою під час реєстрації:
|
||||
OpenClaw класифікує завантажені plugin-и за їхньою поведінкою під час реєстрації:
|
||||
|
||||
| Форма | Опис |
|
||||
| --------------------- | -------------------------------------------------- |
|
||||
| **plain-capability** | Один тип capability (наприклад, лише provider) |
|
||||
| Форма | Опис |
|
||||
| --------------------- | ------------------------------------------------- |
|
||||
| **plain-capability** | Один тип capability (наприклад, лише provider) |
|
||||
| **hybrid-capability** | Кілька типів capability (наприклад, provider + speech) |
|
||||
| **hook-only** | Лише hooks, без capability |
|
||||
| **non-capability** | Tools/commands/services, але без capability |
|
||||
| **hook-only** | Лише hooks, без capabilities |
|
||||
| **non-capability** | Tools/commands/services, але без capabilities |
|
||||
|
||||
Використовуйте `openclaw plugins inspect <id>`, щоб побачити форму plugin.
|
||||
Використовуйте `openclaw plugins inspect <id>`, щоб побачити форму plugin-а.
|
||||
|
||||
## Пов’язані матеріали
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — API реєстрації та довідник за subpath
|
||||
- [Хелпери runtime](/uk/plugins/sdk-runtime) — `api.runtime` і `createPluginRuntimeStore`
|
||||
- [Налаштування та конфігурація](/uk/plugins/sdk-setup) — маніфест, точка входу налаштування, відкладене завантаження
|
||||
- [SDK Overview](/uk/plugins/sdk-overview) — API реєстрації та довідка щодо subpath
|
||||
- [Runtime Helpers](/uk/plugins/sdk-runtime) — `api.runtime` і `createPluginRuntimeStore`
|
||||
- [Setup and Config](/uk/plugins/sdk-setup) — маніфест, точка входу setup, відкладене завантаження
|
||||
- [Channel Plugins](/uk/plugins/sdk-channel-plugins) — побудова об’єкта `ChannelPlugin`
|
||||
- [Provider Plugins](/uk/plugins/sdk-provider-plugins) — реєстрація provider та hooks
|
||||
- [Provider Plugins](/uk/plugins/sdk-provider-plugins) — реєстрація провайдерів і hooks
|
||||
|
||||
@ -1,27 +1,27 @@
|
||||
---
|
||||
read_when:
|
||||
- Представлення ClawHub новим користувачам
|
||||
- Установлення, пошук або публікація Skills чи plugins
|
||||
- Пояснення прапорців ClawHub CLI і поведінки sync
|
||||
summary: 'Посібник з ClawHub: публічний реєстр, нативні сценарії встановлення OpenClaw і робочі процеси ClawHub CLI'
|
||||
- Встановлення, пошук або публікація Skills чи plugin-ів
|
||||
- Пояснення прапорців CLI ClawHub і поведінки синхронізації
|
||||
summary: 'Посібник ClawHub: публічний реєстр, нативні сценарії встановлення OpenClaw і робочі процеси CLI ClawHub'
|
||||
title: ClawHub
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T18:19:30Z"
|
||||
generated_at: "2026-04-21T22:18:59Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e65b3fd770ca96a5dd828dce2dee4ef127268f4884180a912f43d7744bc5706f
|
||||
source_hash: 88980eb2f48c5298aec5b697e8e50762c3df5a4114f567e69424a1cb36e5102e
|
||||
source_path: tools/clawhub.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# ClawHub
|
||||
|
||||
ClawHub — це публічний реєстр для **Skills і plugins OpenClaw**.
|
||||
ClawHub — це публічний реєстр для **Skills і plugin-ів OpenClaw**.
|
||||
|
||||
- Використовуйте нативні команди `openclaw` для пошуку/встановлення/оновлення Skills і встановлення
|
||||
plugins з ClawHub.
|
||||
- Використовуйте окремий CLI `clawhub`, коли потрібні автентифікація реєстру, публікація, видалення,
|
||||
відновлення або робочі процеси sync.
|
||||
plugin-ів із ClawHub.
|
||||
- Використовуйте окремий CLI `clawhub`, коли вам потрібні автентифікація реєстру, публікація, видалення,
|
||||
відновлення або робочі процеси синхронізації.
|
||||
|
||||
Сайт: [clawhub.ai](https://clawhub.ai)
|
||||
|
||||
@ -42,7 +42,7 @@ openclaw plugins install clawhub:<package>
|
||||
openclaw plugins update --all
|
||||
```
|
||||
|
||||
Специфікації plugins у простому npm-safe форматі також перевіряються в ClawHub перед npm:
|
||||
Специфікації plugin-ів у простому форматі, безпечному для npm, також перевіряються в ClawHub перед npm:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
@ -51,57 +51,57 @@ openclaw plugins install openclaw-codex-app-server
|
||||
Нативні команди `openclaw` встановлюють у ваш активний workspace і зберігають
|
||||
метадані джерела, щоб подальші виклики `update` могли залишатися в ClawHub.
|
||||
|
||||
Під час установлення plugins перевіряється сумісність заявлених `pluginApi` і `minGatewayVersion`
|
||||
ще до запуску встановлення архіву, тому несумісні хости рано завершуються у безпечний спосіб
|
||||
замість часткового встановлення пакета.
|
||||
Встановлення plugin-ів перевіряє заявлену сумісність `pluginApi` і `minGatewayVersion`
|
||||
до запуску встановлення архіву, тож несумісні хости рано завершуються в безпечному режимі,
|
||||
замість часткового встановлення пакунка.
|
||||
|
||||
`openclaw plugins install clawhub:...` приймає лише сімейства plugins, які можна встановити.
|
||||
Якщо пакет ClawHub насправді є skill, OpenClaw зупиняється і натомість вказує вам на
|
||||
`openclaw skills install <slug>`.
|
||||
`openclaw plugins install clawhub:...` приймає лише сімейства plugin-ів, які можна встановити.
|
||||
Якщо пакунок ClawHub насправді є skill, OpenClaw зупиниться й натомість вкаже вам
|
||||
на `openclaw skills install <slug>`.
|
||||
|
||||
## Що таке ClawHub
|
||||
|
||||
- Публічний реєстр для Skills і plugins OpenClaw.
|
||||
- Версіоноване сховище пакетів skills і метаданих.
|
||||
- Публічний реєстр для Skills і plugin-ів OpenClaw.
|
||||
- Версійне сховище bundle-ів Skills і метаданих.
|
||||
- Поверхня виявлення для пошуку, тегів і сигналів використання.
|
||||
|
||||
## Як це працює
|
||||
|
||||
1. Користувач публікує пакет skill (файли + метадані).
|
||||
2. ClawHub зберігає пакет, аналізує метадані та призначає версію.
|
||||
1. Користувач публікує bundle skill-а (файли + метадані).
|
||||
2. ClawHub зберігає bundle, розбирає метадані й призначає версію.
|
||||
3. Реєстр індексує skill для пошуку й виявлення.
|
||||
4. Користувачі переглядають, завантажують і встановлюють Skills в OpenClaw.
|
||||
|
||||
## Що можна робити
|
||||
## Що ви можете робити
|
||||
|
||||
- Публікувати нові Skills і нові версії наявних Skills.
|
||||
- Знаходити Skills за назвою, тегами або пошуком.
|
||||
- Завантажувати пакети skills і переглядати їхні файли.
|
||||
- Повідомляти про Skills, які є шкідливими або небезпечними.
|
||||
- Знаходити Skills за назвою, тегами або через пошук.
|
||||
- Завантажувати bundle-и Skills і переглядати їхні файли.
|
||||
- Повідомляти про Skills, які є зловмисними або небезпечними.
|
||||
- Якщо ви модератор, приховувати, показувати, видаляти або банити.
|
||||
|
||||
## Для кого це призначено (зручно для початківців)
|
||||
## Для кого це (дружньо до початківців)
|
||||
|
||||
Якщо ви хочете додати нові можливості своєму агенту OpenClaw, ClawHub — найпростіший спосіб знайти та встановити Skills. Вам не потрібно знати, як працює бекенд. Ви можете:
|
||||
Якщо ви хочете додати нові можливості до свого агента OpenClaw, ClawHub — це найпростіший спосіб знайти й установити Skills. Вам не потрібно знати, як працює бекенд. Ви можете:
|
||||
|
||||
- Шукати Skills звичайною мовою.
|
||||
- Установлювати skill у свій workspace.
|
||||
- Установити skill у свій workspace.
|
||||
- Пізніше оновлювати Skills однією командою.
|
||||
- Робити резервні копії власних Skills через публікацію.
|
||||
- Робити резервні копії власних Skills, публікуючи їх.
|
||||
|
||||
## Швидкий старт (без технічних деталей)
|
||||
## Швидкий старт (нетехнічний)
|
||||
|
||||
1. Знайдіть те, що вам потрібно:
|
||||
- `openclaw skills search "calendar"`
|
||||
2. Установіть skill:
|
||||
- `openclaw skills install <skill-slug>`
|
||||
3. Запустіть нову сесію OpenClaw, щоб він підхопив новий skill.
|
||||
4. Якщо ви хочете публікувати або керувати автентифікацією реєстру, також установіть окремий
|
||||
CLI `clawhub`.
|
||||
4. Якщо ви хочете публікувати або керувати автентифікацією реєстру, також установіть
|
||||
окремий CLI `clawhub`.
|
||||
|
||||
## Установлення ClawHub CLI
|
||||
## Установлення CLI ClawHub
|
||||
|
||||
Він потрібен лише для робочих процесів з автентифікацією реєстру, таких як publish/sync:
|
||||
Це потрібно лише для робочих процесів з автентифікацією реєстру, таких як publish/sync:
|
||||
|
||||
```bash
|
||||
npm i -g clawhub
|
||||
@ -115,87 +115,87 @@ pnpm add -g clawhub
|
||||
|
||||
Нативна команда `openclaw skills install` встановлює в каталог `skills/`
|
||||
активного workspace. `openclaw plugins install clawhub:...` записує звичайне кероване
|
||||
встановлення plugin плюс метадані джерела ClawHub для оновлень.
|
||||
встановлення plugin-а разом із метаданими джерела ClawHub для оновлень.
|
||||
|
||||
Анонімні встановлення plugins з ClawHub також безпечно завершуються для приватних пакетів.
|
||||
Спільнота або інші неофіційні канали все ще можуть виконати встановлення, але OpenClaw попереджає,
|
||||
щоб оператори могли перевірити джерело й валідацію перед увімкненням.
|
||||
Анонімні встановлення plugin-ів із ClawHub також безпечно завершуються помилкою для приватних пакунків.
|
||||
Plugin-и спільноти або інших неофіційних каналів усе ще можна встановити, але OpenClaw попереджає,
|
||||
щоб оператори могли перевірити джерело та верифікацію перед увімкненням.
|
||||
|
||||
Окремий CLI `clawhub` також установлює Skills у `./skills` у вашому
|
||||
поточному робочому каталозі. Якщо налаштовано workspace OpenClaw, `clawhub`
|
||||
перемикається на цей workspace, якщо ви не перевизначите `--workdir` (або
|
||||
`CLAWHUB_WORKDIR`). OpenClaw завантажує Skills workspace з `<workspace>/skills`
|
||||
і підхоплює їх у **наступній** сесії. Якщо ви вже використовуєте
|
||||
`CLAWHUB_WORKDIR`). OpenClaw завантажує Skills workspace із `<workspace>/skills`
|
||||
і підхопить їх у **наступній** сесії. Якщо ви вже використовуєте
|
||||
`~/.openclaw/skills` або вбудовані Skills, Skills workspace мають пріоритет.
|
||||
|
||||
Докладніше про те, як Skills завантажуються, спільно використовуються й обмежуються, див.
|
||||
у [Skills](/tools/skills).
|
||||
[Skills](/uk/tools/skills).
|
||||
|
||||
## Огляд системи Skills
|
||||
|
||||
Skill — це версіонований пакет файлів, який навчає OpenClaw виконувати
|
||||
Skill — це bundle файлів із версіями, який навчає OpenClaw виконувати
|
||||
певне завдання. Кожна публікація створює нову версію, а реєстр зберігає
|
||||
історію версій, щоб користувачі могли перевіряти зміни.
|
||||
|
||||
Типовий skill містить:
|
||||
|
||||
- Файл `SKILL.md` з основним описом і використанням.
|
||||
- Необов’язкові конфігурації, scripts або допоміжні файли, які використовує skill.
|
||||
- Метадані, такі як теги, summary і вимоги до встановлення.
|
||||
- Необов’язкові конфігурації, скрипти або допоміжні файли, які використовує skill.
|
||||
- Метадані, як-от теги, стислий опис і вимоги до встановлення.
|
||||
|
||||
ClawHub використовує метадані для покращення виявлення та безпечного відкриття можливостей Skills.
|
||||
Реєстр також відстежує сигнали використання (наприклад, stars і downloads), щоб покращувати
|
||||
ClawHub використовує метадані для виявлення й безпечного показу можливостей skill-а.
|
||||
Реєстр також відстежує сигнали використання (наприклад, зірки та завантаження), щоб покращувати
|
||||
ранжування та видимість.
|
||||
|
||||
## Що надає сервіс (можливості)
|
||||
|
||||
- **Публічний перегляд** Skills та їхнього вмісту `SKILL.md`.
|
||||
- **Пошук** на основі embeddings (векторний пошук), а не лише ключових слів.
|
||||
- **Контроль версій** із semver, changelog-ами й тегами (включно з `latest`).
|
||||
- **Керування версіями** із semver, changelog-ами й тегами (включно з `latest`).
|
||||
- **Завантаження** як zip для кожної версії.
|
||||
- **Stars і comments** для зворотного зв’язку спільноти.
|
||||
- **Гачки moderation** для схвалень і аудитів.
|
||||
- **CLI-friendly API** для автоматизації та сценаріїв.
|
||||
- **Зірки та коментарі** для зворотного зв’язку від спільноти.
|
||||
- **Механізми модерації** для схвалень і аудитів.
|
||||
- **CLI-дружній API** для автоматизації та скриптів.
|
||||
|
||||
## Безпека та moderation
|
||||
## Безпека й модерація
|
||||
|
||||
ClawHub за замовчуванням відкритий. Завантажувати Skills може будь-хто, але для
|
||||
публікації обліковий запис GitHub має існувати щонайменше один тиждень. Це допомагає стримувати
|
||||
зловживання, не блокуючи легітимних учасників.
|
||||
ClawHub відкритий за замовчуванням. Будь-хто може завантажувати Skills, але для публікації
|
||||
обліковому запису GitHub має бути щонайменше один тиждень. Це допомагає стримувати зловживання,
|
||||
не блокуючи добросовісних учасників.
|
||||
|
||||
Скарги й moderation:
|
||||
Скарги й модерація:
|
||||
|
||||
- Будь-який користувач, який увійшов у систему, може поскаржитися на skill.
|
||||
- Будь-який користувач, що ввійшов у систему, може поскаржитися на skill.
|
||||
- Причини скарги є обов’язковими та записуються.
|
||||
- Кожен користувач може мати не більше 20 активних скарг одночасно.
|
||||
- Skills із понад 3 унікальними скаргами типово приховуються автоматично.
|
||||
- Модератори можуть переглядати приховані Skills, показувати їх знову, видаляти або банити користувачів.
|
||||
- Зловживання функцією скарг може призвести до бану облікового запису.
|
||||
- Кожен користувач може мати до 20 активних скарг одночасно.
|
||||
- Skills із понад 3 унікальними скаргами автоматично приховуються за замовчуванням.
|
||||
- Модератори можуть переглядати приховані Skills, показувати їх, видаляти або банити користувачів.
|
||||
- Зловживання функцією скарг може призвести до блокування облікового запису.
|
||||
|
||||
Хочете стати модератором? Запитайте в Discord OpenClaw і зв’яжіться з
|
||||
модератором або супровідником.
|
||||
Цікавитеся роллю модератора? Запитайте в Discord OpenClaw і зв’яжіться з
|
||||
модератором або супроводжувачем.
|
||||
|
||||
## Команди CLI і параметри
|
||||
## Команди й параметри CLI
|
||||
|
||||
Глобальні параметри (застосовуються до всіх команд):
|
||||
|
||||
- `--workdir <dir>`: Робочий каталог (типово: поточний каталог; якщо можливо, використовується workspace OpenClaw).
|
||||
- `--dir <dir>`: Каталог Skills відносно workdir (типово: `skills`).
|
||||
- `--workdir <dir>`: Робочий каталог (типово: поточний каталог; із переходом до workspace OpenClaw).
|
||||
- `--dir <dir>`: Каталог Skills, відносний до workdir (типово: `skills`).
|
||||
- `--site <url>`: Базова URL-адреса сайту (вхід через браузер).
|
||||
- `--registry <url>`: Базова URL-адреса API реєстру.
|
||||
- `--no-input`: Вимкнути prompts (неінтерактивний режим).
|
||||
- `--no-input`: Вимкнути запити (неінтерактивний режим).
|
||||
- `-V, --cli-version`: Вивести версію CLI.
|
||||
|
||||
Автентифікація:
|
||||
|
||||
- `clawhub login` (потік через браузер) або `clawhub login --token <token>`
|
||||
- `clawhub login` (сценарій через браузер) або `clawhub login --token <token>`
|
||||
- `clawhub logout`
|
||||
- `clawhub whoami`
|
||||
|
||||
Параметри:
|
||||
|
||||
- `--token <token>`: Вставити API token.
|
||||
- `--label <label>`: Мітка, що зберігається для token-ів входу через браузер (типово: `CLI token`).
|
||||
- `--token <token>`: Вставити API-токен.
|
||||
- `--label <label>`: Мітка, що зберігається для токенів входу через браузер (типово: `CLI token`).
|
||||
- `--no-browser`: Не відкривати браузер (потрібен `--token`).
|
||||
|
||||
Пошук:
|
||||
@ -207,49 +207,49 @@ ClawHub за замовчуванням відкритий. Завантажув
|
||||
|
||||
- `clawhub install <slug>`
|
||||
- `--version <version>`: Установити конкретну версію.
|
||||
- `--force`: Перезаписати, якщо папка вже існує.
|
||||
- `--force`: Перезаписати, якщо каталог уже існує.
|
||||
|
||||
Оновлення:
|
||||
|
||||
- `clawhub update <slug>`
|
||||
- `clawhub update --all`
|
||||
- `--version <version>`: Оновити до конкретної версії (лише для одного slug).
|
||||
- `--force`: Перезаписати, коли локальні файли не відповідають жодній опублікованій версії.
|
||||
- `--force`: Перезаписати, якщо локальні файли не відповідають жодній опублікованій версії.
|
||||
|
||||
Список:
|
||||
|
||||
- `clawhub list` (читає `.clawhub/lock.json`)
|
||||
|
||||
Публікація skills:
|
||||
Публікація Skills:
|
||||
|
||||
- `clawhub skill publish <path>`
|
||||
- `--slug <slug>`: Slug skill.
|
||||
- `--name <name>`: Видиме ім’я.
|
||||
- `--slug <slug>`: Slug skill-а.
|
||||
- `--name <name>`: Відображувана назва.
|
||||
- `--version <version>`: Версія semver.
|
||||
- `--changelog <text>`: Текст changelog (може бути порожнім).
|
||||
- `--changelog <text>`: Текст changelog-а (може бути порожнім).
|
||||
- `--tags <tags>`: Теги, розділені комами (типово: `latest`).
|
||||
|
||||
Публікація plugins:
|
||||
Публікація plugin-ів:
|
||||
|
||||
- `clawhub package publish <source>`
|
||||
- `<source>` може бути локальною папкою, `owner/repo`, `owner/repo@ref` або URL GitHub.
|
||||
- `--dry-run`: Побудувати точний план публікації без фактичного завантаження.
|
||||
- `--json`: Вивести машинозчитуваний результат для CI.
|
||||
- `--source-repo`, `--source-commit`, `--source-ref`: Необов’язкові перевизначення, коли автодетекції недостатньо.
|
||||
- `<source>` може бути локальним каталогом, `owner/repo`, `owner/repo@ref` або URL-адресою GitHub.
|
||||
- `--dry-run`: Побудувати точний план публікації без завантаження будь-чого.
|
||||
- `--json`: Вивести результат у машиночитному форматі для CI.
|
||||
- `--source-repo`, `--source-commit`, `--source-ref`: Необов’язкові перевизначення, коли автовизначення недостатньо.
|
||||
|
||||
Видалення/відновлення (лише owner/admin):
|
||||
Видалення/відновлення (лише власник/адміністратор):
|
||||
|
||||
- `clawhub delete <slug> --yes`
|
||||
- `clawhub undelete <slug> --yes`
|
||||
|
||||
Sync (сканування локальних Skills + публікація нових/оновлених):
|
||||
Синхронізація (сканування локальних Skills + публікація нових/оновлених):
|
||||
|
||||
- `clawhub sync`
|
||||
- `--root <dir...>`: Додаткові корені сканування.
|
||||
- `--all`: Завантажити все без prompts.
|
||||
- `--root <dir...>`: Додаткові кореневі каталоги для сканування.
|
||||
- `--all`: Завантажити все без запитів.
|
||||
- `--dry-run`: Показати, що буде завантажено.
|
||||
- `--bump <type>`: `patch|minor|major` для оновлень (типово: `patch`).
|
||||
- `--changelog <text>`: Changelog для неінтерактивних оновлень.
|
||||
- `--changelog <text>`: Текст changelog-а для неінтерактивних оновлень.
|
||||
- `--tags <tags>`: Теги, розділені комами (типово: `latest`).
|
||||
- `--concurrency <n>`: Перевірки реєстру (типово: 4).
|
||||
|
||||
@ -273,9 +273,9 @@ clawhub install my-skill-pack
|
||||
clawhub update --all
|
||||
```
|
||||
|
||||
### Резервне копіювання своїх Skills (publish або sync)
|
||||
### Резервне копіювання ваших Skills (publish або sync)
|
||||
|
||||
Для окремої папки skill:
|
||||
Для одного каталогу skill-а:
|
||||
|
||||
```bash
|
||||
clawhub skill publish ./my-skill --slug my-skill --name "My Skill" --version 1.0.0 --tags latest
|
||||
@ -287,7 +287,7 @@ clawhub skill publish ./my-skill --slug my-skill --name "My Skill" --version 1.0
|
||||
clawhub sync --all
|
||||
```
|
||||
|
||||
### Публікація plugin з GitHub
|
||||
### Публікація plugin-а з GitHub
|
||||
|
||||
```bash
|
||||
clawhub package publish your-org/your-plugin --dry-run
|
||||
@ -296,7 +296,7 @@ clawhub package publish your-org/your-plugin@v1.0.0
|
||||
clawhub package publish https://github.com/your-org/your-plugin
|
||||
```
|
||||
|
||||
Plugins коду мають містити обов’язкові метадані OpenClaw у `package.json`:
|
||||
Code plugin-и повинні містити обов’язкові метадані OpenClaw у `package.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -304,7 +304,8 @@ Plugins коду мають містити обов’язкові метада
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"openclaw": {
|
||||
"extensions": ["./index.ts"],
|
||||
"extensions": ["./src/index.ts"],
|
||||
"runtimeExtensions": ["./dist/index.js"],
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.3.24-beta.2",
|
||||
"minGatewayVersion": "2026.3.24-beta.2"
|
||||
@ -317,30 +318,35 @@ Plugins коду мають містити обов’язкові метада
|
||||
}
|
||||
```
|
||||
|
||||
## Додаткові деталі (технічні)
|
||||
Опубліковані пакунки мають постачатися зі зібраним JavaScript і вказувати `runtimeExtensions`
|
||||
на цей вихід. Встановлення з checkout Git усе ще можуть повертатися до TypeScript-коду,
|
||||
коли зібраних файлів немає, але зібрані runtime entries дають змогу уникнути компіляції TypeScript
|
||||
під час запуску, doctor і завантаження plugin-ів.
|
||||
|
||||
### Контроль версій і теги
|
||||
## Додаткові подробиці (технічні)
|
||||
|
||||
### Керування версіями й теги
|
||||
|
||||
- Кожна публікація створює нову **semver**-версію `SkillVersion`.
|
||||
- Теги (як-от `latest`) вказують на версію; переміщення тегів дає змогу відкотитися.
|
||||
- Теги (наприклад, `latest`) вказують на версію; переміщення тегів дає змогу відкотитися.
|
||||
- Changelog-и прив’язуються до кожної версії й можуть бути порожніми під час sync або публікації оновлень.
|
||||
|
||||
### Локальні зміни проти версій у реєстрі
|
||||
|
||||
Оновлення порівнюють локальний вміст skill з версіями в реєстрі за допомогою content hash. Якщо локальні файли не відповідають жодній опублікованій версії, CLI запитує підтвердження перед перезаписом (або вимагає `--force` у неінтерактивних запусках).
|
||||
Оновлення порівнюють локальний вміст skill-а з версіями в реєстрі за допомогою хеша вмісту. Якщо локальні файли не відповідають жодній опублікованій версії, CLI запитує підтвердження перед перезаписом (або вимагає `--force` у неінтерактивних запусках).
|
||||
|
||||
### Сканування sync і резервні корені
|
||||
### Сканування sync і резервні кореневі каталоги
|
||||
|
||||
`clawhub sync` спочатку сканує ваш поточний workdir. Якщо Skills не знайдено, він переходить до відомих застарілих розташувань (наприклад, `~/openclaw/skills` і `~/.openclaw/skills`). Це зроблено, щоб знаходити старі встановлення skills без додаткових прапорців.
|
||||
`clawhub sync` спочатку сканує ваш поточний workdir. Якщо Skills не знайдено, він переходить до відомих застарілих розташувань (наприклад, `~/openclaw/skills` і `~/.openclaw/skills`). Це зроблено, щоб знаходити старі встановлення Skills без додаткових прапорців.
|
||||
|
||||
### Сховище і lockfile
|
||||
### Сховище й lockfile
|
||||
|
||||
- Установлені Skills записуються в `.clawhub/lock.json` у вашому workdir.
|
||||
- Auth tokens зберігаються у файлі конфігурації ClawHub CLI (можна перевизначити через `CLAWHUB_CONFIG_PATH`).
|
||||
- Токени автентифікації зберігаються у файлі конфігурації CLI ClawHub (перевизначається через `CLAWHUB_CONFIG_PATH`).
|
||||
|
||||
### Телеметрія (кількість установлень)
|
||||
### Телеметрія (кількість встановлень)
|
||||
|
||||
Коли ви запускаєте `clawhub sync`, будучи в системі, CLI надсилає мінімальний знімок для обчислення кількості встановлень. Це можна повністю вимкнути:
|
||||
Коли ви запускаєте `clawhub sync` у стані входу, CLI надсилає мінімальний знімок для обчислення кількості встановлень. Ви можете повністю це вимкнути:
|
||||
|
||||
```bash
|
||||
export CLAWHUB_DISABLE_TELEMETRY=1
|
||||
@ -348,8 +354,8 @@ export CLAWHUB_DISABLE_TELEMETRY=1
|
||||
|
||||
## Змінні середовища
|
||||
|
||||
- `CLAWHUB_SITE`: Перевизначає URL-адресу сайту.
|
||||
- `CLAWHUB_REGISTRY`: Перевизначає URL-адресу API реєстру.
|
||||
- `CLAWHUB_CONFIG_PATH`: Перевизначає місце, де CLI зберігає token/конфігурацію.
|
||||
- `CLAWHUB_WORKDIR`: Перевизначає типовий workdir.
|
||||
- `CLAWHUB_DISABLE_TELEMETRY=1`: Вимикає телеметрію для `sync`.
|
||||
- `CLAWHUB_SITE`: Перевизначити URL-адресу сайту.
|
||||
- `CLAWHUB_REGISTRY`: Перевизначити URL-адресу API реєстру.
|
||||
- `CLAWHUB_CONFIG_PATH`: Перевизначити місце, де CLI зберігає токен/конфігурацію.
|
||||
- `CLAWHUB_WORKDIR`: Перевизначити типовий workdir.
|
||||
- `CLAWHUB_DISABLE_TELEMETRY=1`: Вимкнути телеметрію для `sync`.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user