前言¶
DSH 生态强调「一切皆插件」。做插件时,常见麻烦有两类:一类是开发本地 DSH 配置,容易把真实 ~/.dsh 弄脏;另一类是对第三方插件是否可靠没有把握。如果只是直接在当前 DSH 配置里试装、试拔,容易碰到状态污染和残留问题。
下面介绍 @swell05/dsh-whale-tank。它是一个 DSH 插件开发沙盒辅助工具:隔离 DSH_HOME,建立开发态的 DSH 配置沙箱与插件开发骨架,附带开发知识包、插拔副作用检测与沙箱复原,以及第三方插件 vet 体检功能。
这是什么¶
@swell05/dsh-whale-tank 由 swell05 维护,采用 MIT 许可证。它不改动真实 ~/.dsh,而是在独立 DSH_HOME 中建立开发沙盒,用于插件初始化、构建、插拔测试、复原和第三方插件预检。
它适合在 dsh web 模式下做 DSH 插件开发,或对 npm 包形式的第三方插件做检查。
核心功能¶
插件开发沙盒¶
init 会创建独立的 DSH_HOME、官方基线 profile 和 state.json,不改动真实 ~/.dsh。
骨架按 host、client、both 类型生成,可构建,并附带开发工具包。
开发知识包¶
可选载入 AGENTS.md、NOTES.md、docs/dev-guidance 等开发知识包。它按 merge-spec 增量合并,不覆盖用户已有内容。
.wttools 工作区工具¶
.wttools 是零依赖单文件工具,插件卸载后仍可用。常用命令如下:
| 命令 | 用途 |
|---|---|
.wttools\status |
沙盒状态体检 |
.wttools\deps |
添加依赖 |
.wttools\plug |
把项目插件接入沙盒 |
.wttools\unplug |
取出插件并检查 |
.wttools\plug-test |
插拔测试 |
.wttools\run-test |
实跑指定 profile |
.wttools\restore |
复原沙盒 |
.wttools\reset |
重建沙盒 |
.wttools\upgrade-knowledge |
升级知识包 |
第三方插件 vet 体检¶
vet 用于检查第三方插件,分三个阶段:
- 静态危害检查
- 受限动态验证
- LLM 源码审查
体检结果会生成 vet-report.md 和 vet-result.json,落在 .vetting/。结论三选一:未发现漏洞、谨慎、不建议。
安装与启用¶
先确认环境满足:
node >=20peerDependencies: @deepseek-ai/cordis ^4.0.1
安装到 web profile:
dsh plugin --profile web add @swell05/dsh-whale-tank
装完重启 web(bundle 层栈在 boot 合成)。
如需卸载:
dsh plugin --profile web remove @swell05/dsh-whale-tank
典型用法¶
初始化插件项目¶
在 dsh web 的空工作区对话里输入:
/whale-tank-init
说明插件主要功能后,它会创建沙盒和骨架,并可载入开发知识包。
体检第三方插件¶
输入:
/whale-tank-vet
把想检查的 npm 包名提供给它,三阶段体检自动走完。检查完成后查看 .vetting/ 下的 vet-report.md 与 vet-result.json。
使用 .wttools¶
常用命令示例:
.wttools\status
.wttools\deps --add @deepseek-ai/dsh-tools
.wttools\run-test --profile headless
如果骨架生成后 npm run build 报 tsc 不存在,先执行:
npm install
或:
.wttools\deps
然后再执行:
npm run build
适用场景与注意¶
适合在 dsh web 模式开发 DSH 插件,或需要对第三方 npm 插件做预检。
注意事项:
vet是启发式预检,不是安全保证。- 隔离靠独立
DSH_HOME和受限执行,防状态污染,不防本机执行。 - 网络行为只记录,不阻断。
vet只在web里经/whale-tank-vet使用,CLI 暂不提供。plugin通道强制版本一致性,版本与沙盒运行时不一致时直接拒绝。- Skills 与 Tools 仅测试过
dsh web模式。 - DSH 插件以当前
dsh进程权限运行。安装前应检查源码与许可证。
参考¶
GitHub:https://github.com/swell05/dsh-whale-tank