跳到主内容

dsh-aionui-panel/packages/dsh-aionui-panel

24Star3Fork0Issue0Watching

在 DSH Web GUI 聊天区右侧加入可拖拽的文件树、多格式预览和 Git 变更面板,支持真实文件与本地编辑,SSH 模式下自动跟随远程。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

ⓘ 此插件是大仓库 chenw2759-wq/dsh-IDE 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
BSD-3-Clause
分支
main
dshdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add --allow-build=@deepseek-ai/dsh-client-ui-aionui-panel github:chenw2759-wq/dsh-IDE#path:packages/dsh-aionui-panel

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 chenw2759-wq/dsh-IDE/packages/dsh-aionui-panel:先查看仓库 https://github.com/chenw2759-wq/dsh-IDE 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

在 DSH Web GUI 聊天区右侧加上一套 IDE 风格面板:可拖拽宽度的文件树、多 tab 多格式预览(代码/Markdown/Office/图片)、Git 变更面板和终端命令台,全部直连真实文件系统与真实 Git 仓库;安装 dsh-easyssh 后同一面板自动跟随 SSH 模式切换到远程。

核心能力

  • 双栏文件面板:聊天区右侧出现「Preview 多 tab 预览」+「Explorer 文件 / 变更」两栏,宽度可拖拽钳位(Explorer 220500px,Preview 3401200px),双击把手复位默认;Explorer 顶部按文件名 150ms 防抖搜索定位,跳过 .git 与 node_modules
  • 13 类文件预览:Markdown、HTML、PDF、CSV、图片、Office(docx/xlsx/pptx、odt/ods/odp、rtf)、代码(70+ 后缀自动 highlight)、diff/patch、纯文本、外链 URL 都直接打开
  • 框内富文本编辑:code/Markdown/HTML/Office 全部可改可保存,docx/xlsx/pptx 编辑保存时由编辑后 HTML 在浏览器端 ZIP 重组后二进制回写
  • 真实 Git 变更面板:「变更」tab 读取 porcelain v1 -z 真实状态,支持批量 stage / unstage / discard(tracked 走 restore,untracked 走删除,带批量确认)
  • 按项目隔离的偏好与记忆:每条 localStorage 以项目根为 scope 记忆展开态、tab 列表、宽度、折叠态、布局(LRU 12 个 scope,超出淘汰最旧)
  • 集成终端面板:独立开终端或从代码文件一键运行,本地模式走宿主 subprocess,SSH 模式自动改为远程执行;超时兜底 UTF-8,避免 Windows cmd GBK 截断 emoji

