/** * Stats describes the first (or only) fusion pass before postprocessing, * not final counts or a sum across alias alternatives/fan-out branches. */ export interface SearchAppSearchFusionStats { /** AppChunks is what the app lane returned. */ appChunks?: number; /** AppHasExactIDs mirrors the app plan's exact-identifier marker. */ appHasExactIds?: boolean; /** * AppLaneEmptyText is true when the app lane returned no chunks (sources * or side context only). */ appLaneEmptyText?: boolean; /** * Consensus counts app chunks the normal lane already had; they keep the * normal lane's position. */ consensus?: number; /** * ExactCandidates counts app chunks the exact-identifier recipe found; * ExactPromoted is how many of them were placed above the normal lane. */ exactCandidates?: number; /** Exact-identifier chunks placed above the normal lane. */ exactPromoted?: number; /** Limit is the final chunk limit the fusion applied. */ limit?: number; /** NormalChunks is what the normal lane returned. */ normalChunks?: number; /** * NormalDisplaced counts normal-lane chunks the promoted block and the * tail pushed past the limit. */ normalDisplaced?: number; /** App-only chunks appended within the tail budget. */ tailAdded?: number; /** * TailCandidates counts app-only chunks eligible for the tail; TailAdded * is how many were appended within the tail budget. */ tailCandidates?: number; }