from typing import Any

class MemorySync:
    """Manages shared knowledge across agents to avoid duplicate work."""

    def __init__(self):
        self.memory = {}
        self._discovery_keys = set()

    def add_discovery(self, agent_id: str, discovery_key: str, value: Any) -> bool:
        """Adds a discovery to central memory if key is new. Returns True if new discovery was added."""
        if discovery_key in self._discovery_keys:
            return False
        
        self.memory[discovery_key] = value
        self._discovery_keys.add(discovery_key)
        return True

    def get_discovery(self, discovery_key: str) -> Any:
        """Retrieves a discovery by key. Returns None if not found."""
        return self.memory.get(discovery_key)

    def has_discovery(self, discovery_key: str) -> bool:
        """Checks if a discovery exists in central memory."""
        return discovery_key in self._discovery_keys
