class PluginManager: def __init__(self): self.tools = {} def register(self, name, func): if not callable(func): raise ValueError(f"Plugin '{name}' is not callable.") self.tools[name] = func def list_plugins(self): return list(self.tools.keys()) def call(self, name, *args, **kwargs): if name not in self.tools: return f"[PluginManager] Tool '{name}' not found." try: return self.tools[name](*args, **kwargs) except Exception as e: return f"[PluginManager Error] {str(e)}"