kyorakuyk/dsh-hotreload-plugin-manager

kyorakuyk★ 3TypeScript最后同步: 2026-08-15

在 GitHub 打开

DeepSeek Harness plugin: hot install / uninstall / update / enable-disable of profile plugin bundles from the running dsh web — no restart, Web UI included.

README 摘要

dsh-hotreload-plugin-manager 中文 English 一个 树外(out-of-tree) DeepSeek Harness 插件:在 运行中的实例上直接完成插件的热安装、热卸载、禁用/启用——无需重启 , 并提供 Web 设置页标签页: - 🔥 热安装 :按 spec(npm 包名 / git URL / github:owner/repo / file: 路径) 安装插件 bundle,立即热生效于运行中的 dsh web ,且重启后保留。 - 🔥 热卸载 :移除 bundle——行与 fiber 即刻卸载、依赖被清理、陈旧的 bundle 层条目一并移除。 - 🔥 禁用 / 启用 :在 UI 上一键切换已安装 bundle 的条目开关,状态持久化且立即生效。 - 热更新 :热替换 bundle 的补丁行并实时重放配置(模块代码变更按 Node 进程内 缓存特性仍需重启)。 - 零内核改动 :纯树外 bundle,dsh checkout 完全不被触碰。 - 双面包 :一个 npm 包同时是 host 网关与浏览器设置标签页。 架构 包是双面的: - Node 半 ( lib/index.js ,tsc 编译)—— PluginManagerGateway ,一个注册为 pluginManager 的 TypertRemoteService 。api-gateway 可通过 源码模式反射 分发它的 @Remote 方法(无需生成产物);同时它在 webServer 服务上注册浏览器 HTTP 传输。 - 浏览器半 ( lib/client.js ,esbuild 打包)——注册进 settings.plugins.tab 槽位(id manager )的 Web 设置标签页,由 dsh-client-modules 发现,并以普通 模块表 bundle( window. ModuleLoader .load )形式服务。 工作原理 全部复用 launcher 已有的机制,因此插件不需要对 dsh checkout 做任何改动: 1. 安装 :在 profile 目录执行 pnpm add 。包成为 真实依赖 (进入 profile 的 node modules 与 package.json ,pnpm 不会剪除它)。管理器读取 该 bundle 的 dsh.bundle.patch 行,写入 profile 的用户补丁层 ( cordis.patch.yml )。 2. 热应用 :直接对根 Include 条目调用 entry.update (携带新补丁列表)—— 与 launcher 用户补丁 watcher 相同的调用。管理器自己应用自己的写入,因为文件 watcher 可能漏掉紧跟其后的写入事件。 3. 重启持久 :…

在 GitHub 查看完整 README →
皮肤/UIdeepseek-harnessdshdsh-pluginweb ui

分类