fengMax1997/dsh-line-select

行选区:浏览工作区文件、带行号预览代码、可视化选中行范围,一键把 `@path:start-end` 引用写入输入框,agent 发送时自动收到所选行原文,精准修改指定行。

Bundle 已验证 MIT JavaScript v0.1.1
Bundle 已验证

已收录

0

Ui

Bundle 已验证

版本v0.1.1
语言JavaScript
许可证MIT
在 GitHub 查看

预览

第 1 个预览,共 2 个:fengMax1997/dsh-line-select
第 2 个预览,共 2 个:fengMax1997/dsh-line-select

功能介绍

行选区:浏览工作区文件、带行号预览代码、可视化选中行范围,一键把 `@path:start-end` 引用写入输入框,agent 发送时自动收到所选行原文,精准修改指定行。

适合

  • 需要在 DSH 对话中精确引用代码行范围的开发者。
  • 适合通过可视化文件浏览和带行号预览进行代码评审或定点修改的工作流。
  • 希望将所选源码直接注入代理上下文,而无需代理另行读取文件的用户。

不适合

  • 超出文档所列单文件 1 MB、预览 800 行或单次注入 400 行上限的大文件检查。
  • 需要在面板内编辑或执行文件的工作流,因为该面板只读。
  • 需要选择会话工作目录之外的路径或使用 `..` 穿越的场景,这些路径会被明确拒绝。
  • 需要浏览整个仓库、逐段手动选择反而增加操作的工作流。

README

dsh-line-select · 行选区插件

Awesome DSH Plugin license

DeepSeek Harness Web GUI 插件:浏览当前工作区文件、带行号预览代码、可视化选中行范围,并把 @相对路径:start-end 引用写入输入框——agent 发送消息时会自动拿到所选行的原文,精准修改第 10–50 行这类区间。

English

功能

  • 文件树浏览:输入框上方新增「⛶ 行选区」按钮,面板内浏览工作区目录(隐藏文件跳过、目录优先)
  • 带行号预览:点击文件打开只读代码视图(语法纯文本 + 行号,深色/浅色主题自适应)
  • 行范围选择:点击行号选起点,再点一次定终点(双向都行,自动取 min–max),选区高亮显示
  • 写入输入框:一键把 @src/app.ts:10-50 追加到当前草稿;Host 端在发送前自动把该引用展开为 <workspace-selection> 注入,agent 无需自己读文件就能看到第 10–50 行原文
  • 选中文件(整文件引用):底部「选中文件」按钮把 @src/app.ts 写入草稿,让 agent 用 read 工具读整个文件(不把大文件内容灌进上下文)
  • 也支持手写引用:直接在输入框输入 @src/app.ts:10-50、@src/app.ts:10(单行)或 @src/app.ts(整文件),无需打开面板

安装

dsh plugin --profile web add <本目录或 tarball 路径>

安装后重启 dsh web。

卸载:

dsh plugin --profile web remove dsh-line-select

工作原理

层 说明
Host(lib/index.js) lineSelect Typert Remote 服务(strict manifest):list 列目录、read 带行号读文件;agent/pre-step 扫描用户消息里的 @path:start-end,读取行范围并注入 <workspace-selection path="…" start-line="…" end-line="…"><line n="…">…</line></workspace-selection>
Client(lib/client.js) conversation.input.dock 条目:面板 UI + 选区交互;通过 inputActions.setDraft 写入草稿(官方公开 seam)

安全

  • 所有路径经 confine() 强制限制在会话 cwd 内(拒绝绝对路径、盘符与 .. 穿越)
  • 只读:不写盘、不执行任何文件内容
  • 上限:单文件 ≤ 1MB(超限只读头部)、预览 ≤ 800 行、单次注入 ≤ 400 行
  • 零第三方运行时依赖(仅 @deepseek-ai/dsh-typert-protocol 与 @deepseek-ai/dsh-llm peer 依赖,由 DSH profile 提供)

许可

MIT

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:fengMax1997/dsh-line-select。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。