Files
2026-07-13 13:39:38 +08:00

49 lines
1.2 KiB
Python

from __future__ import annotations
from abc import abstractmethod
from dataclasses import dataclass
from typing import Any
from livekit.agents import ProviderTool
class AnthropicTool(ProviderTool):
"""Base class for Anthropic server-side provider tools."""
@abstractmethod
def to_dict(self) -> dict[str, Any]: ...
@property
def beta_flag(self) -> str | None:
return None
_TOOL_VERSION_BETA_FLAGS: dict[str, str] = {
"computer_20251124": "computer-use-2025-11-24",
"computer_20250124": "computer-use-2025-01-24",
}
@dataclass
class ComputerUse(AnthropicTool):
display_width_px: int = 1280
display_height_px: int = 720
display_number: int = 1
tool_version: str = "computer_20251124"
def __post_init__(self) -> None:
super().__init__(id="computer")
@property
def beta_flag(self) -> str | None:
return _TOOL_VERSION_BETA_FLAGS.get(self.tool_version)
def to_dict(self) -> dict[str, Any]:
return {
"type": self.tool_version,
"name": "computer",
"display_width_px": self.display_width_px,
"display_height_px": self.display_height_px,
"display_number": self.display_number,
}