> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugin OC Path

Пакетний Plugin `oc-path` додає CLI [`openclaw path`](/uk/cli/path) для схеми
адресації файлів робочої області `oc://`. Він постачається в репозиторії OpenClaw у
`extensions/oc-path/`, але є опційним — встановлення/збирання залишає його неактивним, доки ви
не ввімкнете його.

Адреси `oc://` вказують на один кінцевий елемент (або wildcard-набір кінцевих елементів) усередині
файлу робочої області. Нині Plugin розуміє чотири типи файлів:

* **markdown** (`.md`, `.mdx`): frontmatter, розділи, елементи, поля
* **jsonc** (`.jsonc`, `.json5`, `.json`): коментарі та форматування зберігаються
* **jsonl** (`.jsonl`, `.ndjson`): записи, орієнтовані на рядки
* **yaml** (`.yaml`, `.yml`, `.lobster`): вузли мап/послідовностей/скалярів через
  API документа YAML

Ті, хто self-hostить, і розширення редакторів використовують CLI, щоб читати або записувати один кінцевий елемент
без прямого скриптування проти SDK; агенти й хуки сприймають його як
детерміновану основу, щоб byte-fidelity round-trip і захист через sentinel редагування
застосовувалися однаково для всіх типів.

## Навіщо його вмикати

Увімкніть `oc-path`, коли потрібно, щоб скрипти, хуки або локальні інструменти агентів вказували
на точну частину стану робочої області без вигадування парсера для кожної форми
файлу. Одна адреса `oc://` може називати ключ frontmatter у markdown, елемент розділу,
кінцевий елемент конфігурації JSONC, поле події JSONL або крок workflow YAML.

Це важливо для workflow мейнтейнерів, де зміна має бути малою,
придатною до аудиту й повторюваною: перевірити одне значення, знайти відповідні записи, dry-run
запису, а потім застосувати лише цей кінцевий елемент, залишивши коментарі, закінчення рядків і
сусіднє форматування без змін. Збереження цього як опційного Plugin дає досвідченим користувачам
основу адресації без додавання залежностей парсерів або CLI-поверхні в
ядро для інсталяцій, яким це ніколи не потрібно.

Поширені причини ввімкнути його:

* **Локальна автоматизація**: shell-скрипти можуть розв’язувати або оновлювати одне значення робочої області
  за допомогою `openclaw path … --json` замість того, щоб містити окремий код парсингу markdown, JSONC,
  JSONL і YAML.
* **Редагування, видимі агенту**: агент може показати dry-run diff для одного адресованого
  кінцевого елемента перед записом, що легше переглядати, ніж вільне переписування файлу.
* **Інтеграції редактора**: редактор може зіставити `oc://AGENTS.md/tools/gh` з
  точним вузлом markdown і номером рядка без здогадок за текстом заголовка.
* **Діагностика**: `emit` пропускає файл через parser і emitter в обидва боки, тож
  можна перевірити, чи тип файлу є byte-stable, перш ніж покладатися на автоматизовані
  редагування.

Конкретні приклади:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
# Is the GitHub plugin enabled in this config?
openclaw path resolve 'oc://config.jsonc/plugins/github/enabled' --json

# Which tool-call names appear in this session log?
openclaw path find 'oc://session.jsonl/[event=tool_call]/name' --json

# What bytes would this tiny config edit write?
openclaw path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-run
```

Plugin навмисно не є власником семантики вищого рівня. Memory
Plugin-и й далі володіють записами пам’яті, команди конфігурації й далі володіють повним керуванням
конфігурацією, а логіка LKG й далі володіє відновленням/просуванням. `oc-path` — це вузький
шар адресації та файлових операцій зі збереженням байтів, навколо якого ці інструменти вищого рівня
можуть будуватися.

## Де він виконується

Plugin виконується **в процесі всередині CLI `openclaw`** на хості, де ви
викликаєте команду. Йому не потрібен запущений Gateway, і він не відкриває жодних
мережевих сокетів — кожна дія є чистим перетворенням над файлом, на який ви вказуєте.

Метадані Plugin розташовані в `extensions/oc-path/openclaw.plugin.json`:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "id": "oc-path",
  "name": "OC Path",
  "activation": {
    "onStartup": false,
    "onCommands": ["path"]
  },
  "commandAliases": [{ "name": "path", "kind": "cli" }]
}
```

