dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
从 Web 输入框上传任意本地文件,以待发送卡片展示,并在设置中管理已存文件。
English | 简体中文
Upload arbitrary local files from the DeepSeek Harness Web composer, attach their container paths to prompts, and manage stored uploads from Settings.
$DSH_HOME/uploads by default.name (1).ext, name (2).ext, and so on.0.1.0-rc.6Harness currently transports native attachments as raster images only. This plugin intentionally uses the arbitrary-file path supported by the agent environment: it stores the file inside the Harness host/container and adds that path to the submitted text through the built-in input-reference serializer.
Install the tagged GitHub release into the Web profile:
dsh plugin --profile web add "github:l541402398/dsh-file-uploads#v1.0.0"
Restart the running Web profile after installation, then refresh the browser page.
To install the latest development branch instead:
dsh plugin --profile web add "github:l541402398/dsh-file-uploads#main"
To remove it:
dsh plugin --profile web remove dsh-file-uploads
Open a conversation in the Harness Web GUI.
Select Files in the composer toolbar.
Choose one or more local files.
Review or remove the pending cards above the composer.
Add any normal prompt text you want, or leave the editor empty.
Submit the message. The model receives a line such as:
上传文件:`/path/to/.dsh/uploads/report.pdf`
The generated line is never shown in the editor before submission. The stored path refers to the filesystem visible to the Harness host; in a Docker deployment, this is the path inside the container.
The plugin adds an Uploaded files section to Settings. It displays:
Files persist until they are deleted manually.
The plugin works without configuration. These environment variables override its defaults:
| Variable | Default | Purpose |
|---|---|---|
DSH_UPLOAD_DIR | $DSH_HOME/uploads | Absolute upload directory. |
DSH_UPLOAD_MAX_BYTES | 104857600 | Maximum bytes per file (100 MiB). |
DSH_UPLOAD_TOTAL_MAX_BYTES | 1073741824 | Maximum total bytes in the directory (1 GiB). |
Example Docker Compose fragment:
services:
dsh:
environment:
DSH_UPLOAD_DIR: /data/dsh/uploads
DSH_UPLOAD_MAX_BYTES: 104857600
DSH_UPLOAD_TOTAL_MAX_BYTES: 1073741824
volumes:
- ./dsh-data:/data/dsh
.upload-* temporary files are removed when the plugin starts.This trust fence is not a user-account authentication system. If the Harness Web GUI is exposed to other users or the public Internet, protect the whole deployment with an authenticated reverse proxy and configure Harness trusted hosts correctly.
Run the checks:
npm test
npm run check
The package is a persistent dual-face Cordis bundle:
index.js — Host HTTP routes, storage, quotas, and trust checks.client.js — composer button, pending-file rail, hidden reference codec, and Settings UI.cordis.patch.yml — installable dsh.bundle composition row.test/upload-manager.test.js — Host storage and security regression tests.See CONTRIBUTING.md for local-link development instructions.