dsh-lens-lite:DeepSeek Harness 的编辑后诊断

前言

在 DSH 的智能体流程里,writeedit 这类工具调用成功后,模型未必能立刻看到类型错误或 lint 问题。dsh-lens-lite 做的事情是把编辑后诊断接进 DSH:在受关注的工具调用成功后运行你配置的检查器,并把检查结果作为 notice 形式的 plugin context 提供给模型。

这是什么

dsh-lens-lite 是一个面向 DeepSeek Harness 的编辑后诊断插件。可确认的仓库 owner 是 ben7am1n,许可证为 MIT。

它不内置检查器命令;哪些检查器可用,取决于你本地工具链实际安装了什么。插件负责在合适的时机运行这些检查器,并把结果作为上下文带回给模型。

核心行为

dsh-lens-lite 的行为边界比较明确:

  • 只在受关注的工具调用成功后运行,默认监听 writeeditstr_replace_editor
  • 根据编辑文件的扩展名,并发运行所有声明该扩展名的检查器。
  • 如果所有检查器都以配置的 clean code 退出且没有输出,不附加额外上下文。
  • 从不否决调用,也从不重写调用。
  • 如果下游 listener 已经 blocked 这次调用,就跳过 linting。
  • 尊重工具调用的取消信号;检查器自身超时时会终止其整个进程树。
  • 检查结果以 notice 形式的 plugin context 返回。

安装与启用

先安装插件:

dsh plugin --profile web add dsh-lens-lite

安装后,在 profile 的 cordis.patch.yml 中覆盖插件行,改成你工具链实际可用的检查器。

典型用法

资料中给出的示例映射如下:

tsc      .ts .tsx                   npx --no-install tsc --noEmit
eslint   .ts .tsx .js .jsx
ruff     .py
go-vet   .go

argv 支持占位符:

{file}
{relFile}
{dir}

配置与故障表现

配置错误会在插件加载时直接失败。资料中列出的加载期错误包括:

  • argv 为空。
  • 检查器未声明扩展名。
  • 检查器未读取任何 stream。
  • 检查器重名。
  • 非正数 bound。

环境失败不会让已经成功的编辑失败,而是变成 finding:

checker unavailable
checker timed out after Nms
checker failed to start

成本与注意

整仓检查器会在每次编辑时运行。例如 npx tsc --noEmit 在大仓库中可能给每次 write 增加数秒耗时。

运行前需要确认 Node 版本满足要求:

^22.19.0 || >=24.0.0

插件会以当前 dsh 进程权限运行。安装前建议检查源码和 MIT 许可证。DSH 社区目录是独立站点,不是 DeepSeek 或幻方的官方应用商店。

本地开发

资料中给出的开发命令:

pnpm install --ignore-workspace
pnpm run typecheck
pnpm test
pnpm run build

链接

GitHub: https://github.com/ben7am1n/dsh-lens-lite
目录页:未在已核实资料中给出,建议在 DSH 社区目录检索 dsh-lens-lite
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye