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
- #apply_correction(action:, domain:, original_error:, correction:) ⇒ Object
- #error_monitoring_stats ⇒ Object
- #errors_in_domain(domain:) ⇒ Object
- #monitoring_state ⇒ Object
- #recent_errors(limit: 10) ⇒ Object
- #report_conflict(action_a:, action_b:, domain:, intensity:) ⇒ Object
- #report_error(action:, domain:, intended:, actual:, severity:) ⇒ Object
- #report_success(action:, domain:) ⇒ Object
- #uncorrected_errors ⇒ Object
- #update_error_monitoring ⇒ Object
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_stats ⇒ Object
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_state ⇒ Object
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_errors ⇒ Object
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_monitoring ⇒ Object
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 |