"""Explicit construction boundary for Evidence preprocessing.""" from typing import Protocol from tht.evidence.contracts import EvidenceSource from tht.evidence.corpus.chunk import ChunkPolicy from tht.evidence.corpus.pipeline import CorpusPipeline from tht.evidence.corpus.store import CorpusStore from tht.ports.vector import VectorStore class EvidenceEmbedder(Protocol): def embed_documents(self, texts: list[str]) -> list[list[float]]: ... def build_preprocessing_pipeline( *, store: CorpusStore, sources: list[EvidenceSource], embedder: EvidenceEmbedder, vector_store: VectorStore, embedding_model: str, embedding_dimensions: int, chunk_policy: ChunkPolicy, pipeline_version: str, retain_published_generations: int = 3, workspace_id: str | None = None, ) -> CorpusPipeline: """Construct preprocessing from the bounded infrastructure supplied by core.""" return CorpusPipeline( store=store, sources=sources, embedder=embedder, vector_store=vector_store, embedding_model=embedding_model, embedding_dimensions=embedding_dimensions, chunk_policy=chunk_policy, pipeline_version=pipeline_version, retain_published_generations=retain_published_generations, workspace_id=workspace_id, ) __all__ = ["EvidenceEmbedder", "build_preprocessing_pipeline"]