from typing import Any, Dict from db.neo4j_client import Neo4jClient # Initialize clients neo4j_client = Neo4jClient() def query_neo4j(cypher: str) -> Dict[str, Any]: """ Execute a Cypher query against Neo4j. Args: cypher: The Cypher query to execute Returns: Query results or error message """ try: results = neo4j_client.query(cypher) return { "status": "success", "count": len(results), "results": results } except Exception as e: return {"status": "error", "message": str(e)} def find_neo4j_nodes(label: str, filters: Dict[str, Any] = None) -> Dict[str, Any]: """ Find nodes in Neo4j by label and optional filters. Args: label: The node label to search for filters: Optional dictionary of property filters Returns: List of matching nodes or error message """ try: nodes = neo4j_client.find_nodes(label, filters) return { "status": "success", "label": label, "count": len(nodes), "nodes": nodes } except Exception as e: return {"status": "error", "message": str(e)}