DSH Toolbox

@deepseek-ai/dsh-base

@deepseek-ai/dsh-base 是 dsh 的一个profile bundle:共享内核,以 bundle 形式提供:每个 profile 的第一层补丁,往空根上插入基础插件行。

这个包发布在 npm 上,当前版本 0.0.1-rc.1,安装位置是 $DSH_HOME/profiles/<名字> 的依赖列表。

安装

插件管理会把参数转发给 profile 目录里的 pnpm,这条命令的行为和 pnpm add 一致。

dsh plugin --profile web add @deepseek-ai/dsh-base

它在 profile 里做什么

共享内核,以 bundle 形式提供:每个 profile 的第一层补丁,往空根上插入基础插件行。当前版本 0.0.1-rc.1。想知道它是否已经在你的 profile 里,看 $DSH_HOME/profiles/<名字>/package.json 的依赖,或用 --dump-config 读合成后的树。

什么时候你需要关注这个包

症状是 profile 启动不对劲:该生效的行没生效,或者 Windows 上跑起了 bash 而不是 PowerShell。用 dsh --profile web --dump-config 打印合成树,里面那些不是你手写的行就来自这一层——模型适配器、agent-default-model、工具、持久化、策略、设置与凭据、遥测、子 agent 提供者。

移除或换掉它,什么会坏

删掉它,后面就没有可覆盖的对象了:每个 bundle 都按 id 覆盖行,而那些 id 是本层插入的。Windows 上它还附带 windows.cordis.patch.yml,关掉 POSIX 的 bash 栈(bash-sandbox、tool-bash),换成 dsh-pwsh-sandbox 与 dsh-tool-pwsh。想恢复 bash 必须整套改回来,两套执行器都注册同一个 bash 服务,改一半会在加载时直接报错。

容易被混淆的那个包

常被和 dsh-tools 搞混。dsh-base 是补丁层,负责插入行;dsh-tools 是那些行指向的注册表。注册表可以换,这一层删了就没了指针。另外,把 dsh-fs-local 和 fs-sandbox 一起挂会重复注册 ctx.fs,加载直接失败。

常见问题

装错了怎么卸掉?

用 dsh plugin --profile <名字> remove @deepseek-ai/dsh-base,和装的时候对称。

版本不匹配会怎样?

插件通过 engines.dsh 或 DSH 的 peer 依赖声明兼容区间。不在区间内时命令行会跳过它并打印要求,而不是启动一个可能崩的组合。