dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Safe loopback-only Web UI for managing DeepSeek Harness profile plugins
English | 简体中文
一个独立的 DeepSeek Harness 插件,用于添加 设置 → 插件 → 管理插件。
它可以:
$DSH_HOME/profiles/web/cordis.patch.yml 的其余内容。所有状态和变更都使用插件自有的 Connection RPC 通道,该通道以 authority: loopback 注册。服务器会强制执行这一边界;通过 LAN 或 Tailscale 主机名打开 Web UI 时,只会显示只读访问消息,而不会暴露生命周期或包操作。
管理器拒绝禁用自身或 Web 传输/UI/实时配置文件重载主干。它还会拒绝有歧义的重复补丁 ID,以及当前 Web 配置文件树之外的条目。
热安装器仅接受可带可选版本或 dist-tag 的 npm registry 包名。它会解析一个具体的 pnpm 可执行文件(包括常见的直接可执行文件和 Node 入口点 Windows shim),通过 DSH 的公共子进程服务以无 shell 方式生成该进程,依赖该服务提供的已清除凭据的子进程环境,禁用包生命周期脚本,限制捕获的输出,并在取消或超时时执行有界的进程树终止和验证。
运行时信任边界: 禁用生命周期脚本并不会对已安装的插件进行沙箱隔离。安装成功后,该包会立即以与 DSH 相同的用户权限加载到 DSH 主机中。请仅安装来自经过审查、值得信赖的发布者的确切版本。Loopback authority 限制的是网络可达性,而不是调用者身份验证;本地同用户进程、可变的包管理器可执行文件、支持 SSRF 的浏览器内容,以及忽略共享 DSH 锁的配置文件写入者,仍处于本地信任边界之内。
现有条目的开关状态会持久化到 Web 配置文件补丁中,随后通过公共 Loader Entry.update() API 立即应用,因此不依赖文件系统监视器的行为。UI 会在报告成功前验证实际的 Loader 状态。移除管理器覆盖仅会被报告为持久化操作,因为无法仅从托管层安全推断出由此产生的组合默认值;若要在同一会话中移除覆盖,请先设置所需的实时状态。
安装路径有意不同于 dsh plugin add,后者的 bundle 列表仅在进程启动时读取:
dsh.bundle.patch 恰好是一个独立的直接插入项,不含受保护或冲突的 ID、保留的管理器标记或链接的补丁文件;公共 Loader 生命周期等待限制为 15 秒(失败时还会进行一次有界的清理尝试);超时的开关操作会保留其请求的持久化覆盖,而超时的安装会保留其托管补丁,确保不会有正在执行的条目失去跟踪。管理器绝不会针对其他 CLI 可能正在编辑的配置文件包文件运行破坏性的自动回滚。如果 pnpm 更改了配置文件后失败、收到取消、验证失败或无法提交补丁,日志会继续显示在 UI 中。仅当保存的依赖 spec 仍与记录的 pnpm 后状态匹配时,重试完全相同的 spec 才会前滚;任何有歧义或被外部更改的状态都会被拒绝,且必须使用官方 CLI 解决。HMR 处置会在旧插件代退出前中止并排空进行中的包工作。
新挂载包的浏览器 bundle 会实时进入 Host graph,但已经打开的页面无法通过 DSH 当前的公共 API 纳入新的 graph row。刷新页面一次即可加载新的浏览器扩展——无需重启 DSH 进程。
复杂或多行 bundle 会被拒绝,而不是仅挂载其中一部分。请通过官方 CLI 安装它们,并在方便时重启 DSH Web。
将预构建的 GitHub release tarball 安装到 Web 配置文件中:
dsh plugin --profile web add https://github.com/leonardoxr/dsh-plugin-manager/releases/download/v0.2.0/leonardoxr-dsh-plugin-manager-0.2.0.tgz
要从源代码构建相同的包:
pnpm install
pnpm run check
pnpm pack
该包遵循官方 DeepSeek Harness 插件与 bundle 指南:它声明了函数形式的插件、公共服务依赖项、dsh.bundle 补丁、用于 Git 安装的自包含 prepare 构建,以及明确的生命周期清理。
也支持源代码安装,但 pnpm 10 要求明确授权运行包的 prepare 构建。固定经过审查的 tag,并在重试前严格按照 DSH/pnpm 输出的 allowBuilds 修复说明操作:
dsh plugin --profile web add github:leonardoxr/dsh-plugin-manager#v0.2.0
# $DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
'@leonardoxr/dsh-plugin-manager': true
建议优先使用预构建的 release tarball,因为它不需要安装时构建权限。
管理器本身需要初始重启一次 DSH Web,因为配置文件 bundle 的添加仅在启动时生效。此后,常规开关操作和受支持的全新直接安装会使用公共的内存中 Loader 生命周期 API 以及持久化的配置文件补丁;无需再次重启进程。
生命周期覆盖和经过验证的直接挂载补丁会写入 $DSH_HOME/profiles/web/cordis.patch.yml。成功的包安装还会通过 pnpm 更新 Web 配置文件的 package.json、pnpm-lock.yaml 和 node_modules。
补丁更改使用乐观 SHA-256 revisions、withFileLock、writeFileAtomic,并在获取锁后及提交前执行取消检查。管理器标记块之外的现有注释和用户编写的行会被保留。包事务会在 pnpm 和补丁提交期间持有管理器 generation lock,并使用持久的前滚日志,而不是整个文件的快照或不安全的 remove-after-compare 回滚。
pnpm run typecheck
pnpm run build
pnpm run test
pnpm run pack:check