Expand description
LSP tool — Rust port of @agent-sh/harness-lsp.
Conforms to agent-knowledge/design/lsp.md. Same contract as the TS
package: 1-indexed position boundary, discriminated-union result,
hover/definition/references/documentSymbol/workspaceSymbol/implementation
operations, server_starting exponential retry hint, stub client
for tests + real spawn client for production.
Structs§
- LspDefinition
Ok - LspDocument
Symbol Ok - LspError
- LspHover
Ok - LspHover
Result - LspImplementation
Ok - LspLocation
- LspManifest
- LspNo
Results - LspParams
- LspPermission
Policy - LspReferences
Ok - LspServer
Profile - LspServer
Starting - LspSession
Config - LspSymbol
Info - LspWorkspace
Symbol Ok - Position1
- Server
Handle - Spawn
LspClient - Stub
Behavior - Stub
LspClient - Stub
Responses
Enums§
Constants§
- DEFAULT_
HEAD_ LIMIT - DEFAULT_
TIMEOUT_ MS - LSP_
SYMBOL_ KIND_ NAMES - LSP SymbolKind numeric → short name. Index = LSP SymbolKind enum value.
- LSP_
TOOL_ DESCRIPTION - LSP_
TOOL_ NAME - MANIFEST_
FILENAME - MAX_
HOVER_ MARKDOWN_ BYTES - MAX_
PREVIEW_ LINE_ LENGTH - MAX_
WORKSPACE_ SYMBOLS_ SCANNED - SERVER_
STARTING_ RETRY_ BASE_ MS - SERVER_
STARTING_ RETRY_ MAX_ MS - SERVER_
STARTUP_ MAX_ WAIT_ MS - SESSION_
BACKSTOP_ MS
Traits§
Functions§
- cap_
hover_ markdown - cap_
preview - find_
lsp_ root - format_
document_ symbols - format_
hover - format_
locations - format_
no_ results - format_
server_ starting - format_
workspace_ symbols - kind_
name - load_
manifest - Load an .lsp.json manifest from
explicit_pathif given, else from<workspace_root>/.lsp.json. Returns Ok(None) when the file is missing (that’s not an error; orchestrator returns SERVER_NOT_AVAILABLE). Parse / shape errors are Err(msg). - lsp
- no_
results_ hint - profile_
for_ path - safe_
parse_ lsp_ params - validate_
per_ op - Cross-field validation — strictObject passes, now we verify the per-operation required fields.