在插件详情页检查 npm 新版本并一键更新
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add YiZhiQvQ/dsh-plugin-update该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · dev
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
- 发起网络请求index.js:265
const response = await fetch(`${registry}${packumentPath(name)}`, { - 执行外部命令固定命令index.js:384
const output = execFileSync('reg', [ - 发起网络请求index.js:404
const response = await fetch(url, { - 发起网络请求index.js:416
const request = http.request({ - 执行外部命令固定命令index.js:499
const child = spawn('git', args, { env, windowsHide: true }) - 发起网络请求client.js:198
const response = await fetch(`${ENDPOINT}/${action}`, init) - 发起网络请求client.js:217
? await this.request('POST', 'check', names ? { refresh: true, names } : { refresh: true }) - 发起网络请求client.js:218
: await this.request('GET', 'state') - 发起网络请求client.js:240
const data = await this.request('POST', 'update', { name })
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在插件自己的详情页里,一键检查 npm 上有没有更新版本的 DeepSeek Harness 插件并直接更新。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-update
一个 DeepSeek Harness 插件包:检查 npm 上有没有该 profile 里插件的新版本,一键完成更新——就在插件自己的详情页里。
它解决的问题
从 npm 装进 DSH profile 的插件,会一直停在当初 pnpm 解析出来的那个版本。Web UI 里没有任何地方会告诉你上游发了新版本:
- 插件页面只给安装时自带的 Official 目录条目提供 更新 按钮;
- list_bundles 只报告已安装版本和保存的依赖说明,不会去问仓库;
- install_bundle 对已安装的包会直接拒绝(already-installed),所以更新本质上永远是 先卸载、再安装。
这一串操作手动做既繁琐又容易漏。这个插件替你做。
它提供什么
侧边栏不新增任何入口。它挂在插件页面的详情视图上,所以控件就长在页面本来就有的按钮旁边:
| 位置 | 内容 |
| 详情页头部 | 检查更新,在插件自己的开关和「卸载」旁边 |
| 标题旁 | 有新版本时显示 有新版本 4.10.0 |
| 页面内容下方 | 已安装 → 最新、回答的仓库;检查失败或新版本要求更高 DSH 时给出原因 |
它只出现在「从 npm 仓库装进该 profile」的插件包页面上。
展开完整文档(README 剩余 1 节)
dsh-plugin-update
一个 DeepSeek Harness 插件包:检查 npm 上有没有该 profile 里插件的新版本,一键完成更新——就在插件自己的详情页里。
它解决的问题
从 npm 装进 DSH profile 的插件,会一直停在当初 pnpm 解析出来的那个版本。Web UI 里没有任何地方会告诉你上游发了新版本:
- 插件页面只给安装时自带的 Official 目录条目提供 更新 按钮;
- list_bundles 只报告已安装版本和保存的依赖说明,不会去问仓库;
- install_bundle 对已安装的包会直接拒绝(already-installed),所以更新本质上永远是 先卸载、再安装。
这一串操作手动做既繁琐又容易漏。这个插件替你做。
它提供什么
侧边栏不新增任何入口。它挂在插件页面的详情视图上,所以控件就长在页面本来就有的按钮旁边:
| 位置 | 内容 |
| 详情页头部 | 检查更新,在插件自己的开关和「卸载」旁边 |
| 标题旁 | 有新版本时显示 有新版本 4.10.0 |
| 页面内容下方 | 已安装 → 最新、回答的仓库;检查失败或新版本要求更高 DSH 时给出原因 |
它只出现在「从 npm 仓库装进该 profile」的插件包页面上。本地链接、Git 安装、以及安装时自带的插件包,页面会写明为什么不去问 npm,而不是给一个按了也没用的按钮。
它按与 profile 插件管理器完全相同的顺序询问同一批仓库,所以配了 registry.npmmirror.com 的 profile 是拿镜像对比,而不是拿 npmjs 对比。
单个插件的检查结果有五种状态:
- 可更新:存在新版本,且 engines.dsh(没有则看 @deepseek-ai/dsh 的 peer 范围)允许当前运行的 DSH 版本。
- 不兼容:有新版本,但它要求的 DSH 版本这个 profile 没有在跑。界面会显示要求来自哪里,不出现更新按钮。
- 已是最新:装的就是最新版。
- 读取失败:仓库读不到(离线、404、文档格式异常),并给出原因;检查更新 可以重试。
- 不支持:依赖是本地链接、Git 地址、压缩包或别名。这些永远不动。
检查某个页面时只问那一个包:其它包的仓库文档走十分钟缓存。
更新是怎么执行的
Host 半部调用 profile 自己的 pluginManager 服务,和插件页面、plugin_manager 工具走的是同一套逻辑:
1. removeBundle(name) —— 取消选择该插件包、卸载它的所有行,并执行 pnpm remove。
2. installBundle(spec, { enabled, registry }) —— 安装新版本并重新选择。enabled 会保留用户原本关闭的状态。
3. 如果第 2 步失败,会把原来的依赖说明再装回去,所以更新失败不会留下一个缺失的插件。
保存的依赖说明会沿用原来的范围符号:^4.8.1 变成 ^4.10.0,而不是 4.10.0。原本锁死精确版本的 profile 继续锁死。
开启 HMR 时替换无需重启;对启动以来一直在运行的插件包会报告 restart-required,页面会提示重启。
这个插件拒绝更新自己:卸载它会连带撤掉正在响应请求的路由。
有两个副作用来自插件管理器本身,而不是这个插件,并且和官方 Update 的行为一致:
- 重新安装的插件包会排到 dsh.profile.bundles 的末尾。这个顺序就是配置优先级,所以如果某个 profile 里两个插件包覆盖了同一行配置,更新后的那个会变成最后生效。
- 卸载之后如果安装失败或被取消,这个包会处于未安装状态;正因如此,失败时会自动把原来的依赖说明装回去。
配置
不需要配置。要问哪些仓库,由插件管理器自己的 registry 和 fallbackRegistries 决定。
HTTP 接口
Client 半部通过三条路由和 Host 通信,因为纯 JS 插件包无法生成 @Remote 命名空间:
GET /plugin-update/state -> { ok, report, checking }
POST /plugin-update/check -> { ok, report } 请求体: { refresh?: boolean, names?: string[] } POST /plugin-update/update -> { ok, result, report } 请求体: { name }
写操作要求带上 x-plugin-update: 1 请求头:跨站表单设不了它,跨域 fetch 要带它必须通过 CORS 预检,而这两条精确路由从不响应预检。
安装
直接从 GitHub 装(推荐,不需要预先下载):
dsh plugin --profile <profile> install https://github.com/YiZhiQvQ/dsh-plugin-update
本地检出用目录安装,编辑后立即生效:
dsh plugin --profile <profile> install /绝对路径/dsh-plugin-update
从 Releases 下载压缩包:
dsh plugin --profile <profile> install /绝对路径/dsh-plugin-update-0.1.0.tgz
压缩包安装会把依赖记成绑定该文件路径的 file: 依赖,所以要把 .tgz 留在原地,移走后需要重装;装目录会记成 link: 依赖,直接跟随目录里的改动;从 GitHub 安装记的是 Git 地址,随时可以重新拉取。
测试
node --test test/helpers.test.js test/update.test.js
node test/dry-run.mjs
update.test.js 通过全局 fetch 提供固定的仓库文档,所以线上发了新版本也不会让断言变色。dry-run.mjs 把真实的 apply 挂到假 context 上,用真实 HTTP socket 提供路由,并打印它生成的报告;导入前设置 globalThis.__DSH_BUNDLES__ 和 globalThis.__DSH_REGISTRIES__ 即可喂入测试数据。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
YiZhiQvQ/dsh-plugin-update
在插件详情页检查 npm 新版本并一键更新
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9