|
### 🖼️ Birebir Çok Kareli Önizlemeler
Kurulu OpenPencil başsız dışa aktarıcısı tasarıma sadık önizlemeler üretir: ilk üst düzey kare, oynatıma uygun büyük bir PNG olarak; ayrıca çok kareli belgeler için yatay kaydırılabilir bir küçük resim şeridi, tıklayarak seçme ve önceki/sonraki gezinme.
|
### 🗺️ Etkileşimli Tuval
"Etkileşimli tuvale aç" seçeneği, salt okunur OpenPencil Web SDK'sını kaydırma, yakınlaştırma ve sığdırma ile tembel olarak yükler — sohbetten çıkmadan herhangi bir sayfayı, iç içe düğümü veya etkin olmayan sayfayı inceleyin.
|
|
### ✏️ Yönetilen Düzenleyici
`editable: true` ile düzenleme eylemi, yönetilen OpenPencil düzenleyicisini — seçim, katmanlar, özellikler, çizim araçları, geri al/yinele ve açık kaydetme semantiği — tam ekran seçeneği olan yeniden boyutlandırılabilir sağ taraftaki çalışma alanında açar.
|
### 🤖 Ajan-Yerli Tasarım Araçları
Beş doğrudan tuval aracı ve altı `openpencil_pipeline_*` aracı, Ajan'ın yönetilen OpenPencil çalışma zamanları üzerinden gerçek bir tuval oluşturmasını, incelemesini, iyileştirmesini, yayımlamasını, değiştirmesini ve okumasını sağlar.
|
|
### 🔐 Yetenek Kapılı Yetkiler
Görsel ve belge yetkileri, imzalı ve karmaya bağlı yeteneklerdir. Tarayıcı meta verileri asla rastgele bir ana makine yolunu açığa çıkarmaz ve imzalı önizleme/düzenleyici yetenekleri hiçbir zaman kanonik araç sonucuna veya model bağlamına girmez.
|
### ⚡ İşlemsel Güvenlik
Tam pipeline belgesi, tüm yerel ve DSH kalite kapılarından geçene kadar özel ve yayımlanmamış bir taslak olarak kalır. Yayın mevcut yolu üzerine yazmaz; iptal veya başarısız toplu işlem boş bir hedef bırakmaz.
|
|
### 🌍 DSH Görünüm ve Hissini Takip Eder
Araç kartı ve yönetilen düzenleyici, düzenleme oturumunu yeniden yüklemeden DSH'nin Çince/İngilizce yerel ayarını ve açık/koyu temasını takip eder.
|
### 🎯 Tek ve Eksiksiz Bir İş Akışı
"Gereksinim → özel taslak → anlamsal toplu işlemler → kullanıcı için canlı önizlemeler → belirlenimci yapı/yerleşim/kalite doğrulaması → final PNG bütünlüğüyle atomik yayın" — DSH içinde eksiksiz bir döngü.
|
## DSH'ye Kurulum
DSH ayrı bir pakettir. Henüz yoksa bir kez kurun:
```sh
npm install -g @deepseek-ai/dsh@latest
```
Ardından eklentiyi bir profile ekleyin ve web uygulamasını başlatın:
```sh
dsh plugin --profile web add @zseven-w/dsh-openpencil@next
dsh web
```
Yerel geliştirme için bu checkout'u derleyin, mutlak yolunu Web profiline bağlayın ve ardından DSH'yi tamamen yeniden başlatın:
```sh
pnpm run build
dsh plugin --profile web add link:/absolute/path/to/dsh-openpencil
dsh web
```
`link:` bağımlılığı sonraki derlemeleri bu checkout'tan görünür kılar. Ancak sağlanan Web profili varsayılan olarak ana bilgisayar paketlerini sıcak yeniden yüklemediğinden, profil bağımlılığı değiştirildikten sonra DSH tamamen yeniden başlatılmalıdır.
DSH'yi global kurmak istemiyor musunuz? Aynı iki adımı `pnpm dlx` ile çalıştırın:
```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 eklentisi geneldir ve npm belirteci gerektirmez. DSH ön sürümünün kendisi kayıt defteri kimlik doğrulaması gerektiriyorsa, bu kimlik bilgisini çalışma kopyasının dışında kullanıcı düzeyinde veya geçici bir npm yapılandırmasında saklayın. Bu depo bilinçli olarak hiçbir kayıt defteri kimlik bilgisi içermez.
## Tasarım Araçları
İsteğe bağlı seçim `openpencil_style_plan` → `openpencil_style_confirm` → `openpencil_pipeline_begin` sırasını, özgün brief ve `style_selection` ile kullanır. Katalog ve kesin seçim öneri gerektirmez; sağlayıcı varsayılan olarak kapalıdır. Aktarım script destekler, app-agent ve ticaret desteklemez. Normal app-agent üretimi kullanılabilir.
| Araç | Ne yapar |
| --- | --- |
| `openpencil_new` | Basit işler için uyumlu hızlı yol: tek bir işlemsel QuickJS `batch_design` betiği çalıştırır, yalnızca hedef yoksa yayımlar ve düzenlenebilir bir sunum döndürür. Üretim tasarımında tam pipeline'ı tercih edin. |
| `openpencil_pipeline_begin` | Oturuma ait özel taslağı başlatır, tek kökünü içeride oluşturur, çalışma zamanıyla eşleşen kompakt tuval/derleme sözleşmesini döndürür ve aynı canlı taslağı hemen yan panelde açar; hedef `.op` yayımlanmamış kalır. |
| `openpencil_pipeline_context` | Yalnızca begin sözleşmesinde gerçekten eksik olan belirli bir yönerge, stil, tema veya UI kit ayrıntısını yükler; sabit bir başlatma adımı değildir. |
| `openpencil_pipeline_batch` | En fazla iki doğrudan yerel `I(...)`/`K(...)` üretim betiği çalıştırır: önce `begin.next` ile sınırlanan ilk görünür alan, sonra kalan tüm bölgeler için ikinci ve son toplu işlem. Her başarılı işlem kullanıcıya birebir PNG göstermeyi dener. |
| `openpencil_pipeline_inspect` | Yalnızca kullanıcı açıkça istediğinde elle tanılama sağlar; normal üretim bunu önizleme veya modelin görsel incelemesi olarak kullanmaz. |
| `openpencil_pipeline_finish` | Sağlıklı tek çağrıda taslağı sonlandırıp doğrular, final kökün birebir PNG önizlemesini otomatik işler ve `createIfAbsent` ile atomik yayımlar. Yalnızca sonuç `needs_correction`, `canContinue: true`, eksiksiz ve boş olmayan `repairTargets` ile `omitted: 0` içeriyorsa bir U-only onarım ve son bir finish çağrısı yetkilidir; diğer tüm yayımlanmamış sonuçlar terminaldir. |
| `openpencil_pipeline_abort` | Hedef dosyayı oluşturmadan yayımlanmamış taslağı atar. |
| `openpencil_create` | Mevcut canlı bir tuvalde düğümler oluşturmak veya yeniden yapılandırmak için işlemsel bir `batch_design` programı uygular. |
| `openpencil_edit` | Belirli bir düğümü veya kullanıcının seçtiği tek düğümü değiştirir. |
| `openpencil_render` | Değişmez, içeriğe dayalı bir `.op` anlık görüntüsü oluşturur ve etkin sayfadaki her üst düzey kareyi işler — isteğe bağlı `scale` ve `editable`. |
| `openpencil_selection` | Canlı düzenleyici tuvalinde seçilen düğümlerin tamamını okur. |
## Ajan Tasarım İş Akışı
Sıradan kısa bir istek için hemen `openpencil_pipeline_begin` çağırın ve sabit hızlı yolu izleyin: `begin.next` ile sınırlanan ilk doğrudan JS toplu işlemi → kalan tüm bölgeleri içeren ikinci ve son doğrudan JS toplu işlemi → bir `openpencil_pipeline_finish`. Begin tek kökü oluşturur ve özel canlı tuvali hemen yan panelde açar; istenen çalışma alanı yolu atomik yayına kadar mevcut değildir. Her başarılı begin veya toplu işlemden sonra anlatım, planlama, karşılaştırma, inceleme ya da ilgisiz araç çağrısı olmadan sonraki zorunlu çağrıyı hemen yapın. Varsayılan olarak tüm tasarımda tam bir görüntü kullanın; her Hero/Product/Art/Media frame tam bir ana görsele sahip olsun, görüntü ile placeholder ikonu birlikte kullanmayın.
Her başarılı toplu işlemden sonra araç yalnızca kullanıcıya birebir PNG önizlemesi sunmayı dener. Çağrı döner dönmez `next` talimatını izleyin; modelin görsel öz denetimini beklemeyin. `next`, `previewUnavailable` bildirirse betik canlı tuvale zaten commit edilmiştir: toplu işlemi yeniden çalıştırmayın ve `openpencil_pipeline_inspect` veya `read_image` çağırmayın. `openpencil_pipeline_inspect` yalnızca kullanıcının açıkça istediği tanılama içindir.
Finish, yerel belirlenimci sonlandırma, lint, kontrast ve yerleşim kontrolleriyle DSH'nin sert kalite kapılarını çalıştırır. Sağlıklı bir çağrı final kökün birebir PNG'sini işler ve aynı adımda yayımlar. Onarım yalnızca sonuç aynı anda `stage: "needs_correction"`, `canContinue: true`, `omitted: 0` içeren eksiksiz ve boş olmayan `repairTargets` sağlıyor ve her hedefte `operation: "U"`, tam ve boş olmayan `nodeId` ile boş olmayan `patch` bulunuyorsa yetkilidir. Tüm hedefleri tam bir U-only toplu işlemde birlikte uygulayın, ardından anlatım olmadan finish'i tam bir son kez çağırın. Diğer yayımlanmamış sonuçlar, error veya `canContinue: false` terminaldir: bir kez bildirin; retry, inspect, image/context okuma, abort veya yedek taslak başlatmayın. `published: true` olduğunda final PNG ve canlı düzenleyici zaten eklenmiştir: sonucu döndürüp hemen bitirin. Başarısız kapı veya `openpencil_pipeline_abort` hedefi yok bırakır. Belge kapsamındaki düzenleme yetkisi yan paneli yalnızca boşken otomatik açar ve açık geçiş için **Tuvali düzenle** eylemini korur.
Aynı çalışan DSH hizmeti içinde tarayıcı değiştirme veya yeniden yükleme sonrasında, `openpencil_new` ya da `openpencil_pipeline_finish` kaynaklı, sıkı biçimde ayrıştırılmış kalıcı yayın birebir PNG ve açık **Tuvali düzenle** eylemiyle geri yüklenebilir. Geçmiş kart yan paneli asla otomatik açmaz; kullanıcı bu eyleme tıklamalıdır. Sıradan geçmiş `openpencil_render` salt okunur kalır ve loopback olmayan bağlantılara hiçbir zaman düzenleyici yetkisi verilmez.
Paketle gelen `openpencil-design` skill'i isteğe bağlı, ince bir başvuru olarak kalır; normal üretim doğrudan begin'in tam kompakt sözleşmesiyle başlar. Geçerli yerel araç şeması otoritedir ve yönetilen çalışma zamanı masaüstü ikili dosyasına bağlı değildir. `openpencil_new` uyumlu tek toplu işlem hızlı yolu olarak kalır.
`openpencil_create` ve `openpencil_edit`'i yalnızca mevcut canlı bir tuval için kullanın. Düzenlemeleri, düzenleyicinin Kaydet eylemine kadar kaydedilmemiş halde kalır.
## Web Görüntüleyici Varlıkları
DSH bir istemci eklentisi için yalnızca `client.js` sunar; bu nedenle OpenPencil ESM SDK'sı, WASM'ı ve CanvasKit, açıkça aynı kaynaklı varlıklar olarak hazırlanır:
```sh
pnpm run sync:viewer-assets
```
Senkronizasyon komutu kardeş bir `../openpencil` çalışma kopyasını tercih eder (yerel geliştirme), gerekirse depoya gömülü `vendor/openpencil` alt modülüne geri döner (CI ve yeni klonlar). `OPENPENCIL_ROOT` veya `--openpencil-root` ile geçersiz kılabilirsiniz. Eksiksiz, önceden derlenmiş bir varlık dizini `DSHPLUGIN_OPENPENCIL_VIEWER_SOURCE` ile seçilebilir. Çalışma zamanı araması `DSHPLUGIN_OPENPENCIL_VIEWER_ASSET_DIR` ile geçersiz kılınabilir.
Görüntüleyici varlıkları yalnızca kullanıcı tuvale açtıktan sonra tembel olarak yüklenir. Yoksa veya geçersizse PNG önizlemesi kullanılabilir kalır ve hiçbir tuval düğmesi tanıtılmaz.
## Yönetilen Düzenleyici
Düzenlenebilir oturumlar, `op-vscode` tarafından kullanılan mimariyle aynı olan OpenPencil'in yönetilen web ana bilgisayarını kullanır. Eklenti ana bilgisayarı yalnızca yetkili bir kullanıcı eyleminin ardından başlatır, arka plan süreci belirtecini bellekte tutar, iframe kaynağını ve kaynağını doğrular ve düzenleyici oturumu sona erdiğinde süreci kapatır. Düzenleyici yüzeyi aşamalı olarak seçilir: ana bilgisayar bu arayüzü bildirdiğinde yerel Araç ayrıntıları, aksi takdirde yeniden boyutlandırma ve tam ekran kontrolleriyle eklentinin sağ taraftaki çalışma alanı.
Başlatma, yavaş bağlamalarda güvenli bir listening handshake kullanır: hazır olma denetimleri yalnızca paketlenmiş ana bilgisayar bağlı adresini bildirdikten sonra başlar. Masaüstü OpenPencil kurulumu gerekmez.
Yayımlanan kurulumlar altı yerel hedefi destekler: `darwin-arm64`, `darwin-x64`, `linux-arm64`, `linux-x64`, `win32-arm64` ve `win32-x64`; Linux paketleri glibc gerektirir. Kök paket, işletim sistemi ve CPU'ya göre tam sürümlü `optionalDependencies` aracılığıyla uygun platform paketini seçer (örneğin `@zseven-w/dsh-openpencil-darwin-arm64`). Bu paket, birbiriyle eşleşen `op-host-web-server`, düzenleyici web paketi ve CanvasKit'i tek bir çalışma zamanı olarak sunar. Bu nedenle yönetilen düzenleyici `/Applications/OpenPencil.app` uygulamasına, `PATH` üzerindeki `openpencil-desktop` dosyasına veya bir OpenPencil kaynak checkout'una bağlı değildir.
Tuval kirliyken DSH eklentiyi yeniden yükler veya kaldırırsa, ana bilgisayar en fazla yedi gün boyunca opak bir yerel kurtarma taslağı tutar. Aynı kaynağı yeniden açmak, onu canlı tuvale geri yüklemeden önce sorar; kurtarma, kullanıcı açıkça kaydedene kadar `.op` dosyasını asla üzerine yazmaz.
Altı platformun resmi paketleri, korumalı release derlemesi sırasında Çin ve Global iş birliği bootstrap uç noktalarıyla enjekte edilir; enjekte edilen değerler yayımdan önce doğrulanır. Bu enjeksiyon olmadan yerelde oluşturulan bir derleme, DSH başlatılmadan önce bootstrap değerini `OPENPENCIL_COLLAB_BOOTSTRAP_URL=https://