Plugin guides
OC Path Plugin
बंडल किया गया oc-path Plugin, oc:// वर्कस्पेस-फ़ाइल एड्रेसिंग स्कीम के लिए openclaw path CLI जोड़ता है। यह OpenClaw रेपो में
extensions/oc-path/ के अंतर्गत उपलब्ध होता है, लेकिन यह वैकल्पिक है: इंस्टॉल/बिल्ड के बाद यह तब तक निष्क्रिय रहता है, जब तक आप
इसे सक्षम नहीं करते।
oc:// एड्रेस किसी वर्कस्पेस फ़ाइल के भीतर एक लीफ़ (या लीफ़ के वाइल्डकार्ड सेट) की ओर संकेत करते हैं। Plugin चार प्रकार की फ़ाइलें समझता है:
- markdown (
.md): फ्रंटमैटर, सेक्शन, आइटम, फ़ील्ड - jsonc (
.jsonc,.json): टिप्पणियाँ और फ़ॉर्मैटिंग संरक्षित रहती हैं - jsonl (
.jsonl,.ndjson): पंक्ति-आधारित रिकॉर्ड - yaml (
.yaml,.yml,.lobster):yamlपैकेज केDocumentAPI के माध्यम से मैप/सीक्वेंस/स्केलर Node
स्वयं होस्ट करने वाले और एडिटर एक्सटेंशन, SDK के विरुद्ध सीधे स्क्रिप्ट लिखे बिना किसी एक लीफ़ को पढ़ने या लिखने के लिए CLI का उपयोग करते हैं; एजेंट और हुक इसे एक नियतात्मक आधार के रूप में उपयोग करते हैं, ताकि बाइट-सटीक राउंड-ट्रिप और रिडैक्शन सेंटिनल सुरक्षा सभी प्रकारों पर समान रूप से लागू हो। पूर्ण व्याकरण, प्रत्येक क्रिया के अनुसार फ़्लैग सूची और हर फ़ाइल प्रकार के व्यावहारिक उदाहरणों के लिए CLI संदर्भ देखें; यह पृष्ठ बताता है कि Plugin को क्यों और कैसे सक्षम किया जाए।
इसे क्यों सक्षम करें
जब स्क्रिप्ट, हुक या स्थानीय एजेंट टूलिंग को प्रत्येक फ़ाइल आकार के लिए अलग पार्सर के बिना
वर्कस्पेस स्थिति के किसी सटीक हिस्से की ओर संकेत करना हो, तब oc-path सक्षम करें। एक
oc:// एड्रेस किसी markdown फ्रंटमैटर कुंजी, सेक्शन आइटम,
JSONC कॉन्फ़िग लीफ़, JSONL इवेंट फ़ील्ड या YAML वर्कफ़्लो चरण को नाम दे सकता है।
यह उन मेंटेनर वर्कफ़्लो के लिए महत्वपूर्ण है जहाँ बदलाव छोटा, ऑडिट-योग्य और दोहराने योग्य रहना चाहिए: एक मान जाँचें, मेल खाते रिकॉर्ड खोजें, किसी लेखन का ड्राई-रन करें, फिर टिप्पणियों, पंक्ति-अंतों और आस-पास की फ़ॉर्मैटिंग को यथावत रखते हुए केवल उसी लीफ़ पर बदलाव लागू करें।
इसे सक्षम करने के सामान्य कारण:
- स्थानीय स्वचालन: शेल स्क्रिप्ट अलग-अलग markdown, JSONC,
JSONL और YAML पार्सिंग कोड रखने के बजाय
openclaw path … --jsonसे वर्कस्पेस का एक मान हल या अपडेट करती हैं। - एजेंट-दृश्य संपादन: एजेंट लिखने से पहले एड्रेस किए गए एक लीफ़ का ड्राई-रन अंतर दिखाता है, जिसकी समीक्षा मुक्त-रूप फ़ाइल को दोबारा लिखने की तुलना में आसान होती है।
- एडिटर एकीकरण: एडिटर, शीर्षक के टेक्स्ट से अनुमान लगाए बिना
oc://AGENTS.md/tools/ghको सटीक markdown Node और पंक्ति संख्या से मैप करता है। - निदान:
emitफ़ाइल को पार्सर और एमिटर से राउंड-ट्रिप करता है, ताकि स्वचालित संपादनों पर निर्भर होने से पहले यह जाँचा जा सके कि फ़ाइल प्रकार बाइट-स्थिर है या नहीं।
# क्या इस कॉन्फ़िग में GitHub Plugin सक्षम है?openclaw path resolve 'oc://config.jsonc/plugins/github/enabled' --json # इस सत्र लॉग में कौन-से टूल-कॉल नाम दिखाई देते हैं?openclaw path find 'oc://session.jsonl/[event=tool_call]/name' --json # यह छोटा कॉन्फ़िग संपादन कौन-से बाइट लिखेगा?openclaw path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-runoc-path को जानबूझकर उच्च-स्तरीय अर्थ-विज्ञान का स्वामी नहीं बनाया गया है। मेमोरी
Plugin अब भी मेमोरी लेखन के स्वामी हैं, कॉन्फ़िग कमांड अब भी पूर्ण कॉन्फ़िग
प्रबंधन के स्वामी हैं और अंतिम-ज्ञात-सही (LKG) कॉन्फ़िग पुनर्प्राप्ति अब भी
पुनर्स्थापन/प्रचार की स्वामी है। oc-path संकीर्ण एड्रेसिंग और बाइट-संरक्षण वाली
फ़ाइल-संचालन परत है, जिसके इर्द-गिर्द वे उच्च-स्तरीय टूल बनाए जा सकते हैं।
यह कहाँ चलता है
Plugin उस होस्ट पर, जहाँ आप कमांड चलाते हैं, openclaw CLI के भीतर इन-प्रोसेस चलता है।
इसे चलते हुए 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 को Gateway के स्टार्टअप पथ से बाहर रखता है।
commandAliases और activation.onCommands CLI को पहली बार openclaw path … चलाने पर Plugin को
आलसी ढंग से लोड करने के लिए कहते हैं, इसलिए जिन इंस्टॉल में इस क्रिया का कभी उपयोग नहीं होता
उन पर कोई लागत नहीं आती।
सक्षम करें
openclaw plugins enable oc-pathGateway (यदि आप कोई चलाते हैं) पुनः आरंभ करें, ताकि मेनिफ़ेस्ट स्नैपशॉट नई
स्थिति ग्रहण कर सके। उसी होस्ट पर केवल openclaw path वाले आह्वान तुरंत काम करते हैं;
CLI माँग पर Plugin लोड करता है।
इससे अक्षम करें:
openclaw plugins disable oc-pathनिर्भरताएँ
सभी पार्सर निर्भरताएँ Plugin-स्थानीय हैं; oc-path सक्षम करने से
कोर रनटाइम में नए पैकेज नहीं जुड़ते:
| निर्भरता | उद्देश्य |
|---|---|
commander |
resolve, find, set, validate, emit के लिए सबकमांड वायरिंग। |
jsonc-parser |
टिप्पणियाँ और अंतिम कॉमा बनाए रखते हुए JSONC पार्सिंग और लीफ़ संपादन। |
markdown-it |
सेक्शन / आइटम / फ़ील्ड मॉडल के लिए Markdown टोकनाइज़ेशन। |
yaml |
टिप्पणियाँ और फ़्लो शैली बनाए रखते हुए YAML Document पार्स / एमिट / संपादन। |
JSONL हस्तलिखित रहता है: पंक्ति-आधारित पार्सिंग किसी भी
निर्भरता से अधिक सरल है और प्रति-पंक्ति पार्स पहले से ही jsonc-parser से होकर जाता है।
यह क्या प्रदान करता है
| सतह | इसके द्वारा प्रदान किया गया |
|---|---|
openclaw path CLI |
extensions/oc-path/cli-registration.ts |
oc:// पार्सर / फ़ॉर्मैटर |
extensions/oc-path/src/oc-path/oc-path.ts |
| प्रत्येक प्रकार के लिए पार्स / एमिट / संपादन | extensions/oc-path/src/oc-path/{md,jsonc,jsonl,yaml} |
| सार्वभौमिक रिज़ॉल्व / खोज / सेट | extensions/oc-path/src/oc-path/{resolve,find,edit}.ts |
| रिडैक्शन-सेंटिनल सुरक्षा | extensions/oc-path/src/oc-path/sentinel.ts |
आज CLI ही एकमात्र सार्वजनिक सतह है। आधारभूत क्रियाएँ Plugin के लिए निजी हैं; उपभोक्ता CLI का उपयोग करते हैं (या SDK के विरुद्ध अपना Plugin बनाते हैं)।
अन्य Plugin के साथ संबंध
memory-*: मेमोरी लेखनoc-pathसे नहीं, बल्कि मेमोरी Plugin से होकर जाता है।oc-pathएक सामान्य फ़ाइल आधार है; मेमोरी Plugin इसके ऊपर अपना अर्थ-विज्ञान जोड़ते हैं।- LKG:
pathअंतिम-ज्ञात-सही कॉन्फ़िग पुनर्स्थापन के बारे में नहीं जानता। यदिpathके माध्यम से संपादित कोई फ़ाइल LKG द्वारा ट्रैक भी की जाती है, तो अगला कॉन्फ़िग अवलोकन चक्र तय करता है कि उसका प्रचार किया जाए या उसे पुनर्प्राप्त किया जाए;pathसंपादन को उस फ़ाइल पर किए गए किसी भी अन्य प्रत्यक्ष लेखन के समान मानें।
सुरक्षा
set आधार की एमिट प्रक्रिया से कच्चे बाइट लिखता है, जो
रिडैक्शन-सेंटिनल सुरक्षा को स्वचालित रूप से लागू करती है। __OPENCLAW_REDACTED__ रखने वाले लीफ़ को
(अक्षरशः या उपस्ट्रिंग के रूप में) लेखन के समय
OC_EMIT_SENTINEL के साथ अस्वीकार कर दिया जाता है। CLI अपने द्वारा प्रिंट किए गए किसी भी
मानवीय या JSON आउटपुट से शाब्दिक सेंटिनल भी हटा देता है और उसे [REDACTED] से बदल देता है,
ताकि टर्मिनल कैप्चर और पाइपलाइन कभी मार्कर उजागर न करें।