前言¶
在 DSH 的智能體流程裏,write、edit 這類工具調用成功後,模型未必能立刻看到類型錯誤或 lint 問題。dsh-lens-lite 做的事情是把編輯後診斷接進 DSH:在受關注的工具調用成功後運行你配置的檢查器,並把檢查結果作爲 notice 形式的 plugin context 提供給模型。
這是什麼¶
dsh-lens-lite 是一個面向 DeepSeek Harness 的編輯後診斷插件。可確認的倉庫 owner 是 ben7am1n,許可證爲 MIT。
它不內置檢查器命令;哪些檢查器可用,取決於你本地工具鏈實際安裝了什麼。插件負責在合適的時機運行這些檢查器,並把結果作爲上下文帶回給模型。
核心行爲¶
dsh-lens-lite 的行爲邊界比較明確:
- 只在受關注的工具調用成功後運行,默認監聽
write、edit、str_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