@fatagnus/dink-ui-devtools
v2.32.0
Published
Dink UI semantic tree devtools — NATS transport, MCP server, discovery, impersonation, Vite plugin
Readme
@fatagnus/dink-ui-devtools
NATS transport bridge for the Dink semantic tree. Publishes tree snapshots and batched deltas over NATS subjects, enabling CLI inspection and remote action invocation.
Install
npm install @fatagnus/dink-ui-devtoolsPeer dependency: @fatagnus/dink-semantic.
Quick Start
import { SemanticTreeManager } from '@fatagnus/dink-semantic/core';
import { SemTreeNATSBridge } from '@fatagnus/dink-ui-devtools';
const manager = new SemanticTreeManager({ app: 'my-app', version: '1.0.0' });
const bridge = new SemTreeNATSBridge(manager, natsConnection, 'my-app');
bridge.start();
// When done:
bridge.destroy();How It Works
SemTreeNATSBridge subscribes to the SemanticTreeManager's event stream and:
- Delta batching -- Buffers register/update/unregister events and flushes them as a single
SemTreeDeltamessage every 16ms (one frame). - Snapshot requests -- Responds to NATS request/reply on the snapshot subject with the full
SemTreeSnapshot. - Action invocation -- Listens for
SemActRequestmessages, invokes the action on the tree manager, and replies withSemActResponse.
NATS Subjects
Defined in SEM_SUBJECTS:
dink.ui.<appId>.snapshot-- Request/reply for full tree snapshotdink.ui.<appId>.deltas-- Publish stream of batched deltasdink.ui.<appId>.act-- Request/reply for action invocation
CLI Commands
dink ui tree <appId> # Print current semantic tree snapshot
dink ui act <appId> <semId> <action> [args...] # Invoke an action remotely
dink ui watch <appId> # Stream tree deltas in real-timeKey Exports
| Export | Description |
|---|---|
| SemTreeNATSBridge | NATS bridge -- start/destroy lifecycle, 16ms delta batching |
| SEM_SUBJECTS | NATS subject templates |
| NATSConnection | Minimal NATS connection interface (publish, subscribe, request) |
| SemSnapshotMessage | Wire type for snapshot responses |
| SemDeltaMessage | Wire type for delta publications |
| SemActRequest / SemActResponse | Wire types for action invocation |
Design Spec
docs/superpowers/specs/2026-03-16-dink-frontend-framework-design.md
