Zlyraz/dsh-workshop

Zlyraz★ 0JavaScriptLast synced: 2026-08-17

Open on GitHub

轻量插件开关 / Lightweight plugin toggle for DeepSeek Harness: identity badges, voice-style patch-layer switches, risk labels

README excerpt

dsh-workshop(轻量插件开关) DeepSeek Harness 的插件管理面板:给每个已装载的插件条目贴身份标签(官方内置 / 第三方 npm / 第三方 GitHub / 本地开发),提供"发声式"开关(写用户 patch 层,不卸载),并显示手工维护的风险标签。 功能(V1) - 身份判定 : ctx.loader.entries() 枚举条目 → pnpm-lock.yaml 查来源。lockfile 里查不到 = 官方内置(随 dsh 发行);npm 语义版本 = npm;codeload.github.com = GitHub tarball(锁定 commit); file: = 本地目录。GitHub 来源但冒用 @deepseek-ai/ scope 的(如 dsh-plugin-hub)会打上"冒用官方scope"警告标。 - 开关 :POST /api/workshop/v1/toggle → 往 $DSH HOME/profiles/ /cordis.patch.yml 追加/移除 - id: X / disabled: true 块。HMR 约 1-3 秒自动重组,无需重启。基础设施行(loader/webserver/ui/storage 等 44 个模式)与开关自身锁定不可关。 - 风险标签 :手工清单 risk-list.json (改了即时生效,无需重启);未收录的第三方显示"未评级",官方内置显示"官方维护"。 - 安全 :路由仅限环回 + same-origin + Origin 校验;写入经串行队列 + 临时文件原子替换。 安装 重启 dsh web → 设置 → 插件 → "轻量插件开关" tab。 结构 设计取舍(相对 dsh-plugin-hub / dsh-builtin-toggles) - 注册 API 与两者一致(官方 settings.plugins.tab 插槽 + window. ModuleLoader bundle 契约)。 - YAML 写入取 hub 的简单追加/正则移除(V1 够用)+ 临时文件原子替换;未采用 builtin-toggles 的 570 行保守写器(V2 再议)。 - 身份判定是其独有能力:不轻信 scope 前缀,以 lockfile 来源为准。 二次开发必读 本插件的完整踩坑记录(含一次三层叠加的渲染崩溃排查)在 ../插件开发踩坑手册.md 。要点:client bundle 的模块 id 必须等于包名;组件渲染抛错会被插槽错误边界「退位」摘除——面板安静消失时去浏览器 console 找 slot entry crashed ;IDENTITY LABEL/RISK LABEL 用属性访问 (L) = L.key ,别写成函数调用。

View full README on GitHub →
Tools / Devcordisdeepseek-harnessdsh-pluginplugin-manager

Category