Capability Map
Package boundaries keep dependencies clear, but evaluating a system starts with a different question: “What can it help me build?” NodeBraid's current workspace packages form seven capability families. Each family connects contracts, Runtime integration, and optional Providers instead of selling infrastructure packages in isolation.
| Capability family | Question it answers | Current delivery |
|---|---|---|
| Foundations | How are capabilities composed, activated, disposed, and diagnosed? | Core facade, Plugin Host, Diagnostics |
| Composition | How is a Renderer selected explicitly for a complete basic Runtime? | Basic Canvas Composition |
| Graph State | Who owns the Document, and where do Selection and Viewport live? | Kernel, Kernel Plugin, Session API, Session Plugin |
| Execution & History | How are behaviors executed and Document Commits undone or redone? | Command Plugin, History Plugin |
| Layout | How is layout computed asynchronously and committed to the current revision? | Layout API, Runtime integration, Dagre, ELK |
| Interaction | How does normalized input become selection, dragging, and viewport behavior? | Interaction API and Interaction Runtime Plugin |
| Rendering Contract | How can a rendering backend integrate without polluting core state? | Renderer API, Renderer Plugin, and SVG Renderer Provider |
A typical composition
text
Application
│ installs
▼
Plugin Host
├── Kernel Plugin ──▶ authoritative Document
├── Session Plugin ─▶ Selection + Viewport
├── Command Plugin ─▶ typed behaviors
├── History Plugin ─▶ Undo / Redo
├── Layout Plugin ──▶ explicit Layout Engine
├── Interaction Plugin ▶ Selection / Drag / Pan / Zoom
└── Renderer Plugin ▶ application-provided Renderer FactoryThe Plugin Host installs none of these capabilities implicitly, and @nodebraid/core remains a public facade. An application can install each member explicitly or explicitly install the Basic Canvas Composition; Renderer and other Provider choices remain application-owned.
Next
- Run the smallest Kernel Runtime in the Quick Start.
- Browse every package in All Modules.
- Read Current Status for publication constraints and known gaps.