/** * LSP Tools Service * * LLM tool handlers for LSP operations: * goto_definition, get_type_info, get_diagnostics, hover_info */ import type { getLogger } from '../output/logger.js'; type Logger = ReturnType; /** * LSP Tools Service — handles LLM tool calls for LSP operations */ export declare class LSPToolsService { private readonly cache; private readonly projectRoot; constructor(projectRoot?: string, _logger?: Logger); /** * Execute the goto_definition tool */ executeGotoDefinition(args: Record): Promise; /** * Execute the get_type_info tool */ executeGetTypeInfo(args: Record): Promise; /** * Execute the get_diagnostics tool */ executeGetDiagnostics(args: Record): Promise; /** * Execute the hover_info tool */ executeHoverInfo(args: Record): Promise; /** * Execute a hover request */ private executeHover; /** * Resolve a position from either symbol name or line/character */ private resolvePosition; /** * `read_file`/`run_terminal_cmd` both refuse to read/return credential- * shaped content — these four tool handlers took the same `file_path` * argument but bypassed CredentialGuard entirely, an inconsistent trust * boundary (the same argument refused by `read_file` was accepted * verbatim by `goto_definition`/`get_type_info`/`get_diagnostics`/ * `hover_info`). Checked once per public entry point, before any * position resolution or LSP request that would otherwise read the file. */ private checkSensitiveFile; /** * Read file content */ private readFileContent; /** * Convert file path to URI */ private toUri; /** * Get language ID for a file */ private getLanguageId; /** * Parse a definition result from LSP */ private parseDefinitionResult; /** * Format a definition result for display */ private formatDefinitionResult; /** * Format diagnostics for display */ private formatDiagnostics; } export declare function getLSPToolsService(projectRoot?: string): LSPToolsService; export declare function resetLSPToolsService(): void; export {}; //# sourceMappingURL=lsp-tools.service.d.ts.map