跳到正文

CH4ACKO3/dsh-harmony

80最近提交 2026年8月15日

dsh-harmony DSH 插件

dsh-harmony 是一个用于 DeepSeek Harness 插件的运行时补丁协调库。它允许你通过 TypeScript AST 精确转换插件源代码(如 lib/index.js 或 WebUI 的 lib/client.js),或对命名函数和类方法应用语义补丁(before/after/around/replace)。所有补丁通过全局排序和冲突检测进行管理,并通过事务性热更新应用更改。

如何安装 dsh-harmony DSH 插件

dsh plugin --profile web add dsh-harmony

复制不会执行命令。安装 dsh-harmony DSH 插件前请核对仓库和版本。

dsh-harmony DSH 插件数据来源

dsh-harmony DSH 插件快照日期:2026年8月16日

discovered

dsh-harmony DSH 插件能做什么

  • 源补丁:在目标执行前使用 TypeScript AST 精确转换插件文件
  • 语义补丁:对命名函数和类方法应用 before、after、around 和 replace,无需编写完整的 AST 变换
  • 全局协调:所有补丁提供者共享手动顺序,并可声明 before/after 约束;自动排序最小化冲突
  • 事务性热更新:补丁添加、编辑、排序和启用/禁用更改在重新加载受影响条目前进行预检;失败时保留上一代状态
  • 可见冲突:匹配错误、竞争性 replace 操作以及被先前补丁移除的目标会报告提供者和文件名称
  • 无安装文件修改:变换仅存在于运行时;卸载 Harmony 后恢复原始插件状态

dsh-harmony DSH 插件适合哪些场景

  • 修改 WebUI 的新会话英雄横幅或其他未暴露为 Slot 的 UI 元素
  • 改变现有插件的行为,无需维护 fork 或修改其源文件
  • 替换或装饰插件的内部函数,以添加日志、缓存或自定义逻辑
  • 协调多个需要在同一目标上以受控顺序应用更改的补丁提供者

dsh-harmony DSH 插件适合谁

  • 需要扩展或修改现有插件而不创建 fork 的 DSH 插件开发者
  • 需要运行时打补丁、热更新和冲突管理的高级 DSH 用户
  • 为 DeepSeek Harness 构建自定义 WebUI 主题或修改客户端界面的开发者

dsh-harmony DSH 插件的限制

  • 补丁必须跟随目标包的编译结构;版本升级可能需要更新补丁选择器和变换代码
  • 目前仅适用于 DeepSeek Harness 环境,需要 Node.js ^22.22.3 或 >=24.11.1 以及 DSH 0.1.0-rc.6
  • 全局安装会替换 dsh 命令;如需恢复原始 dsh 启动器,需手动卸载 Harmony

dsh-harmony DSH 插件的仓库 README 摘录

以下文字摘自 dsh-harmony DSH 插件的上游仓库 CH4ACKO3/dsh-harmony 的 README,版权归原作者,仅作引用。

A library for patching, replacing and decorating DeepSeek Harness plugins during runtime. </p> <p> <a href="#install"><strong>Get started</strong></a> · <a href="docs/usage.md">Read the guide</a> · <a href="https://github.com/CH4ACKO3/dsh-harmony/issues">Report an issue</a> </p> <p> <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-0b63f6.svg"></a> <a href="package.json"><img alt="Node.js" src="https://img.shields.io/badge/node-%5E22.22.3%20%7C%7C%20%3E%3D24.11.1-2f6f3e.svg"></a> <a href="https://www.npmjs.com/package/dsh-harmony"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-harmony.svg?style=flat&amp;color=0b63f6"></a> <a href="https://github.com/CH4ACKO3/dsh-harmony/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/CH4ACKO3/dsh-harmony?style=flat&amp;color=0b63f6"></a> <a href="https://awesome-dsh-plugin.com"><img alt="Awesome DSH Plugin" src="https://awesome-dsh-plugin.com/badge.svg"></a> </p> [简体中文](README.zh-CN.md) / [English](README.md) </div> ## Positioning **dsh-harmony is the runtime Patch coordination layer for DeepSeek Harness.** The o

阅读完整 README仓库许可: MIT

dsh-harmony DSH 插件常见问题

如何安装 dsh-harmony?

通过 npm 全局安装:npm install -g dsh-harmony。或者,你也可以将其作为插件安装到 DSH 中:dsh plugin --profile web add dsh-harmony。通过插件方式安装时,首次启动会提示你安装并重启。

dsh-harmony 可以修补插件中的任何 JavaScript 文件吗?

可以。dsh-harmony 支持源补丁,可以转换目标包中的任何文件,例如 lib/index.js 或 WebUI 客户端文件。你也可以使用语义补丁,针对特定函数和方法进行修补,而无需编写完整的 AST 变换。

如何创建一个 dsh-harmony 补丁?

创建一个补丁提供者文件(例如 .patch.cjs),导出包含 id、target、select、expect 和 apply 的对象。apply 函数接收节点和源文件,你可以使用 edit 辅助函数覆盖范围。然后在插件的 harmony.patch.yml 和 package.json 的 dsh.harmony.patches 中引用该补丁。

dsh-harmony 会修改磁盘上的插件文件吗?

不会。所有变换仅在运行时应用,不会修改磁盘上的任何文件。如果卸载 dsh-harmony,原始插件行为将自动恢复,无需任何清理。

如何解决补丁冲突?

dsh-harmony 在 WebUI 中提供了补丁状态页面(设置 → Harmony → 补丁状态),显示每个补丁的绑定状态、匹配次数和错误。竞争性 replace 操作和被移除的目标都会被报告。你也可以在插件顺序页面手动调整补丁顺序来解决冲突。