dsh-file-preview:DeepSeek Harness 工作区文件预览插件

前言

DeepSeek Harness (DSH) 的生态理念是「一切皆插件」。在开发或调试智能体时,处理文件操作是常见需求。开发者需要在不离开 DSH 界面的情况下浏览工作区文件、查看当前会话产生的结果,并将文件路径传递给 AI 进行分析。dsh-file-preview 插件提供了这些基础能力。

插件简介

该插件由开发者 ld-1101 维护,采用 MIT 许可证。它是一个客户端插件,通过宿主端路由提供服务。主要功能包括:在左侧边栏浏览工作区文件、预览 Markdown/PDF/图片/CSV/代码文本、展示当前会话中 AI 产出或修改过的文件,以及将文件拖拽至对话中插入路径。

安装与启用

当前该插件尚未发布至 npm,请使用本地源码安装。

  1. 克隆仓库:
git clone https://github.com/ld-1101/dsh-file-preview.git
  1. 在你的 DSH profile 目录下的 package.json 中进行配置:
    * 在 dependencies 字段中添加:
    "dsh-file-preview": "file:<克隆后的绝对路径>"
    * 在 dsh.profile.bundles 数组中追加:
    "dsh-file-preview"

  2. 安装依赖后,完全退出并重新启动 DSH 应用。

核心功能

左侧边栏与文件浏览

插件在 DSH 左侧边栏底部添加了一个「📁 文件」按钮。点击后,文件列表面板会在右侧展开(对话区域自动让位)。面板宽度可在 320px 至 900px 之间拖动调整,且支持宽度记忆。双击面板左缘手柄可恢复默认宽度。

会话产出文件列表

面板顶部列出当前会话中 AI 产出或修改过的文件。该数据来源于会话事件日志中的 tool/result 事件,提取其中的 locations[].path。列表支持切换会话,切换后会自动定位到该会话所在的工作区目录。

拖拽到对话

支持将文件或文件夹拖拽到会话界面的任意位置(无需对准输入框)。插件会拦截 drop 事件,并在输入框光标处插入单行纯路径。发送后,AI 即可读取该路径下的文件内容。

预览能力

点击任意文件,插件会在面板内进行渲染:
* 支持格式:Markdown(渲染)、PDF(内嵌)、图片、CSV(表格)、代码文本。
* 不支持的格式:点击后会通过新标签页打开,由浏览器决定展示方式。

安全限制

  • 工作区隔离:插件只能访问 DSH 已注册的工作区。工作区外的路径(包括路径穿越尝试)一律拒绝访问。
  • 文本读取上限:文本读取限制为 5 MiB。超过该大小的文件会被截断,并在面板内提示。

使用方法

  1. 打开文件面板:点击左侧边栏底部的「📁 文件」按钮,展开文件列表面板。
  2. 查看会话产出:在面板顶部下拉框切换会话,查看当前会话修改过的文件列表。
  3. 浏览目录:使用面包屑导航或点击目录项浏览工作区树状结构。
  4. 调整宽度:按住面板左缘的手柄拖动以调整宽度。
  5. 插入文件路径:将文件或文件夹直接拖拽到会话输入框上方区域,光标处会出现一行路径字符串。
  6. 预览文件:在文件列表中点击文件,面板内即时渲染预览。

注意事项

  • npm 发布状态:当前仅支持本地源码安装,dsh plugin add 命令暂不可用。
  • 会话产出列表为空:如果 Agent 通过 run_code 等包装工具执行文件操作(不产生 locations 字段),该列表将为空。这是平台行为,与 DSH 原生 deliverables 一致。
  • 文本截断:超过 5 MiB 的文本文件会被截断,请注意查看面板内的提示。
  • 平台限制:插件依赖 Web 壳的客户端注入机制,目前主要面向 Web 平台。

生态与链接

该插件为开源项目,仓库包含 25 项客户端单元测试、冒烟测试及集成测试。更多详情请访问:
* GitHub 仓库
* 社区目录

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