| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- """
- 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
- )
|