Development & Runtime

cordis-plugin-graph

acryldev/cordis-plugin-graph · ★ 0

acryldev

Adds a 'Plugin graph' tab to Settings, rendering a live zoomable Cytoscape graph of the running Cordis context: plugin fibers as phase-coloured nodes, with toggleable inject-dependency, resolved-provider, and Loader-tree-nesting edges.

License
MIT
Added
2026-10-30
Maintenance
active
Install kind
github
npm
cordis-plugin-graph
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-10-30T09:38:17.601Z
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add 'github:cordisplugins/cordis-plugin-graph#e9bf6b53a8a8177dfbe302b2454abd347943da53'

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. What you see
  2. Install
  3. Portability
  4. Build
  5. License

A DSH / Cordis Web plugin that adds a Plugin graph tab to Settings → Plugins, next to Plugin list. It renders a live, zoomable Cytoscape graph of the running Cordis runtime — including what a static package graph can't show: which provider actually resolved each inject, what's disabled, and tool calls flowing through in real time.

What you see

Two planes (toggle: client / host / both):

  • client — the renderer Cordis context, inspected in-process: every dsh-client-ui-* plugin, the slot renderer, connection, theme, locale, settings.
  • host — the engine context (sessions, agents, tools, model adapters, persistence), polled from a same-origin route the host half serves. Falls back gracefully to client-only where no web server is reachable (packaged desktop, headless).

Nodes = plugin fibers, coloured by lifecycle phase (active / pending / loading / failed / unloading / disposed) plus disabled for a Loader row turned off — so the graph shows the whole composition, not only what's running. Size scales with services provided.

Edges, individually toggleable:

  • requires (inject) — a fiber's hard inject, drawn to the fiber that actually resolved it.
  • provides to — the reverse.
  • nested in (Loader tree) — Loader-tree parent (composition / inheritance).

Runtime activity — while the host plane is shown, a live feed of the last tool executions (from a tools/result subscription), and the tool node pulses on each call. Run an agent task and watch it move through the graph.

Click a node → module specifier, Loader entry id, provided services, live effect labels. Search by name/module. Recapture after a live enable/disable.

Install

dsh plugin add cordis-plugin-graph

Restart the Host; the tab appears under Settings → Plugins. See install/INSTALL.md for GitHub / local-dir installs and ACRYL Desktop.

Portability

Uses only upstream primitives — settings.plugins.tab, the public @deepseek-ai/cordis context API, and (optionally) tools + webServer scoped injects that degrade independently. Works in any web-profile deployment: ACRYL or stock DSH Desktop.

The renderer-plane inspection walk (src/inspect.ts) started as a trimmed port of acryl-desktop's plugin-architecture-inspector.ts — pure @deepseek-ai/cordis public API.

Build

pnpm install
pnpm run build      # lib/index.js + lib/inspect.js (host), lib/client.js (browser, cytoscape bundled)
pnpm run check      # build + typecheck + tests

License

MIT