Bundle
cordis-plugin-graph
DSH/Cordis Web plugin: a zoomable relation graph of every loaded plugin - dependencies, resolved providers, and Loader-tree nesting - as a Settings tab next to 'Plugin list'.
- Source
- acryldev
- License
- MIT
- Updated
- Updated 12 hours ago
Readme
# cordis-plugin-graph A DSH / Cordis Web plugin that adds a **Plugin graph** tab to `Settings → Plugins`, next to *Plugin list*. It renders a live, zoomable [Cytoscape](https://js.cytoscape.org/) 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 ```sh dsh plugin add cordis-plugin-graph ``` Restart the Host; the tab appears under Settings → Plugins. See [`install/INSTALL.md`](./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 ```sh 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
Install
dsh plugin --profile web add github:acryldev/cordis-plugin-graph
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install cordis-plugin-graph from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.