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

插件体检管家 Oo0520/dsh-plugin-doctor

DeepSeek Harness
Oo052079 天前有提交已提供中文文档扫描:含敏感能力

审计插件安全风险,面板一键启停装卸与更新

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 34 处,展示前 27 条)
  • 读取本地文件
    lib/audit.js:40
    entries = readdirSync(dir);
  • 读取本地文件
    lib/audit.js:51
    st = statSync(full);
  • 读取本地文件
    lib/audit.js:80
    if (statSync(file).size > MAX_FILE_BYTES)
  • 读取本地文件
    lib/audit.js:82
    text = readFileSync(file, 'utf8');
  • 读取本地文件
    lib/audit.js:127
    if (!existsSync(join(dir, clean)))
  • 读取本地文件
    lib/audit.js:158
    if (typeof patchRel === 'string' && !existsSync(join(dir, patchRel.replace(/^ /, '')))) {
  • 读取本地文件
    lib/manage.js:35
    if (existsSync(patchFile))
  • 读取本地文件
    lib/manage.js:315
    if (!binJs || !existsSync(binJs)) {
  • 读取本地文件
    lib/manage.js:317
    if (existsSync(fallback))
  • 读取本地文件
    lib/manage.js:330
    .filter(p => existsSync(p));
  • 读取本地文件
    lib/manage.js:450
    if (existsSync(pkgDir)) {
  • 删除本地文件递归
    lib/manage.js:452
    rmSync(pkgDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
  • 读取本地文件
    lib/manage.js:457
    if (existsSync(pkgDir))
  • 请求外部主机registry.npmjs.org
    lib/remote.js:172
    const res = await fetch('https://registry.npmjs.org/' + pkg.replace('/', '%2F') + '/latest', {
  • 发起网络请求
    lib/remote.js:172
    const res = await fetch('https://registry.npmjs.org/' + pkg.replace('/', '%2F') + '/latest', {
  • 读取本地文件
    lib/util.js:15
    if (candidate && existsSync(join(home, 'profiles', candidate, 'package.json'))) {
  • 读取本地文件
    lib/util.js:24
    return JSON.parse(readFileSync(file, 'utf8'));
  • 读取本地文件
    lib/util.js:32
    return yaml.load(readFileSync(file, 'utf8'));
  • 写入本地文件
    lib/util.js:39
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    lib/util.js:41
    writeFileSync(tmp, text, 'utf8');
  • 写入本地文件
    lib/util.js:42
    renameSync(tmp, file);
  • 读取本地文件
    lib/util.js:46
    if (existsSync(file) && !existsSync(bak)) {
  • 写入本地文件
    lib/util.js:47
    copyFileSync(file, bak);
  • 读取本地文件
    lib/util.js:50
    return existsSync(bak) ? bak : null;
  • 读取本地文件
    lib/util.js:76
    if (existsSync(join(primary, 'package.json')))
  • 读取本地文件
    lib/history.js:49
    if (!existsSync(dir))
  • 读取本地文件
    lib/history.js:52
    const st = statSync(dir);
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:registry.npmjs.org

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 审计插件安全风险
  • 面板一键启停
  • 一键装卸与更新

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-doctor DSH(DeepSeek Harness)插件管家:审计已安装插件的规范性与安全隐患,并在设置面板中提供插件管理(启停、安装、卸载、版本更新)。 功能 Host 工具(对话中由 AI 调用) | 工具 | 用途 | 副作用 | | plugin_audit | 审计 profile 全部 bundle:manifest 契约、patch 层风险、静态代码扫描、供应链风险 | 只读 | | plugin_list | 列出 loader 组合行与 fiber 运行状态(PENDING 缺失服务 / FAILED 错误) | 只读 | | plugin_toggle | 热启用/禁用插件:loader 运行时即时生效 + 写 profile cordis.patch.yml 持久化(HMR 自动应用) | 改运行状态 + patch 文件 | | plugin_uninstall | 卸载插件包(dsh plugin remove 转发 pnpm),带 dry-run 确认 | 删除依赖,需重启 | | plugin_install | 安装插件包(dsh plugin add 转发 pnpm) | 需重启 | 设置面板(Web 客户端) 设置 → 插件体检,包含「插件管理」与「体检报告」两个视图:
展开完整文档(README 剩余 1 节)
dsh-plugin-doctor

DSH(DeepSeek Harness)插件管家:审计已安装插件的规范性与安全隐患,并在设置面板中提供插件管理(启停、安装、卸载、版本更新)。

功能

Host 工具(对话中由 AI 调用)

| 工具 | 用途 | 副作用 |
| plugin_audit | 审计 profile 全部 bundle:manifest 契约、patch 层风险、静态代码扫描、供应链风险 | 只读 |
| plugin_list | 列出 loader 组合行与 fiber 运行状态(PENDING 缺失服务 / FAILED 错误) | 只读 |
| plugin_toggle | 热启用/禁用插件:loader 运行时即时生效 + 写 profile cordis.patch.yml 持久化(HMR 自动应用) | 改运行状态 + patch 文件 |
| plugin_uninstall | 卸载插件包(dsh plugin remove 转发 pnpm),带 dry-run 确认 | 删除依赖,需重启 |
| plugin_install | 安装插件包(dsh plugin add 转发 pnpm) | 需重启 |

设置面板(Web 客户端)

设置 → 插件体检,包含「插件管理」与「体检报告」两个视图:

- 插件列表:运行状态、版本、中文功能描述(内置词典 + 包描述兜底,可自维护外部词典)、安装时间(面板操作精确记录,历史安装按目录时间估算并标「约」)、7 天内新装标「新」徽章
- 搜索:同时匹配插件名、ID 与中文描述
- 启停:运行时热切换 + 持久化;禁用会先探测是否把其他条目晾成 PENDING(如停掉服务提供方),有则自动回滚并拒绝,避免下次启动报 "entries did not activate"
- 装卸:面板直接安装/卸载社区插件;纯客户端插件(无 dsh.bundle)也能从孤儿 patch 行启用,重启后由市场挂载
- 版本更新:查询 npm registry 对比本地版本,「更新到最新」一键升级,并识别 pnpm 发布冷静期(minimumReleaseAge)导致的更新假象
- 双语:界面描述跟随 DSH 语言切换(中文优先中文词典,英文显示精简英文摘要)

卸载可靠性

卸载的成败以清单是否还引用该包为准,而不是 pnpm 退出码:即使 pnpm 因文件被占用中途失败(如插件自带常驻进程锁住其目录),也会强制收敛到一致状态——

1. 从 package.json 的 dependencies 与 dsh.profile.bundles 移除引用
2. 清理 cordis.patch.yml 中的残留 patch 行
3. 运行时停用其 loader 条目(刷新页面不 404),下次启动不再组合
4. 被锁而删不掉的残留目录单独提示,可手动删除,不影响系统运行

改写清单前自动备份为 .bak.plugin-doctor。

审计规则

- 错误(需处理):manifest 指向不存在的文件、patch 非顶层数组、insert 行缺 id/name、!!js 表达式、patch 覆盖/冲突官方内置行、eval/new Function、读取 .credentials.yaml、解码执行类命令、安装期脚本(preinstall/postinstall)、bundle 目录无法解析
- 警告(建议关注):exports 缺 ./cordis.patch.yml/./package.json 入口、client 声明不完整、直接依赖共享运行时(应 peer)、直接使用 child_process、遍历 process.env、非白名单硬编码外联地址、prepare 脚本、github 依赖未固定 commit、跨包覆盖未知行
- 提示:高权限依赖(puppeteer/ssh2 等)、缺 version/description、process.exit

体检范围 = profile bundles 列表 ∪ 非官方 dependencies,新装插件立即可扫描。@deepseek-ai/ 官方内置包仅做 manifest 轻检(trusted),不扫代码。

安装

dsh plugin --profile web add dsh-plugin-doctor # npm
dsh plugin --profile web add github:Oo0520/dsh-plugin-doctor # github

(或本地路径 / tarball。)仓库已包含构建产物 lib/,github 安装无需构建脚本。

注意事项:

1. pnpm 供应链冷却期:pnpm 11 默认 minimumReleaseAge(约 24h)会拒绝当天新发布的包。被拦时可在命令尾部追加 --config.minimum-release-age=0 一次性绕过(不修改持久配置)。
2. link: 安装形态:本地路径安装生成 link: 依赖,Node ESM 从源目录真实路径向上解析依赖,因此源目录需自带 node_modules(npm install 即可)。npm/tarball/github 安装则无此要求。
3. 安装后重启 profile。

开发

npm run build # build:host(tsc)+ build:client(tsdown + 类型)

修改 src/ 后重新 build 并重启 profile。

配置

- profile:目标 profile 名,默认 web;运行时会优先从 ctx.baseUrl 自动推断当前 profile。

外部描述词典:~/.dsh/.plugin-doctor/descriptions.json({ "包名": "中文描述" }),优先级高于内置词典。

安全边界

- plugin_toggle 拒绝禁用官方内置行(fs/tools/webserver/loader 等)与 plugin-doctor 自身
- plugin_uninstall 拒绝卸载 @deepseek-ai/* 官方包与自身;默认 dry-run,必须 confirm=true 才执行
- 首次改写 profile cordis.patch.yml 前自动备份为 cordis.patch.yml.bak.plugin-doctor
预览分享卡片长什么样 ↓Oo0520/dsh-plugin-doctor
分享 · DeepSeek Harness Hub
Oo0520/dsh-plugin-doctor

审计插件安全风险,面板一键启停装卸与更新

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