From 37ef9b10ead89411e0c5050cce5ba64106818ab2 Mon Sep 17 00:00:00 2001 From: "Joseph T. French" Date: Sat, 29 Aug 2026 00:18:53 -0500 Subject: [PATCH] refactor(clients): drop the POC operator methods that never had an operator behind them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OperatorClient.analyze_financials / research / rag (and the module-level analyze_financials convenience) sent operator_type financial / research / rag. None was ever registered on the API — only cypher (now analyst) and mapping exist — so every call 404'd. No consumer in the three apps, core, the integration template, or the demo integration. Removal changes symbol resolution only: the SDK contract's dead-surface carve-out, riding a client minor. query() (auto-select) and execute_operator(graph_id, type, …) are the surface. --- robosystems_client/clients/__init__.py | 5 --- robosystems_client/clients/operator_client.py | 36 ---------------- tests/test_operator_client.py | 42 ------------------- 3 files changed, 83 deletions(-) diff --git a/robosystems_client/clients/__init__.py b/robosystems_client/clients/__init__.py index 97c779c..5fc9f90 100644 --- a/robosystems_client/clients/__init__.py +++ b/robosystems_client/clients/__init__.py @@ -252,11 +252,6 @@ def operator_query(graph_id: str, message: str, context=None): return get_clients().operator.query(graph_id, message, context) -def analyze_financials(graph_id: str, message: str, on_progress=None): - """Execute financial operator using the default clients instance""" - return get_clients().operator.analyze_financials(graph_id, message, on_progress) - - # DataFrame convenience functions (if pandas is available) if ( HAS_PANDAS diff --git a/robosystems_client/clients/operator_client.py b/robosystems_client/clients/operator_client.py index e4da2b0..06216e0 100644 --- a/robosystems_client/clients/operator_client.py +++ b/robosystems_client/clients/operator_client.py @@ -493,42 +493,6 @@ def query( request = OperatorQueryRequest(message=message, context=context) return self.execute_query(graph_id, request, OperatorOptions(mode="auto")) - def analyze_financials( - self, - graph_id: str, - message: str, - on_progress: Optional[Callable[[str, Optional[int]], None]] = None, - ) -> OperatorResult: - """Execute financial operator for financial analysis""" - request = OperatorQueryRequest(message=message) - return self.execute_operator( - graph_id, "financial", request, OperatorOptions(on_progress=on_progress) - ) - - def research( - self, - graph_id: str, - message: str, - on_progress: Optional[Callable[[str, Optional[int]], None]] = None, - ) -> OperatorResult: - """Execute research operator for deep research""" - request = OperatorQueryRequest(message=message) - return self.execute_operator( - graph_id, "research", request, OperatorOptions(on_progress=on_progress) - ) - - def rag( - self, - graph_id: str, - message: str, - on_progress: Optional[Callable[[str, Optional[int]], None]] = None, - ) -> OperatorResult: - """Execute RAG operator for fast retrieval""" - request = OperatorQueryRequest(message=message) - return self.execute_operator( - graph_id, "rag", request, OperatorOptions(on_progress=on_progress) - ) - def close(self): """Cancel any active SSE connections""" if self.sse_client: diff --git a/tests/test_operator_client.py b/tests/test_operator_client.py index cd3f30f..bc4a049 100644 --- a/tests/test_operator_client.py +++ b/tests/test_operator_client.py @@ -291,45 +291,3 @@ def test_query_convenience(self, mock_exec, mock_config, graph_id): assert result.content == "Answer" mock_exec.assert_called_once() - - @patch.object(OperatorClient, "execute_operator") - def test_analyze_financials_convenience(self, mock_exec, mock_config, graph_id): - """Test analyze_financials() convenience method.""" - mock_exec.return_value = OperatorResult( - content="Financial analysis", operator_used="financial", mode_used="standard" - ) - - client = OperatorClient(mock_config) - result = client.analyze_financials(graph_id, "Analyze revenue trends") - - assert result.operator_used == "financial" - call_args = mock_exec.call_args - assert call_args[0][1] == "financial" # operator_type - - @patch.object(OperatorClient, "execute_operator") - def test_research_convenience(self, mock_exec, mock_config, graph_id): - """Test research() convenience method.""" - mock_exec.return_value = OperatorResult( - content="Research results", operator_used="research", mode_used="extended" - ) - - client = OperatorClient(mock_config) - result = client.research(graph_id, "Deep dive into market") - - assert result.operator_used == "research" - call_args = mock_exec.call_args - assert call_args[0][1] == "research" - - @patch.object(OperatorClient, "execute_operator") - def test_rag_convenience(self, mock_exec, mock_config, graph_id): - """Test rag() convenience method.""" - mock_exec.return_value = OperatorResult( - content="RAG answer", operator_used="rag", mode_used="quick" - ) - - client = OperatorClient(mock_config) - result = client.rag(graph_id, "Quick lookup") - - assert result.operator_used == "rag" - call_args = mock_exec.call_args - assert call_args[0][1] == "rag"