技术实现

  • 语言: TypeScript(Node 端 host + Browser 端 client 两半区 + React + JSZip)
  • 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-host-webserver、@deepseek-ai/dsh-subprocess、jszip(docx/xlsx/pptx 浏览器端 ZIP 解析)
  • 架构模式: 双端 Cordis 插件 + profile bundle 注入。src/index.ts 是 host 半区入口(注册 /aionui-panel/* HTTP 路由与 systemPrompt 公告),src/client/index.ts 是 browser 半区(通过 dsh.client.inject 注入 web GUI 网格、向 settings 面板注册「右边栏工作区」栏目)
  • 入口文件: packages/dsh-aionui-panel/src/index.ts:51(host apply);packages/dsh-aionui-panel/src/client/index.ts:50(client apply)

适用场景

在 DSH Web GUI 里同时打开多个本地项目时,希望在 AI 对话旁直接浏览、预览、编辑文件并查看 Git 变更,不必切回 VS Code 或 Finder;装上 dsh-easyssh 后同样的入口也能对远程服务器做这些操作——给「模型代理写代码、用户盯文件改动」的场景一个一体化窗口。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.6+peerDependencies 全部钉在 ^0.1.0-rc.6(package.json:41-48)
Node.js≥ 22README 明确写 Node ≥ 22(README.md:205);构建用 @types/node ^22.20.0
平台macOS / Windows / Linux跨平台;Windows cmd 默认 GBK 会被显式覆盖为 UTF-8,避免非 GBK 输出截断(src/index.ts:85-92)
原生模块无依赖只有 highlight.js 与 jszip,均为纯 JS;SSH 模块由兄弟插件 dsh-easyssh 提供,不是本插件的依赖
DSH 服务注入webServer / subprocess / workspaceRegistry / systemPrompthost 端 inject 列表(src/index.ts:34);browser 端注入 sessions / locale / slots(src/client/index.ts:47)
配套可选插件dsh-easyssh(SSH 模式)不装则跑本地模式;装了之后同一面板跟随 sshWorkspaceMode 切换远程

安装方式

dsh plugin --profile web add github:chenw2759-wq/dsh-IDE/packages/dsh-aionui-panel

配置项

本插件在宿主侧不暴露任何 Cordis Schema 配置项;所有可调行为都通过 GUI 内的「设置 → 右边栏工作区」开关面板(即时生效、持久化在 localStorage 键 aionui-workspace-settings)。这套开关由 8 项功能 + 9 项编辑工具组成(src/client/settings.ts:10-79):

配置(设置面板项)类型说明默认值
自动 diff开关文件被外部改动时自动弹出红绿 diff 卡,让你看到外部新增/删除的内容开
监视圆点开关文件树每个被监听的目录节点旁显示小圆点提示有变动开
Git 角标开关文件树节点上贴 A / M / D / R / U / C 彩标反映 git 状态开
语法高亮开关代码编辑器是否应用 highlight.js 着色开
缩放预览开关Markdown/HTML 预览框是否显示缩放工具栏、是否响应 Ctrl+滚轮开
三栏 IDE 布局开关布局循环是否包含「三栏 IDE」预设模式开
终端停靠开关是否启用聊天栏底部的集成终端停靠位开
会话隔离开关开启时每条会话记自己的展开态/标签;关闭后所有会话共享同一套树与 tab 记忆开
编辑工具:字体/字号/加粗斜体/对齐/下划线/颜色/段间距/页边距/底色开关 ×9控制 Markdown / HTML / Office 三处富文本编辑器的工具栏显示哪些按钮全开

另外还有三类用户态数据用 localStorage 自动持久化,源码未声明具体清理接口,按本地浏览器容量管理:

持久化项用途作用域键
Explorer / Preview 栏宽度拖拽把手改变宽度后回写,下次打开同项目保留chat-workspace-width-px、chat-preview-width-px
面板折叠态与 UI 偏好折叠 Explorer、SCM UI、Preview UI 后保留project-panel-collapse:<root>、explorer-ui:<root>、scm-ui:<root>、preview-ui:<root>(LRU 12 个 root)

常见问题

Q: 安装后需要重启 DSH 吗?

A: 需要。cordis.patch.yml 通过 dsh.bundle.patch 注入到 web profile 的插件列表(cordis.patch.yml:11-13),必须重启一次 dsh web 才会注册新的插件行;之后通过设置面板调开关不需要再重启。

Q: 不装 dsh-easyssh 也能用吗?

A: 能。所有 fs/git 操作默认走宿主进程的本地文件系统与本地 git 子进程(src/host/fs-service.ts / src/host/git-service.ts),不依赖 SSH。SSH 切换是可选增强——不装 dsh-easyssh 时面板始终展示本地会话 cwd。

Q: 改了设置面板里的开关要刷新页面吗?

A: 不需要。「右边栏工作区」的开关通过单个共享 store(src/client/settings.ts:138-143)即时热应用,关掉监视圆点或语法高亮立刻生效,不会留陈旧状态。

Q: 文件保存会不会覆盖外部的改动?

A: 不会。text 写入走 /aionui-panel/write,docx/xlsx/pptx 走 /aionui-panel/write-binary,服务端会用浏览器随写入提交的上一次 mtime 与磁盘实时 mtime 对比,冲突返回 write-conflict,不会静默覆盖(src/host/routes.ts:218-247)。

Q: 能预览哪些文件?

A: 自动识别 markdown/html/code/diff/csv/pdf/word(excel/ppt)/image/text/url 共 13 类(src/client/fileType.ts:10-82);不支持的扩展名显示「此格式暂不支持预览」占位。

Q: 怎么卸载?

A: 从 cordis.patch.yml 删除 ui-dsh-aionui-panel 行(cordis.patch.yml:12),重启 dsh web;浏览器侧的 aionui-workspace-settings 等 localStorage 可以保留也可以手动清除。

Q: 和 dsh 自带的 fs-sandbox / subprocess 冲突吗?

A: 不冲突。本插件只声明 webServer / subprocess / workspaceRegistry / systemPrompt 四个 inject(src/index.ts:34),不会替换宿主服务;如果同时安装 dsh-easyssh 由它做接缝切换,本插件通过 sshWorkspaceMode / sshWorkspaceCore 这两个跨插件服务自动跟随远程模式。

Q: docx 为什么有时候图表不显示?

A: 已知限制。docx 解析覆盖段落、表格、段落底纹、页眉页脚、内联图片(src/client/preview/office.tsx:1-17 与 README.md:36);word/charts/ 图表与嵌入的 Excel 对象暂不渲染(CHANGELOG v0.2.0 已知技术风险),不会单独报错。

上手难度

进阶 — 装机即用,但要让 SSH / 终端 / Office 编辑这三类能力都转起来需要分别了解 DSH profile、SSH 凭据管理与 docx 渲染边界。

已知问题与限制

  • docx 中的图表(word/charts/chart1.xml)和嵌入的 Excel 对象在预览与编辑保存重建时均不渲染(src/client/preview/office.tsx:1-17 / README.md:36)
  • PPT 预览不保留动画与切换效果(dsh-IDE 根 CHANGELOG v0.2.0 已知技术风险)
  • SSH 模式下 /aionui-panel/git-* 系列接口全部返回 git-unavailable(src/host/routes.ts:319-333),SCM 变面板在远程会话下隐藏相关操作
  • docx HTML 重建保真度有限:编辑保存后页眉页脚、合并单元格等复杂排版不会被保留(dsh-IDE 根 CHANGELOG v0.2.0 已知技术风险)
  • 文件名搜索结果有上限:命中 200 条 / 扫描 20,000 个条目(src/host/fs-service.ts:46-47),超出标 truncated: true
  • 本地模式终端走宿主 subprocess,最长 grace 10 秒、单条命令 60 秒超时(src/index.ts:98 / src/index.ts:76-77),超长命令会返回错误
  • 浏览器侧持久化 LRU 最多 12 个项目根的 Preview 记忆(src/client/persist.ts:93-94),跨项目更多时最久未用的 scope 会被淘汰

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/chenw2759-wq/dsh-IDE/packages/dsh-aionui-panel)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录