Provider wall-clock duration in ms.
Friendly provider name that just returned (Vector / FullText / Entity / Storage / external).
This provider's contribution before fusion.
RRF-fused list across providers (and across scopes when applicable).
Reranker class name (Cohere / Voyage / BGE / Noop / etc.)
Reranker-permuted list. Same items as 'fused', new order.
Total wall-clock duration of the stream.
Post-deduplication, post-permission, post-enrich result set — what Search() would have returned.
Same shape as the synchronous SearchResult.SourceCounts.
Human-readable error message (do NOT include stack traces).
OptionalproviderName?: stringProvider that failed, if scoped to one.
Discriminated union emitted by
SearchEngine.streamSearch()as each pipeline stage produces output. Consumers should treat unknown phases as no-ops to remain forward-compatible with future stages (e.g. a 'permission-filtered' phase added later).