* Pure dispatch over the read tools — the switch, with no gate, no notices, no * allowlist/validation (the caller owns those). `codegraph_status` is handled * on the main thread in execute and never reaches here. May throw * NotIndexed/PathRefusal, which executeReadTool clas
(toolName: string, args: Record<string, unknown>)
| 2141 | * NotIndexed/PathRefusal, which {@link executeReadTool} classifies. |
| 2142 | */ |
| 2143 | private async dispatchTool(toolName: string, args: Record<string, unknown>): Promise<ToolResult> { |
| 2144 | switch (toolName) { |
| 2145 | case 'codegraph_search': return await this.handleSearch(args); |
| 2146 | case 'codegraph_callers': return await this.handleCallers(args); |
| 2147 | case 'codegraph_callees': return await this.handleCallees(args); |
| 2148 | case 'codegraph_impact': return await this.handleImpact(args); |
| 2149 | case 'codegraph_explore': return await this.handleExplore(args); |
| 2150 | case 'codegraph_node': return await this.handleNode(args); |
| 2151 | case 'codegraph_files': return await this.handleFiles(args); |
| 2152 | default: return this.errorResult(`Unknown tool: ${toolName}`); |
| 2153 | } |
| 2154 | } |
| 2155 | |
| 2156 | /** |
| 2157 | * Handle codegraph_search |
no test coverage detected