DeepSeek Harness 插件

dsh-client-ui-filesystem-manager

Out-of-tree dsh plugin: a 'Files' tab in the conversation window with a VSCode-style file tree and viewer over the session workspace.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
dsh-mixxed/dsh-client-ui-filesystem-manager
最近更新
2026年8月16日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
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/dsh-mixxed/dsh-client-ui-filesystem-manager
插件名:dsh-client-ui-filesystem-manager
作者:dsh-mixxed

检查来源文件

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

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-client-ui-filesystem-manager

中文 · English

一个 dsh 插件,为对话窗口新增 文件 tab。选中后,会话区域变为 VSCode 风格双栏资源管理器:左侧是当前工作区的目录文件树,右侧是文件查看器。

完全 out-of-tree 构建——deepseek-harness 源码零改动。插件注册进与内置轨迹 tab 相同的 conversation.view 环,目录与文件内容通过插件自己的 HTTP 路由(ctx.webServer)提供,UI 全部使用 dsh 设计 token(--dsw-*)与 ui-primitives 组件。

安装

1. 从 npm 安装(发布名 @dsh-mixxed/dsh-client-ui-filesystem-manager):

``sh dsh plugin --profile web add @dsh-mixxed/dsh-client-ui-filesystem-manager ``

包声明了 dsh.bundle(内置 cordis.patch.yml),dsh plugin add 会自动把它追加进 profile 的 dsh.profile.bundles 层栈,下次启动自动挂载——无需手改 cordis.patch.yml

2. 重启 profile(新插件在启动时发现),打开任意会话,点击 文件 tab。

源码构建(开发 / 离线)

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
npm pack          # 产出 dsh-mixxed-dsh-client-ui-filesystem-manager-<version>.tgz
dsh plugin --profile <name> add ./dsh-mixxed-dsh-client-ui-filesystem-manager-<version>.tgz

功能

  • 第三个对话 tab:对话 / 轨迹 / 文件,注册进 conversation.view 环(order 20,位于轨迹之后)
  • VSCode 风格双栏:可拖拽分隔条,左侧目录树、右侧文件查看器
  • 懒加载目录树:目录按需展开(每个目录一次列表请求)、目录优先稳定排序、缩进参考线、

VSCode 风格的语言图标(JS/TS、HTML、CSS、JSON、Shell、脚本、编译语言、配置、Markdown 等各用 dsh 内置图标区分)、隐藏文件正常显示、空/加载/错误三态、刷新按钮

  • 按类型渲染的查看器

- Markdown(.md)用 house MarkdownText 渲染(不带行号) - 其他文本文件(含代码 / JSON)用 house ReadBlock 渲染:VSCode 式行号 gutter + 按扩展名的 shiki 高亮(未识别扩展名回退纯等宽),带复制按钮 - 图片以内联 base64 显示(png/jpg/jpeg/gif/webp/svg/bmp/ico/avif) - 二进制与超大文件给出明确提示态(带大小),并提供「在系统默认应用中打开」

  • 查看器工具栏:刷新、在系统默认应用中打开、复制相对路径、下载
  • 全高独立滚动:文件 tab 激活时隐藏输入对话框,双栏撑满整列高度(底部与侧边栏平齐),

目录树与文件内容各自独立滚动,互不影响;文件内容卡片撑满面板高度,滚动条在内容内部

  • 对话链接直达文件 tab:read / edit / write 工具卡片、产物文件、消息里的文件提及,

点击后自动切到文件 tab 打开该文件(仅限当前工作区内的路径;项目外路径保持系统默认打开)

  • 会话级缓存:目录列表与文件内容按会话单飞行获取一次;connection/reset 清空缓存;

切走再切回秒开

  • 工作区边界:每个请求都经 ctx.fs 以会话工作区为根解析并做规范包含校验——

浏览器提交的裸路径永不被信任

  • i18n:中文 / English,主题 token 跟随明暗主题

使用说明(harness 行为,按现状接受)

  • 树始终展示当前会话的工作区;切换工作区/会话会重建树。
  • 列表与内容按会话缓存——磁盘上的文件变更需手动刷新(树头或查看器工具栏)。
  • 超过文本上限(默认 512 KiB)的文件不会流入查看器;请改用「在系统默认应用中打开」。
  • 查看器只读:不支持编辑/写入/重命名/删除,也不做代码索引与搜索。

验证

dsh --profile <name> --dump-config | Select-String ui-filesystem-manager

组合配置中应出现 ui-filesystem-manager 行,且 $DSH_HOME/profiles/<name>/package.jsondsh.profile.bundles 列出 @dsh-mixxed/dsh-client-ui-filesystem-manager (由 dsh plugin add 自动追加)。

端到端(在空闲端口启动 profile 后):

dsh --profile <name> --port 3800   # 一个终端
node scripts/e2e.mjs               # 驱动 Chrome:tab → 树 → 展开 → 查看器

配置(可选)

从 profile 自己的 cordis.patch.yml 调整读取上限——用户层在 bundle 层之后应用, 按 id 打补丁即可覆盖内置挂载行:

- id: ui-filesystem-manager
  name: "@dsh-mixxed/dsh-client-ui-filesystem-manager"
  config:
    maxTextBytes: 524288     # 文本文件上限,超出提示「文件过大」(默认 512 KiB)
    maxImageBytes: 8388608   # 图片内联字节上限(默认 8 MiB)

License

[MIT](LICENSE)