computer-use-demo/computer_use_demo/tools/groups.py (26 lines of code) (raw):
from dataclasses import dataclass
from typing import Literal
from .base import BaseAnthropicTool
from .bash import BashTool20241022, BashTool20250124
from .computer import ComputerTool20241022, ComputerTool20250124
from .edit import EditTool20241022, EditTool20250124
ToolVersion = Literal["computer_use_20250124", "computer_use_20241022"]
BetaFlag = Literal["computer-use-2024-10-22", "computer-use-2025-01-24"]
@dataclass(frozen=True, kw_only=True)
class ToolGroup:
version: ToolVersion
tools: list[type[BaseAnthropicTool]]
beta_flag: BetaFlag | None = None
TOOL_GROUPS: list[ToolGroup] = [
ToolGroup(
version="computer_use_20241022",
tools=[ComputerTool20241022, EditTool20241022, BashTool20241022],
beta_flag="computer-use-2024-10-22",
),
ToolGroup(
version="computer_use_20250124",
tools=[ComputerTool20250124, EditTool20250124, BashTool20250124],
beta_flag="computer-use-2025-01-24",
),
]
TOOL_GROUPS_BY_VERSION = {tool_group.version: tool_group for tool_group in TOOL_GROUPS}