Manages persistent learned information across agent sessions. More...
#include <learned_knowledge_service.h>
Classes | |
struct | ConversationMemory |
struct | ProjectContext |
struct | ROMPattern |
struct | Stats |
Public Member Functions | |
LearnedKnowledgeService () | |
LearnedKnowledgeService (const std::filesystem::path &data_dir) | |
absl::Status | Initialize () |
absl::Status | SaveAll () |
absl::Status | SetPreference (const std::string &key, const std::string &value) |
std::optional< std::string > | GetPreference (const std::string &key) const |
std::map< std::string, std::string > | GetAllPreferences () const |
absl::Status | RemovePreference (const std::string &key) |
absl::Status | LearnPattern (const std::string &type, const std::string &rom_hash, const std::string &data, float confidence=1.0f) |
std::vector< ROMPattern > | QueryPatterns (const std::string &type, const std::string &rom_hash="") const |
absl::Status | UpdatePatternConfidence (const std::string &type, const std::string &rom_hash, float new_confidence) |
absl::Status | SaveProjectContext (const std::string &project_name, const std::string &rom_hash, const std::string &context) |
std::optional< ProjectContext > | GetProjectContext (const std::string &project_name) const |
std::vector< ProjectContext > | GetAllProjects () const |
absl::Status | StoreConversationSummary (const std::string &topic, const std::string &summary, const std::vector< std::string > &key_facts) |
std::vector< ConversationMemory > | SearchMemories (const std::string &query) const |
std::vector< ConversationMemory > | GetRecentMemories (int limit=10) const |
absl::StatusOr< std::string > | ExportToJSON () const |
absl::Status | ImportFromJSON (const std::string &json_data) |
absl::Status | ClearAll () |
Stats | GetStats () const |
Private Member Functions | |
absl::Status | LoadPreferences () |
absl::Status | LoadPatterns () |
absl::Status | LoadProjects () |
absl::Status | LoadMemories () |
absl::Status | SavePreferences () |
absl::Status | SavePatterns () |
absl::Status | SaveProjects () |
absl::Status | SaveMemories () |
std::string | GenerateID () const |
Private Attributes | |
std::filesystem::path | data_dir_ |
std::filesystem::path | prefs_file_ |
std::filesystem::path | patterns_file_ |
std::filesystem::path | projects_file_ |
std::filesystem::path | memories_file_ |
std::map< std::string, std::string > | preferences_ |
std::vector< ROMPattern > | patterns_ |
std::vector< ProjectContext > | projects_ |
std::vector< ConversationMemory > | memories_ |
bool | initialized_ = false |
Manages persistent learned information across agent sessions.
Stores:
Definition at line 31 of file learned_knowledge_service.h.
yaze::cli::agent::LearnedKnowledgeService::LearnedKnowledgeService | ( | ) |
Definition at line 37 of file learned_knowledge_service.cc.
References data_dir_, yaze::util::PlatformPaths::GetAppDataSubdirectory(), memories_file_, patterns_file_, prefs_file_, and projects_file_.
|
explicit |
Definition at line 53 of file learned_knowledge_service.cc.
absl::Status yaze::cli::agent::LearnedKnowledgeService::Initialize | ( | ) |
Definition at line 61 of file learned_knowledge_service.cc.
References data_dir_, yaze::util::PlatformPaths::EnsureDirectoryExists(), initialized_, LoadMemories(), LoadPatterns(), LoadPreferences(), and LoadProjects().
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::Status yaze::cli::agent::LearnedKnowledgeService::SaveAll | ( | ) |
Definition at line 82 of file learned_knowledge_service.cc.
References SaveMemories(), SavePatterns(), SavePreferences(), and SaveProjects().
Referenced by ClearAll().
absl::Status yaze::cli::agent::LearnedKnowledgeService::SetPreference | ( | const std::string & | key, |
const std::string & | value | ||
) |
Set a user preference
key | Preference key (e.g., "default_palette", "preferred_tool") |
value | Preference value |
Definition at line 100 of file learned_knowledge_service.cc.
References initialized_, preferences_, and SavePreferences().
Referenced by yaze::cli::agent::HandleLearnCommand().
std::optional< std::string > yaze::cli::agent::LearnedKnowledgeService::GetPreference | ( | const std::string & | key | ) | const |
Get a user preference
key | Preference key |
Definition at line 110 of file learned_knowledge_service.cc.
References preferences_.
Referenced by yaze::cli::agent::HandleLearnCommand().
std::map< std::string, std::string > yaze::cli::agent::LearnedKnowledgeService::GetAllPreferences | ( | ) | const |
List all preferences
Definition at line 119 of file learned_knowledge_service.cc.
References preferences_.
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::Status yaze::cli::agent::LearnedKnowledgeService::RemovePreference | ( | const std::string & | key | ) |
Remove a preference
Definition at line 123 of file learned_knowledge_service.cc.
References initialized_, preferences_, and SavePreferences().
absl::Status yaze::cli::agent::LearnedKnowledgeService::LearnPattern | ( | const std::string & | type, |
const std::string & | rom_hash, | ||
const std::string & | data, | ||
float | confidence = 1.0f |
||
) |
Learn a pattern from the current ROM
type | Pattern type (e.g., "sprite_distribution", "room_access_frequency") |
rom_hash | SHA256 hash of the ROM |
data | Pattern-specific data (JSON) |
Definition at line 134 of file learned_knowledge_service.cc.
References yaze::cli::agent::LearnedKnowledgeService::ROMPattern::access_count, yaze::cli::agent::LearnedKnowledgeService::ROMPattern::confidence, initialized_, yaze::cli::agent::LearnedKnowledgeService::ROMPattern::learned_at, yaze::cli::agent::LearnedKnowledgeService::ROMPattern::pattern_data, yaze::cli::agent::LearnedKnowledgeService::ROMPattern::pattern_type, patterns_, yaze::cli::agent::LearnedKnowledgeService::ROMPattern::rom_hash, and SavePatterns().
std::vector< LearnedKnowledgeService::ROMPattern > yaze::cli::agent::LearnedKnowledgeService::QueryPatterns | ( | const std::string & | type, |
const std::string & | rom_hash = "" |
||
) | const |
Query patterns for a specific ROM
type | Pattern type to query |
rom_hash | ROM hash to filter by (empty = all ROMs) |
Definition at line 155 of file learned_knowledge_service.cc.
References patterns_.
absl::Status yaze::cli::agent::LearnedKnowledgeService::UpdatePatternConfidence | ( | const std::string & | type, |
const std::string & | rom_hash, | ||
float | new_confidence | ||
) |
Update pattern confidence/access count
Definition at line 171 of file learned_knowledge_service.cc.
References patterns_, and SavePatterns().
absl::Status yaze::cli::agent::LearnedKnowledgeService::SaveProjectContext | ( | const std::string & | project_name, |
const std::string & | rom_hash, | ||
const std::string & | context | ||
) |
Save context for a project/ROM
Definition at line 194 of file learned_knowledge_service.cc.
References yaze::cli::agent::LearnedKnowledgeService::ProjectContext::context_data, initialized_, yaze::cli::agent::LearnedKnowledgeService::ProjectContext::last_accessed, yaze::cli::agent::LearnedKnowledgeService::ProjectContext::project_name, projects_, yaze::cli::agent::LearnedKnowledgeService::ProjectContext::rom_hash, and SaveProjects().
std::optional< LearnedKnowledgeService::ProjectContext > yaze::cli::agent::LearnedKnowledgeService::GetProjectContext | ( | const std::string & | project_name | ) | const |
Get project context
Definition at line 227 of file learned_knowledge_service.cc.
References projects_.
std::vector< LearnedKnowledgeService::ProjectContext > yaze::cli::agent::LearnedKnowledgeService::GetAllProjects | ( | ) | const |
List all projects
Definition at line 237 of file learned_knowledge_service.cc.
References projects_.
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::Status yaze::cli::agent::LearnedKnowledgeService::StoreConversationSummary | ( | const std::string & | topic, |
const std::string & | summary, | ||
const std::vector< std::string > & | key_facts | ||
) |
Store a conversation summary
topic | Topic/theme of the conversation |
summary | Brief summary |
key_facts | Important facts extracted |
Definition at line 243 of file learned_knowledge_service.cc.
References yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::access_count, yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::created_at, yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::id, initialized_, yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::key_facts, memories_, SaveMemories(), yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::summary, and yaze::cli::agent::LearnedKnowledgeService::ConversationMemory::topic.
std::vector< LearnedKnowledgeService::ConversationMemory > yaze::cli::agent::LearnedKnowledgeService::SearchMemories | ( | const std::string & | query | ) | const |
Search conversation memories by topic/keyword
Definition at line 270 of file learned_knowledge_service.cc.
References memories_.
std::vector< LearnedKnowledgeService::ConversationMemory > yaze::cli::agent::LearnedKnowledgeService::GetRecentMemories | ( | int | limit = 10 | ) | const |
Get most recent conversation memories
Definition at line 292 of file learned_knowledge_service.cc.
References memories_.
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::StatusOr< std::string > yaze::cli::agent::LearnedKnowledgeService::ExportToJSON | ( | ) | const |
Export all learned data to JSON
Definition at line 414 of file learned_knowledge_service.cc.
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::Status yaze::cli::agent::LearnedKnowledgeService::ImportFromJSON | ( | const std::string & | json_data | ) |
Import learned data from JSON
Definition at line 418 of file learned_knowledge_service.cc.
Referenced by yaze::cli::agent::HandleLearnCommand().
absl::Status yaze::cli::agent::LearnedKnowledgeService::ClearAll | ( | ) |
Clear all learned data
Definition at line 423 of file learned_knowledge_service.cc.
References memories_, patterns_, preferences_, projects_, and SaveAll().
Referenced by yaze::cli::agent::HandleLearnCommand().
LearnedKnowledgeService::Stats yaze::cli::agent::LearnedKnowledgeService::GetStats | ( | ) | const |
Definition at line 433 of file learned_knowledge_service.cc.
References yaze::cli::agent::LearnedKnowledgeService::Stats::first_learned_at, yaze::cli::agent::LearnedKnowledgeService::Stats::last_updated_at, memories_, yaze::cli::agent::LearnedKnowledgeService::Stats::memory_count, yaze::cli::agent::LearnedKnowledgeService::Stats::pattern_count, patterns_, yaze::cli::agent::LearnedKnowledgeService::Stats::preference_count, preferences_, yaze::cli::agent::LearnedKnowledgeService::Stats::project_count, and projects_.
Referenced by yaze::cli::agent::HandleLearnCommand().
|
private |
Definition at line 651 of file learned_knowledge_service.cc.
Referenced by Initialize().
|
private |
Definition at line 653 of file learned_knowledge_service.cc.
Referenced by Initialize().
|
private |
Definition at line 655 of file learned_knowledge_service.cc.
Referenced by Initialize().
|
private |
Definition at line 657 of file learned_knowledge_service.cc.
Referenced by Initialize().
|
private |
Definition at line 652 of file learned_knowledge_service.cc.
Referenced by RemovePreference(), SaveAll(), and SetPreference().
|
private |
Definition at line 654 of file learned_knowledge_service.cc.
Referenced by LearnPattern(), SaveAll(), and UpdatePatternConfidence().
|
private |
Definition at line 656 of file learned_knowledge_service.cc.
Referenced by SaveAll(), and SaveProjectContext().
|
private |
Definition at line 658 of file learned_knowledge_service.cc.
Referenced by SaveAll(), and StoreConversationSummary().
|
private |
Definition at line 661 of file learned_knowledge_service.cc.
|
private |
Definition at line 194 of file learned_knowledge_service.h.
Referenced by Initialize(), and LearnedKnowledgeService().
|
private |
Definition at line 195 of file learned_knowledge_service.h.
Referenced by LearnedKnowledgeService().
|
private |
Definition at line 196 of file learned_knowledge_service.h.
Referenced by LearnedKnowledgeService().
|
private |
Definition at line 197 of file learned_knowledge_service.h.
Referenced by LearnedKnowledgeService().
|
private |
Definition at line 198 of file learned_knowledge_service.h.
Referenced by LearnedKnowledgeService().
|
private |
Definition at line 200 of file learned_knowledge_service.h.
Referenced by ClearAll(), GetAllPreferences(), GetPreference(), GetStats(), RemovePreference(), and SetPreference().
|
private |
Definition at line 201 of file learned_knowledge_service.h.
Referenced by ClearAll(), GetStats(), LearnPattern(), QueryPatterns(), and UpdatePatternConfidence().
|
private |
Definition at line 202 of file learned_knowledge_service.h.
Referenced by ClearAll(), GetAllProjects(), GetProjectContext(), GetStats(), and SaveProjectContext().
|
private |
Definition at line 203 of file learned_knowledge_service.h.
Referenced by ClearAll(), GetRecentMemories(), GetStats(), SearchMemories(), and StoreConversationSummary().
|
private |
Definition at line 205 of file learned_knowledge_service.h.
Referenced by Initialize(), LearnPattern(), RemovePreference(), SaveProjectContext(), SetPreference(), and StoreConversationSummary().