import { ChunkRepository } from "../../foundations/chunk/repositories/chunk.repository"; import { EvidenceMatcher } from "./evidence.matcher"; import { EvalQuestionSet, RetrievalSweepResult, SweepSummary } from "./retrieval-eval.types"; /** * The fast inner loop: asks the retrieval layer what it WOULD read for each * question and stops there. No answer is generated, so the only provider call * is embedding the question. * * Questions run SEQUENTIALLY on purpose — `retrievalMs` is a reported metric and * concurrency would make it meaningless (spec §6.3). */ export declare class RetrievalSweepService { private readonly chunkRepository; private readonly evidence; private readonly logger; constructor(chunkRepository: ChunkRepository, evidence: EvidenceMatcher); /** * SCOPE COMES FROM CLS, NOT FROM A PARAMETER. * * `ChunkRepository` reads company scope from `ClsService` (via * `Neo4jService.initQuery`, which pulls `companyId`/`userId` off CLS) and the * run's scope root from `AGENT_SCOPE_CLS_KEY` * (`common/repositories/agent-scope.filter.ts`), which fails closed. A caller * that does not establish that context retrieves nothing — or, worse, * retrieves unscoped. The entry point is responsible for it; see * apps/api/src/eval/run-sweep.ts. * * This is why `run` takes no companyId: accepting one would imply it is * honoured here, and it is not. */ run(params: { set: EvalQuestionSet; }): Promise>; } //# sourceMappingURL=retrieval-sweep.service.d.ts.map