跳到主要内容

dsh-plugin-file-preview

已验证

dsh-plugin-file-preview · v0.1.0-dev.0 · MIT · Web 界面

File Preview Extension: a project-explorer panel for DeepSeek Harness Desktop

安装

dsh plugin add dsh-plugin-file-preview

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

File Preview Extension(文件预览扩展)

English · 属于 MixlabLz DSH Skills 合集的一部分

dsh-plugin-file-preview 给 DSH Desktop 加了一个项目文件浏览器面板:选一个本地目录,浏览它的文件树,点击某个文件就能把它的绝对路径插入到当前 会话正在输入的消息里。

功能

  • 一个可折叠的 Explorer 面板——扩展窗口模式下从右上角工具栏(终端/重启/开发者工具那几个图标旁边) 打开,增强模式下从窗口右侧边缘的折叠图标打开。
  • 选择目录(原生系统文件夹选择框)作为浏览起点。
  • 展开文件夹、列出内容,点击一个文件会把它的绝对路径追加到你正在对话框里输入的内容后面——不会真的 上传附件,等你发送消息后模型会用自己的文件工具去读这个文件。

安装

装进你当前正在用的 DSH Desktop profile:

dsh plugin --profile desktop add dsh-plugin-file-preview

或者等这个包被某个目录来源收录后,直接从 DSH Desktop 内置的插件市场安装。这个包通过自己的 dsh.bundle.patch/cordis.patch.yml 自举加载——除了任何 DSH Web/Desktop profile 本来就有的 webServer 能力之外,不需要 dsh-plugin-desktop 提供任何私有支持。

为什么插入路径而不是真正的附件

DSH 的对话框目前只支持拖拽图片文件作为附件(见 deepseek-harness 检出里的 packages/client/ui-conversation/src/client/skeleton/InputBar.tsx——非图片 MIME 类型在接收时会被拒绝)。 由于这里浏览到的大多数文件(源码、Markdown、配置文件)都不是图片,这个扩展选择插入文件路径的纯文本 形式,而不是尝试走真正的附件上传流程。

开发

yarn build
yarn typecheck
yarn test

源码结构:

  • src/index.ts —— Host 插件:提供 /_dsh/desktop/file-browser/{list,pick} 路由。
  • src/filesystem-backend.ts —— 真正的目录读取和原生选择框,直接用 node:fs/promises 和 Electron 的 dialog 实现(用一个本地类型声明顶替真实的 electron 包——插件加载进的那个 Electron 进程本来 就会在运行时提供这个模块,原因见文件内注释)。
  • src/contracts.ts —— 这些路由共用的请求/响应类型。
  • src/client/FileBrowserPanel.tsx —— 面板组件,注册进 DSH Desktop 壳(dsh-plugin-desktop)在布局 里预留的 project.explorer 插槽。
  • src/client/index.ts —— Web Client 入口:挂载面板,并通过 conversation 这个 Cordis 服务把选中的 文件路径接入当前会话的对话框草稿。
  • cordis.patch.yml —— package.json 里 dsh.bundle.patch 指向的自举补丁文件。

许可证

MIT