安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
DSH 运行时可观测与插件诊断面板,展示插件树、加载器状态、会话活动和兼容性,并支持插件管理。
- 将 Profile 配置、已安装包、加载器状态和会话活动整合为报告。
- 插件树支持停用、激活、卸载和更新操作。
- 独立诊断页在插件导致启动失败时自动弹出,可不依赖 DSH Web UI 使用。
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add dsh-insight-tree安装方式: npm · 运行验证通过 (L5)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
依据:2 条要求、覆盖 3 个 @deepseek-ai/dsh-* 子包。 看原始区间
^0.1.2-rc.1 ×2 >=0.1.2-rc.1 <0.2.0-0 ×1
✗ 当前 dsh 0.2.1-rc.2 不在支持范围内 —— 官方安装门控会直接拒绝装(incompatible-version)。
强行安装需精确豁免一次:dsh plugin allow-version dsh-insight-tree@0.1.2 0.2.1-rc.2(豁免记在本机 profile,本站不假定你是否已豁免)
能否正常运行是另一件事 → 见下方实测矩阵(L1–L5)。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.1.7-rc.2 | dsh 0.1.7-rc.1 |
|---|---|---|---|---|---|
| 0.1.2 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 0.1.1 | · | · | · | · | · |
0.1.2npm✓ 运行验证通过 92026-10-20
dsh-insight-tree
✓dsh 0.2.1-rc.2当前2026-10-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-20 · 有效至:2026-10-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.22026-10-12L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-12 · 有效至:2026-10-19
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.22026-10-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-09 · 有效至:2026-10-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.22026-09-26L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-26 · 有效至:2026-10-03
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.12026-09-24L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-24 · 有效至:2026-10-01
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.22026-09-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.1.6-alpha.2 · 档位: l4-sandbox
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.12026-09-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.5-rc.22026-09-11L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-11 · 有效至:2026-09-18
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-09-30L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: npm · dsh-insight-tree@0.1.2
ID: dsh-insight-tree@0.1.2@dshunknown · 档位: l3-fullscan
签发:2026-09-30 · 有效至:2026-10-07
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
0.1.1npm✓ 运行验证通过 12026-09-08
dsh-insight-tree
✓dsh 0.1.3-alpha.22026-09-08L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: npm · dsh-insight-tree@0.1.1
ID: dsh-insight-tree@0.1.1@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-08 · 有效至:2026-09-15
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
仅展示最近 3 个已发布版本;源码快照(commit hash)组、未标注工件组与更早版本不展示——全量档案保留在数据层(插件无任何已发布版本时,快照/未标注组才照常展示)。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-insight-tree/)``[](https://www.dsh.so/artifact/dsh-insight-tree/)``[](https://www.dsh.so/artifact/dsh-insight-tree/)``[](https://www.dsh.so/artifact/dsh-insight-tree/)``[](https://www.dsh.so/artifact/dsh-insight-tree/)``[](https://www.dsh.so/artifact/dsh-insight-tree/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 中,按「取更严者」→ 总评级 中。
v0.1.2dsh 清单0.1.2npm2026-10-220.1.2版本一致clean · npmvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 警告childProcess · code-exec
bin/diagnose.mjs:33return spawnSync(command.file, [...command.args, ...args], { encoding: 'utf8', windowsHide: true, shell: process.platform === 'win32', timeo - 警告netIp · network
bin/diagnose.mjs:236console.log(`DSH Insight Tree 诊断页面:http://127.0.0.1:${port}/?${query.toString()}`) - 警告fsWrite · files
bin/diagnose.mjs:66fs.writeFileSync(overlay, yaml.dump([{ id, disabled }], { noRefs: true, lineWidth: -1 }), 'utf8') - 警告fsWrite · files
bin/diagnose.mjs:77fs.writeFileSync(profileFile, yaml.dump(next, { noRefs: true, lineWidth: -1 }), 'utf8') - 警告fsWrite · files
bin/diagnose.mjs:91if (cleaned.removed > 0) fs.writeFileSync(file, yaml.dump(cleaned.entries, { noRefs: true, lineWidth: -1 }), 'utf8') - 警告childProcess · code-exec
bin/web-with-diagnostics.mjs:29const diagnostic = spawn(process.execPath, [script, '--profile', profile, '--port', String(port)], { detached: true, stdio: 'ignore', window - 警告childProcess · code-exec
bin/web-with-diagnostics.mjs:38const opener = spawn(process.env.ComSpec ?? 'cmd.exe', ['/d', '/c', 'start', '', url], { detached: true, stdio: 'ignore', windowsHide: true - 警告childProcess · code-exec
bin/web-with-diagnostics.mjs:42const opener = spawn('open', [url], { detached: true, stdio: 'ignore' }) - 警告netIp · network
bin/web-with-diagnostics.mjs:28const url = `http://127.0.0.1:${port}/?profile=${encodeURIComponent(profile)}` - 警告netIp · network
bin/web-with-diagnostics.mjs:69const request = http.get(`http://127.0.0.1:${port}/`, (response) => { response.resume(); if (response.statusCode && response.statusCode < 50 - 警告childProcess · code-exec
lib/index.js:1244if (!invocation.viaShell || process.platform !== "win32") return spawn(invocation.file, [...invocation.args, ...args], { - 警告childProcess · code-exec
lib/index.js:1254return spawn(process.env.ComSpec ?? "cmd.exe", [
展开 5 条审计发现
- medium独立诊断服务无令牌与 Host 校验,暴露插件卸载/禁用接口
bin/diagnose.mjs:19web-with-diagnostics.mjs 以 `spawn(process.execPath, [script, '--profile', profile, '--port', String(port)], ...)` 启动该服务且不传 --token,因此 authOk() 恒为 true。服务虽绑定 127.0.0.1,但不校验 Host,其 POST /uninstall、/disable、/enable 会执行 `dsh plugin remove` 并改写 cordis.patch.yml。任意本机进程,或利用 DNS 重绑定命中端口的远程页面,都能卸载插件或关闭用户工具链;卸载过程还会关闭发布冷静期重新安装依赖。
- medium内嵌路由默认空令牌,跨站 POST 可触发插件禁用/卸载/更新
lib/index.js配置 schema 为 `token: z.string().default("")`,默认跳过该校验。用户访问的任意网页可对 http://127.0.0.1:<port>/dsh-insight-tree/uninstall?id=<插件>(或 /disable、/update?version=...&confirm=1)发起简单 POST(无需预检、无需读取响应),从而在用户无感知的情况下卸载、禁用插件或降级到更旧的已发布版本。唯一屏障是回环 Host 校验,无法阻止浏览器向 127.0.0.1 发起的请求。
- lowbootstrap 接口无需鉴权即返回访问令牌
lib/index.js令牌校验显式豁免 `/dsh-insight-tree/bootstrap`,该接口会向任何携带回环 Host 的请求回显令牌。叠加默认空令牌后,最后一层屏障也被移除:能触达服务(本机进程,或任何可伪造 Host 的路径)的请求都可先取得令牌,再以已认证身份调用所有写接口。
- low在关闭发布冷静期的前提下重试 dsh/pnpm 操作
lib/index.js当 remove/add 因 MINIMUM_RELEASE_AGE / 供应链策略报错时,代码会静默以 `--config.minimum-release-age=0` 重试(applyPluginUpdate 的 runAdd 与 bin/diagnose.mjs 同样如此)。这些命令会重新解析并安装依赖,从而跳过防止最新发布(可能已被投毒)版本的冷静期保护;用户只在事后结果消息中被告知。
- low插件改写宿主共享的 tools.register 服务
lib/index.jsapply() 会用包装函数替换宿主 `ctx.get('tools').register`,记录调用方 fiber 名后再委托原实现。这是对其它所有插件共用的全局服务的改写;包装内所有内省代码异常被吞掉,且全局 toolsPatched 标志跨上下文共享,可能造成归属记录缺失,或在宿主 API 变化时干扰工具注册。该改写未使用宿主提供的扩展点。
无严重/高危问题;插件本地 HTTP 接口在默认空令牌下可被未认证调用者禁用、卸载或更新插件,并会绕过 pnpm 发布冷静期策略。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-10 · 活跃度:稳定
• 仓库创建: 2026-09-07
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
