dsh-upload-origin:解析上传文件的原始本地路径

前言

当用户通过网页编辑器将文件拖入对话时,浏览器仅能传输文件字节和显示名称,无法暴露文件在本地系统中的原始绝对路径。DeepSeek Harness(DSH)会将上传的快照存储在 <session cwd>/.dsh-uploads/<sessionId>/<sha256-16>-<name> 目录下。

dsh-upload-origin 插件运行在 DSH 主机端,通过匹配上传快照的名称、大小和 SHA256 哈希值,扫描会话工作区及常用用户文件夹,从而恢复文件的原始本地路径。该路径随后会被注入到当前智能体的系统提示词中,并可通过工具按需查询。

插件简介

这是一个 DSH 主机插件,用于解决文件上传后的路径溯源问题。插件由 wlc114514 维护,属于“联网工具”分类,采用 MIT 许可证。它通过监视 .dsh-uploads 目录、筛选被引用的文件、结合文件引用索引和有界文件系统扫描,最终将原始路径映射注入系统提示词,并注册了 resolve_uploaded_file 查询工具。

安装

通过官方命令安装预编译的 tarball 包。该插件通过 DSH 的 bundle/profile 流程自动安装:

dsh plugin --profile web add https://github.com/wlc114514/dsh-upload-origin/releases/download/v0.1.0/dsh-upload-origin-0.1.0.tgz

配置

插件支持通过 bundle patch 行进行配置,主要参数包括:

- id: upload-origin
  name: 'dsh-upload-origin'
  config:
    maxSearchFiles: 250000
    searchTimeoutMs: 9000
    maxDepth: 12
    maxHashChecks: 30
    maxResults: 10
    recentUploadMs: 604800000
    maxRecentUploads: 8
    autoResolveTimeoutMs: 7000

工具:resolve_uploaded_file

插件注册了一个 resolve_uploaded_file 工具,用于在需要时手动查询文件的原始路径。

参数

  • file_path (string, optional): 上传文件的路径,可以是绝对路径或相对于会话工作区的路径。
  • name (string, optional): 原始文件名,用于在未知上传路径时进行定位。
  • search_roots (string[], optional): 额外的绝对扫描目录。
  • max_results (integer, optional): 返回的最大候选结果数(默认 10)。

返回值与置信度

工具返回上传路径、原始名称、大小、SHA256、最佳原始路径、置信度、候选列表、扫描根目录及元数据。置信度表示匹配的精确程度:

置信度 含义
exact 名称、大小和 SHA256 全部匹配。
name+size 名称和大小匹配;未检查 SHA256 或哈希值不同。
name+size-hash-differs 名称和大小匹配,但内容在上传后发生变更。
name-only-size-differs 仅名称相同,大小不同。
name-only 仅名称相同,需人工验证。

注意事项

  • 运行环境:插件仅为主机端运行,不进行网络调用,不读取、存储或传输凭证。所有内容哈希计算均在本地完成。
  • 工具权限:resolve_uploaded_file 工具为只读操作。
  • 浏览器限制:由于浏览器在拖拽上传时不暴露原始绝对路径,本插件通过主机侧匹配来恢复路径。
  • 文件变更:如果原始文件在上传后被修改,SHA256 将不同,插件会回退到“名称+大小”或仅“名称”的候选方案。
  • 扫描范围:默认扫描根目录外文件需通过工具参数 search_roots 指定或等待未来版本配置扩展。
羽毛球分组比赛记分
小程序二维码

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

小夜