dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Dpf555/dsh-workbench
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
中文 | English
参考 microsoft/vscode 的设计,为 DeepSeek Harness(DSH)Web GUI 增加:
.md 文件后标签行出现"预览"按钮,一键切换渲染视图(标题/列表/表格/代码块/引用/任务清单/链接/图片),随编辑实时刷新;内置自包含渲染器,无额外依赖ctx.fs 服务,双重围栏在工作区沙箱内,越界拒绝;写入走版本号 CAS 防覆盖┌─────────┬──────────────────────────┬────────────┐
│ 左侧边栏 │ 中间:会话 ⇄ 文件内容 │ 右侧:文件树 │
│ (不变) │ 点文件 → Monaco 编辑器 │ Explorer │
└─────────┴──────────────────────────┴────────────┘
| 文件 | 作用 |
|---|---|
index.js |
主机半部(Cordis 插件):注册 /wb/* 静态资源路由 + /wb/api/<op> 文件操作(describe/listDir/readFile/writeFile/createFile/createDir/assetText),工作区围栏 |
client.js |
客户端半部(浏览器插件 bundle):引导加载 /wb/workbench-client.js |
assets/workbench-client.js |
UI bundle:右栏 ExplorerRoot(explorer slot)+ 中栏 EditorView(conversation.view 的 workbench.editor 视图) |
assets/vs/ |
monaco-editor 发行版(npm run setup:assets 生成,不入库) |
assets/seti.* |
seti 图标字体与生成产物(npm run generate:seti) |
patches/*.patch |
对 DSH 检出包的三处内嵌补丁(三栏布局依赖它们) |
scripts/*.mjs |
资产下载/图标生成/补丁应用/profile 安装 |
dynamic/ |
会话内动态插件形态(cordis_define 用),可选 |
三处补丁(patches/,对 DSH 0.1.0-rc.6 生成):
ui-layout.patch — AppFrame 新增第 4 条网格轨道 explorer(240–420px、默认 300)+ explorer slot + 拖宽手柄 + toggleExplorer 服务方法ui-conversation.patch — 暴露 window.__DSH_CONV_BRIDGE__[sessionId].setView,点击文件自动切换中间视图ui-sidebar.patch — 页面加载即挂载 UI bundle(刷新自愈)前置:Node.js ≥ 18、git、可访问 npm registry 的网络。
git clone <this-repo> dsh-workbench
cd dsh-workbench
# 1. 下载 monaco 资产并生成 seti 图标(约 13MB)
npm run setup:assets
# 2. 安装到 DSH profile(下次 `dsh web` 重启后随组合加载 /wb 路由与客户端引导)
node scripts/install-profile.mjs --profile web
# 3. 给当前 DSH 检出打三栏布局补丁(不改则只有浮窗/无右栏,见下方"补丁"说明)
node scripts/apply-patches.mjs --checkout <checkout-root>
# 不传 --checkout 时自动探测 ~/.npm-cache/_npx 下的检出
然后重启 dsh web 并 Ctrl+F5 硬刷新页面。
检出根目录:包含
node_modules/@deepseek-ai/的目录(npx 安装通常位于~/.npm-cache/_npx/<hash>/;本机示例C:\Users\<you>\.npm-cache\_npx\1e7f6d9597241db0)。
DSH 的客户端壳不提供"常驻右栏 + 点击文件切换中间视图"的公开扩展点:
explorer slot)——由 ui-layout.patch 完成conversation.view)的活动视图切换是私有状态——由 ui-conversation.patch 暴露桥接补丁直接修改检出的客户端 bundle(DSH 按请求实时读取、cache-control: no-cache,硬刷新即生效,无需构建)。补丁基于 0.1.0-rc.6 生成;DSH 升级后如不能应用,请对照新 bundle 重新生成(git diff --no-index <原始> <补丁后>)。
« 收起面板;左边缘拖宽;收起后右侧保留 28px 窄条,点击即可重新展开文件树根 = 当前活跃会话的工作区(该会话的 header.cwd,即其沙箱边界):
/wb/api/* 调用,服务端按 sandboxPolicy.resolve({ session }) 解析栅栏根sandboxPolicy fallback root,可通过 profile 的 cordis.patch.yml 固定)注意:会话级解析需要主机半部注入
sessions服务,改完index.js/client.js后需重启dsh web再硬刷新。
<DSH_HOME>/profiles/web/cordis.patch.yml 中 - insert: 的 workbench 行,重启 dsh web<DSH_HOME>/profiles/web/node_modules/@dsh-local/dsh-workbench/npm i @deepseek-ai/dsh-client-ui-{layout,conversation,sidebar}@0.1.0-rc.6 后覆盖检出的 lib/client.js),或 git apply -R patches/*.patchctx.fs 契约无 rename/delete → 暂不支持重命名/删除文件sandboxPolicy fallback root,可用 profile 补丁固定)CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: web-ui。