docs(readme): add ecosystem section and reframe jian as UI framework
Introduce the ZSeven-W product family (zode, agent-rs, jian, noema) with a new Ecosystem section across all 15 locales, and reframe jian from 'widget/render/event toolkit' to 'GPU-Skia UI framework' in the Tech Stack table, Ecosystem table, and Project Structure tree.
This commit is contained in:
parent
86357c04e5
commit
ffd9d38d66
15
README.de.md
15
README.de.md
|
|
@ -287,7 +287,7 @@ Unterstützt drei Eingabemethoden: Inline-String, `@filepath` (aus Datei lesen)
|
|||
| ---------------- | -------------------------------------------------------------------------------------------- |
|
||||
| **Kern** | Rust-Workspace (`crates/`) — Editor-Zustand, Widgets, Hosts, MCP, KI, Codegen |
|
||||
| **Rendering** | GPU Skia überall — `skia-safe` (GL) nativ, CanvasKit (WASM/WebGL2) im Browser |
|
||||
| **UI-Toolkit** | jian — vendorisiertes Rust-Widget-/Render-/Event-Toolkit (`vendor/jian`) |
|
||||
| **UI-Framework** | jian — vendorisiertes reines Rust-GPU-Skia-UI-Framework: Widgets, Layout, Events, Hot Reload (`vendor/jian`) |
|
||||
| **Fenstersystem**| winit (vendorisierter `casement`-Fork) |
|
||||
| **Desktop** | Native Binärdatei `openpencil-desktop` — keine Browser-Engine |
|
||||
| **Web-SDK** | `op-web-sdk` + React-19-/Vue-3-Adapter — schreibgeschützter `.op`-Viewer (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Unterstützt drei Eingabemethoden: Inline-String, `@filepath` (aus Datei lesen)
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (Web-SDK) |
|
||||
| **Dateiformat** | `.op` — JSON-basiert, menschenlesbar, Git-freundlich |
|
||||
|
||||
## Ökosystem
|
||||
|
||||
OpenPencil ist Teil einer Familie von reinen Rust-, KI-nativen Werkzeugen von **[ZSeven-W](https://github.com/ZSeven-W)**. Sie greifen ineinander: `jian` rendert OpenPencil, `agent-rs` betreibt seine Agenten, `noema` erinnert sich, und `zode` designt vom Terminal aus.
|
||||
|
||||
| Projekt | Was es ist |
|
||||
| ------- | ---------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Open-Source-, KI-nativer Coding-Assistent für Ihr Terminal — eine schnelle Rust-TUI (`ratatui`), die Ihren Code liest, Befehle ausführt, Dateien durchsucht und Git verwaltet. Steuert OpenPencil über MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Eine reine Rust-Async-Laufzeit zum Ausliefern von LLM-Agenten — Multi-Anbieter, durchgängig werkzeugfähig, strukturierte Berechtigungen, echtes MCP, null `unsafe`. Treibt OpenPencils integrierte Agentenlaufzeit (`vendor/agent`) und Zode an. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Reines Rust-, GPU-Skia-UI-Framework — Widgets, Layout, Events und Hot Reload in einem Stack. Verwandelt ein deklaratives `.op`-Dokument in eine native, KI-steuerbare App ohne JS-Laufzeit, ohne DOM, ohne Electron. OpenPencils UI-Framework (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Local-first-, nicht-vektorbasiertes Speichersystem für Coding-Agenten. Dauerhafter Speicher als inspizierbare Dateien, eine Prüfungswarteschlange für neue Einträge und lexikalischer (einbettungsfreier) Abruf — funktioniert über Zode, Codex, Claude Code und MCP-Laufzeiten hinweg. |
|
||||
|
||||
## Warum Rust
|
||||
|
||||
OpenPencil wurde von Grund auf in **Rust** neu geschrieben ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). Die Neufassung ist abgeschlossen — der TypeScript + Electron-Editor wurde mit `v0.7.5` eingestellt, und der Rust-Workspace in diesem Repository ist das Produkt: ein einzelner nativer Kern, der dramatisch kleiner und schneller ist und aus einer einzigen Codebasis auf mehr Plattformen läuft.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React-19-Adapter
|
||||
│ └── op-web-sdk-vue/ Vue-3-Adapter
|
||||
├── vendor/ Vendorisierte Subsysteme (Git-Submodule)
|
||||
│ ├── jian/ Skia-Widget-/Render-/Event-Toolkit
|
||||
│ ├── jian/ GPU-Skia UI-Framework — Widgets/Render/Events
|
||||
│ ├── casement/ winit-Fork
|
||||
│ └── agent/ Produktübergreifende Rust-Agentenlaufzeit (agent-rs)
|
||||
└── .githooks/ Pre-Commit-Versionssynchronisierung vom Branch-Namen
|
||||
|
|
|
|||
15
README.es.md
15
README.es.md
|
|
@ -287,7 +287,7 @@ Soporta tres métodos de entrada: cadena inline, `@filepath` (leer desde archivo
|
|||
| ---------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| **Núcleo** | Workspace Rust (`crates/`) — estado del editor, widgets, hosts, MCP, IA, codegen |
|
||||
| **Renderizado** | GPU Skia en todas partes — `skia-safe` (GL) en nativo, CanvasKit (WASM/WebGL2) en el navegador |
|
||||
| **Kit de UI** | jian — kit de widgets/render/eventos en Rust incluido como vendor (`vendor/jian`) |
|
||||
| **Framework de UI** | jian — framework de UI GPU-Skia en Rust puro incluido como vendor: widgets, layout, eventos, recarga en caliente (`vendor/jian`) |
|
||||
| **Ventanas** | winit (fork `casement` incluido como vendor) |
|
||||
| **Escritorio** | Binario nativo `openpencil-desktop` — sin motor de navegador |
|
||||
| **SDK web** | `op-web-sdk` + adaptadores React 19 / Vue 3 — visor `.op` de solo lectura (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Soporta tres métodos de entrada: cadena inline, `@filepath` (leer desde archivo
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (SDK web) |
|
||||
| **Formato de archivo** | `.op` — basado en JSON, legible por humanos, compatible con Git |
|
||||
|
||||
## Ecosistema
|
||||
|
||||
OpenPencil forma parte de una familia de herramientas en Rust puro, nativas de IA, de **[ZSeven-W](https://github.com/ZSeven-W)**. Se combinan: `jian` renderiza OpenPencil, `agent-rs` ejecuta sus agentes, `noema` recuerda, y `zode` diseña desde la terminal.
|
||||
|
||||
| Proyecto | Qué es |
|
||||
| -------- | ------ |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Asistente de código open-source y nativo de IA para tu terminal — una TUI de Rust rápida (`ratatui`) que lee tu código, ejecuta comandos, busca archivos y gestiona git. Controla OpenPencil mediante MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Un runtime asíncrono en Rust puro para desplegar agentes LLM — multiproveedor, con capacidad de usar herramientas de extremo a extremo, permisos estructurados, MCP real, cero `unsafe`. Impulsa el runtime de agente integrado de OpenPencil (`vendor/agent`) y Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Framework de UI GPU-Skia en Rust puro — widgets, layout, eventos y recarga en caliente en una sola stack. Convierte un documento declarativo `.op` en una app nativa, controlable por IA, sin runtime de JS, sin DOM, sin Electron. El framework de UI de OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Sistema de memoria local-first y no vectorial para agentes de código. Memoria duradera como archivos inspeccionables, una cola de revisión para las nuevas entradas, y recuperación léxica (sin embeddings) — funciona en Zode, Codex, Claude Code y runtimes MCP. |
|
||||
|
||||
## Por Qué Rust
|
||||
|
||||
OpenPencil fue reescrito desde cero en **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). La reescritura está completa — el editor TypeScript + Electron se retiró en `v0.7.5`, y el workspace Rust de este repositorio es el producto: un único núcleo nativo considerablemente más pequeño y rápido, que funciona en más plataformas desde una sola base de código.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Adaptador para React 19
|
||||
│ └── op-web-sdk-vue/ Adaptador para Vue 3
|
||||
├── vendor/ Subsistemas incluidos como vendor (submódulos git)
|
||||
│ ├── jian/ Kit de widgets/render/eventos Skia
|
||||
│ ├── jian/ Framework de UI GPU-Skia — widgets/render/eventos
|
||||
│ ├── casement/ Fork de winit
|
||||
│ └── agent/ Runtime de agente Rust multi-producto (agent-rs)
|
||||
└── .githooks/ Sincronización de versión pre-commit desde nombre de rama
|
||||
|
|
|
|||
15
README.fr.md
15
README.fr.md
|
|
@ -287,7 +287,7 @@ Supporte trois méthodes d'entrée : chaîne en ligne, `@filepath` (lecture depu
|
|||
| --------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| **Cœur** | Workspace Rust (`crates/`) — état de l'éditeur, widgets, hôtes, MCP, IA, codegen |
|
||||
| **Rendu** | GPU Skia partout — `skia-safe` (GL) en natif, CanvasKit (WASM/WebGL2) dans le navigateur |
|
||||
| **Kit UI** | jian — kit d'outils Rust vendored pour widgets/rendu/événements (`vendor/jian`) |
|
||||
| **Framework UI** | jian — framework UI GPU-Skia en Rust pur vendored : widgets, layout, événements, rechargement à chaud (`vendor/jian`) |
|
||||
| **Fenêtrage** | winit (fork vendored `casement`) |
|
||||
| **Bureau** | Binaire natif `openpencil-desktop` — sans moteur de navigateur |
|
||||
| **SDK web** | `op-web-sdk` + adaptateurs React 19 / Vue 3 — visualiseur `.op` en lecture seule (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Supporte trois méthodes d'entrée : chaîne en ligne, `@filepath` (lecture depu
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (SDK web) |
|
||||
| **Format de fichier** | `.op` — basé sur JSON, lisible par l'humain, compatible Git |
|
||||
|
||||
## Écosystème
|
||||
|
||||
OpenPencil fait partie d'une famille d'outils en Rust pur, natifs IA, développés par **[ZSeven-W](https://github.com/ZSeven-W)**. Ils se composent : `jian` effectue le rendu d'OpenPencil, `agent-rs` exécute ses agents, `noema` mémorise, et `zode` conçoit depuis le terminal.
|
||||
|
||||
| Projet | De quoi il s'agit |
|
||||
| ------ | ----------------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Assistant de code open-source natif IA pour votre terminal — une TUI Rust rapide (`ratatui`) qui lit votre code, exécute des commandes, recherche des fichiers et gère git. Pilote OpenPencil via MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Un runtime asynchrone en Rust pur pour déployer des agents LLM — multi-fournisseurs, capable d'utiliser des outils de bout en bout, permissions structurées, vrai MCP, zéro `unsafe`. Alimente le runtime d'agent intégré d'OpenPencil (`vendor/agent`) et Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Framework UI GPU-Skia en Rust pur — widgets, layout, événements et rechargement à chaud dans une seule stack. Transforme un document déclaratif `.op` en une app native, contrôlable par IA, sans runtime JS, sans DOM, sans Electron. Le framework UI d'OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Système de mémoire local-first et non vectoriel pour les agents de code. Mémoire durable sous forme de fichiers inspectables, une file de revue pour les nouvelles entrées, et un rappel lexical (sans embedding) — fonctionne avec Zode, Codex, Claude Code et les runtimes MCP. |
|
||||
|
||||
## Pourquoi Rust
|
||||
|
||||
OpenPencil a été réécrit intégralement en **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). La réécriture est terminée — l'éditeur TypeScript + Electron a été retiré en `v0.7.5`, et le workspace Rust de ce dépôt est le produit : un cœur natif unique, nettement plus léger et plus rapide, fonctionnant sur davantage de plateformes à partir d'une seule base de code.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Adaptateur React 19
|
||||
│ └── op-web-sdk-vue/ Adaptateur Vue 3
|
||||
├── vendor/ Sous-systèmes vendored (sous-modules git)
|
||||
│ ├── jian/ Kit d'outils widgets/rendu/événements Skia
|
||||
│ ├── jian/ Framework UI GPU-Skia — widgets/rendu/événements
|
||||
│ ├── casement/ Fork de winit
|
||||
│ └── agent/ Runtime d'agent Rust transversal (agent-rs)
|
||||
└── .githooks/ Synchronisation de version pre-commit depuis le nom de branche
|
||||
|
|
|
|||
15
README.hi.md
15
README.hi.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # stdin से पाइप करें
|
|||
| ------------------ | -------------------------------------------------------------------------------- |
|
||||
| **कोर** | Rust वर्कस्पेस (`crates/`) — एडिटर स्टेट, विजेट्स, होस्ट्स, MCP, AI, codegen |
|
||||
| **रेंडरिंग** | हर जगह GPU Skia — नेटिव पर `skia-safe` (GL), ब्राउज़र में CanvasKit (WASM/WebGL2) |
|
||||
| **UI टूलकिट** | jian — वेंडर्ड Rust विजेट/रेंडर/इवेंट टूलकिट (`vendor/jian`) |
|
||||
| **UI फ़्रेमवर्क** | jian — वेंडर्ड शुद्ध-Rust GPU-Skia UI फ़्रेमवर्क: विजेट्स, लेआउट, इवेंट, हॉट रीलोड (`vendor/jian`) |
|
||||
| **विंडोइंग** | winit (वेंडर्ड `casement` फ़ोर्क) |
|
||||
| **डेस्कटॉप** | नेटिव बाइनरी `openpencil-desktop` — कोई ब्राउज़र इंजन नहीं |
|
||||
| **वेब SDK** | `op-web-sdk` + React 19 / Vue 3 एडाप्टर — रीड-ओनली `.op` व्यूअर (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # stdin से पाइप करें
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **फ़ाइल फ़ॉर्मेट** | `.op` — JSON-आधारित, मानव-पठनीय, Git-फ्रेंडली |
|
||||
|
||||
## पारिस्थितिकी तंत्र
|
||||
|
||||
OpenPencil, **[ZSeven-W](https://github.com/ZSeven-W)** के शुद्ध-Rust, AI-नेटिव टूल्स के परिवार का हिस्सा है। ये आपस में जुड़ते हैं: `jian` OpenPencil को रेंडर करता है, `agent-rs` इसके एजेंट चलाता है, `noema` याद रखता है, और `zode` टर्मिनल से डिज़ाइन करता है।
|
||||
|
||||
| प्रोजेक्ट | यह क्या है |
|
||||
| --------- | ---------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | आपके टर्मिनल के लिए ओपन-सोर्स, AI-नेटिव कोडिंग असिस्टेंट — एक तेज़ Rust TUI (`ratatui`) जो आपका कोड पढ़ता है, कमांड चलाता है, फ़ाइलें खोजता है और git प्रबंधित करता है। MCP के ज़रिए OpenPencil को चलाता है। |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | LLM एजेंट शिप करने के लिए एक शुद्ध-Rust async रनटाइम — मल्टी-प्रोवाइडर, एंड-टू-एंड टूल-सक्षम, संरचित अनुमतियाँ, वास्तविक MCP, शून्य `unsafe`। OpenPencil के बिल्ट-इन एजेंट रनटाइम (`vendor/agent`) और Zode को शक्ति देता है। |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | शुद्ध-Rust, GPU-Skia UI फ़्रेमवर्क — एक ही स्टैक में विजेट्स, लेआउट, इवेंट और हॉट रीलोड। एक घोषणात्मक `.op` दस्तावेज़ को बिना JS रनटाइम, बिना DOM, बिना Electron के एक नेटिव, AI-नियंत्रणीय ऐप में बदल देता है। OpenPencil का UI फ़्रेमवर्क (`vendor/jian`)। |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | कोडिंग एजेंट्स के लिए लोकल-फ़र्स्ट, नॉन-वेक्टर मेमोरी सिस्टम। निरीक्षण-योग्य फ़ाइलों के रूप में टिकाऊ मेमोरी, नई प्रविष्टियों के लिए एक समीक्षा कतार, और लेक्सिकल (एम्बेडिंग-मुक्त) रिकॉल — Zode, Codex, Claude Code और MCP रनटाइम में काम करता है। |
|
||||
|
||||
## Rust क्यों
|
||||
|
||||
OpenPencil को पूरी तरह **Rust** में नए सिरे से लिखा गया है ([#129](https://github.com/ZSeven-W/openpencil/issues/129))। रीराइट पूरा हो चुका है — TypeScript + Electron एडिटर को `v0.7.5` पर रिटायर कर दिया गया, और इस रिपॉज़िटरी का Rust वर्कस्पेस अब स्वयं प्रोडक्ट है: एक नेटिव कोर जो काफ़ी छोटा और तेज़ है, और एक ही कोडबेस से अधिक प्लेटफ़ॉर्म पर चलता है।
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 एडाप्टर
|
||||
│ └── op-web-sdk-vue/ Vue 3 एडाप्टर
|
||||
├── vendor/ वेंडर्ड सबसिस्टम (git सबमॉड्यूल)
|
||||
│ ├── jian/ Skia विजेट/रेंडर/इवेंट टूलकिट
|
||||
│ ├── jian/ GPU-Skia UI फ़्रेमवर्क — विजेट/रेंडर/इवेंट
|
||||
│ ├── casement/ winit फ़ोर्क
|
||||
│ └── agent/ क्रॉस-प्रोडक्ट Rust एजेंट रनटाइम (agent-rs)
|
||||
└── .githooks/ ब्रांच नाम से प्री-कमिट वर्शन सिंक
|
||||
|
|
|
|||
15
README.id.md
15
README.id.md
|
|
@ -287,7 +287,7 @@ Mendukung tiga metode input: string inline, `@filepath` (baca dari file), atau `
|
|||
| --------------- | -------------------------------------------------------------------------------- |
|
||||
| **Inti** | Workspace Rust (`crates/`) — state editor, widget, host, MCP, AI, codegen |
|
||||
| **Rendering** | GPU Skia di mana saja — `skia-safe` (GL) pada native, CanvasKit (WASM/WebGL2) di browser |
|
||||
| **Toolkit UI** | jian — toolkit widget/render/event Rust yang di-vendor (`vendor/jian`) |
|
||||
| **Framework UI** | jian — framework UI GPU-Skia murni-Rust yang di-vendor: widget, layout, event, hot reload (`vendor/jian`) |
|
||||
| **Windowing** | winit (fork `casement` yang di-vendor) |
|
||||
| **Desktop** | Binary native `openpencil-desktop` — tanpa engine browser |
|
||||
| **Web SDK** | `op-web-sdk` + adapter React 19 / Vue 3 — viewer `.op` baca-saja (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Mendukung tiga metode input: string inline, `@filepath` (baca dari file), atau `
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **Format file** | `.op` — berbasis JSON, mudah dibaca manusia, ramah Git |
|
||||
|
||||
## Ekosistem
|
||||
|
||||
OpenPencil adalah bagian dari keluarga alat murni-Rust, berbasis AI dari **[ZSeven-W](https://github.com/ZSeven-W)**. Mereka saling melengkapi: `jian` merender OpenPencil, `agent-rs` menjalankan agennya, `noema` mengingat, dan `zode` mendesain dari terminal.
|
||||
|
||||
| Proyek | Apa itu |
|
||||
| ------ | ------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Asisten koding open-source berbasis AI untuk terminal Anda — TUI Rust yang cepat (`ratatui`) yang membaca kode Anda, menjalankan perintah, mencari file, dan mengelola git. Menggerakkan OpenPencil melalui MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Runtime async murni-Rust untuk merilis agen LLM — multi-penyedia, mampu memakai alat secara ujung-ke-ujung, izin terstruktur, MCP asli, tanpa `unsafe`. Menggerakkan runtime agen bawaan OpenPencil (`vendor/agent`) dan Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Framework UI GPU-Skia murni-Rust — widget, layout, event, dan hot reload dalam satu stack. Mengubah dokumen `.op` deklaratif menjadi aplikasi native yang dapat dikendalikan AI tanpa runtime JS, tanpa DOM, tanpa Electron. Framework UI OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Sistem memori local-first, non-vektor untuk agen koding. Memori tahan lama sebagai file yang dapat diperiksa, antrean tinjauan untuk entri baru, dan pengambilan leksikal (tanpa embedding) — bekerja di seluruh Zode, Codex, Claude Code, dan runtime MCP. |
|
||||
|
||||
## Mengapa Rust
|
||||
|
||||
OpenPencil telah ditulis ulang dari awal dalam **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). Penulisan ulang ini telah selesai — editor TypeScript + Electron dipensiunkan pada `v0.7.5`, dan workspace Rust di repo ini adalah produknya: satu inti native yang jauh lebih kecil dan lebih cepat, serta berjalan di lebih banyak platform dari satu basis kode.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Adapter React 19
|
||||
│ └── op-web-sdk-vue/ Adapter Vue 3
|
||||
├── vendor/ Subsistem yang di-vendor (git submodules)
|
||||
│ ├── jian/ Toolkit widget/render/event Skia
|
||||
│ ├── jian/ Framework UI GPU-Skia — widget/render/event
|
||||
│ ├── casement/ Fork winit
|
||||
│ └── agent/ Runtime agen Rust lintas produk (agent-rs)
|
||||
└── .githooks/ Pre-commit sinkronisasi versi dari nama branch
|
||||
|
|
|
|||
15
README.ja.md
15
README.ja.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # stdin からパイプ入力
|
|||
| ------------------ | -------------------------------------------------------------------------------- |
|
||||
| **コア** | Rust ワークスペース(`crates/`) — エディター状態、ウィジェット、ホスト、MCP、AI、codegen |
|
||||
| **レンダリング** | あらゆる場所で GPU Skia — ネイティブは `skia-safe`(GL)、ブラウザは CanvasKit(WASM/WebGL2) |
|
||||
| **UI ツールキット** | jian — ベンダー化された Rust ウィジェット/レンダー/イベントツールキット(`vendor/jian`) |
|
||||
| **UI フレームワーク** | jian — ベンダー化された純 Rust の GPU-Skia UI フレームワーク:ウィジェット、レイアウト、イベント、ホットリロード(`vendor/jian`) |
|
||||
| **ウィンドウイング** | winit(ベンダー化された `casement` フォーク) |
|
||||
| **デスクトップ** | ネイティブバイナリ `openpencil-desktop` — ブラウザエンジン不要 |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 アダプター — 読み取り専用 `.op` ビューアー(TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # stdin からパイプ入力
|
|||
| **リント** | clippy · rustfmt(Rust) · oxlint · oxfmt(Web SDK) |
|
||||
| **ファイル形式** | `.op` — JSON ベース、人間が読みやすく、Git フレンドリー |
|
||||
|
||||
## エコシステム
|
||||
|
||||
OpenPencil は **[ZSeven-W](https://github.com/ZSeven-W)** による純 Rust・AI ネイティブなツール群の一員です。これらは互いに組み合わさります:`jian` が OpenPencil をレンダリングし、`agent-rs` がそのエージェントを実行し、`noema` が記憶し、`zode` がターミナルからデザインします。
|
||||
|
||||
| プロジェクト | 内容 |
|
||||
| ------- | ---------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | ターミナル向けのオープンソース AI ネイティブコーディングアシスタント — コードを読み、コマンドを実行し、ファイルを検索し、git を管理する高速な Rust TUI(`ratatui`)。MCP 経由で OpenPencil を駆動します。 |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | LLM エージェントを届けるための純 Rust 非同期ランタイム — マルチプロバイダー、エンドツーエンドでツール対応、構造化された権限、本物の MCP、`unsafe` ゼロ。OpenPencil のビルトインエージェントランタイム(`vendor/agent`)と Zode を支えます。 |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | 純 Rust の GPU-Skia UI フレームワーク — ウィジェット、レイアウト、イベント、ホットリロードを一つのスタックに。宣言的な `.op` ドキュメントを、JS ランタイムも DOM も Electron もない、ネイティブで AI 制御可能なアプリへと変えます。OpenPencil の UI フレームワーク(`vendor/jian`)。 |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | コーディングエージェント向けのローカルファースト・非ベクター記憶システム。検査可能なファイルとしての永続的な記憶、新規エントリのレビューキュー、そして語彙的(埋め込み不要)な想起 — Zode、Codex、Claude Code、MCP ランタイム間で機能します。 |
|
||||
|
||||
## なぜ Rust か
|
||||
|
||||
OpenPencil は **Rust** で一から書き直されました ([#129](https://github.com/ZSeven-W/openpencil/issues/129))。書き直しは完了しています — TypeScript + Electron エディターは `v0.7.5` で廃止され、このリポジトリの Rust ワークスペースが製品そのものです:ひとつのネイティブコアで劇的に軽量かつ高速になり、単一のコードベースからより多くのプラットフォームで動作します。
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 アダプター
|
||||
│ └── op-web-sdk-vue/ Vue 3 アダプター
|
||||
├── vendor/ ベンダー化されたサブシステム(git サブモジュール)
|
||||
│ ├── jian/ Skia ウィジェット/レンダー/イベントツールキット
|
||||
│ ├── jian/ GPU-Skia UI フレームワーク — ウィジェット/レンダー/イベント
|
||||
│ ├── casement/ winit フォーク
|
||||
│ └── agent/ 製品横断 Rust エージェントランタイム(agent-rs)
|
||||
└── .githooks/ ブランチ名からのプレコミットバージョン同期
|
||||
|
|
|
|||
15
README.ko.md
15
README.ko.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # stdin에서 파이프 입력
|
|||
| ------------- | ------------------------------------------------------------------------------ |
|
||||
| **코어** | Rust 워크스페이스 (`crates/`) — 에디터 상태, 위젯, 호스트, MCP, AI, 코드젠 |
|
||||
| **렌더링** | 모든 곳에서 GPU Skia — 네이티브는 `skia-safe` (GL), 브라우저는 CanvasKit (WASM/WebGL2) |
|
||||
| **UI 툴킷** | jian — 벤더링된 Rust 위젯/렌더/이벤트 툴킷 (`vendor/jian`) |
|
||||
| **UI 프레임워크** | jian — 벤더링된 순수 Rust GPU-Skia UI 프레임워크: 위젯, 레이아웃, 이벤트, 핫 리로드 (`vendor/jian`) |
|
||||
| **윈도잉** | winit (벤더링된 `casement` 포크) |
|
||||
| **데스크톱** | 네이티브 바이너리 `openpencil-desktop` — 브라우저 엔진 없음 |
|
||||
| **웹 SDK** | `op-web-sdk` + React 19 / Vue 3 어댑터 — 읽기 전용 `.op` 뷰어 (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # stdin에서 파이프 입력
|
|||
| **린트** | clippy · rustfmt (Rust) · oxlint · oxfmt (웹 SDK) |
|
||||
| **파일 형식** | `.op` — JSON 기반, 사람이 읽을 수 있는, Git 친화적 |
|
||||
|
||||
## 에코시스템
|
||||
|
||||
OpenPencil은 **[ZSeven-W](https://github.com/ZSeven-W)**의 순수 Rust, AI 네이티브 도구 제품군의 일부입니다. 이들은 서로 맞물려 작동합니다: `jian`이 OpenPencil을 렌더링하고, `agent-rs`가 그 에이전트를 실행하며, `noema`가 기억하고, `zode`가 터미널에서 디자인합니다.
|
||||
|
||||
| 프로젝트 | 내용 |
|
||||
| ------- | ---------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | 터미널을 위한 오픈소스 AI 네이티브 코딩 어시스턴트 — 코드를 읽고, 명령을 실행하고, 파일을 검색하고, git을 관리하는 빠른 Rust TUI(`ratatui`). MCP를 통해 OpenPencil을 구동합니다. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | LLM 에이전트를 배포하기 위한 순수 Rust 비동기 런타임 — 멀티 프로바이더, 엔드투엔드 도구 지원, 구조화된 권한, 진짜 MCP, `unsafe` 제로. OpenPencil의 내장 에이전트 런타임(`vendor/agent`)과 Zode를 구동합니다. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | 순수 Rust GPU-Skia UI 프레임워크 — 위젯, 레이아웃, 이벤트, 핫 리로드를 하나의 스택에. 선언적 `.op` 문서를 JS 런타임도, DOM도, Electron도 없는 네이티브하고 AI로 제어 가능한 앱으로 바꿉니다. OpenPencil의 UI 프레임워크(`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | 코딩 에이전트를 위한 로컬 우선, 비벡터 메모리 시스템. 검사 가능한 파일로서의 지속적 메모리, 새 항목을 위한 리뷰 큐, 그리고 어휘 기반(임베딩 없는) 회상 — Zode, Codex, Claude Code, MCP 런타임 전반에서 작동합니다. |
|
||||
|
||||
## Rust를 선택한 이유
|
||||
|
||||
OpenPencil은 처음부터 **Rust**로 다시 작성되었습니다 ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). 재작성이 완료되었습니다 — TypeScript + Electron 에디터는 `v0.7.5`에서 은퇴했고, 이 저장소의 Rust 워크스페이스가 바로 제품입니다: 단일 네이티브 코어로 크기는 획기적으로 줄고 속도는 빨라지며, 하나의 코드베이스에서 더 많은 플랫폼을 지원합니다.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 어댑터
|
||||
│ └── op-web-sdk-vue/ Vue 3 어댑터
|
||||
├── vendor/ 벤더링된 서브시스템 (git submodules)
|
||||
│ ├── jian/ Skia 위젯/렌더/이벤트 툴킷
|
||||
│ ├── jian/ GPU-Skia UI 프레임워크 — 위젯/렌더/이벤트
|
||||
│ ├── casement/ winit 포크
|
||||
│ └── agent/ 제품 공용 Rust 에이전트 런타임 (agent-rs)
|
||||
└── .githooks/ 브랜치 이름에서 버전 동기화를 위한 pre-commit
|
||||
|
|
|
|||
17
README.md
17
README.md
|
|
@ -167,7 +167,7 @@ git clone --recurse-submodules https://github.com/ZSeven-W/openpencil.git
|
|||
git submodule sync --recursive && git submodule update --init --recursive
|
||||
```
|
||||
|
||||
Three submodules live under `vendor/`, all public and fetched over HTTPS (no SSH key needed): `jian` (Skia widget/render/event toolkit), `casement` (winit fork), and `agent` (`agent-rs` — cross-product Rust agent runtime, shared by OP + Zode). `vendor/anthropic-agent-sdk` is tracked in-tree, not a submodule.
|
||||
Three submodules live under `vendor/`, all public and fetched over HTTPS (no SSH key needed): `jian` (GPU-Skia UI framework — widgets/render/events), `casement` (winit fork), and `agent` (`agent-rs` — cross-product Rust agent runtime, shared by OP + Zode). `vendor/anthropic-agent-sdk` is tracked in-tree, not a submodule.
|
||||
|
||||
## Quick Start (Development)
|
||||
|
||||
|
|
@ -358,7 +358,7 @@ Supports three input methods: inline string, `@filepath` (read from file), or `-
|
|||
| --------------- | ------------------------------------------------------------------------------------------ |
|
||||
| **Core** | Rust workspace (`crates/`) — editor state, widgets, hosts, MCP, AI, codegen |
|
||||
| **Rendering** | GPU Skia everywhere — `skia-safe` (GL) on native, CanvasKit (WASM/WebGL2) in the browser |
|
||||
| **UI toolkit** | jian — vendored Rust widget/render/event toolkit (`vendor/jian`) |
|
||||
| **UI framework** | jian — vendored pure-Rust GPU-Skia UI framework: widgets, layout, events, hot reload (`vendor/jian`) |
|
||||
| **Windowing** | winit (vendored `casement` fork) |
|
||||
| **Desktop** | Native binary `openpencil-desktop` — no browser engine |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 adapters — read-only `.op` viewer (TypeScript) |
|
||||
|
|
@ -367,6 +367,17 @@ Supports three input methods: inline string, `@filepath` (read from file), or `-
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **File format** | `.op` — JSON-based, human-readable, Git-friendly |
|
||||
|
||||
## Ecosystem
|
||||
|
||||
OpenPencil is part of a family of pure-Rust, AI-native tools from **[ZSeven-W](https://github.com/ZSeven-W)**. They compose: `jian` renders OpenPencil, `agent-rs` runs its agents, `noema` remembers, and `zode` designs from the terminal.
|
||||
|
||||
| Project | What it is |
|
||||
| ------- | ---------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Open-source, AI-native coding assistant for your terminal — a fast Rust TUI (`ratatui`) that reads your code, runs commands, searches files, and manages git. Drives OpenPencil over MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | A pure-Rust async runtime for shipping LLM agents — multi-provider, tool-capable end-to-end, structured permissions, real MCP, zero `unsafe`. Powers OpenPencil's built-in agent runtime (`vendor/agent`) and Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Pure-Rust, GPU-Skia UI framework — widgets, layout, events, and hot reload in one stack. Turns a declarative `.op` document into a native, AI-controllable app with no JS runtime, no DOM, no Electron. OpenPencil's UI framework (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Local-first, non-vector memory system for coding agents. Durable memory as inspectable files, a review queue for new entries, and lexical (embedding-free) recall — works across Zode, Codex, Claude Code, and MCP runtimes. |
|
||||
|
||||
## Why Rust
|
||||
|
||||
OpenPencil was rewritten from the ground up in **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). The rewrite is complete — the TypeScript + Electron editor was retired at `v0.7.5`, and the Rust workspace in this repo is the product: one native core that is dramatically smaller and faster, and runs on more platforms from a single codebase.
|
||||
|
|
@ -421,7 +432,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 adapter
|
||||
│ └── op-web-sdk-vue/ Vue 3 adapter
|
||||
├── vendor/ Vendored subsystems (git submodules)
|
||||
│ ├── jian/ Skia widget/render/event toolkit
|
||||
│ ├── jian/ GPU-Skia UI framework — widgets/render/events
|
||||
│ ├── casement/ winit fork
|
||||
│ └── agent/ Cross-product Rust agent runtime (agent-rs)
|
||||
└── .githooks/ Pre-commit version sync from branch name
|
||||
|
|
|
|||
15
README.pt.md
15
README.pt.md
|
|
@ -287,7 +287,7 @@ Suporta três métodos de entrada: string inline, `@filepath` (ler de arquivo) o
|
|||
| ---------------------- | ------------------------------------------------------------------------------------- |
|
||||
| **Núcleo** | Workspace Rust (`crates/`) — estado do editor, widgets, hosts, MCP, IA, codegen |
|
||||
| **Renderização** | GPU Skia em todo lugar — `skia-safe` (GL) no nativo, CanvasKit (WASM/WebGL2) no navegador |
|
||||
| **Kit de UI** | jian — toolkit Rust de widget/renderização/eventos vendorizado (`vendor/jian`) |
|
||||
| **Framework de UI** | jian — framework de UI GPU-Skia puro-Rust vendorizado: widgets, layout, eventos, hot reload (`vendor/jian`) |
|
||||
| **Janelamento** | winit (fork `casement` vendorizado) |
|
||||
| **Desktop** | Binário nativo `openpencil-desktop` — sem motor de navegador |
|
||||
| **SDK Web** | `op-web-sdk` + adaptadores React 19 / Vue 3 — visualizador `.op` somente leitura (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Suporta três métodos de entrada: string inline, `@filepath` (ler de arquivo) o
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (SDK web) |
|
||||
| **Formato de arquivo** | `.op` — baseado em JSON, legível por humanos, compatível com Git |
|
||||
|
||||
## Ecossistema
|
||||
|
||||
O OpenPencil faz parte de uma família de ferramentas puro-Rust, nativas com IA da **[ZSeven-W](https://github.com/ZSeven-W)**. Elas se compõem: `jian` renderiza o OpenPencil, `agent-rs` executa seus agentes, `noema` memoriza, e `zode` projeta a partir do terminal.
|
||||
|
||||
| Projeto | O que é |
|
||||
| ------- | ------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Assistente de código open-source e nativo com IA para o seu terminal — uma TUI Rust rápida (`ratatui`) que lê seu código, executa comandos, busca arquivos e gerencia o git. Controla o OpenPencil via MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Um runtime assíncrono puro-Rust para entregar agentes LLM — multi-provedor, com suporte a ferramentas de ponta a ponta, permissões estruturadas, MCP real, zero `unsafe`. Alimenta o runtime de agente integrado do OpenPencil (`vendor/agent`) e o Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Framework de UI puro-Rust, GPU-Skia — widgets, layout, eventos e hot reload em uma única stack. Transforma um documento `.op` declarativo em um app nativo e controlável por IA, sem runtime JS, sem DOM, sem Electron. O framework de UI do OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Sistema de memória local-first e não vetorial para agentes de código. Memória durável como arquivos inspecionáveis, uma fila de revisão para novas entradas e recuperação léxica (sem embeddings) — funciona no Zode, Codex, Claude Code e runtimes MCP. |
|
||||
|
||||
## Por que Rust
|
||||
|
||||
O OpenPencil foi reescrito do zero em **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). A reescrita está completa — o editor TypeScript + Electron foi descontinuado na `v0.7.5`, e o workspace Rust deste repositório é o produto: um núcleo nativo drasticamente menor e mais rápido, que roda em mais plataformas a partir de uma única base de código.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Adaptador React 19
|
||||
│ └── op-web-sdk-vue/ Adaptador Vue 3
|
||||
├── vendor/ Subsistemas vendorizados (submódulos git)
|
||||
│ ├── jian/ Toolkit de widget/renderização/eventos Skia
|
||||
│ ├── jian/ Framework de UI GPU-Skia — widgets/renderização/eventos
|
||||
│ ├── casement/ Fork do winit
|
||||
│ └── agent/ Runtime de agente Rust compartilhado entre produtos (agent-rs)
|
||||
└── .githooks/ Sincronização de versão no pre-commit a partir do nome da branch
|
||||
|
|
|
|||
15
README.ru.md
15
README.ru.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # Передача через stdin
|
|||
| -------------------- | -------------------------------------------------------------------------------- |
|
||||
| **Ядро** | Rust-пространство (`crates/`) — состояние редактора, виджеты, хосты, MCP, AI, кодген |
|
||||
| **Рендеринг** | GPU Skia везде — `skia-safe` (GL) на нативных платформах, CanvasKit (WASM/WebGL2) в браузере |
|
||||
| **UI-инструментарий** | jian — вендоренный Rust-инструментарий виджетов/рендеринга/событий (`vendor/jian`) |
|
||||
| **UI-фреймворк** | jian — вендоренный чистый Rust GPU-Skia UI-фреймворк: виджеты, раскладка, события, горячая перезагрузка (`vendor/jian`) |
|
||||
| **Оконная система** | winit (вендоренный форк `casement`) |
|
||||
| **Десктоп** | Нативный бинарный файл `openpencil-desktop` — без браузерного движка |
|
||||
| **Веб-SDK** | `op-web-sdk` + адаптеры React 19 / Vue 3 — SDK для просмотра `.op` только для чтения (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # Передача через stdin
|
|||
| **Линтинг** | clippy · rustfmt (Rust) · oxlint · oxfmt (веб-SDK) |
|
||||
| **Формат файла** | `.op` — на основе JSON, удобочитаемый, дружественный к Git |
|
||||
|
||||
## Экосистема
|
||||
|
||||
OpenPencil — часть семейства AI-нативных инструментов на чистом Rust от **[ZSeven-W](https://github.com/ZSeven-W)**. Они дополняют друг друга: `jian` отрисовывает OpenPencil, `agent-rs` запускает его агентов, `noema` запоминает, а `zode` проектирует из терминала.
|
||||
|
||||
| Проект | Что это такое |
|
||||
| ------ | ------------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Open-source AI-нативный ассистент для программирования в вашем терминале — быстрый Rust TUI (`ratatui`), который читает ваш код, выполняет команды, ищет файлы и управляет git. Управляет OpenPencil через MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Асинхронный рантайм на чистом Rust для выпуска LLM-агентов — мультипровайдерный, со сквозной поддержкой инструментов, структурированными разрешениями, настоящим MCP и нулём `unsafe`. Питает встроенный рантайм агентов OpenPencil (`vendor/agent`) и Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | UI-фреймворк на чистом Rust с GPU-Skia — виджеты, раскладка, события и горячая перезагрузка в одном стеке. Превращает декларативный документ `.op` в нативное, управляемое ИИ приложение без JS-рантайма, без DOM, без Electron. UI-фреймворк OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Локальная невекторная система памяти для агентов программирования. Долговременная память в виде инспектируемых файлов, очередь на проверку новых записей и лексический (без эмбеддингов) поиск — работает в Zode, Codex, Claude Code и рантаймах MCP. |
|
||||
|
||||
## Почему Rust
|
||||
|
||||
OpenPencil переписан с нуля на **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). Переписывание завершено — редактор на TypeScript + Electron был выведен из эксплуатации в `v0.7.5`, и Rust-пространство в этом репозитории — это и есть продукт: единое нативное ядро, значительно меньшее и быстрее, работающее на большем количестве платформ из единой кодовой базы.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Адаптер React 19
|
||||
│ └── op-web-sdk-vue/ Адаптер Vue 3
|
||||
├── vendor/ Вендоренные подсистемы (git submodules)
|
||||
│ ├── jian/ Инструментарий виджетов/рендеринга/событий Skia
|
||||
│ ├── jian/ GPU-Skia UI-фреймворк — виджеты/рендеринг/события
|
||||
│ ├── casement/ Форк winit
|
||||
│ └── agent/ Кроссплатформенный Rust-рантайм агентов (agent-rs)
|
||||
└── .githooks/ Pre-commit синхронизация версий из имени ветки
|
||||
|
|
|
|||
15
README.th.md
15
README.th.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # Pipe จาก stdin
|
|||
| -------------- | ---------------------------------------------------------------------------------------- |
|
||||
| **Core** | Rust workspace (`crates/`) — editor state, widgets, hosts, MCP, AI, codegen |
|
||||
| **Rendering** | GPU Skia ทุกที่ — `skia-safe` (GL) บน native, CanvasKit (WASM/WebGL2) บนเบราว์เซอร์ |
|
||||
| **UI toolkit** | jian — Rust widget/render/event toolkit แบบ vendored (`vendor/jian`) |
|
||||
| **เฟรมเวิร์ก UI** | jian — เฟรมเวิร์ก UI แบบ GPU-Skia ที่เป็น pure-Rust และ vendored: widgets, layout, events, hot reload (`vendor/jian`) |
|
||||
| **Windowing** | winit (vendored `casement` fork) |
|
||||
| **Desktop** | Native binary `openpencil-desktop` — ไม่มี browser engine |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 adapters — `.op` viewer แบบอ่านอย่างเดียว (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # Pipe จาก stdin
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **รูปแบบไฟล์** | `.op` — ใช้ JSON, อ่านได้โดยมนุษย์, Git-friendly |
|
||||
|
||||
## ระบบนิเวศ
|
||||
|
||||
OpenPencil เป็นส่วนหนึ่งของตระกูลเครื่องมือแบบ pure-Rust ที่ขับเคลื่อนด้วย AI จาก **[ZSeven-W](https://github.com/ZSeven-W)** ซึ่งประกอบเข้าด้วยกัน: `jian` เรนเดอร์ OpenPencil, `agent-rs` รันเอเจนต์ของมัน, `noema` จดจำ, และ `zode` ออกแบบจากเทอร์มินัล
|
||||
|
||||
| โปรเจกต์ | คืออะไร |
|
||||
| -------- | ------- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | ผู้ช่วยเขียนโค้ดแบบโอเพนซอร์สที่ขับเคลื่อนด้วย AI สำหรับเทอร์มินัลของคุณ — Rust TUI (`ratatui`) ที่รวดเร็วซึ่งอ่านโค้ดของคุณ รันคำสั่ง ค้นหาไฟล์ และจัดการ git ขับเคลื่อน OpenPencil ผ่าน MCP |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | async runtime แบบ pure-Rust สำหรับส่งมอบ LLM agent — รองรับหลายผู้ให้บริการ ใช้เครื่องมือได้แบบ end-to-end สิทธิ์แบบมีโครงสร้าง MCP จริง และ `unsafe` เป็นศูนย์ ขับเคลื่อน agent runtime ในตัวของ OpenPencil (`vendor/agent`) และ Zode |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | เฟรมเวิร์ก UI แบบ GPU-Skia ที่เป็น pure-Rust — widgets, layout, events และ hot reload ในสแตกเดียว เปลี่ยนเอกสาร `.op` แบบ declarative ให้เป็นแอปแบบ native ที่ควบคุมด้วย AI ได้ โดยไม่มี JS runtime, ไม่มี DOM, ไม่มี Electron เฟรมเวิร์ก UI ของ OpenPencil (`vendor/jian`) |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | ระบบหน่วยความจำแบบ local-first ที่ไม่ใช่เวกเตอร์สำหรับ coding agent หน่วยความจำที่คงทนในรูปแบบไฟล์ที่ตรวจสอบได้ คิวสำหรับตรวจทานรายการใหม่ และการเรียกคืนแบบ lexical (ไม่ใช้ embedding) — ทำงานได้ทั้งบน Zode, Codex, Claude Code และ MCP runtime |
|
||||
|
||||
## ทำไมต้อง Rust
|
||||
|
||||
OpenPencil ถูกเขียนใหม่ตั้งแต่ต้นด้วย **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)) การเขียนใหม่เสร็จสมบูรณ์แล้ว — editor แบบ TypeScript + Electron ถูกเลิกใช้ที่ `v0.7.5` และ Rust workspace ในรีโปนี้คือตัวผลิตภัณฑ์: core แบบ native เดียวที่เล็กและเร็วกว่าอย่างเห็นได้ชัด และรองรับได้บนหลายแพลตฟอร์มจาก codebase เดียว
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 adapter
|
||||
│ └── op-web-sdk-vue/ Vue 3 adapter
|
||||
├── vendor/ Subsystem แบบ vendored (git submodules)
|
||||
│ ├── jian/ Skia widget/render/event toolkit
|
||||
│ ├── jian/ เฟรมเวิร์ก UI แบบ GPU-Skia — widget/render/event
|
||||
│ ├── casement/ winit fork
|
||||
│ └── agent/ Rust agent runtime ข้ามผลิตภัณฑ์ (agent-rs)
|
||||
└── .githooks/ Pre-commit version sync จาก branch name
|
||||
|
|
|
|||
15
README.tr.md
15
README.tr.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # stdin'den pipe ile besle
|
|||
| ----------------------- | -------------------------------------------------------------------------------- |
|
||||
| **Çekirdek** | Rust çalışma alanı (`crates/`) — editör durumu, widget'lar, host'lar, MCP, AI, codegen |
|
||||
| **Görüntü İşleme** | Her yerde GPU Skia — yerelde `skia-safe` (GL), tarayıcıda CanvasKit (WASM/WebGL2) |
|
||||
| **Arayüz Araç Seti** | jian — vendored Rust widget/render/event araç seti (`vendor/jian`) |
|
||||
| **UI çatısı** | jian — vendored saf Rust GPU-Skia UI çatısı: widget'lar, düzen, olaylar, hot reload (`vendor/jian`) |
|
||||
| **Pencere Yönetimi** | winit (vendored `casement` çatalı) |
|
||||
| **Masaüstü** | Yerel ikili `openpencil-desktop` — tarayıcı motoru yok |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 adaptörleri — salt okunur `.op` görüntüleyici (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # stdin'den pipe ile besle
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **Dosya Formatı** | `.op` — JSON tabanlı, insan tarafından okunabilir, Git dostu |
|
||||
|
||||
## Ekosistem
|
||||
|
||||
OpenPencil, **[ZSeven-W](https://github.com/ZSeven-W)** tarafından geliştirilen saf Rust, AI-yerel araçlardan oluşan bir ailenin parçasıdır. Birbirini tamamlarlar: `jian` OpenPencil'ı işler, `agent-rs` ajanlarını çalıştırır, `noema` hatırlar ve `zode` terminalden tasarlar.
|
||||
|
||||
| Proje | Nedir |
|
||||
| ----- | ----- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Terminaliniz için açık kaynaklı, AI-yerel kodlama asistanı — kodunuzu okuyan, komutları çalıştıran, dosyaları arayan ve git'i yöneten hızlı bir Rust TUI'si (`ratatui`). OpenPencil'ı MCP üzerinden sürer. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | LLM ajanlarını sevk etmek için saf Rust asenkron çalışma ortamı — çoklu sağlayıcı, uçtan uca araç yetenekli, yapılandırılmış izinler, gerçek MCP ve sıfır `unsafe`. OpenPencil'ın yerleşik ajan çalışma ortamını (`vendor/agent`) ve Zode'u güçlendirir. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Saf Rust, GPU-Skia UI çatısı — tek bir yığında widget'lar, düzen, olaylar ve hot reload. Bildirimsel bir `.op` belgesini JS çalışma ortamı, DOM ve Electron olmadan yerel, AI ile kontrol edilebilir bir uygulamaya dönüştürür. OpenPencil'ın UI çatısı (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Kodlama ajanları için yerel öncelikli, vektörsüz bellek sistemi. İncelenebilir dosyalar olarak kalıcı bellek, yeni girdiler için bir inceleme kuyruğu ve sözcüksel (gömme içermeyen) geri çağırma — Zode, Codex, Claude Code ve MCP çalışma ortamlarında çalışır. |
|
||||
|
||||
## Neden Rust
|
||||
|
||||
OpenPencil, sıfırdan **Rust** ile yeniden yazıldı ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). Yeniden yazım tamamlandı — TypeScript + Electron editörü `v0.7.5` sürümünde kullanımdan kaldırıldı ve bu depodaki Rust çalışma alanı artık ürünün kendisidir: tek bir doğal çekirdek, çok daha küçük, çok daha hızlı ve tek bir kod tabanından daha fazla platformda çalışır.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 adaptörü
|
||||
│ └── op-web-sdk-vue/ Vue 3 adaptörü
|
||||
├── vendor/ Vendored alt sistemler (git submodule'ları)
|
||||
│ ├── jian/ Skia widget/render/event araç seti
|
||||
│ ├── jian/ GPU-Skia UI çatısı — widget/render/event
|
||||
│ ├── casement/ winit çatalı
|
||||
│ └── agent/ Ürünler arası Rust ajan çalışma ortamı (agent-rs)
|
||||
└── .githooks/ Dal adından ön-commit sürüm eşitleme
|
||||
|
|
|
|||
15
README.vi.md
15
README.vi.md
|
|
@ -287,7 +287,7 @@ Hỗ trợ ba phương thức nhập liệu: chuỗi inline, `@filepath` (đọc
|
|||
| ------------------ | ------------------------------------------------------------------------------------------- |
|
||||
| **Lõi** | Rust workspace (`crates/`) — trạng thái editor, widget, host, MCP, AI, codegen |
|
||||
| **Dựng hình** | GPU Skia ở khắp nơi — `skia-safe` (GL) trên nền tảng gốc, CanvasKit (WASM/WebGL2) trên trình duyệt |
|
||||
| **Bộ công cụ UI** | jian — bộ công cụ widget/render/event Rust được vendor hóa (`vendor/jian`) |
|
||||
| **Framework UI** | jian — framework UI GPU-Skia thuần Rust được vendor hóa: widget, layout, sự kiện, hot reload (`vendor/jian`) |
|
||||
| **Cửa sổ** | winit (bản fork `casement` được vendor hóa) |
|
||||
| **Desktop** | Tệp nhị phân gốc `openpencil-desktop` — không có browser engine |
|
||||
| **Web SDK** | `op-web-sdk` + các adapter React 19 / Vue 3 — trình xem `.op` chỉ đọc (TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ Hỗ trợ ba phương thức nhập liệu: chuỗi inline, `@filepath` (đọc
|
|||
| **Lint** | clippy · rustfmt (Rust) · oxlint · oxfmt (web SDK) |
|
||||
| **Định dạng tệp** | `.op` — dựa trên JSON, dễ đọc, thân thiện với Git |
|
||||
|
||||
## Hệ sinh thái
|
||||
|
||||
OpenPencil là một phần của bộ công cụ thuần Rust, thuần AI đến từ **[ZSeven-W](https://github.com/ZSeven-W)**. Chúng phối hợp với nhau: `jian` dựng hình OpenPencil, `agent-rs` chạy các tác nhân của nó, `noema` ghi nhớ, và `zode` thiết kế từ terminal.
|
||||
|
||||
| Dự án | Là gì |
|
||||
| ----- | ----- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | Trợ lý lập trình mã nguồn mở, thuần AI cho terminal của bạn — một Rust TUI nhanh (`ratatui`) đọc mã của bạn, chạy lệnh, tìm kiếm tệp và quản lý git. Điều khiển OpenPencil qua MCP. |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | Một runtime bất đồng bộ thuần Rust để phát hành các tác nhân LLM — đa nhà cung cấp, hỗ trợ công cụ đầu-cuối, quyền có cấu trúc, MCP thực thụ, không có `unsafe`. Cung cấp năng lượng cho runtime tác nhân tích hợp sẵn của OpenPencil (`vendor/agent`) và Zode. |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | Framework UI GPU-Skia thuần Rust — widget, layout, sự kiện và hot reload trong một stack duy nhất. Biến một tài liệu `.op` khai báo thành một ứng dụng gốc, có thể điều khiển bằng AI mà không cần JS runtime, không DOM, không Electron. Framework UI của OpenPencil (`vendor/jian`). |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | Hệ thống bộ nhớ ưu tiên cục bộ, phi vector cho các tác nhân lập trình. Bộ nhớ bền vững dưới dạng tệp có thể kiểm tra, hàng đợi đánh giá cho các mục mới, và truy xuất từ vựng (không cần embedding) — hoạt động trên Zode, Codex, Claude Code và các runtime MCP. |
|
||||
|
||||
## Tại sao chọn Rust
|
||||
|
||||
OpenPencil đã được viết lại từ đầu bằng **Rust** ([#129](https://github.com/ZSeven-W/openpencil/issues/129)). Việc viết lại đã hoàn tất — editor TypeScript + Electron đã bị khai tử tại `v0.7.5`, và Rust workspace trong repo này chính là sản phẩm: một nhân gốc duy nhất nhỏ hơn và nhanh hơn đáng kể, chạy trên nhiều nền tảng hơn từ một codebase duy nhất.
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ Adapter React 19
|
||||
│ └── op-web-sdk-vue/ Adapter Vue 3
|
||||
├── vendor/ Các subsystem được vendor hóa (git submodules)
|
||||
│ ├── jian/ Bộ công cụ widget/render/event Skia
|
||||
│ ├── jian/ Framework UI GPU-Skia — widget/render/event
|
||||
│ ├── casement/ Bản fork của winit
|
||||
│ └── agent/ Runtime tác nhân Rust đa sản phẩm (agent-rs)
|
||||
└── .githooks/ Pre-commit đồng bộ phiên bản từ tên nhánh
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # 從 stdin 管道輸入
|
|||
| ---------------- | ---------------------------------------------------------------------------------- |
|
||||
| **核心** | Rust workspace(`crates/`)— 編輯器狀態、widgets、hosts、MCP、AI、程式碼生成 |
|
||||
| **渲染** | 全平台 GPU Skia — 原生端使用 `skia-safe`(GL),瀏覽器端使用 CanvasKit(WASM/WebGL2)|
|
||||
| **UI 工具包** | jian — 內建 Rust widget/render/event 工具包(`vendor/jian`) |
|
||||
| **UI 框架** | jian — 內建的純 Rust GPU-Skia UI 框架:widgets、版面配置、事件、熱重載(`vendor/jian`) |
|
||||
| **視窗系統** | winit(vendored `casement` fork) |
|
||||
| **桌面端** | 原生二進位檔 `openpencil-desktop` — 無需瀏覽器引擎 |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 轉接器 — 唯讀 `.op` 檢視器(TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # 從 stdin 管道輸入
|
|||
| **Lint** | clippy · rustfmt(Rust)· oxlint · oxfmt(Web SDK) |
|
||||
| **檔案格式** | `.op` — 基於 JSON,人類可讀,對 Git 友好 |
|
||||
|
||||
## 生態系
|
||||
|
||||
OpenPencil 是 **[ZSeven-W](https://github.com/ZSeven-W)** 出品的一系列純 Rust、AI 原生工具家族中的一員。它們彼此協作:`jian` 渲染 OpenPencil,`agent-rs` 執行它的智能體,`noema` 負責記憶,`zode` 則從終端機進行設計。
|
||||
|
||||
| 專案 | 簡介 |
|
||||
| ---- | ---- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | 面向終端機的開源、AI 原生程式設計助手 — 一個快速的 Rust TUI(`ratatui`),可讀取你的程式碼、執行命令、搜尋檔案並管理 git。透過 MCP 驅動 OpenPencil。 |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | 用於交付 LLM 智能體的純 Rust 非同步執行環境 — 多提供商、端到端工具能力、結構化權限、真正的 MCP、零 `unsafe`。為 OpenPencil 內建的智能體執行環境(`vendor/agent`)和 Zode 提供動力。 |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | 純 Rust、GPU-Skia UI 框架 — widgets、版面配置、事件和熱重載集於一棧。將宣告式的 `.op` 文件變為原生、AI 可控的應用程式,無需 JS 執行環境、無 DOM、無 Electron。OpenPencil 的 UI 框架(`vendor/jian`)。 |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | 面向程式設計智能體的本地優先、非向量記憶系統。以可檢視的檔案形式提供持久記憶、為新項目提供審閱佇列,以及詞彙式(無需嵌入)召回 — 適用於 Zode、Codex、Claude Code 和 MCP 執行環境。 |
|
||||
|
||||
## 為何選擇 Rust
|
||||
|
||||
OpenPencil 已以 **Rust** 從頭重寫完成([#129](https://github.com/ZSeven-W/openpencil/issues/129))。重寫工作已經完成——TypeScript + Electron 版本的編輯器已在 `v0.7.5` 退役,本存放庫中的 Rust workspace 就是產品本身:一個原生核心,體積大幅縮小、速度更快,並能從單一程式碼庫支援更多平台。
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 轉接器
|
||||
│ └── op-web-sdk-vue/ Vue 3 轉接器
|
||||
├── vendor/ 內建子系統(Git submodules)
|
||||
│ ├── jian/ Skia widget/render/event 工具包
|
||||
│ ├── jian/ GPU-Skia UI 框架 — 元件/渲染/事件
|
||||
│ ├── casement/ winit fork
|
||||
│ └── agent/ 跨產品 Rust Agent 執行環境(agent-rs)
|
||||
└── .githooks/ Pre-commit 版本號同步(從分支名稱)
|
||||
|
|
|
|||
15
README.zh.md
15
README.zh.md
|
|
@ -287,7 +287,7 @@ cat design.dsl | op design - # 从 stdin 管道输入
|
|||
| ------------ | -------------------------------------------------------------------------------- |
|
||||
| **核心** | Rust workspace(`crates/`)— 编辑器状态、组件、宿主、MCP、AI、代码生成 |
|
||||
| **渲染** | 全平台统一使用 GPU Skia — 原生端 `skia-safe`(GL),浏览器端 CanvasKit(WASM/WebGL2) |
|
||||
| **UI 工具包** | jian — 内置的 Rust 组件/渲染/事件工具包(`vendor/jian`) |
|
||||
| **UI 框架** | jian — 内置的纯 Rust GPU-Skia UI 框架:组件、布局、事件、热重载(`vendor/jian`) |
|
||||
| **窗口管理** | winit(内置 `casement` fork) |
|
||||
| **桌面端** | 原生二进制文件 `openpencil-desktop` — 无浏览器引擎 |
|
||||
| **Web SDK** | `op-web-sdk` + React 19 / Vue 3 适配器 — 只读 `.op` 查看器(TypeScript) |
|
||||
|
|
@ -296,6 +296,17 @@ cat design.dsl | op design - # 从 stdin 管道输入
|
|||
| **代码检查** | clippy · rustfmt(Rust)· oxlint · oxfmt(web SDK) |
|
||||
| **文件格式** | `.op` — 基于 JSON,人类可读,对 Git 友好 |
|
||||
|
||||
## 生态
|
||||
|
||||
OpenPencil 是 **[ZSeven-W](https://github.com/ZSeven-W)** 出品的一系列纯 Rust、AI 原生工具家族中的一员。它们彼此协作:`jian` 渲染 OpenPencil,`agent-rs` 运行它的智能体,`noema` 负责记忆,`zode` 则从终端进行设计。
|
||||
|
||||
| 项目 | 简介 |
|
||||
| ---- | ---- |
|
||||
| **[Zode](https://github.com/ZSeven-W/zode)** | 面向终端的开源、AI 原生编程助手 — 一个快速的 Rust TUI(`ratatui`),可读取你的代码、运行命令、搜索文件并管理 git。通过 MCP 驱动 OpenPencil。 |
|
||||
| **[agent-rs](https://github.com/ZSeven-W/agent-rs)** | 用于交付 LLM 智能体的纯 Rust 异步运行时 — 多提供商、端到端工具能力、结构化权限、真正的 MCP、零 `unsafe`。为 OpenPencil 内置的智能体运行时(`vendor/agent`)和 Zode 提供动力。 |
|
||||
| **[jian](https://github.com/ZSeven-W/jian)** | 纯 Rust、GPU-Skia UI 框架 — 组件、布局、事件和热重载集于一栈。将声明式的 `.op` 文档变为原生、AI 可控的应用,无需 JS 运行时、无 DOM、无 Electron。OpenPencil 的 UI 框架(`vendor/jian`)。 |
|
||||
| **[noema](https://github.com/ZSeven-W/noema)** | 面向编程智能体的本地优先、非向量记忆系统。以可检视的文件形式提供持久记忆、为新条目提供审阅队列,以及词法式(无需嵌入)召回 — 适用于 Zode、Codex、Claude Code 和 MCP 运行时。 |
|
||||
|
||||
## 为什么选择 Rust
|
||||
|
||||
OpenPencil 已从头用 **Rust** 完成重写([#129](https://github.com/ZSeven-W/openpencil/issues/129))。重写已经完成 — TypeScript + Electron 版编辑器已在 `v0.7.5` 退役,本仓库中的 Rust workspace 就是当前产品本身:一个体积更小、速度更快的原生核心,从单一代码库支持更多平台。
|
||||
|
|
@ -350,7 +361,7 @@ openpencil/
|
|||
│ ├── op-web-sdk-react/ React 19 适配器
|
||||
│ └── op-web-sdk-vue/ Vue 3 适配器
|
||||
├── vendor/ 内置子系统(git 子模块)
|
||||
│ ├── jian/ Skia 组件/渲染/事件工具包
|
||||
│ ├── jian/ GPU-Skia UI 框架 — 组件/渲染/事件
|
||||
│ ├── casement/ winit fork
|
||||
│ └── agent/ 跨产品 Rust Agent 运行时(agent-rs)
|
||||
└── .githooks/ 预提交钩子:从分支名同步版本号
|
||||
|
|
|
|||
Loading…
Reference in a new issue