dsh-plugin-studio:让 Cordis 运行时从“看不见、摸不着”变成看得见、可操作、可开发的 Web 工作台

前言

DeepSeek Harness (DSH) 的核心理念是用户自行开发插件。但在实际使用中,底层的 Cordis 运行时对开发者是“黑箱”。无法查看插件注册了哪些监听,无法观测事件分发(waterfall)的每一棒,也难以直观管理工具、技能与预设。这使得调试和开发过程效率低下,往往需要通过对话反复试错。

dsh-plugin-studio 插件旨在解决上述问题。它通过一个 Web 工作台,将不可见的运行时状态可视化、可操作、可开发。插件由 Tsqurt 维护,遵循 MIT 协议。

核心能力

该插件提供了一套功能完整的 Web UI 工作台,主要包含以下模块:

  1. 实时事件流:提供实时滚动的事件树。支持滚动、过滤(按模式、分类)和参数展开。参数中的对象、数组、函数均可逐层查看源码。
  2. 插件一览:通过反射目录展示已注册插件的事件与服务签名,并绘制事件与插件的关系图。
  3. 插件管理:将插件分为系统插件、外来插件和动态插件三个分区。支持快照记录、状态恢复以及侧栏快捷启停。
  4. 无状态插件开发:提供 apply 函数体编辑器。支持从模板库插入示例、下拉选择事件与监听器、JSON payload 单次测试以及“推送为插件”。
  5. 资源管理:提供 tool、skill 和预设管理界面。支持 HTTP/代码工具创建、Markdown 技能创建以及预设的副本式创建与模板编辑。

安装与启用

安装该插件后,需重启 dsh web 进程以加载 UI。

dsh plugin --profile web add @tsqurt/dsh-plugin-studio

启用方式为:在侧边栏底部点击 🧩 拼图按钮,打开专属子界面。

除了通过官方渠道安装,也可以使用 cordis_define 动态加载插件(方式三)。

运行原理与限制

插件分为 Host 半部和浏览器 UI 两部分。Host 半部运行在 node:vm 动态插件沙箱中,负责捕获事件、监控生命周期和反射服务签名。UI 部分通过 HTTP RPC 与 Host 通信。

需要注意以下限制:
* 数据持久化:事件流本身不持久化,重启进程即清空;但插件目录、快照、开发包等数据会持久化。
* 编辑器类型:代码编辑器为带行感的增强 textarea,未内嵌 Monaco。
* 刷新机制:事件流采用轮询刷新,高负载下可能有秒级延迟。
* 环境依赖:GitHub 安装功能依赖环境存在 git 与 shell 后端。
* 系统操作:启停系统插件会写回部署装载表,操作有提示。

适用场景

适用于需要在 DSH 环境下深度调试插件行为、开发自定义插件逻辑或管理工具与技能的开发者。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