CH4ACKO3/dsh-harmony

CH4ACKO3★ 6TypeScriptLast synced: 2026-08-15

Open on GitHub

A library for patching, replacing and decorating dsh plugin during runtime

README excerpt

简体中文 English dsh-harmony 一个在运行时修补、替换和装饰 DeepSeek Harness 插件的库。 插件定位 dsh-harmony 是 DeepSeek Harness 的运行时 Patch 协调层。 官方插件 API 负责 “增加能力”,Harmony 负责“修改已经存在的能力”:一个插件可以在另一个插件加载前 改写它的实现、替换函数或包裹调用,而不需要维护 Fork,也不会改动磁盘上的安装文件。 方式 适合做什么 边界与代价 官方插件 API 注册官方开放的服务、Slot、工具和页面 无法修改未开放扩展点的内部实现 维护 Fork 任意改动目标插件源码 需要持续合并上游更新,多个 Fork 难以协调 dsh-harmony 在运行时 Patch Host 与 WebUI 插件 Patch 需要跟随目标插件的编译结构变化 它不是新的插件安装器,也不替代 Harness Loader。它保留原来的 dsh 命令和官方 插件装配流程,只在 Loader 执行插件前收集、排序并应用 Patch。设计灵感来自 C 和 .NET 生态的 Harmony。 特性 - 🧩 源码 Patch :用 TypeScript AST 精确修改 lib/index.js 或 WebUI 的 lib/client.js ,目标插件执行前即生效 - 🎯 语义 Patch :对具名函数声明和类方法执行 before 、 after 、 around 、 replace ,无需手写整段 AST 变换 - 🔀 全局协调 :所有提供者共享一个手动顺序,并可声明 before / after 约束; 自动排序会寻找违规最少的顺序 - ♻️ 事务热更新 :新增插件、修改 Patch、调整顺序和启停 Patch 都先预检,再热重载 受影响的 Loader 条目或 WebUI bundle;失败时保留旧代 - 🧯 冲突可见 :匹配数异常、两个 replace 争用同一函数、前序 Patch 移除后序目标 等错误会指出提供者、目标文件和冲突关系 - 🧼 不污染安装目录 :变换仅存在于运行时;卸载 Harmony 后,官方 dsh 和所有 目标插件立即回到原始实现 最短示例:修改 WebUI 主横幅 官方 WebUI 没有为新会话主横幅提供独立 Slot,并且同一 locale namespace 不能由普通 插件重复注册,因此无法通过官方插件 API 单独覆盖“探索未至之境”。下面这个最小插件 可以为其开启一个 Slot,变成可编辑项。 package.json : harmony.patch.yml 把插件加入 Loader Tree,并声明它依赖 Harmony: index.js 只需要提供一个普通的 Harness 插件入口: banner.patch.c…

View full README on GitHub →
Tools / Devdeepseek-harnessdsh-pluginharmonynodejsruntime-patchingtypescript

Category