lsp/
September 6, 2026 · View on GitHub
English | 中文
Summary
The lsp group gives agents precise, language-server-backed code navigation: go to a symbol's definition, find its references, jump to its implementations, or read hover documentation, without the model ever knowing which server answers. The capability is split across three product packages: the dsh-lsp seam (ctx.lsp) that selects a provider by file extension and normalizes results, the dsh-lsp-stdio provider that drives configured local language-server commands, and the model-facing dsh-tool-lsp tool that owns the lsp schema, prompt, and presentation. Only the provider and the tool do anything when loaded; deployments configure server commands and extension mappings explicitly, and the group ships no language server of its own.
Table of Contents
Packages
| Package | Role | ctx key |
|---|---|---|
lsp/ | Defines the code-navigation service: provider selection by file extension, four normalized read-only operations, and structured errors | ctx.lsp |
lsp-stdio/ | Drives configured stdio language-server commands as providers over ctx.fs and ctx.subprocess | registers on ctx.lsp |
tool-lsp/ | Exposes precise code navigation to the model through the lsp tool | registers on ctx.tools |
Providers register capabilities, not tools: tool-lsp is the only owner of the model-facing name, schema, prompt guidance, and presentation, so swapping a provider never changes how the model asks for navigation.
Related documentation
- LSP navigation subsystem — operations, coordinates, requests and results, and
LspErrorcodes. - LSP capability seam Agent Note — design rationale, alternatives, and deliberately deferred API.
- Generated tool catalog — the
lspschema the model receives.
Dev Note
Working context for maintainers — click to expand
None.