#pragma once #include #include #include #include "option.h" class ConversationManager { public: ConversationManager() = delete; static Option create_conversation(const nlohmann::json& conversation); static Option get_conversation(int conversation_id); static Option append_conversation(int conversation_id, const nlohmann::json& message); static Option truncate_conversation(nlohmann::json conversation); static size_t get_token_count(const nlohmann::json& message); static Option delete_conversation(int conversation_id); static Option get_all_conversations(); static constexpr size_t MAX_TOKENS = 3000; private: static inline std::unordered_map conversations; static inline int conversation_id = 0; };