acryldev/acryl--plugins-acryl-plugin-admin ↗★ 256

acryl-plugin-admin

ACRYL plugin administration, one Cordis plugin for every surface: Settings > Plugins Lifecycle and Architecture tabs (Client) and their private same-origin routes (Host), driven by the shared ctx.acrPluginLifecycle service 适合需要在Web和桌面端统一管理Cordis插件生命周期的系统管理员。

Package
acryl-plugin-admin
Compatibility
Unverified
Harness peer range
0.2.0-rc.2
Cordis peer range
^4.0.2
Version
0.1.0
License
MIT
Last updated
Oct 8, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:acryldev/acryl#36202668b4175f2840ed4673cd8475ee37c1acfe&path:plugins/acryl-plugin-admin

acryl-plugin-admin

Plugin administration for every ACRYL surface, as Cordis plugins. It was inside the Desktop app; it now serves Desktop and Web from one implementation (spec 040 "Surface sharing").

  • Host plugin (src/index.ts): the private same-origin routes behind Settings > Plugins.
    • /api/acryl-plugin-admin/architecture needs only the web server and projects the live Cordis graph.
    • /api/acryl-plugin-admin/lifecycle[/enable|/disable|/reload] is a dependency-gated child plugin: it mounts when a surface has published ctx.acrPluginLifecycle (Desktop and Web both do), unmounts without failing the parent when it goes away, and returns when it comes back.
  • Client plugin (src/client): the Architecture and Lifecycle tabs, contributed to the settings.plugins.tab slot, with their own dictionaries and styles, each owned by one effect.
  • PluginLifecycleView (src/lifecycle/view.ts): the renderer-facing projection over the shared lifecycle authority (client-graph membership, the composed Blend when a surface has one, "reload the page" receipts). Desktop's plugin controller reuses it, so there is one implementation.

Nothing here may import Electron or a Desktop-only service. Composed for both surfaces through the plugin-admin capability in acryl-harness-runtime's coding-capabilities.ts.

Layout

src/
  index.ts          Host plugin (routes, dependency-gated lifecycle child)
  http.ts           loopback same-origin and bounded-JSON helpers (same behaviour as Desktop settings and workspace routes)
  lifecycle/        contract, route, view
  architecture/     contract, inspector, route
  client/           lifecycle/ and architecture/ tabs, api adapters, locales, styles; index.ts is the Client plugin
tests/              mirrors src/