dsh-wishadel-theme
dsh主题维什戴尔风格
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Sep 30, 2026
Introduction
Wishadel Demolition Terminal
面向 DeepSeek Harness Web GUI 的维什戴尔主题插件。
视觉方向不是传统游戏金属框,而是明日方舟式信息终端与维什戴尔爆破涂写:黑灰信息层、细线框、编号、警示切角、红色状态轨、网点和不对称构图。
预览
以下截图来自实际运行中的 DSH Web GUI,统一使用 1600 × 1000 视口,展示完整页面布局而不是局部素材或裁剪片段。
对话首页

完整展示侧栏工作区、会话列表、维什戴尔背景、首页标题、Agent 预设、访问模式、模型选择和主题输入器。输入器同时集成提示词优化入口,适合直接开始新会话。
任务看板

完整展示五列任务流:待规划、待办、进行中、已完成和已失败。看板支持真实 DSH Agent 执行、会话跳转、失败重跑、定时任务和持久化状态。
设置中心

设置中心采用原生 DSH 弹窗布局,包含通用设置、模型、插件、Agent 预设和插件市场入口。主题插件的详细配置位于设置页的插件区域,具体名称会随 DSH 版本显示为“插件配置”或“可配置”。
功能
除维什戴尔主题外,本插件提供五组功能,全部在插件自己的配置页里开关与调参(保存即生效,持久化于宿主)。配置入口随 DSH 版本不同:
-
DSH
0.2.0+:侧栏 插件 → 已安装 →@cdxdnrf/dsh-client-ui-skin-wishadel,配置区就在该 bundle 详情页的描述与组件行之间。 -
DSH
≤ 0.1.5:设置 → 插件 → 插件配置里的「维什戴尔终端」折叠卡。 -
任务看板:侧栏底部「任务看板」进入。任务按 待规划 / 待办 / 进行中 / 已完成 / 已失败 五列组织;点击「执行」由真实 DSH 智能体会话执行,完成/失败状态自动回写,可跳转执行会话复盘;支持 cron 定时执行(如
0 23 * * *每天 23:00、0 9 * * 1每周一 09:00),到点自动开工。 -
工作区目录选择:接管官方的「添加工作区…」入口(空白页工作区选择器与侧栏工作区头部的添加按钮),点击后弹出增强面板:一键打开 Windows 原生文件夹选择窗口(WSL 下经 interop 启动
powershell.exe,选中的 Windows 路径自动经wslpath转换为 WSL 路径),同时提供已注册工作区快捷列表与手动输入(支持~、Windows 路径、相对路径)。所选路径经官方 directoryFlow owner 会话接纳,沿用 DSH New Session 流程注册并打开工作区;无图形界面时自动降级为快捷列表 + 手动输入。 -
原生替代功能(默认关闭):以下增强项已被新版 DSH 的原生能力覆盖,默认停用,可在配置页的「原生替代功能」区逐项重新开启——历史跳转(原生轮次导航)、工作台「活动」标签(原生会话头部后台任务列表)、工作台「文件」标签(原生右侧边栏的文件树 + 文档预览)、工作台「终端」标签与底部终端(原生右侧边栏的终端标签页)、Git 分支气泡(原生消息尾部的变更文件卡)、侧栏会话置顶(原生侧栏搜索与手动排序)、侧栏键盘导航(新版侧栏自带键盘处理)、会话文件标签页(原生消息尾部变更文件卡)、对话迷你滚动条(原生对话导航)。
-
Git 图谱:提交历史以分支泳道图可视化,点击提交查看详情与变更文件;从工作台「Git」面板头部的「图谱」按钮打开(分支气泡默认关闭后不再占用输入框上方)。可在配置页关闭。
-
右侧工作台:会话打开后,右下角「工作台」胶囊展开/收起。默认含「Git」(真实变更、stage / unstage / discard、差异与提交,入口处可直达提交图谱)与「浏览器」(HTTP/HTTPS 地址栏、历史导航、外部打开、默认 opaque-origin sandbox);「文件」「终端」「活动」标签默认关闭(见「原生替代功能」)。面板宽度、折叠、当前 Tab、浏览器地址和底部辅助区域按会话/工作区持久化,支持键盘 Tab 导航。 与 DSH 原生右侧边栏共存时自动协调:原生栏打开后工作台整体让位(不覆盖原生栏、不挤压对话);原生栏关闭后自动恢复。
-
设置中心:主题选择(皮肤注册表
window.__dshSkins,便于后续接入更多主题)、终端装饰/角色图/会话背景、任务看板、Git 图谱、右侧面板的全部开关与参数。
宿主半边通过 /wishadel/* 同源接口与页面通信,任务、设置与面板状态持久化在 $DSH_HOME/storages/wishadel/。客户端通过 ctx.wishadelWorkbench 发布轻量扩展注册表,支持 registerTab({ id, title, order, component }) 与 registerFileViewer({ id, exts, priority, component });注册返回 disposer,兼容 HMR 生命周期。
覆盖范围
- Web GUI 全局背景与会话背景
- 宽侧栏、会话树、选中与运行状态
- 首页标题和输入器
- 对话头部、标签页、用户消息气泡
- 推理、上下文与工具调用行
- 问题卡、Todo、Cordis 审批面板
- 设置弹窗、菜单和浮层
- 响应式布局、减少动态效果
- 任务看板 / Git 图谱 / 右侧面板 / 设置中心的维什戴尔风格界面
所有素材都在预构建的 lib/client.js 中以内嵌 Data URI 分发,运行时不访问远程地址。
安装
推荐使用 DSH 官方插件管理命令,不需要手动 clone 仓库,也不需要运行项目脚本。
要求:已经可以运行 DSH,并且 Node.js 提供 Corepack。
corepack enable
dsh plugin --profile web add git+https://github.com/cdxDNRF/wishadel-theme.git
安装完成后:
- 重启
dsh web。 - 刷新
http://127.0.0.1:3080。 - 打开配置页:DSH
0.2.0+走侧栏 插件 → 已安装 →@cdxdnrf/dsh-client-ui-skin-wishadel;≤ 0.1.5走设置 → 插件 → 插件配置。
如果你的环境找不到 pnpm,先运行 corepack enable;DSH 的 profile 插件命令会负责安装依赖、写入 Web profile,并把主题 bundle 加入组合配置。
Git 安装说明:pnpm ≥10 默认拒绝运行 git 依赖的构建脚本,第一次
add可能失败并提示授权——按提示把 pnpm 打印的包键加入该 profile 的pnpm-workspace.yaml的allowBuilds后重试即可。本包通过prepare脚本(node scripts/build.mjs,纯 Node 无第三方依赖)在安装时重建lib/;仓库也同时提交了预构建产物,两种路径都能安装。
更新
使用同一个 DSH 官方命令重新解析远端包:
dsh plugin --profile web add git+https://github.com/cdxDNRF/wishadel-theme.git
然后重启 dsh web 并刷新页面。若需要固定到某个 Git 提交,可使用 Git URL 片段或本地路径作为 package source。
配置
DSH 0.2.0+:侧栏 插件 → 已安装 → @cdxdnrf/dsh-client-ui-skin-wishadel,配置区渲染在该 bundle 详情页里(描述与组件行之间),可开关全部功能与主题选项。
DSH ≤ 0.1.5:设置 → 插件 → 插件配置,展开「维什戴尔终端」折叠卡。
两条路径读写同一份设置,保存后即时生效并持久化到宿主($DSH_HOME/storages/wishadel/settings.json)。配置界面自带重试按钮,若提示宿主服务未就绪,重启一次 dsh web 即可。
修改后立即生效。DeepSeek Harness 0.1.0-rc.6 的 Web 配置 API 只向内置插件开放 settings namespace,因此本插件通过自己的 /wishadel 同源接口实现宿主持久化(不使用浏览器 localStorage)。
卸载
使用 DSH 官方插件管理命令移除主题:
dsh plugin --profile web remove @cdxdnrf/dsh-client-ui-skin-wishadel
卸载后重启 dsh web 并刷新页面。该命令会移除主题 package dependency 以及 dsh.profile.bundles 中对应的 bundle,不修改其他插件。
仓库中的 scripts/install.ps1 和 scripts/uninstall.ps1 只是 PowerShell 包装器,适合无法直接调用完整命令的 Windows 环境;正常安装优先使用上面的 DSH 官方命令。
开发
源码与构建产物分离:
assets/ 背景素材
src/client/*.js 客户端半边(主题核心、皮肤注册表、设置卡、任务看板、Git 图谱、右侧面板)
src/host/*.js 宿主半边(设置/任务/文件/Git 服务与 /wishadel 路由)
src/theme.css 主题样式
src/client.css 功能界面样式
scripts/build.mjs 无第三方依赖构建脚本(按序拼接为 lib/client.js 与 lib/index.js)
scripts/smoke-host.mjs 宿主半边冒烟测试(mock ctx 驱动全部路由)
scripts/smoke-client.mjs 客户端加载冒烟测试(mock window/React 执行 apply)
scripts/e2e-live.mjs 实机端到端验收(宿主上线后;含真实智能体任务执行,--cron 附加定时验证)
scripts/e2e-race.mjs 删除竞态回归(运行中任务不可删除、结算不击穿进程)
scripts/inspect-session.mjs 解压任务会话日志取证
lib/ 构建产物(客户端 bundle + 宿主 ESM)
docs/screenshots/ README 预览图(对话首页、任务看板、设置中心)
修改源码或素材后:
node .\scripts\build.mjs # 重建 lib/
node .\scripts\smoke-host.mjs # 宿主冒烟(可选但推荐)
node .\scripts\smoke-client.mjs # 客户端加载冒烟(可选但推荐)
node .\scripts\e2e-live.mjs --base http://127.0.0.1:3080 # 实机验收(宿主上线后)
生效方式:客户端 bundle 由 Web 服务器按请求实时读盘,重建后浏览器硬刷新(Ctrl+F5)即可;宿主半边在进程启动时装载,改动后需要重启 dsh web。以本地 link 方式安装(package.json 依赖为 link: 路径)时开发最顺手。
兼容性
当前针对 DeepSeek Harness 0.2.0-rc.2 Web GUI 验证,并向后兼容 0.1.5-rc.1 / 0.1.2-rc.1 / 0.1.1-rc.2 / 0.1.0-rc.7(输入框透明镜像层、settling 阶段、右侧 details 列、设置卡槽位等旧版差异已做多版适配;旧版专属的兼容规则在新版为无害空选择器)。优先使用 data-pane、data-phase、data-composer-*、ARIA role/state 等稳定钩子,CSS Module 类名片段只作为兼容回退。新版 dsh web 的浏览器认证只作用于 /api,本插件 /wishadel/* 同源接口不受影响。
0.2.0 的适配要点:
- 配置界面迁址:
settings.plugin.item槽已不存在,插件配置改为在侧栏「插件」页的 bundle 详情页里渲染(plugins.bundle.config,key = bundle 包名),并需要按view: 'summary' | 'page'分别给出一行摘要与完整表单。两代槽位同时注册,未声明的槽位只会静默等待,因此同一份构建在0.1.x与0.2.0都能出配置界面。 - 当前会话判定:会话快照不再提供
current,改为「被主视图 retain 的会话」(retainedBy.mainView > 0,与官方ui-workspace的mainSessionId同一判定);工作台据此重新解析sessionId与cwd,旧版回落到current。 - 原生终端上线:右侧边栏新增原生终端标签页(Web 与 Desktop 都可用),工作台「终端」标签与底部终端默认关闭。原生浏览器标签页仅 Desktop 启用(Web 组合里
ui-sidebar-browser是 disabled),因此工作台的「浏览器」标签保留。 - 原生变更文件卡:每轮结束的消息尾部由
dsh-workspace-changes+ui-deliverables渲染变更文件卡;「Git 分支气泡」默认关闭,提交图谱改由工作台「Git」面板头部的「图谱」按钮进入。 data-pane属性在0.2.0已移除,theme-core的面板标记改以 CSS Module 类名片段(_sidebarCol/_centerCol/_rightbarCol)为准。- 原生
添加工作区仍由本插件接管(0.2.0依旧只发布dsh-host-directory-picker-auto宿主半边,浏览器半边dsh-client-ui-directory-picker-native未挂载),因此「工作区目录选择」保持默认开启。 - 工作台与原生右侧边栏的让位协调、
Ctrl+Alt+N跟随可见标签等行为在0.2.0下一致。
0.1.5 的适配要点:
- 右侧第三列由
details(ui-chat)换成原生右侧边栏rightbar(文件树 + 文档预览)——主题皮肤规则同时覆盖两者;工作台与原生栏按上文规则自动协调。 - 原生替代项新增两项默认关闭的增强(工作台「文件」标签、侧栏会话置顶);置顶按钮改为只注入能解析出会话 id 的行,不再污染原生菜单里的
role="treeitem"。
素材与许可
本项目是非商业性质的同人主题,与 Hypergryph/鹰角网络无隶属关系,也未获其背书。角色与《明日方舟》相关权利归各自权利人所有。详见 NOTICE。
项目代码和主题编排以 CC BY-NC-SA 4.0 发布。分发前请确保你有权重新分发替换后的背景素材。