"""GraphRAG plugin contract — public interface for cross-plugin access.""" from __future__ import annotations from app.plugins.builtins.contracts import get_contract_registry from app.plugins.builtins.graph_rag.provider import GraphRAGSearchProvider class GraphRagContract: """Public contract for the graph_rag plugin.""" contract_name = "graph_rag" GraphRAGSearchProvider = GraphRAGSearchProvider # ─── self-registration ─── _contract = GraphRagContract() get_contract_registry().register("graph_rag", _contract) # Backward-compatible local accessor _contract_instance: GraphRagContract | None = None def get_contract() -> GraphRagContract: global _contract_instance if _contract_instance is None: _contract_instance = GraphRagContract() return _contract_instance __all__ = ["GraphRagContract", "GraphRAGSearchProvider"]