DeepSeek Harness 插件

dsh-at-file-misright

Workspace file references for DeepSeek Harness: pick a file with '@' and inject its content into the model context(英文原文)

跳到安装方式

来源信息

GitHub 仓库
MisRightW/dsh-at-file
最近更新
2026年8月20日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/MisRightW/dsh-at-file
插件名:dsh-at-file-misright
作者:MisRightW

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-at-file

@ workspace file references for DeepSeek Harness: type @ in the web composer, pick a file from the workspace, and its content is injected into the model context when you send the prompt — no copy-paste, no extra tool round trip.

中文说明见 README.zh.md

Install

dsh plugin --profile web add github:MisRightW/dsh-at-file
# or, from the git URL directly
dsh plugin --profile web add https://github.com/MisRightW/dsh-at-file.git
# or, from a published npm package
dsh plugin --profile web add dsh-at-file

The first GitHub install runs the package's prepare build; pnpm asks you to allow it once (copy the exact package key pnpm prints into the profile's pnpm-workspace.yaml under allowBuilds). See the harness plugin guide for the mechanics.

Usage

1. Open a session in the web GUI and pick a workspace directory. 2. Type @ in the composer — a Files group lists workspace files (the group title shows as file until the harness localizes it). 3. Filter by basename (@main), path prefix (@src/m), or substring; arrow keys + Enter pick. 4. Send the prompt. Every @path token naming a readable regular file expands host-side into an injected <at-file path="…"> content block appended to the model request; unresolvable or oversized tokens stay plain prose.

The literal @path stays in the prompt, and the injected message is recorded on the session log with an at-file source, so the model input is reconstructable from the log.

How it works

HalfPackage entryRole
Hostdsh-at-file (default)AtFileService (ctx.atFile) exposes the atFile Remote namespace (atFile.list, addressed by session id) over a bounded workspace index; the agent/pre-step listener expands @path tokens into injected file content
Browserdsh-at-file/clientMounts the atFile namespace (ctx.remote.$mount) and registers the @ trigger source that lists candidates through it

The Remote wire contract is the hand-authored typert/ artifact pair (the frozen InvocationDescriptor shape, mirroring what the harness's typert generator emits); the dsh.bundle manifest in package.json plus cordis.patch.yml make the package a drop-in profile bundle.

Configuration

The host half reads a validated Config (patchable from the profile's cordis.patch.yml):

KeyDefaultMeaning
maxFiles1000Maximum index rows per list call
maxDepth8Maximum directory depth walked
maxBytes65536Per-file injection cap; larger files are not indexed
maxReferences8Maximum references expanded per pre-step
skipDirectories.git, node_modules, dist, build, out, coverage, __pycache__, .venvDirectory basenames never indexed (case-insensitive)

Differences from the in-tree version

The harness monorepo carries an in-tree implementation that also patches two core client packages. This standalone plugin cannot:

  • Render draft chips for picked paths — the shared chip decoration token grammar lives in the harness core; picks render as plain text (the reference still ships and expands).
  • Localize the menu group title — the slash.menu dictionary lives in the harness core; the group shows the raw source name file.

Everything else — candidates, filtering, caching, @path expansion, injection bounds, logging — is identical.

Development

pnpm install        # peer deps come from the dsh host; see pnpm-workspace.yaml
pnpm build          # tsdown → lib/index.js (host) + lib/client.js (browser)
pnpm test           # vitest: host + client suites
pnpm typecheck

The tests run against the published @deepseek-ai/* rc packages, so an API drift in a harness release surfaces here first.

License

MIT — see [LICENSE](LICENSE).