跳到主内容

dsh-aionui-panel 使用指南

为 DSH Web GUI 复刻 AionUi 右侧面板:Explorer 文件树与 Git 变更、Preview 多格式预览、按项目隔离的面板宽度持久化。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-aionui-panel

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add @captain1275/dsh-client-ui-aionui-panel

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 毛玻璃输入框:高斯模糊(backdrop-filter 30px)+ 半透明玻璃底 + 细边框 + 内高光
  • 自定义背景:URL / 本地图片 / 动图(GIF/WebP)/ 视频(mp4/webm) / 透明度 / 模糊调节,
  • 仿Claude Code推理等级滑块:点击模型菜单的「推理等级」弹出 Effort 滑块面板——无极拖动、松手吸附、
  • 用户消息气泡毛玻璃:与输入框统一的玻璃质感
  • 图片资源(社区同人资源,codex-pet-DeepSeek-girl)

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

这个插件装上后能看到什么?

在 dsh web 打开的项目会话中,聊天区右侧会多出两块面板:Explorer(文件树 + Git 变更 tab)与 Preview(多 tab 文件预览)。文件树中的文件可拖到聊天输入框松手,把相对路径插入草稿光标处,无需手敲路径(src/client/index.ts:84-118、src/index.ts:34)。

文件预览支持哪些格式?

markdown / html / code / diff / csv / pdf / word / excel / ppt / 图片 / 文本 / url 共 10+ 种格式;支持源码/预览切换、分屏编辑(比例持久化)、保存(mtime 冲突检测)、下载、刷新、dirty 点、中键关闭、右键批量关闭(dirty 确认)、tab 溢出渐变指示器(README.md:31-42、src/client/fileType.ts:1-60)。

必须用 DSH Web GUI(profile=web)才能看到这个插件吗?

是。cordis.patch.yml 把插件行插入 web profile 名单,package.json#dsh.client.platform 字段也是 web;CLI 模式(headless profile)下浏览器半区不会加载(cordis.patch.yml:11-13、package.json:20-32)。

数据来源是真实文件系统还是 mock?

真实。宿主进程经 /aionui-panel/* HTTP 路由提供目录列举、文件读取(文本 80k 字符上限、图片 8 MB data URL)、写入(mtime 冲突检测)、文件名搜索(跳过 .git 与 node_modules)、git status(porcelain v1 -z)/ stage / unstage / discard;递归 fs.watch + 2 秒一次 git 轮询组成 SSE 变更流(src/host/fs-service.ts:1-49、src/host/routes.ts:107-138、src/index.ts:22-49)。

工作区路径不在已注册 workspace 里会被怎么处理?

直接拒绝。所有请求的 project root 都过 workspace gate:realpath 规范化后必须落在 host 工作区注册表返回的某个 workspace 内或其子目录;越界返回稳定错误码 path-outside-root,/aionui-panel/* 路由层也强制 JSON content-type 校验拦截无 CORS 预检的表单 CSRF(src/host/gate.ts:1-74、src/host/routes.ts:183-205)。

我没装 git 二进制能用吗?

文件树和预览完全可用。host 半区做一次 git 可用性探测;不可用则打日志并下发 gitUnavailable 事件,SCM tab 进入友好的"未安装 git"状态而不再每 2 秒重试 spawn(src/host/routes.ts:101-122、src/client/index.ts:113-118)。

面板宽度、折叠状态会保存吗?

按项目隔离保存到 localStorage,键名沿用 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;非法值经范围校验后回退默认(src/client/persist.ts:1-80、README.md:39-54)。

Agent 会知道这个面板的存在吗?

会。host 半区通过 systemPrompt section(order=210)向所有 agent 公告本插件能力、限制与协作方式;用户提到"右侧面板 / 预览面板 / 文件树 / 变更面板"时模型即知道对应本插件(src/index.ts:34、src/index.ts:44-49)。

卸载 / 出现 bug 时如何排查?

浏览器侧任何 DOM/runtime 接线失败只 console.error 不会抛,确保 web shell 不被插件拖崩;打开开发者工具 Console 过滤 dsh-aionui-panel 即可看到失败原因(src/client/index.ts:151-153)。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.6+
  • Node: 未声明(仓库根与本包 package.json 均未声明 engines)

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则