插件目录 / Knowledge / dsh-workspace-intelligence
dsh-workspace-intelligence
已验证 · 实测可装 shiki-dml
功能简介
Standalone DSH/Cordis plugin for deterministic LSP workspace symbol search
可用 — 实测通过,早期项目
Standalone DSH/Cordis plugin for deterministic LSP workspace symbol search 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-workspace-intelligence
独立的 DeepSeek Harness(DSH)/ Cordis 插件。它提供 workspace_symbol 工具,让 agent 在不知道文件和光标位置时,通过标准 LSP workspace/symbol 按名称查找代码符号。
插件只依赖公开的 ctx.fs、ctx.subprocess 和 ctx.tools,不修改 DeepSeek Harness,也不调用 ctx.lsp。现有 goToDefinition、findReferences、goToImplementation 和 hover 的行为不受影响。
安装
要求 Node.js ^22.19.0 或 >=24、兼容 ^0.1.0-rc.6 的 DSH 公开包,以及至少一个支持 stdio LSP 的 language server。
dsh plugin --profile <name> add dsh-workspace-intelligence
pnpm add -g pyright typescript typescript-language-server
插件默认禁用,因为 language server 命令必须由部署方指定。
Windows
运行 pnpm root -g,把 Windows 配置模板 合并到 profile 的 cordis.patch.yml,再将两处 C:/pnpm-global-root 替换为实际输出(路径分隔符改为 /)。保留 node + JS 绝对路径,不要使用 .cmd shim;ctx.subprocess 不经过 shell。
macOS/Linux
把 macOS/Linux 配置模板 合并到 profile 的 cordis.patch.yml。模板直接从 PATH 启动 pyright-langserver 和 typescript-language-server。
DSH patch 会整体替换一行的 config;覆盖时请写全所有非默认项。启动前检查合成结果:
dsh --profile <name> --dump-config
使用
模型只传一个必填参数:
{ "query": "SessionManager" }
workspace root 固定取调用 session 的 header.cwd。空白 query 会被拒绝,不允许模型选择 provider、命令、workspace 或 timeout。
结果包含符号名、可读的 kind、canonical URI、可选 range 和 containerName。插件兼容 SymbolInformation[]、WorkspaceSymbol[]、URI-only location、null 和空数组;不会伪造位置,也不会向模型暴露 raw JSON-RPC。
配置
servers 必填且至少有一项。server id 会按字典序排序,因此对象插入顺序不影响行为。
| 配置 | 默认值 | 说明 |
|---|---|---|
command |
必填 | executable 绝对路径或由 ctx.subprocess 解析的命令名 |
args |
[] |
直接传入的 argv,不经过 shell |
env |
{} |
子进程环境变量增量 |
initializationOptions |
null |
LSP initialize 参数 |
configuration |
null |
workspace/configuration 返回值 |
maxMessageBytes |
16000000 |
单条 LSP 消息上限 |
maxStderrBytes |
1000000 |
stderr 诊断尾部上限 |
shutdownTimeoutMs |
5000 |
graceful shutdown 等待时间 |
killGraceMs |
2000 |
process-tree 终止等待时间 |
maxResults |
100 |
merge 和去重后保留的符号数 |
maxResultChars |
16000 |
完整模型输出字符预算,最小 256 |
timeoutMs |
60000 |
交给 DSH timeout policy 的工具超时元数据 |
行为边界
- 查询会 fan-out 到全部已配置 server;server 间并发,同一 server 内串行。
- 结果按 exact match、prefix match、其他结果、server id 和 server 原始顺序稳定排序。
- 去重 key 为
name + kind + URI + optional range;排序后的第一项保留。 - 任一 provider 成功(包括空结果)即返回成功;失败和不支持的 provider 只计数。全部不支持时报
WORKSPACE_SYMBOL_UNSUPPORTED,存在失败且无成功结果时报WORKSPACE_SYMBOL_PROVIDER_FAILED。 - caller cancellation 会发送 best-effort
$/cancelRequest,并原样拒绝;不会变成 partial success。 - 每个 canonical workspace/server 惰性复用一个进程;卸载时先移除工具,再执行
shutdown、exit和必要的 process-tree 终止。 - 不提供 grep fallback、document symbols、call hierarchy、embedding、raw JSON-RPC 或 cursor-based LSP 操作。
开发
pnpm test
pnpm test:coverage
pnpm typecheck
pnpm lint
pnpm build
pnpm pack:check
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-workspace-intelligence」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:shiki-dml/dsh-workspace-intelligence Headless(CLI)profile:
dsh plugin --profile headless add github:shiki-dml/dsh-workspace-intelligence 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。