using AIStudio.Tools.Databases.ProvenanceStore; using AIStudio.Tools.DataBackup; namespace AIStudio.Tools.ChatArchive; /// /// Where a backup keeps its chats, for adding them to the chats there are. /// /// /// A backup holds the chats in the layout of the data folder, cf. DataBackupFormat: every chat in a /// directory of its own, below its workspace or among the temporary chats. /// public static class ChatArchiveFormat { /// /// Where a backup keeps the workspaces, each in a directory named after its ID. /// public static readonly string WORKSPACES_PREFIX = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.WORKSPACES).RelativePath; /// /// Where a backup keeps the temporary chats, each in a directory named after its ID. /// public static readonly string TEMPORARY_CHATS_PREFIX = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.TEMPORARY_CHATS).RelativePath; /// /// Where a backup keeps the provenance store, which holds what the chats received besides their messages. /// public static readonly string PROVENANCE_STORE_ENTRY = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.CHAT_PROVENANCE).RelativePath + SqliteProvenanceStoreClientImplementation.DATABASE_FILENAME; /// /// The file storing the workspace or chat name. /// public const string NAME_FILE_NAME = "name"; /// /// The file storing the serialized chat thread. /// public const string THREAD_FILE_NAME = "thread.json"; }