Перейти до основного вмісту

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Укомплектований Plugin oc-path додає CLI openclaw path для схеми адресації файлів робочої області oc://. Він постачається в репозиторії OpenClaw у extensions/oc-path/, але є опціональним — install/build залишає його неактивним, доки ви його не ввімкнете. Адреси oc:// вказують на один кінцевий елемент (або wildcard-набір кінцевих елементів) усередині файлу робочої області. Сьогодні Plugin розуміє три види файлів:
  • markdown (.md, .mdx): frontmatter, розділи, елементи, поля
  • jsonc (.jsonc, .json5, .json): коментарі та форматування зберігаються
  • jsonl (.jsonl, .ndjson): записи, орієнтовані на рядки
Ті, хто розгортає власні інстанси, та розширення редакторів використовують CLI, щоб читати або записувати один кінцевий елемент без написання скриптів безпосередньо проти SDK; агенти й hooks розглядають його як детерміновану основу, щоб byte-fidelity round-trips і захист redaction sentinel застосовувалися однаково для всіх видів.

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

Увімкніть oc-path, коли хочете, щоб scripts, hooks або локальні інструменти агентів вказували на точну частину стану робочої області без створення окремого парсера для кожної форми файлу. Одна адреса oc:// може називати ключ frontmatter у markdown, елемент розділу, кінцевий елемент конфігурації JSONC або поле події JSONL. Це важливо для workflows супровідників, де зміна має бути невеликою, аудитованою та повторюваною: перевірити одне значення, знайти відповідні записи, dry-run запис, а потім застосувати лише цей кінцевий елемент, не змінюючи коментарі, закінчення рядків і сусіднє форматування. Збереження цього як опціонального Plugin дає досвідченим користувачам основу адресації без додавання залежностей парсерів або CLI-поверхні в core для інсталяцій, яким це ніколи не потрібно. Поширені причини ввімкнути його:
  • Локальна автоматизація: shell scripts можуть визначити або оновити одне значення робочої області через openclaw path … --json замість підтримки окремого коду парсингу markdown, JSONC і JSONL.
  • Редагування, видимі агенту: агент може показати diff dry-run для одного адресованого кінцевого елемента перед записом, що простіше переглядати, ніж довільне переписування файлу.
  • Інтеграції з редакторами: редактор може зіставити oc://AGENTS.md/tools/gh з точним вузлом markdown і номером рядка без здогадок за текстом заголовка.
  • Діагностика: emit пропускає файл через parser і emitter у round-trip, тож можна перевірити, чи є вид файлу byte-stable, перш ніж покладатися на автоматизовані редагування.
Конкретні приклади:
# 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 plugins і далі володіють записами пам’яті, config commands і далі володіють повним керуванням config, а логіка LKG і далі володіє відновленням/просуванням. oc-path — це вузький шар адресації та byte-preserving файлових операцій, навколо якого ці інструменти вищого рівня можуть будуватися.

Де він працює

Plugin працює в процесі всередині CLI openclaw на host, де ви викликаєте команду. Йому не потрібен запущений Gateway, і він не відкриває жодних мережевих сокетів — кожне дієслово є чистим перетворенням файлу, на який ви вказали. Метадані Plugin містяться в extensions/oc-path/openclaw.plugin.json:
{
  "id": "oc-path",
  "name": "OC Path",
  "activation": {
    "onStartup": false,
    "onCommands": ["path"]
  },
  "commandAliases": [{ "name": "path", "kind": "cli" }]
}
onStartup: false не допускає Plugin до hot path Gateway. onCommands: ["path"] повідомляє CLI, що Plugin треба ледаче завантажити під час першого запуску openclaw path …, тому інсталяції, які ніколи не використовують це дієслово, не несуть витрат.

Увімкнення

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

Залежності

Усі залежності parser є локальними для Plugin — увімкнення oc-path не додає нові пакети до core runtime:
ЗалежністьПризначення
commanderПідключення підкоманд для resolve, find, set, validate, emit.
jsonc-parserПарсинг JSONC + редагування кінцевих елементів зі збереженням коментарів і кінцевих ком.
markdown-itТокенізація Markdown для моделі section / item / field.
JSONL залишається реалізованим вручну — line-oriented parsing простіший за будь-яку залежність, а per-line парсинг JSONC уже проходить через jsonc-parser.

Що він надає

ПоверхняНадається через
CLI openclaw pathextensions/oc-path/cli-registration.ts
Parser / formatter oc://extensions/oc-path/src/oc-path/oc-path.ts
Per-kind parse / emit / editextensions/oc-path/src/oc-path/{md,jsonc,jsonl}
Universal resolve / find / setextensions/oc-path/src/oc-path/{resolve,find,edit}.ts
Захист redaction-sentinelextensions/oc-path/src/oc-path/sentinel.ts
Сьогодні CLI є єдиною публічною поверхнею. Дієслова substrate є приватними для Plugin; споживачі використовують CLI (або створюють власний Plugin на основі SDK).

Відношення до інших Plugin

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

Безпека

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

Пов’язано