from abc import ABC, abstractmethod
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ...types.tool import ToolDef

class Toolset(ABC):
    def format_tool_name(self, tool_name: str) -> str:
        return f"{self.name}__{tool_name}"

    @property
    @abstractmethod
    def name(self) -> str: ...

    @abstractmethod
    def get_tools(self) -> list[ToolDef]: ...
