🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

下载监控悬浮窗 keepermttl/dsh-download-monitor

DeepSeek Harness
keepermttl82 天前有提交已提供中文文档扫描:无法判定

自动追踪下载进度并在完成后唤醒 agent

27.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add keepermttl/dsh-download-monitor
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · tool
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/27·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 82 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · keepermttl
  • · dsh-download-monitor
  • · tarball)
扫描于 2026/11/3(1 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 追踪下载进度
  • 完成后唤醒agent

README

由 DeepSeek 最新模型翻译生成
dsh-download-monitor DSH Web GUI 下载监控插件:agent 拉起下载后即可离开,插件自动监控并在页面右下角以悬浮窗展示进度;任务完成 / 停滞 / 失败时,插件向注册会话发送结构化报告并把 agent 唤醒;用户可一键停止任务(不唤醒、留痕);历史任务留痕(合并批次、可删可关)。 特性 - 注册制监控:agent 把下载任务写进 manifest(~/.dsh/dlmon/tasks.json),插件 host 半区自动监听;支持三种任务形态: - dir:监控目录(对其直接子文件求和算进度),适合 cascette/aria2 这类下载器; - process:dir + 进程存活检测(进程退出且未完成 → 失败;停止时直接终止进程); - job:DSH 后台任务(browser 半区合并 job 状态显示;完成通知走 DSH 原生机制)。 - 状态机:pending → running → completed / failed / stalled / stopped;判定依据:期望字节数、日志完成/错误正则(donePatterns / errorPatterns)、进程存活、停滞阈值(默认 120 秒无字节增长)。
展开完整文档(README 剩余 1 节)
dsh-download-monitor

DSH Web GUI 下载监控插件:agent 拉起下载后即可离开,插件自动监控并在页面右下角以悬浮窗展示进度;任务完成 / 停滞 / 失败时,插件向注册会话发送结构化报告并把 agent 唤醒;用户可一键停止任务(不唤醒、留痕);历史任务留痕(合并批次、可删可关)。

特性

- 注册制监控:agent 把下载任务写进 manifest(~/.dsh/dlmon/tasks.json),插件 host 半区自动监听;支持三种任务形态:
- dir:监控目录(对其直接子文件求和算进度),适合 cascette/aria2 这类下载器;
- process:dir + 进程存活检测(进程退出且未完成 → 失败;停止时直接终止进程);
- job:DSH 后台任务(browser 半区合并 job 状态显示;完成通知走 DSH 原生机制)。
- 状态机:pending → running → completed / failed / stalled / stopped;判定依据:期望字节数、日志完成/错误正则(donePatterns / errorPatterns)、进程存活、停滞阈值(默认 120 秒无字节增长)。
- 悬浮窗:shell.overlay 槽位(官方浮动层),右下角,面板与折叠胶囊都可拖拽、可折叠;「进行中 / 历史」两个分区;每任务显示状态点、进度条、速度、ETA、失败原因;皮肤全适配(--dsw- 令牌)。
- 停止任务:运行/停滞任务行有「停止」(两步确认防误触):process 任务直接终止进程; dir/job 标记停止。停止 = 终态、不生成唤醒报告(并清掉已排队的报告),manifest 写入 stoppedBy: 'user' 标记,agent 可直接看到是用户主动停止。
- 历史留痕:终态任务(完成/失败/停止)按批次合并记录到 ~/.dsh/dlmon/history.json (同一次 manifest 写入自动成批;batchId 显式成批),每条含简短总结(结果、进度、来源会话 id、时间);默认保留 20 条(historyCap 可调),可单条删除,可整体关闭(historyEnabled)。
- 唤醒闭环:完成/失败/停滞 → host 入队 → 浏览器经 session.prompt 向注册会话发送【下载监控】 报告 → agent 处理后可 ack(确认后不再重复打扰);每次状态转换只唤醒一次,会话存储去重、可全局关闭唤醒;prompt 被拒绝(如 sessionId 不存在)会重试并告警,绝不误报已投递。
- 工作流固化:全局技能 download-monitor(~/.dsh/skills/download-monitor/SKILL.md)——所有会话在涉及下载时自动按本协议注册任务、处理唤醒、查询历史。
- 零框架依赖:不 import 任何 @deepseek-ai/ 值(全部结构类型,dsh-archive-viewer 先例),不修改 DSH 源码,纯 cordis.patch.yml + profile 挂载。

安装

前置:Node.js ≥ 22、pnpm、dsh CLI(不在 PATH 时用
node --import tsx/esm /apps/cli/src/bin.ts)。

git clone https://github.com/keepermttl/dsh-download-monitor.git
cd dsh-download-monitor
pnpm install
pnpm build

安装进 web profile(link: 指向本目录)
dsh plugin --profile web add link:$(pwd) # POSIX
dsh plugin --profile web add link:E:\path\to\dsh-download-monitor # Windows

重启 dsh web,浏览器 Ctrl+F5 硬刷新。重启后悬浮窗在右下角出现(有任务时)。

任务注册(manifest 协议)

~/.dsh/dlmon/tasks.json:

{
"version": 1,
"tasks": [
{
"id": "wow-base",
"label": "魔兽基础包续传", "kind": "process", "targetDir": "E:\\WoW_68974\\Data\\data", "expectedBytes": 82900000000, "pid": 12345, "logPath": "C:\\Users\\32701\\AppData\\Local\\Temp\\opencode\\wow_base_watchdog.log",
"errorPatterns": ["All connection attempts failed", "Traceback"],
"donePatterns": ["Installing 0 files"],
"sessionId": "",
"notify": { "onDone": true, "onProblem": true },
"ack": false
}
]
}

字段说明:

| 字段 | 必填 | 说明 |
| id / label | 是 | 唯一 id / 显示名 |
| kind | 是 | dir / process / job |
| targetDir | dir/process | 监控目录(直接子文件求和 = 进度) |
| expectedBytes | 否 | 完成判据之一(字节达标即完成) |
| pid | process | 进程存活检测 |
| logPath + errorPatterns / donePatterns | 否 | 日志尾随(最近 64KB)正则;patterns-without-log 会被拒绝 |
| sessionId | 是 | 唤醒目标会话——必须用完整 id(含 session- 前缀,如 session-65d36e62-…),取自 GUI 会话信息或 session.list;裸 uuid 会被 host 拒绝(插件会警告) |
| notify | 否 | 默认全开 |
| ack | 否 | agent 处理后置 true,插件停止该任务唤醒 |

也可经 RPC 注册(浏览器/agent 侧工具):POST /dsh-download-monitor/register,见 src/types.ts 的 wire 契约。

agent 行为协议

1. 拉起下载(后台 job 或独立进程)→ 写 manifest(sessionId 填当前会话)→ 结束回合;
2. 收到 【下载监控】 前缀消息 = 插件唤醒:按报告处置(续传/重试/校验/下一阶段);
3. 处理完后把 manifest 里该任务 ack 置 true(或悬浮窗点「确认」)→ 再次结束回合休息。

悬浮窗操作

- 胶囊 → 点击展开面板;胶囊与面板头部都可拖拽(位置记忆在 localStorage)。
- 「进行中」每行:状态点 / 进度条 / 字节 / 速度 / ETA / 失败原因;运行/停滞任务可「停止」(两步确认:process 直接杀进程,dir/job 仅标记,均不唤醒);完成/失败任务可点「确认(ack)」。
- 「历史」分区:按批次合并的终态任务(标签/结果徽标/总结/来源会话/完成时间),可单条删除。
- 「设置」:唤醒报告总开关、历史留痕开关、历史保留条数(5-200)、停滞阈值、采样间隔(写回 ~/.dsh/dlmon/state.json)。

agent 使用协议(技能)

全局技能 download-monitor 已注册(~/.dsh/skills/download-monitor/SKILL.md),所有会话在涉及下载时自动加载。核心:启动下载 → 注册 manifest(sessionId 必须带 session- 前缀;批量任务同一次写入或显式 batchId)→ 结束回合休息;收到 【下载监控】 唤醒 → 处理并 ack;用户停止的任务(stoppedBy: 'user')不重启不补报告;查询历史读 history.json。

开发

pnpm typecheck # tsc --noEmit
pnpm test # vitest(状态机 / manifest 校验 / 报告文本 / job 合并)
pnpm build # tsdown:lib/index.js(host)+ lib/client.js(browser)

已知边界(v1)

- 不自动重启下载器(观察 + 唤醒,决策权留给 agent);
- job 形态任务:只做状态显示,唤醒走 DSH 原生 job 完成通知;
- 日志尾随只取最后 64KB,错误正则建议用无锚点的行级表达式;
- 悬浮窗只对注册了任务时可见;多标签页各自渲染,唤醒按 manifest 的 sessionId 投递。

排障(本机实战教训)

- dsh plugin add 后启动报 duplicate loader entry id: ui-web-ui-settings:
pnpm 重装会把 profile 的 node_modules 重排,file: 链接可能出现新旧两份导致 loader
重复挂载同一 patch。修复:在 profile 目录重跑 pnpm install(或 pnpm add 触发重解析),再重启。建议在重启前先做预检:
node --import tsx/esm /apps/cli/src/bin.ts web --port 3099(另一个端口),
确认无 loader 报错且端口监听后再动真身。
- GUI 进程就是 agent 进程:重启 dsh web 会杀掉当前回合的 agent。脚本 scripts/restart-gui.ps1 用独立进程完成"杀旧起新"(状态写 %TEMP%\dsh-web-restart.status.json),但保险起见:重启前先告知用户,重启后刷新页面并发消息恢复。
- 验证 host 半区存活(无需重启、无需浏览器): $body = @{ type='client-request'; rpcId='p'; method='snapshot'; payload=@{} } | ConvertTo-Json -Compress Invoke-WebRequest -Uri 'http://127.0.0.1:3080/dsh-download-monitor/snapshot' -Method POST -ContentType 'application/json' -Body $body -UseBasicParsing

返回 ok:true 即 host 已挂载(配置与任务清单都在响应里)。

许可

MIT © keepermttl。欢迎使用、修改、引用或收录进自己的插件合集,保留 LICENSE 与出处即可。
预览分享卡片长什么样 ↓keepermttl/dsh-download-monitor
分享 · DeepSeek Harness Hub
keepermttl/dsh-download-monitor

自动追踪下载进度并在完成后唤醒 agent

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部