2025-02-15 14:41:12 +00:00
using AIStudio.Settings ;
namespace AIStudio.Tools ;
/// <summary>
2026-09-17 07:48:00 +00:00
/// Contains the allowed and selected data sources, plus the ones waiting for their index.
2025-02-15 14:41:12 +00:00
/// </summary>
/// <remarks>
/// The selected data sources are a subset of the allowed data sources.
2026-09-17 07:48:00 +00:00
///
/// The data sources waiting for a re-index are deliberately kept apart from the allowed ones rather
/// than mixed in. Everything reading the allowed list -- the data source selection agent above all
/// -- takes it to mean "may be used to answer with", and a source whose index is being rebuilt
/// cannot answer anything. It is listed separately so the user interface can still show it and say
/// why it is greyed out, instead of letting it vanish without a word.
2025-02-15 14:41:12 +00:00
/// </remarks>
/// <param name="AllowedDataSources">The allowed data sources.</param>
/// <param name="SelectedDataSources">The selected data sources, which are a subset of the allowed data sources.</param>
2026-09-17 07:48:00 +00:00
/// <param name="DataSourcesAwaitingReindex">The data sources which passed every check but cannot be searched until their index has been rebuilt.</param>
public readonly record struct AllowedSelectedDataSources ( IReadOnlyList < IDataSource > AllowedDataSources , IReadOnlyList < IDataSource > SelectedDataSources , IReadOnlyList < IDataSource > DataSourcesAwaitingReindex ) ;