插件目录 / Developer / dsh-file-ref
dsh-file-ref
未验证 auroralab-art
功能简介
DeepSeek Harness plugin: paste or drop a file to insert an @workspace path or absolute path.
未验证 — 尚未实测
DeepSeek Harness plugin: paste or drop a file to insert an @workspace path or absolute path. 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
Drag-and-drop or paste any local file — PDF, CSV, code, or document — into the DSH web composer. The plugin resolves the filesystem path and inserts an @workspace reference the agent opens with existing tools. No upload API, no extra model context.
Why do I need this?
Without this plugin, the DSH composer only accepts PNG, JPEG, WebP, and GIF. Any other file is rejected as an unsupported image format.
dsh-file-ref bridges that gap:
- Recover the original filesystem path when the browser or host can see it.
- Otherwise write a copy into the workspace inbox and
@that path. - Mark
@relativementions before the model step so the agent can open the file withread, the shell, or other tools already in the session.
There is no new upload API and no extra model-facing file tool. The agent uses whatever access mode the session already provides.
Quick Start
Requires the dsh CLI and the web profile.
dsh plugin --profile web add https://github.com/auroralab-art/dsh-file-ref/releases/download/v0.1.0/dsh-file-ref-0.1.0.tgz
Restart dsh web and hard-refresh the browser. Done.
To remove:
dsh plugin --profile web remove dsh-file-ref
How does it work?
| File location | Draft text inserted |
|---|---|
| Inside the current workspace | @docs/spec.pdf |
| Outside the workspace | /Users/you/Downloads/spec.pdf |
| Path hidden by the browser | @.dsh-inbox/spec.pdf (a copy under the workspace) |
| PNG / JPEG / WebP / GIF | First-party image rail, unchanged |
Before a step, the host confirms each @relative path still exists and injects:
<workspace-reference path="docs/spec.pdf" kind="file" />
Absolute paths stay as typed. The plugin does not open the file or send its bytes. The agent reads the path with the session's usual tools and access mode.
How are file paths resolved?
- Paste and drop of PNG, JPEG, WebP, and GIF stay on the first-party image rail.
- A path inside the workspace is inserted as
@relative. A path outside the workspace is inserted as absolute text. - When the browser hides the filesystem path, the host writes a copy under
inboxDirand the draft@s that relative path. - Reference markers are created only from
@relativetokens that still exist inside the workspace. - Absolute paths stay as typed. The plugin does not rewrite them into mentions.
- File format does not change this flow. A staged copy must be within
maxStageBytes. - DSH
readopens UTF-8 text. Other formats use the session's shell or other tools.
Configuration
Optional keys go in ~/.dsh/profiles/web/cordis.patch.yml. A later layer replaces the whole config object, so restate every key you set.
- id: dsh-file-ref
config:
inboxDir: .dsh-inbox
maxStageBytes: 20971520
| Key | Default | Description |
|---|---|---|
inboxDir |
.dsh-inbox |
Workspace-relative directory for copies when the browser hides the original path |
maxStageBytes |
20971520 (20 MiB) |
Maximum size of one staged copy |
FAQ
Does this upload files to the model?
No. The plugin inserts a path into the composer text. The agent opens the file using the session's existing tools (read, shell, etc.). File bytes are never sent to the LLM context through this plugin.
What file formats are supported?
All formats except PNG, JPEG, WebP, and GIF (which use the built-in image rail). Common use cases include PDF, CSV, JSON, YAML, source code, Markdown, and any text-based document.
Can I use this with headless mode?
No. This plugin targets the web profile only, as it relies on browser paste/drop events and the composer UI.
What happens with large files?
Files staged into the inbox are capped by maxStageBytes (default 20 MiB). The agent still needs to read the file through standard tools, so very large files may hit the session's own limits.
Which DSH version is required?
Tested against DeepSeek Harness v0.1.0-rc.1 and later. Plugin contracts may change between DSH preview releases — pin the version you test against.
Compatibility
| Requirement | Version |
|---|---|
| DeepSeek Harness | v0.1.0-rc.1+ |
| Node.js | ^22.19.0 or >=24.0.0 |
| Profile | web |
Aurora Lab
This plugin is published by Aurora Lab. We build plugins that extend what DeepSeek Harness can do.
Other plugins from Aurora Lab:
- dsh-access — Remote access gateway with role tokens and device binding
- dsh-msg-revise — Edit and resend messages after the agent stops
License
You may download and install this software for personal, non-commercial use. Contact the owner through auroralab-art before any modification or derivative work. Commercial use requires the owner's written consent.
Develop
pnpm install
pnpm test
pnpm run build
dsh plugin --profile web add "$PWD"
add "$PWD" links this checkout into the profile. Keep the directory. That is the development path, not the install command for other machines.
The build expects a deepseek-harness checkout at ../../deepseek-harness, or DSH_CHECKOUT.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-file-ref」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:auroralab-art/dsh-file-ref Headless(CLI)profile:
dsh plugin --profile headless add github:auroralab-art/dsh-file-ref 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。