DeepSeek Harness 插件

dsh-ui-web

DSH web GUI right-panel system: a pixel-faithful re-implementation of AionUi's Explorer + Preview columns (file tree, filename search, git changes, multi-tab preview of 10+ formats) driven by real(英文原文)

跳到安装方式

来源信息

GitHub 仓库
CAPTAIN1275/dsh-ui-web
最近更新
2026年8月16日
分类
文档与渲染
GitHub stars
35
载体类型
plugin
包路径
packages/dsh-aionui-panel
目录证据
上游声明已找到 dsh.bundle
证据路径
packages/dsh-aionui-panel/package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/CAPTAIN1275/dsh-ui-web/tree/HEAD/packages/dsh-aionui-panel
插件名:dsh-ui-web
作者:CAPTAIN1275

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-aionui-panel — DSH Web GUI 右侧面板系统

> AionUi 右侧面板的像素级复刻(Apache-2.0 授权参考实现,非抄录):Explorer > 项目面板(文件树 / 文件名搜索 / Git 变更)+ Preview 预览面板(10+ 格式多 tab > 预览)+ 统一拖拽布局系统,按项目隔离的偏好持久化。

安装

推荐直接安装全家桶聚合包 @captain1275/dsh-web-ui-all(一个包装齐全部功能插件与皮肤),或单独安装本插件:

# 推荐:直接从 npm 安装
dsh plugin --profile web add @captain1275/dsh-client-ui-aionui-panel

# 或从仓库安装(开发调试)
git clone https://github.com/zhu1090093659/dsh-web-ui.git
cd dsh-web-ui
pnpm install && pnpm -r build
dsh plugin --profile web add link:$(pwd)/packages/dsh-aionui-panel

安装后重启 dsh web,打开项目会话即可看到聊天区右侧的「预览」与「文件/变更」两块面板。

使用

项目会话(当前会话有工作目录)打开后,聊天区右侧出现两块面板:

  • Explorer(最右栏,默认 260px,范围 220~500px)文件 / 变更 双 tab;

文件树整行点击展开/收起文件夹,点击文件在预览面板打开,顶部按文件名搜索 (150ms 防抖,点击结果 = 定位到树中,不打断思路);变更 tab 读取真实 git 状态,支持 stage / unstage / discard(untracked 走删除,tracked 走 restore,批量放弃有确认)。

  • 拖拽文件到输入框:文件树中的文件行可拖拽(目录行除外),拖到聊天

输入框区域松手即把相对路径(如 deploy/base/deployment.yaml)插入当前 会话草稿的光标处,agent 收到消息后会自行读取该文件,无需手动输入路径; 拖拽过程中输入框上方显示高亮提示条。

  • Preview(右二栏,默认 480px,范围 340~1200px):多 tab 预览,支持

markdown / html / code / diff / csv / pdf / word / excel / ppt / 图片 / 文本 / url;源码/预览切换、分屏编辑(比例持久化)、保存(mtime 冲突检测)、下载、 刷新(4 态:不渲染死按钮)、dirty 点、中键关闭、右键菜单批量关闭 (dirty 确认)、tab 溢出渐变指示器。

交互细节:

  • 拖拽左缘把手调宽(rAF 每帧合并,body user-select:none);双击把手复位默认宽度。
  • 两级宽度钳位(Explorer 先、Preview 后)数学保证聊天区 >= 360px;超限值回写持久化。
  • 折叠 = 宽度缩 0 且组件保持挂载(树展开态 / 预览 tab 不丢),无过渡动画;

折叠后右侧出现浮动展开按钮。

  • 明暗双主题跟随 GUI(body[data-ds-dark-theme]),prefers-reduced-motion 全局禁用动画。
  • 偏好按项目隔离持久化(localStorage keys 与 AionUi 一致):

chat-workspace-width-px / chat-preview-width-px / preview-panel-split-ratio / project-panel-collapse:<root> / explorer-ui:<root> / scm-ui:<root> / preview-ui:<root>(LRU 上限 12 scope)。读取一律范围校验,非法值回退默认。

数据源

真实文件系统与真实 git 仓库,无任何 mock:

  • host 半区(src/index.ts + src/host/)经 /aionui-panel/* HTTP 路由提供

目录列举、文件读取(文本 80k 字符上限 / 图片 data URL)、写入(mtime 冲突 检测)、文件名搜索(跳过 .git / node_modules)、git status(porcelain v1 -z) / stage / unstage / discard,以及 SSE 变更流(fs 监听 + git 轮询)。

  • 所有操作经过工作区门卫:路径必须落在已注册 workspace 内(realpath 规范化 +

前缀校验),浏览器只能读写项目根下的相对路径。

  • browser 半区(src/client/)以当前会话 cwd 作为项目根,切换会话即切换项目。

结构

  • src/index.ts — host 半区入口(cordis 插件:路由注册 + systemPrompt 公告)。
  • src/host/ — fs/git 数据服务与路由层(workspace gate)。
  • src/core/types.ts — 前后半区共享的线上类型。
  • src/client/ — browser 半区:框架无关状态核心(store.ts)、拖拽引擎

drag.ts + hooks/useResizableSplit.ts)、DOM 布局控制器(layout.ts, 向 shell 的三栏 grid 追加面板轨道)、React 组件(explorer / scm / preview)。

  • tests/ — clamp 公式、porcelain 解析、持久化校验、markdown/csv 渲染、

store 行为等纯逻辑测试(vitest,37 个)。

构建

export NPM_TOKEN='<token>'   # 若仍使用私有 scope 认证
pnpm install
pnpm -r build

署名

本项目是 AionUi(iOfficeAI/AionUi,Apache-2.0)右侧面板系统的复刻实现: 尺寸、颜色、动效、交互参数来自对 v2.1.53 的实测调研(研究报告与截图见 aionui-research 仓库),实现为全新代码,未大段抄录源码。上游版权归 AionUi 项目所有,本项目仅按 Apache-2.0 约定保留署名。