""" LSP Tool - 通过 Bun 适配器调用 OpenCode Language Server Protocol 集成,提供代码诊断、补全等功能。 """ from typing import Optional from agent.tools import tool, ToolResult, ToolContext from agent.tools.adapters.opencode_bun_adapter import OpenCodeBunAdapter # 创建适配器实例 _adapter = None def _get_adapter(): global _adapter if _adapter is None: _adapter = OpenCodeBunAdapter() return _adapter @tool(description="获取文件的 LSP 诊断信息(语法错误、类型错误等)") async def lsp_diagnostics( file_path: str, uid: str = "", context: Optional[ToolContext] = None ) -> ToolResult: """ 获取 LSP 诊断信息 使用 OpenCode 的 LSP 工具(通过 Bun 适配器调用)。 返回文件的语法错误、类型错误、代码警告等。 Args: file_path: 文件路径 uid: 用户 ID context: 工具上下文 Returns: ToolResult: 诊断信息 """ adapter = _get_adapter() args = { "filePath": file_path, } return await adapter.adapt_execute( tool_name="lsp", args=args, context=context )