Coverage for src/qdrant_loader_mcp_server/search/hybrid/orchestration/orchestrator.py: 100%

5 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-09-08 06:06 +0000

1from __future__ import annotations 

2 

3from typing import Any 

4 

5 

6class HybridOrchestrator: 

7 """Execute a planned hybrid search using engine-provided services. 

8 

9 This layer is deliberately thin to preserve current behavior. 

10 """ 

11 

12 async def run_pipeline( 

13 self, 

14 pipeline: Any, 

15 *, 

16 query: str, 

17 limit: int, 

18 query_context: dict[str, Any], 

19 source_types: list[str] | None = None, 

20 project_ids: list[str] | None = None, 

21 vector_query: str | None = None, 

22 keyword_query: str | None = None, 

23 ) -> Any: 

24 return await pipeline.run( 

25 query=query, 

26 limit=limit, 

27 query_context=query_context, 

28 source_types=source_types, 

29 project_ids=project_ids, 

30 vector_query=vector_query if vector_query is not None else query, 

31 keyword_query=keyword_query if keyword_query is not None else query, 

32 )