前言¶
在 DeepSeek Harness(DSH)Web 里跑长会话时,模型往往通过 present 工具把 Word、表格、PDF 等当作最终交付物交给用户。默认界面里这些文件分散在对话与工作区里,想按附件名一次性下载,通常要自己在工作区里找路径,或依赖预览页另存。社区插件 dsh-session-deliverables(维护者 xiaoran0829,GitHub 仓库 xiaoran0829/dsh-session-deliverables)在每个会话顶栏增加「文件」视图,列出本会话声明的交付物,并支持 Host 以 Content-Disposition: attachment 流式下载;内网直连与经公网反向代理访问 GUI 时行为一致。下面介绍它是什么、能做什么,以及如何安装与使用时需注意的点。
这是什么¶
dsh-session-deliverables 是一个 DSH Web Cordis 插件(dsh.bundle.patch + dsh.client),分类上属于客户端侧 UI 扩展。它不单独起服务,而是在 DSH Connection 上注册两个需登录态的 HTTP 路由,继承 GUI 的登录态与 Host/Origin 校验。
列表数据主要来自可持久化的会话日志路径 deliverables/presented——也就是会话里经内置 present 工具声明过的交付物。插件当前版本为 1.0.3(见仓库 package.json),许可证 MIT。社区目录页:skillhub.cn/plugins/xiaoran0829/dsh-session-deliverables(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
核心功能¶
顶栏「文件」视图¶
「文件」入口位于会话顶栏,与「画廊 / 团队」等并列。视图中列出通过 present 声明的交付物类型包括:Word、Excel、PPT、PDF、Markdown、图片、视频、音频、压缩包等(以 README 列举为准)。
一键附件下载¶
点击列表整行或其「下载」按钮时,Host 以附件形式返回文件流,Content-Type 与文件名(含中文文件名)按常规浏览器下载行为处理。
可选「含工作区成果」¶
勾选该选项后,插件会在有界预算内对工作区再做一次扫描,额外列出会话运行期间在工作区创建的文档与媒体类文件;代码、脚本、日志、上传文件等不会进入列表。扫描有上限:最多 200 个文件、3 秒预算、深度 12,并跳过 node_modules 等目录;超出预算的文件不会出现。
预览页侧栏下载¶
在 DSH 原生文档预览页(Excel、PDF、图片及原生预览支持的其它格式)头部,插件会增加「下载」按钮,便于从预览上下文直接走同一套下载路径。
为什么体量可以很小¶
作者说明:列表先读会话日志,仅在勾选「含工作区成果」时做有界工作区扫描。下载路径被限定在会话工作区内,或会话日志中已声明过的文件;其它路径一律 403。插件不写文件、不跑后台任务、不发起第三方 HTTP 外发。
对外 API(均需已登录所有者浏览器通过 Connection fence):
GET /api/session-files.list?sessionId=…— 仅返回元数据。GET /api/session-files.download?sessionId=…&path=…— 组合文件系统路径后流式返回;越界拒绝。
路由注册做了跨版本兼容:DSH Web 0.2.x 使用 ctx.connection.fetch.register;0.1.0-rc.6 使用 ctx.webServer.register。若两者均不存在,插件仍会加载但跳过路由并输出 warn。注意:0.1.0-rc.6 没有 deliverables/presented 会话事件,基线下列表为空,「含工作区成果」的有界扫描仍可用。
安装与启用¶
插件没有配置项。package.json 中 dshWorkshop.install 为 guided + third-party adapter,当前无 Workshop 事务安装能力;以下命令来自 README,作者标注为本机经验,安装或升级后需重启 dsh web 对应 profile 才生效。
从 npm 安装:
dsh plugin --profile web add dsh-session-deliverables
从 GitHub 仓库安装:
dsh plugin --profile web add github:xiaoran0829/dsh-session-deliverables
从本地源码目录安装:
dsh plugin --profile web add /path/to/dsh-session-deliverables
环境要求¶
- DSH Web:作者在 0.2.1-rc.3 上测试通过。
- Host:Linux / macOS / Windows,Node.js 20+。
- 会话需通过内置
present工具声明最终交付物,「文件」视图才以这些声明为主列表来源。
典型用法¶
README 未给出独立「场景脚本」,可复现流程如下:
- 在 DSH Web 中安装插件并重启
dsh webprofile。 - 在会话中让智能体用
present声明要交付的文件(Word / Excel / PPT / PDF 等)。 - 打开该会话顶栏的 「文件」 视图,确认列表与
deliverables/presented一致。 - 点击行或「下载」,验证浏览器以附件保存;若需要工作区内新生成的文档,勾选 「含工作区成果」 后刷新列表(受扫描预算限制)。
- 在原生预览页打开支持的文件时,使用头部 「下载」 按钮走同一下载路由。
开发侧静态检查(仓库 README):
node --check index.js
node --check client.js
适用场景与注意¶
适合谁:经常在 DSH Web 里做文档 / 表格 / 演示稿交付,希望在一个会话内集中查看 present 成果并附件下载的团队或个人;内外网统一走 GUI 登录态,不想另搭文件服务时也可考虑。
权限与安全:插件以当前 DSH 进程权限运行,声明权限包括 filesystem:read、session:read、http:route;安装前应阅读源码与 MIT 许可证,确认组织策略允许注册 /api/session-files.* 路由。公网反向代理无需为插件单独改配置,但仍依赖 GUI 登录栅栏。
已知限制(README):
- 主列表只认
present与会话日志;工作区补充列表有界,不是完整目录镜像。 dshWorkshop.lifecycle.dispose为 unknown,无 dispose 证据。- 无单元 / 集成测试;Workshop
evidence四项均为null。
生态背景:DSH 理念是「一切皆插件」;本插件是社区贡献的 Web 客户端扩展,星标与成熟度以仓库当前状态为准(目录页标注 GitHub 1 stars)。
结尾¶
dsh-session-deliverables 把会话交付物从「散落在日志与工作区」收拢到顶栏「文件」视图,并在 Host 侧用登录态与路径校验约束下载范围。若你要在 DSH Web 里统一列出 present 成果并一键附件下载,可按上文命令安装并重启 profile。