Files
leocrm/app/plugins/builtins/graph_rag/contracts.py
T

34 lines
882 B
Python
Raw Normal View History

"""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"]