Themes & Appearance

wishadel-theme

cdxDNRF/wishadel-theme · ★ 0

cdxDNRF

dsh主题维什戴尔风格

An English summary is not available; the Chinese summary is shown.

README body is shown in Chinese.

License
NOASSERTION
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:cdxDNRF/wishadel-theme

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: zh · Read Chinese README

Table of contents
  1. 预览
  2. 对话首页
  3. 任务看板
  4. 设置中心
  5. 功能
  6. 覆盖范围
  7. 安装
  8. 更新
  9. 配置
  10. 卸载
  11. 开发
  12. 兼容性
  13. 素材与许可

面向 DeepSeek Harness Web GUI 的维什戴尔主题插件。

视觉方向不是传统游戏金属框,而是明日方舟式信息终端与维什戴尔爆破涂写:黑灰信息层、细线框、编号、警示切角、红色状态轨、网点和不对称构图。

预览

以下截图来自实际运行中的 DSH Web GUI,统一使用 1600 × 1000 视口,展示完整页面布局而不是局部素材或裁剪片段。

对话首页

Wishadel 对话首页

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

任务看板

Wishadel 任务看板

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

设置中心

Wishadel 设置中心

设置中心采用原生 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 0.2.x 的原生右侧边栏已提供文件树、文档预览与终端,0.2.1 起还补齐了原生工作台,因此本插件自带的工作台默认关闭,在配置页「启用右侧工作台(本插件)」里开启。 与原生右侧边栏共存时自动协调:原生栏打开后工作台整体让位(不覆盖原生栏、不挤压对话);原生栏关闭后自动恢复。

  • 设置中心:主题选择(皮肤注册表 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

安装完成后:

  1. 重启 dsh web。
  2. 刷新 http://127.0.0.1:3080。
  3. 打开配置页: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.1-rc.2 Web GUI 验证,并向后兼容 0.2.0-rc.2 / 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.1 的适配要点:

  • 实测 0.2.1-rc.2 未引入破坏性变更:主题三个面板标记、data-composer-* 输入契约、plugins.bundle.config 配置槽、shell.overlay / conversation.input.* 等槽位全部保持,三条冒烟与浏览器端实测均通过。
  • 新增原生会话置顶(sidebar.workspaces.session.menu.item / session.row.action 中的 pin / unpin),与本插件「侧栏会话置顶」重复——该项此前已默认关闭(superseded.sidebarPin),无需改动。
  • 槽位内核改为单条目崩溃隔离:某个 slot 条目抛错只在控制台记录 slot entry crashed in '<slot>',不再连带空白整页;本插件各安装器仍由 safeInstall 包裹,两层防护互补。
  • panel-state 等接口多返回一个 defaults 字段(宿主侧面板默认值),本插件读 state 的行为不变。
  • 本插件自带工作台改为默认关闭(panel.enabled 默认 false):原生右侧边栏 + 原生工作台已覆盖该场景。设置里用一次性迁移标记 migrations.panelOffByDefault 只把旧存档的出厂默认值改一次,用户之后手动开启不会再被覆盖。

0.2.1 新增的原生 UI(均由宿主提供,与本插件无重叠):

功能 表现
插件「发现」页 侧栏「插件」新增 发现 标签页,浏览插件市场索引、搜索/分类筛选、一键安装(需挂载 dsh-experimental-plugin-market-bundle,出厂关闭)。
快捷键参考 设置 → 通用 里的「编辑快捷键」+ Mod + /,可搜索全部命令、录制/清除/恢复绑定,Web 端存 localStorage: dsh.keybindings.v1。
密钥遮盖 已发送的用户消息里识别到的 API key/token 只明文显示前 8 位,其余以 * 绘制;仅影响显示,复制与模型输入仍是原文。
模型标签 1017 在 composer 模型选择器里给 DeepSeek-V4.1-Flash 加一个临时标记,关闭该行即恢复纯名。
会话置顶 会话行「…」菜单与悬停按钮里的 置顶 / 取消置顶,置顶项在分组与平铺视图都排在最前。
桌面端专属(Web 不加载) 原生浏览器标签页、产品分析遥测。
可选实验包(出厂关闭) 语音输入、思考过程机器翻译、自定义插件市场、开发者工具、Git 工作树、持久终端、Ralph 循环等。

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 发布。分发前请确保你有权重新分发替换后的背景素材。