DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Tool Monitor — DeepSeek Harness 插件(DSH Plugin)
← Plugins

@caizhiyuan/dsh-tool-monitor

Tool Monitor

DeepSeek Harness 插件:后台文件/命令/WebSocket 监视器在有新输出时唤醒所属会话,并通过专用 WebSocket 在 Web 会话标头中显示实时监视器列表。包含宿主核心和 Web 客户端部分,无需构建步骤。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @caizhiyuan/dsh-tool-monitor@0.5.1
README兼容性版本

兼容性与来源证明

Tool Monitor 以 @caizhiyuan/dsh-tool-monitor 发布,当前版本为 0.5.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/16

版本

0.5.1stable
2026/10/8
0.5.0stable
2026/10/8
0.4.0stable
2026/9/26

相关插件

正在加载相关插件…

最新版
0.5.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
80.7 kB
文件数
6
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
336
安全扫描
✓ v0.5.1 扫描通过
最近提交
2026/10/8
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-tool-monitor

一个 dsh-plugin:后台监听文件、命令输出或WebSocket,输出到达时唤醒所属会话,并在 Web 会话头部提供实时监听的列表与输出查看面板。MIT License。

功能

  • 后台监听:monitor_start 对 file、command 或 ws 发起后台监听,返回 monitor_id 后立即继续。
  • 触发唤醒:默认在监听到任意新输出时唤醒;可用 pattern(JS 正则)限定只对匹配输出触发。
  • WebSocket (ws) 模式:
    • text frame → 一个事件,整体呈现文本;多行 frame 保持为一个整体事件,不会被拆散。
    • binary frame → 只报 [binary frame, N bytes],内容不解析透传。
    • socket 关闭 → 结束监控,并展示 close code(正常关闭 1000/1001 → completed;异常如 1006/1011 → failed),方便判断正常还是异常。
    • 错误/异常 → 在关闭之前先浮出(不受 pattern 过滤),让你看到失败原因。
    • 可通过 protocols 提供子协议数组,按 WebSocket 规范(RFC 6455)协商子协议。
  • 模型可见的四个工具(宿主层注册,所有 preset 的所有会话可用):
    • monitor_start — 启动监听。参数:source(file|command|ws)、path/command/url、protocols(ws 子协议数组,可选)、duration_seconds(0=持续到会话/插件停止)、interval_ms(默认3000,对 ws 无意义/忽略)、pattern(正则,仅匹配触发)、initial_snapshot(file 现有内容作为首批)、one_shot(首次触发后自动停止)、max_chars(缓冲尾保留,默认4000)
    • monitor_read(id) — 增量读取(消费游标,同 job_output)
    • monitor_stop(id) — 停止(command 会杀后台进程)
    • monitor_list() — 本会话可见的监听器
  • Web 会话头部:提供「N 个监听器」控件,点开列出每个监听(状态点 / 时长 / 详情 / 停止钮),点某行按需展示保留输出。

机制

  • 宿主自注册表:monitor 存于插件自己的 Map(id 形如 monitor-N),状态词 running / stopped / completed / failed,不写入 ctx.jobs,因此不会出现在框架的「后台任务」列表里。file/command 走轮询 tick;ws 为事件驱动,连接一个出站 WebSocket(ws 包的客户端),text/binary/error/close 各自映射为通知与终态。
  • 自有 WebSocket 推送:宿主用公开缝 ctx.get('webServer').registerUpgrade({ path: '/tool-monitor/ws' }) 注册专属 WS 端点,再用 ws 包的 WebSocketServer.handleUpgrade 握手。每次注册表变化(启动 / 停止 / 结束 / 移除)就给该会话的连接推一份 { type:'snapshot', monitors:[...] };新连接建立先发一次 baseline;loopback 校验拒绝非本地来源;插件卸载时注销路由。
  • 客户端:2s 轮询宿主 /tool-monitor/list(优先走 harness 的 connection.rpc,取不到该服务时回退为同源 fetch 打同一路由,认证随连接走);不用自有 WebSocket —— 桌面版 UI 跑在 dsh-app: scheme 下,它不是 ws scheme(new WebSocket("dsh-app://…") 会抛错),而启动参数里的 --fetch-schemes=dsh-app 允许 fetch。头部按钮复用框架的 StateDot + IconChevronDownOutlineRegular,图标按名字在运行时探测、取不到就跳过该图标(曾因写了并不存在的 IconChevronDownOutline14,React.createElement(undefined) 在渲染期抛 "Element type is invalid",导致整个 slot 条目被 abdicate —— 永久退出投影,控件再也不显示),与「后台任务」等控件视觉一致。
  • 输出按需读取:模型端走 monitor_read(增量、消费游标);Web 端点开行时经 /tool-monitor RPC read(保留窗口、非消费)。输出不随推送下传。
  • 唤醒(无次数上限):构造 UserMessage(source {kind:'plugin:tool-monitor', form:'notice', summary})。owner 空闲 → 立即 owner.followup(msg) 唤醒;owner 忙 → 通知存入插件自有队列(pending,不进 agent inbox),待该 owner 转为 idle(监听 agent/status)时把队列按 monitor 分组、合并成一条 followup 发出。因此忙时不会被反复打断,也不会因中断/取消丢消息;没有唤醒预算,不会出现"跑几次后不再唤醒"。agent/disposed 或插件卸载会停止其所有监听。

安装

本包声明了 dsh.bundle.patch(./cordis.patch.yml),因此它是完整的组合包(bundle):装进 profile 后会自动成为一层 profile layer 并插入自己,不需要再手工改 profile 的 cordis.patch.yml。

# 1) 从 npm 安装
dsh plugin --profile web add @caizhiyuan/dsh-tool-monitor

# 1b) 或从源码安装(开发用;link 后改源码即生效,宿主改动仍需重启)
dsh plugin --profile web add link:W:/图南/dsh-tool-monitor

# 2) 重启 dsh(宿主模块 + 新 client bundle 生效;client 部分刷新页面加载)

dsh plugin add 会把包名追加进 profiles\web\package.json 的 dsh.profile.bundles,并校验 dsh.bundle.patch 指向的 patch 文件可解析;GUI 里的插件管理器走同一条路径(installBundle)。

若包只声明 dsh.client 而没有 dsh.bundle,安装会被拒(declares no dsh.bundle),因为 profile 的 layer 栈只接受声明了 dsh.bundle.patch 的组合包。

前提:dsh profile 需已组合 webServer(Web 版默认有);headless 无 webServer 时插件仍可用(模型工具正常),只是没有 WS 推送。

结构

  • lib/index.js — Host 插件:{name:'tool-monitor', inject:[...], Config(zod), apply};自注册表、每 tick 轮询(file/command)、出站 ws 客户端(source=ws)、忙时排队 + 空闲合并投递、agent/disposed 清理、/tool-monitor/ws 端点、/tool-monitor RPC(read/stop,直接注册在 webServer 前缀路由上,绕开 connection.rpc.handle 在 cordis>=4 的 inject 限制)。
  • lib/client.js — Web 客户端半部(window.__ModuleLoader__ 格式):会话头部注册 monitor-list(order 30),连自有 WS 收 snapshot,点开查看/停止。
  • cordis.patch.yml — 组合包 patch:dsh.bundle.patch 指向它,内容为把本包 insert 进 profile layer 栈。
  • 无构建步骤("type":"module",纯 ESM / 模块加载器格式)。

开源协议

MIT

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub