""" api/dependencies.py — Shared singleton instances for the API layer All heavy objects (embedder, vectorstore, reranker, pattern_store, etc.) are initialised once here and used across all route handlers. """ from retrieval.embedder import Embedder from retrieval.vectorstore import VectorStore from retrieval.bm25_index import BM25Index from retrieval.reranker import Reranker from generation.drafter import Drafter from generation.validator import CitationValidator from feedback.pattern_store import PatternStore from feedback.pipeline import FeedbackPipeline # Singletons — initialised at module load (on first import) embedder = Embedder() vectorstore = VectorStore(embedder=embedder) bm25_index = BM25Index() reranker = Reranker() drafter = Drafter() validator = CitationValidator() pattern_store = PatternStore() feedback_pipeline = FeedbackPipeline(pattern_store=pattern_store)