using AIStudio.Settings.DataModel; using AIStudio.Tools.Databases.IndexStore; using AIStudio.Tools.Services; namespace AIStudio.Tools.ToolCallingSystem.ToolCallingImplementations.Mailboxes; /// /// One mailbox, ready to be searched page by page. /// /// /// What a search has to know about a mailbox before it searches is read once per call, however /// many pages of the mailbox the search turns. /// /// The mailbox. /// How far its index reaches, or null when that cannot be read. /// The conditions as they apply to this mailbox, or null when it could not be read any more, so that nothing is searched. /// Whether the mailbox has none of the folders the model named, so that nothing is searched. /// What was done about drafts which may have changed since the last sync. internal sealed record MailboxSearch(DataSourceMailbox Mailbox, MailboxCoverage? Coverage, MailFilter? Filter, bool FolderIsMissing, MailDraftSyncDecision DraftSync);