using AIStudio.Assistants.Coding; using AIStudio.Assistants.IconFinder; using AIStudio.Assistants.TextSummarizer; namespace AIStudio.Settings.DataModel.PreviousModels; /// /// The data model for the settings file. /// public sealed class DataV1V3 { /// /// The version of the settings file. Allows us to upgrade the settings /// when a new version is available. /// public Version Version { get; init; } = Version.V3; /// /// List of configured providers. /// public List Providers { get; init; } = []; /// /// The next provider number to use. /// public uint NextProviderNum { get; set; } = 1; #region App Settings /// /// Should we save energy? When true, we will update content streamed /// from the server, i.e., AI, less frequently. /// public bool IsSavingEnergy { get; set; } /// /// Should we enable spellchecking for all input fields? /// public bool EnableSpellchecking { get; set; } /// /// If and when we should look for updates. /// public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.ONCE_STARTUP; /// /// The navigation behavior. /// public NavBehavior NavigationBehavior { get; set; } = NavBehavior.EXPAND_ON_HOVER; #endregion #region Chat Settings /// /// Shortcuts to send the input to the AI. /// public SendBehavior ShortcutSendBehavior { get; set; } = SendBehavior.MODIFER_ENTER_IS_SENDING; /// /// Preselect any chat options? /// public bool PreselectChatOptions { get; set; } /// /// Should we preselect a provider for the chat? /// public string PreselectedChatProvider { get; set; } = string.Empty; #endregion #region Workspace Settings /// /// The chat storage behavior. /// public WorkspaceStorageBehavior WorkspaceStorageBehavior { get; set; } = WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY; /// /// The chat storage maintenance behavior. /// public WorkspaceStorageTemporaryMaintenancePolicy WorkspaceStorageTemporaryMaintenancePolicy { get; set; } = WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_90_DAYS; #endregion #region Assiatant: Icon Finder Settings /// /// Do we want to preselect any icon options? /// public bool PreselectIconOptions { get; set; } /// /// The preselected icon source. /// public IconSources PreselectedIconSource { get; set; } /// /// The preselected icon provider. /// public string PreselectedIconProvider { get; set; } = string.Empty; #endregion #region Assistant: Translation Settings /// /// The live translation interval for debouncing in milliseconds. /// public int LiveTranslationDebounceIntervalMilliseconds { get; set; } = 1_500; /// /// Do we want to preselect any translator options? /// public bool PreselectTranslationOptions { get; set; } /// /// Preselect the live translation? /// public bool PreselectLiveTranslation { get; set; } /// /// Hide the web content reader? /// public bool HideWebContentReaderForTranslation { get; set; } /// /// Preselect the web content reader? /// public bool PreselectWebContentReaderForTranslation { get; set; } /// /// Preselect the content cleaner agent? /// public bool PreselectContentCleanerAgentForTranslation { get; set; } /// /// Preselect the target language? /// public CommonLanguages PreselectedTranslationTargetLanguage { get; set; } = CommonLanguages.EN_US; /// /// Preselect any other language? /// public string PreselectTranslationOtherLanguage { get; set; } = string.Empty; /// /// The preselected translator provider. /// public string PreselectedTranslationProvider { get; set; } = string.Empty; #endregion #region Assistant: Coding Settings /// /// Preselect any coding options? /// public bool PreselectCodingOptions { get; set; } /// /// Preselect the compiler messages? /// public bool PreselectCodingCompilerMessages { get; set; } /// /// Preselect the coding language for new contexts? /// public CommonCodingLanguages PreselectedCodingLanguage { get; set; } /// /// Do you want to preselect any other language? /// public string PreselectedCodingOtherLanguage { get; set; } = string.Empty; /// /// Which coding provider should be preselected? /// public string PreselectedCodingProvider { get; set; } = string.Empty; #endregion #region Assistant: Text Summarizer Settings /// /// Preselect any text summarizer options? /// public bool PreselectTextSummarizerOptions { get; set; } /// /// Hide the web content reader? /// public bool HideWebContentReaderForTextSummarizer { get; set; } /// /// Preselect the web content reader? /// public bool PreselectWebContentReaderForTextSummarizer { get; set; } /// /// Preselect the content cleaner agent? /// public bool PreselectContentCleanerAgentForTextSummarizer { get; set; } /// /// Preselect the target language? /// public CommonLanguages PreselectedTextSummarizerTargetLanguage { get; set; } /// /// Preselect any other language? /// public string PreselectedTextSummarizerOtherLanguage { get; set; } = string.Empty; /// /// Preselect the complexity? /// public Complexity PreselectedTextSummarizerComplexity { get; set; } /// /// Preselect any expertise in a field? /// public string PreselectedTextSummarizerExpertInField { get; set; } = string.Empty; /// /// Preselect a text summarizer provider? /// public string PreselectedTextSummarizerProvider { get; set; } = string.Empty; #endregion #region Agent: Text Content Cleaner Settings /// /// Preselect any text content cleaner options? /// public bool PreselectAgentTextContentCleanerOptions { get; set; } /// /// Preselect a text content cleaner provider? /// public string PreselectedAgentTextContentCleanerProvider { get; set; } = string.Empty; #endregion }