CLI 与配置
Harmony 在现有 dsh 启动器中增加一个命令组。
命令
dsh harmony
打开插件顺序 TUI,默认使用 Web profile。
sh
dsh harmony
dsh harmony --profile tuidsh harmony status
打印全部已收集 Patch 及其状态。存在失败 Patch 时以状态码 1 退出。
sh
dsh harmony status
dsh harmony status --profile tuidsh harmony inspect
打印目标的原始、中间和最终源码。
sh
dsh harmony inspect
dsh harmony inspect some-dsh-plugin
dsh harmony inspect some-dsh-plugin --file lib/index.js所有命令都支持 --profile <name>。
Profile 状态
每个 profile 在以下位置保存状态:
text
$DSH_HOME/profiles/<name>/harmony.json文件包含手动插件顺序和已停用稳定 Patch 键。Harmony 会与安装依赖同步:新插件追加,已移除插件消失。
profile 运行时不要直接编辑该文件。通过 Web 设置或 TUI 修改,才能预检并事务提交候选状态。
Provider 元数据
Provider 配置位于 package.json 的 dsh.harmony:
json
{
"dsh": {
"harmony": {
"patches": ["./patches/a.cjs", "./patches/b.cjs"],
"after": ["provider-a"],
"before": ["provider-c"],
"conflicts": ["legacy-provider"]
}
}
}| 字段 | 含义 |
|---|---|
patches | 按声明顺序加载的 CommonJS Patch 模块 |
before | 当前 Provider 希望排在其前面的包名 |
after | 当前 Provider 希望排在其后面的包名 |
conflicts | 同时启用时产生不兼容警告的包名 |
环境变量
| 变量 | 用途 |
|---|---|
DSH_HOME | 覆盖包含 profile 和 Harmony 状态的 Harness Home |
DSH_HARMONY_DSH_ENTRY | 显式选择官方 @deepseek-ai/dsh/lib/bin.js,主要用于 Desktop 集成 |
稳定 Patch 键
Harmony 将 Provider 包名和 Patch id 组合成稳定键:
text
provider-package/patch-id状态、启停、检查、依赖和错误都使用该键。停用 <provider>/* 会停用整个 Provider,并移除其当前冲突警告。