|
### 🖼️ सटीक मल्टी-फ़्रेम पूर्वावलोकन
इंस्टॉल किया गया OpenPencil हेडलेस एक्सपोर्टर डिज़ाइन-वफ़ादार पूर्वावलोकन प्रस्तुत करता है: पहला टॉप-लेवल फ़्रेम एक बड़ी रीप्ले-सुरक्षित PNG के रूप में, साथ ही क्षैतिज रूप से स्क्रॉल होने वाली थंबनेल पट्टी, क्लिक-टू-सिलेक्ट, और मल्टी-फ़्रेम दस्तावेज़ों के लिए पिछला/अगला नेविगेशन।
|
### 🗺️ इंटरैक्टिव कैनवास
"इंटरैक्टिव कैनवास खोलें" पैन, ज़ूम और फ़िट के साथ रीड-ओनली OpenPencil Web SDK को आलसी ढंग से माउंट करता है — बातचीत से बाहर निकले बिना किसी भी पेज, नेस्टेड नोड या निष्क्रिय पेज का निरीक्षण करें।
|
|
### ✏️ प्रबंधित संपादक
`editable: true` के साथ, संपादन क्रिया प्रबंधित OpenPencil संपादक खोलती है — चयन, परतें, गुण, ड्रॉइंग टूल, पूर्ववत/पुनः करना, और स्पष्ट सेव सेमैंटिक्स — पूर्ण-स्क्रीन विकल्प के साथ एक आकार-बदलने योग्य दाएँ-हाथ वर्कबेंच में।
|
### 🤖 एजेंट-नेटिव डिज़ाइन टूल
पाँच direct-canvas टूल और छह `openpencil_pipeline_*` टूल एजेंट को managed OpenPencil runtimes के माध्यम से वास्तविक कैनवास बनाने, जाँचने, निखारने, प्रकाशित करने, बदलने और पढ़ने देते हैं।
|
|
### 🔐 क्षमता-गेटेड अनुदान
छवि और दस्तावेज़ अनुदान हस्ताक्षरित, हैश-बद्ध क्षमताएँ हैं। ब्राउज़र मेटाडेटा कभी भी कोई मनमाना होस्ट पथ उजागर नहीं करता, और हस्ताक्षरित पूर्वावलोकन/संपादक क्षमताएँ कभी भी कैनोनिकल टूल परिणाम या मॉडल संदर्भ में प्रवेश नहीं करतीं।
|
### ⚡ ट्रांज़ैक्शनल सुरक्षा
पूर्ण pipeline का दस्तावेज़ सभी native और DSH quality gates पार करने तक निजी, अप्रकाशित draft रहता है। प्रकाशन किसी मौजूदा पथ को अधिलेखित नहीं करता, और abort या असफल batch कोई खाली target नहीं छोड़ता।
|
|
### 🌍 DSH के लुक एंड फील का पालन करता है
टूल कार्ड और प्रबंधित संपादक संपादन सत्र को पुनः लोड किए बिना DSH के चीनी/अंग्रेज़ी लोकेल और लाइट/डार्क थीम का पालन करते हैं।
|
### 🎯 एक संपूर्ण वर्कफ़्लो
"आवश्यकता → sidebar में private live canvas → दो semantic batches और user-visible exact PNG → native/DSH deterministic quality gates → atomic प्रकाशन" — DSH के भीतर एक पूर्ण चक्र।
|
## DSH में इंस्टॉल करें
DSH अलग पैकेज है। अगर पहले से नहीं है तो एक बार इंस्टॉल करें:
```sh
npm install -g @deepseek-ai/dsh@latest
```
फिर प्लगइन को किसी प्रोफ़ाइल में जोड़ें और वेब ऐप शुरू करें:
```sh
dsh plugin --profile web add @zseven-w/dsh-openpencil@next
dsh web
```
स्थानीय विकास के लिए इस checkout को build करें, इसके absolute path को Web प्रोफ़ाइल में link करें और फिर DSH को पूरी तरह restart करें:
```sh
pnpm run build
dsh plugin --profile web add link:/absolute/path/to/dsh-openpencil
dsh web
```
`link:` dependency बाद के rebuild को इसी checkout से सीधे उपलब्ध कराती है। लेकिन profile dependency बदलने के बाद DSH को पूरी तरह restart करना आवश्यक है, क्योंकि शामिल Web profile डिफ़ॉल्ट रूप से host bundle को hot-reload नहीं करती।
DSH को ग्लोबली इंस्टॉल नहीं करना चाहते? वही दो चरण `pnpm dlx` से चलाएँ:
```sh
pnpm dlx --package=@deepseek-ai/dsh@latest dsh plugin --profile web add @zseven-w/dsh-openpencil@next
pnpm dlx --package=@deepseek-ai/dsh@latest dsh web
```
> OpenPencil प्लगइन सार्वजनिक है और इसके लिए किसी npm टोकन की आवश्यकता नहीं है। यदि DSH प्री-रिलीज़ को स्वयं रजिस्ट्री प्रमाणीकरण की आवश्यकता होती है, तो उस क्रेडेंशियल को चेकआउट के बाहर उपयोगकर्ता-स्तरीय या अस्थायी npm कॉन्फ़िग में रखें। इस रिपॉज़िटरी में जानबूझकर कोई रजिस्ट्री क्रेडेंशियल नहीं है।
## डिज़ाइन टूल
वैकल्पिक शैली क्रम `openpencil_style_plan` → `openpencil_style_confirm` → `openpencil_pipeline_begin` है; मूल brief और `style_selection` दें। कैटलॉग और सटीक गाइड चयन को मॉडल अनुशंसा की जरूरत नहीं है; प्रदाता डिफ़ॉल्ट रूप से बंद है। यह हस्तांतरण script को समर्थन देता है, app-agent और commerce को नहीं। सामान्य app-agent निर्माण उपलब्ध रहता है।
| टूल | यह क्या करता है |
| --- | --- |
| `openpencil_new` | सरल कामों के लिए संगत तेज़ पथ: एक transactional QuickJS `batch_design` script चलाता है, target न होने पर ही प्रकाशित करता है और editable presentation लौटाता है। production design के लिए नीचे की पूर्ण pipeline चुनें। |
| `openpencil_pipeline_begin` | owner-session का निजी draft और उसका एकमात्र root शुरू करता है, उसी live canvas को sidebar में तुरंत खोलता है और target `.op` को अप्रकाशित रखता है। |
| `openpencil_pipeline_context` | केवल तब एक सीमित guideline, style, theme या UI-kit detail लोड करता है जब begin contract में वह सचमुच न हो; यह startup refresh loop नहीं है। |
| `openpencil_pipeline_batch` | अधिकतम दो सीधे QuickJS generation scripts चलाता है। हर सफल transaction user-visible exact PNG दिखाने की कोशिश करती है; tool लौटते ही उसके `next` पर आगे बढ़ें। |
| `openpencil_pipeline_inspect` | केवल user के स्पष्ट diagnostic अनुरोध पर manual inspection देता है; सामान्य generation इसे preview या model image-review step की तरह उपयोग नहीं करती। |
| `openpencil_pipeline_finish` | native और DSH deterministic gates चलाकर exact post-final PNG render करता है और `createIfAbsent` से atomically publish करता है। केवल `needs_correction`, `canContinue: true`, complete non-empty `repairTargets` और `omitted: 0` वाला result ही एक U-only repair और एक अंतिम finish अधिकृत करता है; बाकी हर unpublished result terminal है। |
| `openpencil_pipeline_abort` | target file बनाए बिना अप्रकाशित draft छोड़ देता है। |
| `openpencil_create` | किसी मौजूदा लाइव कैनवास पर नोड उत्पन्न करने या पुनर्संरचना करने के लिए एक ट्रांज़ैक्शनल `batch_design` प्रोग्राम लागू करता है। |
| `openpencil_edit` | एक स्पष्ट नोड या उपयोगकर्ता द्वारा चयनित एकमात्र नोड को संशोधित करता है। |
| `openpencil_render` | एक अपरिवर्तनीय, कंटेंट-एड्रेस्ड `.op` स्नैपशॉट बनाता है और सक्रिय पेज पर हर टॉप-लेवल फ़्रेम प्रस्तुत करता है — वैकल्पिक `scale` और `editable`। |
| `openpencil_selection` | लाइव संपादक कैनवास में चयनित सटीक नोड्स को पढ़ता है। |
## एजेंट डिज़ाइन वर्कफ़्लो
सामान्य generation के लिए तय छोटा पथ अपनाएँ: `openpencil_pipeline_begin` → दो सीधे QuickJS `openpencil_pipeline_batch` → एक `openpencil_pipeline_finish`। Begin एकमात्र root बनाकर निजी live canvas को sidebar में तुरंत खोल देता है; माँगा गया workspace path सफल publication से पहले मौजूद नहीं होता। हर सफल begin या batch के बाद अगली आवश्यक call बिना narration, planning, comparison, inspection या unrelated tool के तुरंत करें। Default में पूरे design में ठीक एक image हो; हर Hero/Product/Art/Media frame में ठीक एक primary visual हो, image और placeholder icon साथ न हों।
दोनों सफल batches user को exact PNG preview दिखाने की कोशिश करते हैं। Tool लौटने के बाद तुरंत उसके `next` का पालन करें। यदि `next` में `previewUnavailable` हो, तो script पहले ही live canvas पर commit हो चुकी है: batch को दोबारा न चलाएँ और `openpencil_pipeline_inspect` या `read_image` न बुलाएँ। `openpencil_pipeline_inspect` केवल user द्वारा स्पष्ट रूप से माँगे गए diagnostics के लिए है।
Finish OpenPencil की native finalization, lint, contrast और layout checks तथा DSH deterministic quality gates चलाता है, फिर उसी healthy call में exact final PNG render करके target को atomically publish करता है। Repair केवल तभी अधिकृत है जब result में एक साथ `stage: "needs_correction"`, `canContinue: true`, complete non-empty `repairTargets` और `omitted: 0` हों, तथा हर target में `operation: "U"`, exact non-empty `nodeId` और non-empty `patch` हो। सभी targets को ठीक एक U-only batch में साथ लागू करें और बिना narration finish को ठीक एक अंतिम बार चलाएँ। कोई अन्य unpublished result, error या `canContinue: false` terminal है: उसे एक बार report करें और retry, inspect, image/context read, abort या replacement draft न करें। Gate विफल होने या `openpencil_pipeline_abort` पर target अनुपस्थित रहता है। Published result की exact final PNG और live editor पहले से authoritative हैं; उसे लौटाकर तुरंत समाप्त करें। Sidebar idle होने पर ही auto-open होता है और explicit switch के लिए **कैनवास संपादित करें** उपलब्ध रहता है।
उसी चल रही DSH service में browser बदलने या reload करने के बाद, strictly parsed durable publication को `openpencil_new` या `openpencil_pipeline_finish` से exact PNG और स्पष्ट **कैनवास संपादित करें** action के रूप में restore किया जा सकता है। Historical card sidebar को अपने-आप नहीं खोलता; user को वही action क्लिक करना होगा। सामान्य historical `openpencil_render` read-only रहता है, और non-loopback connection को editor grant कभी नहीं मिलता।
बंडल किया हुआ `openpencil-design` skill scripting और quality guide बना रहता है, और managed runtime desktop binary पर निर्भर नहीं है। `openpencil_new` संगत single-batch fast path के रूप में उपलब्ध रहता है, लेकिन production-quality generation में पूर्ण pipeline को प्राथमिकता दें।
`openpencil_create` और `openpencil_edit` का उपयोग केवल किसी मौजूदा लाइव कैनवास के लिए करें। संपादक की सेव क्रिया तक उनके संपादन असेवित रहते हैं।
## वेब व्यूअर एसेट
DSH क्लाइंट प्लगइन के लिए केवल `client.js` परोसता है, इसलिए OpenPencil ESM SDK, उसका WASM और CanvasKit को स्पष्ट समान-मूल (same-origin) एसेट के रूप में स्टेज किया जाता है:
```sh
pnpm run sync:viewer-assets
```
सिंक कमांड एक सहोदर `../openpencil` चेकआउट को प्राथमिकता देता है (स्थानीय विकास), वेंडर किए गए `vendor/openpencil` सबमॉड्यूल (CI और नई क्लोन) पर फ़ॉलबैक करता है। इसे `OPENPENCIL_ROOT` या `--openpencil-root` से ओवरराइड करें। `DSHPLUGIN_OPENPENCIL_VIEWER_SOURCE` से एक संपूर्ण पूर्व-निर्मित एसेट निर्देशिका चुनी जा सकती है। `DSHPLUGIN_OPENPENCIL_VIEWER_ASSET_DIR` से रनटाइम लुकअप को ओवरराइड किया जा सकता है।
व्यूअर एसेट उपयोगकर्ता के कैनवास खोलने के बाद ही आलसी-लोड होती हैं। यदि वे अनुपस्थित या अमान्य हैं, तो PNG पूर्वावलोकन उपलब्ध रहता है और कोई कैनवास बटन विज्ञापित नहीं किया जाता।
## प्रबंधित संपादक
संपादन-योग्य सत्र OpenPencil के प्रबंधित वेब होस्ट का उपयोग करते हैं — वही आर्किटेक्चर जो `op-vscode` द्वारा उपयोग किया जाता है। प्लगइन होस्ट को केवल एक अधिकृत उपयोगकर्ता क्रिया के बाद शुरू करता है, डेमन टोकन को मेमोरी में रखता है, iframe स्रोत और ओरिजिन को मान्य करता है, और संपादक सत्र समाप्त होने पर प्रक्रिया को बंद कर देता है। संपादक सतह चुनिंदा रूप से चुनी जाती है: जब होस्ट उस सीम की घोषणा करता है तो नेटिव Tool विवरण, अन्यथा रीसाइज़ और फ़ुल-स्क्रीन नियंत्रणों के साथ प्लगइन का दाएँ-हाथ वर्कबेंच।
स्टार्टअप धीमे mount के लिए सुरक्षित listening handshake का उपयोग करता है: readiness probe तभी शुरू होती हैं जब साथ दिया गया host अपना bind किया हुआ address घोषित कर दे। डेस्कटॉप OpenPencil इंस्टॉल करना आवश्यक नहीं है।
प्रकाशित इंस्टॉलेशन छह मूल प्लेटफ़ॉर्म पैकेजों — `darwin-arm64`, `darwin-x64`, `linux-arm64`, `linux-x64`, `win32-arm64` और `win32-x64` — में से वर्तमान OS/CPU के लिए उपयुक्त पैकेज चुनते हैं; दोनों Linux पैकेज glibc को लक्षित करते हैं। रूट पैकेज इन्हें सटीक संस्करण वाली `optionalDependencies` के रूप में घोषित करता है, ताकि पैकेज मैनेजर सही विकल्प चुने (उदाहरण के लिए `@zseven-w/dsh-openpencil-darwin-arm64`)। यह पैकेज `op-host-web-server`, संपादक वेब बंडल और CanvasKit को एक संगत रनटाइम के रूप में साथ देता है। इसलिए प्रबंधित संपादक `/Applications/OpenPencil.app`, `PATH` में `openpencil-desktop` या OpenPencil स्रोत checkout पर निर्भर नहीं करता।
यदि कैनवास गंदा (dirty) होने पर DSH प्लगइन को पुनः लोड या अनलोड करता है, तो होस्ट सात दिनों तक एक अपारदर्शी स्थानीय रिकवरी ड्राफ़्ट रखता है। उसी स्रोत को फिर से खोलने पर उसे लाइव कैनवास में पुनर्स्थापित करने से पहले पूछा जाता है; जब तक उपयोगकर्ता स्पष्ट रूप से सेव नहीं करता, रिकवरी कभी भी `.op` फ़ाइल को अधिलेखित नहीं करती।
सभी छह प्लेटफ़ॉर्म के आधिकारिक पैकेजों में सुरक्षित release build के दौरान चीन और ग्लोबल सहयोग bootstrap endpoints डाले और सत्यापित किए जाते हैं; सत्यापन के बाद ही उन्हें प्रकाशित किया जाता है। इस injection के बिना स्थानीय self-build में DSH शुरू करने से पहले `OPENPENCIL_COLLAB_BOOTSTRAP_URL=https://