Module: Legion::Gaia::AuditObserver

Defined in:
lib/legion/gaia/audit_observer.rb

Class Method Summary collapse

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.message}") 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_patternsObject



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