Module: Legion::Extensions::Agentic::Defense::ErrorMonitoring::Runners::ErrorMonitoring

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb

Instance Method Summary collapse

Instance Method Details

#apply_correction(action:, domain:, original_error:, correction:) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 42

def apply_correction(action:, domain:, original_error:, correction:, **)
  log.debug("[error_monitor] correction: action=#{action} domain=#{domain}")
  entry = monitor.register_correction(
    action: action, domain: domain,
    original_error: original_error, correction: correction
  )
  { success: true, correction: entry, confidence: monitor.confidence.round(4) }
end

#error_monitoring_statsObject



86
87
88
89
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 86

def error_monitoring_stats(**)
  log.debug('[error_monitor] stats')
  { success: true, stats: monitor.to_h }
end

#errors_in_domain(domain:) ⇒ Object



57
58
59
60
61
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 57

def errors_in_domain(domain:, **)
  errors = monitor.errors_in(domain: domain).map(&:to_h)
  log.debug("[error_monitor] errors_in: domain=#{domain} count=#{errors.size}")
  { success: true, domain: domain, errors: errors, count: errors.size }
end

#monitoring_stateObject



69
70
71
72
73
74
75
76
77
78
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 69

def monitoring_state(**)
  state = monitor.monitoring_state
  log.debug("[error_monitor] state: #{state}")
  {
    success: true, state: state,
    label: Helpers::Constants::MONITORING_STATE_LABELS[state],
    slowdown: monitor.slowdown.round(4),
    confidence: monitor.confidence.round(4)
  }
end

#recent_errors(limit: 10) ⇒ Object



51
52
53
54
55
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 51

def recent_errors(limit: 10, **)
  errors = monitor.recent_errors(limit: limit.to_i).map(&:to_h)
  log.debug("[error_monitor] recent_errors: #{errors.size}")
  { success: true, errors: errors, count: errors.size }
end

#report_conflict(action_a:, action_b:, domain:, intensity:) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 33

def report_conflict(action_a:, action_b:, domain:, intensity:, **)
  log.debug("[error_monitor] conflict: #{action_a} vs #{action_b} domain=#{domain}")
  entry = monitor.register_conflict(
    action_a: action_a, action_b: action_b,
    domain: domain, intensity: intensity
  )
  { success: true, conflict: entry, conflict_active: monitor.conflict_active? }
end

#report_error(action:, domain:, intended:, actual:, severity:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 13

def report_error(action:, domain:, intended:, actual:, severity:, **)
  log.debug("[error_monitor] error: action=#{action} domain=#{domain} severity=#{severity}")
  signal = monitor.register_error(
    action: action, domain: domain,
    intended: intended, actual: actual, severity: severity
  )
  {
    success: true, error: signal.to_h,
    error_rate: monitor.error_rate.round(4),
    slowdown: monitor.slowdown.round(4),
    state: monitor.monitoring_state
  }
end

#report_success(action:, domain:) ⇒ Object



27
28
29
30
31
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 27

def report_success(action:, domain:, **)
  log.debug("[error_monitor] success: action=#{action} domain=#{domain}")
  result = monitor.register_success(action: action, domain: domain)
  { success: true, action: action, domain: domain, error_rate: result[:error_rate] }
end

#uncorrected_errorsObject



63
64
65
66
67
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 63

def uncorrected_errors(**)
  errors = monitor.uncorrected_errors.map(&:to_h)
  log.debug("[error_monitor] uncorrected: #{errors.size}")
  { success: true, errors: errors, count: errors.size }
end

#update_error_monitoringObject



80
81
82
83
84
# File 'lib/legion/extensions/agentic/defense/error_monitoring/runners/error_monitoring.rb', line 80

def update_error_monitoring(**)
  log.debug('[error_monitor] tick')
  monitor.tick
  { success: true, state: monitor.monitoring_state, slowdown: monitor.slowdown.round(4) }
end