Source code for haive.core.graph.tool_manager
"""Tool manager wrapper for dynamic tool management."""
from typing import Any
from pydantic import BaseModel, Field
from haive.core.graph.ToolManager import ToolManager as CoreToolManager
[docs]
class ToolManager(BaseModel):
"""Wrapper for the core ToolManager with simplified interface.
This class provides a simplified interface for managing tools
while maintaining compatibility with the existing ToolManager infrastructure.
"""
name: str = Field(default="tool_manager", description="Name of the tool manager")
tools: dict[str, Any] = Field(default_factory=dict, description="Managed tools")
def __init__(self, name: str = "tool_manager", **kwargs):
"""Initialize a new tool manager."""
super().__init__(name=name, **kwargs)
self._core_manager = CoreToolManager()
[docs]
def add_tool(self, tool_name: str, tool: Any) -> "ToolManager":
"""Add a tool to the manager."""
self.tools[tool_name] = tool
return self
[docs]
def get_tool(self, tool_name: str) -> Any:
"""Get a tool by name."""
return self.tools.get(tool_name)
[docs]
def list_tools(self) -> list[str]:
"""List all available tools."""
return list(self.tools.keys())