Module: Legion::Gaia::AuditObserver
- Defined in:
- lib/legion/gaia/audit_observer.rb
Class Method Summary collapse
- .learned_data_for(identity) ⇒ Object
- .process_event(event) ⇒ Object
- .reset! ⇒ Object
- .tool_patterns ⇒ Object
- .user_preferences(identity) ⇒ Object
Class Method Details
.learned_data_for(identity) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/legion/gaia/audit_observer.rb', line 33 def learned_data_for(identity) @mutex.synchronize do prefs = @user_prefs[identity] || {} { routing_preference: prefs[:routing], tool_predictions: top_tools_for_patterns, quality_signals: recent_quality } end end |
.process_event(event) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/legion/gaia/audit_observer.rb', line 13 def process_event(event) return unless event.is_a?(Hash) @mutex.synchronize do record_routing_preference(event) record_tool_patterns(event) record_quality(event) end rescue StandardError => e Legion::Logging.warn("audit observer error: #{e.}") if defined?(Legion::Logging) end |
.reset! ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/legion/gaia/audit_observer.rb', line 44 def reset! @mutex.synchronize do @user_prefs.clear @tool_patterns.clear @quality_log.clear end end |
.tool_patterns ⇒ Object
29 30 31 |
# File 'lib/legion/gaia/audit_observer.rb', line 29 def tool_patterns @mutex.synchronize { @tool_patterns.dup } end |
.user_preferences(identity) ⇒ Object
25 26 27 |
# File 'lib/legion/gaia/audit_observer.rb', line 25 def user_preferences(identity) @mutex.synchronize { @user_prefs[identity]&.dup || {} } end |