dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
DSH Web GUI 皮肤管理器:自动发现已安装皮肤,在独立设置页一键互斥切换,热载入无需重启。
面向 DeepSeek Harness Web GUI 的轻量皮肤管理器:自动发现所有已安装的
皮肤(任何带 skin.json 且附带预构建 client bundle 的包),在独立的
设置 → 皮肤 页面列出全部皮肤,一键切换——互斥生效,热载入无需重启
dsh web。
node_modules,找出所有带 skin.json
和预构建 lib/client.js 的包;也能识别市场下载的无 skin.json 主题
(带 client bundle 且 cordis.patch.yml 插入 theme/skin 行,例如
dsh-skin / Codex 风格皮肤、dsh-kimino-theme)。新装的皮肤自动出现,
无需重新生成清单、无需改代码。settings.section(id skins,order 20),出现在
设置侧栏,与「通用」「模型」平级。insert 行,其余写
disabled: true 行)。dsh plugin --profile web add github:xiaoyangcheng84-svg/dsh-skin-manager
然后重启 dsh web(或走插件市场热安装)。刷新页面后打开
设置 → 皮肤。
github:源安装需要本机有 git;也可以本地 checkout 后用dsh plugin --profile web add link:<路径>安装。
任意包满足以下条件即被识别为皮肤并出现在列表:
node_modules(顶层或 @scope/name)skin.json(id、name、package、accent、bodyAttr、
tagline,可选 wiring.id——与 dsh-deep-whale / dsh-web-ui 皮肤字段一致)exports["./client"] 或 lib/client.js)没有 skin.json 的市场主题也会被识别,条件如下:
dsh.client 和 dsh.bundle.patchcordis.patch.yml 里是简单的 insert 行安装 dsh-market 时,用本管理器应用皮肤会同时:
cordis.patch.yml 的 managed 段(重启后仍生效).dsh-market/state.json,防止它在下次启动时把刚
选中的皮肤再禁用切换 = 重写 profile 的 cordis.patch.yml 中由
# --- dsh-skin-manager managed --- 标记的 managed 段:
- insert: 行- id: <rowId> + disabled: true 行非皮肤的用户 patch 行(如 dsh-market)原样保留。
host 半区在 /api/skin-manager 下挂三个路由:
| 路由 | 方法 | 用途 |
|---|---|---|
/api/skin-manager/list | GET | 列出已装皮肤 + 当前激活 id |
/api/skin-manager/apply | POST | { id } 或 { id: "official" } 切换 |
/api/skin-manager/bundle | GET | ?id=<skinId> 提供皮肤的 client bundle |
client bundle 直接用 __ModuleLoader__ bundle 格式手写(与官方 ui-*
包 tsdown 产物的形状一致),无需构建步骤。lib/client.js 只能
require 模块表实体(平台种子词如 react、已注册的 client bundle)。
MIT