dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
行选区:浏览工作区文件、带行号预览代码、可视化选中行范围,一键把 `@path:start-end` 引用写入输入框,agent 发送时自动收到所选行原文,精准修改指定行。
A DeepSeek Harness Web GUI plugin: browse workspace files, preview code with line numbers, visually select a line range, and write a @path:start-end reference into the composer — when the message is sent, the agent automatically receives the exact selected lines and can modify precisely that range (e.g. lines 10–50).
@src/app.ts:10-50 to the current draft; the Host expands that reference into an injected <workspace-selection> at agent/pre-step, so the agent sees the source lines without reading the file itself@src/app.ts into the draft, letting the agent read the whole file with its read tool (without stuffing large contents into context)@src/app.ts:10-50, @src/app.ts:10 (single line), or @src/app.ts (whole file) directly — spaces in file names are supported (e.g. @新建 文本文档.md:3-8)dsh plugin --profile web add <this directory or tarball path>
Restart dsh web after installation.
Uninstall:
dsh plugin --profile web remove dsh-line-select
| Layer | Description |
|---|---|
Host (lib/index.js) | lineSelect Typert Remote service (strict manifest): list lists a directory, read reads a file with line numbers; agent/pre-step scans @path:start-end tokens in user messages, reads the range, and injects <workspace-selection path="…" start-line="…" end-line="…"><line n="…">…</line></workspace-selection> |
Client (lib/client.js) | conversation.input.dock entry: panel UI + selection interaction; writes the draft through the official inputActions.setDraft seam |
.. traversal are rejected)@deepseek-ai/dsh-typert-protocol and @deepseek-ai/dsh-llm peer deps, provided by the DSH profile)# From the DSH checkout, link its node_modules once for module resolution:
# New-Item -ItemType Junction -Path node_modules -Target <dsh checkout>/node_modules
node test/smoke.mjs
MIT