`onStartup: false` тримає Plugin поза гарячим шляхом Gateway. `onCommands: ["path"]` повідомляє CLI, що Plugin треба завантажувати ліниво першого разу, коли ви запускаєте
`openclaw path …`, тож інсталяції, які ніколи не використовують цю дію, не платять жодної вартості.

## Увімкнення

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw plugins enable oc-path
```

Перезапустіть Gateway (якщо ви його запускаєте), щоб snapshot маніфесту підхопив новий
стан. Окремі виклики `openclaw path` працюють одразу на тому самому хості —
CLI завантажує Plugin на вимогу.

Вимкнути можна так:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw plugins disable oc-path
```

## Залежності

Усі залежності парсерів є локальними для Plugin — увімкнення `oc-path` не додає
нові пакети до runtime ядра:

| Залежність     | Призначення                                                                              |
| -------------- | ---------------------------------------------------------------------------------------- |
| `commander`    | Зв’язування підкоманд для `resolve`, `find`, `set`, `validate`, `emit`.                  |
| `jsonc-parser` | Парсинг JSONC + редагування кінцевих елементів зі збереженням коментарів і кінцевих ком. |
| `markdown-it`  | Токенізація Markdown для моделі розділ / елемент / поле.                                 |
| `yaml`         | Парсинг / emit / редагування `Document` YAML зі збереженням коментарів і flow style.     |

JSONL лишається ручною реалізацією — парсинг, орієнтований на рядки, простіший за будь-яку
залежність, а JSONC-парсинг кожного рядка вже проходить через `jsonc-parser`.

## Що він надає

| Поверхня                               | Надається через                                         |
| -------------------------------------- | ------------------------------------------------------- |
| CLI `openclaw path`                    | `extensions/oc-path/cli-registration.ts`                |
| Parser / formatter `oc://`             | `extensions/oc-path/src/oc-path/oc-path.ts`             |
| Парсинг / emit / редагування за типами | `extensions/oc-path/src/oc-path/{md,jsonc,jsonl,yaml}`  |
| Універсальні resolve / find / set      | `extensions/oc-path/src/oc-path/{resolve,find,edit}.ts` |
| Захист redaction-sentinel              | `extensions/oc-path/src/oc-path/sentinel.ts`            |

CLI нині є єдиною публічною поверхнею. Базові дії є приватними для
Plugin; споживачі використовують CLI (або створюють власний Plugin на SDK).

## Зв’язок з іншими Plugin-и

* **`memory-*`**: записи пам’яті проходять через memory Plugin-и, а не через `oc-path`.
  `oc-path` — це універсальна файлова основа; memory Plugin-и накладають власну
  семантику поверх неї.
* **LKG**: `path` не знає про відновлення конфігурації Last-Known-Good. Якщо
  файл відстежується LKG, наступний виклик `observe` вирішує, просувати чи
  відновлювати; `set --batch` для атомарного multi-set через життєвий цикл promote/recover LKG
  планується разом із основою LKG-recovery.

## Безпека

`set` записує сирі байти через emit-шлях основи, який автоматично застосовує
захист redaction-sentinel. Кінцевий елемент, що містить
`__OPENCLAW_REDACTED__` (дослівно або як підрядок), відхиляється під час запису
з `OC_EMIT_SENTINEL`. CLI також очищає literal sentinel з будь-якого
людського або JSON-виводу, який друкує, замінюючи його на `[REDACTED]`, щоб terminal
captures і pipelines ніколи не витікали маркер.

## Пов’язане

* [Довідник CLI `openclaw path`](/uk/cli/path)
* [Керування Plugin-и](/uk/plugins/manage-plugins)
* [Створення Plugin-и](/uk/plugins/building-plugins)
