Module: Legion::Extensions::Agentic::Attention::SensoryGating::Runners::SensoryGating

Includes:
Helpers::Constants, Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb

Constant Summary

Constants included from Helpers::Constants

Helpers::Constants::DEFAULT_GATE_THRESHOLD, Helpers::Constants::GATE_ADJUSTMENT, Helpers::Constants::GATE_LABELS, Helpers::Constants::HABITUATION_RATE, Helpers::Constants::MAX_FILTERS, Helpers::Constants::MAX_STIMULI, Helpers::Constants::MODALITY_TYPES, Helpers::Constants::SENSITIZATION_RATE, Helpers::Constants::STIMULUS_LABELS

Instance Method Summary collapse

Instance Method Details

#average_pass_rate(engine: nil) ⇒ Object



52
53
54
55
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 52

def average_pass_rate(engine: nil, **)
  eng = engine || default_engine
  { success: true, pass_rate: eng.average_pass_rate }
end

#close_gate(filter_id:, engine: nil, amount: GATE_ADJUSTMENT) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 36

def close_gate(filter_id:, engine: nil, amount: GATE_ADJUSTMENT, **)
  eng = engine || default_engine
  result = eng.close_gate(filter_id: filter_id, amount: amount)
  return { success: false, error: 'filter not found' } unless result

  { success: true, filter: result.to_h }
end

#create_filter(modality:, engine: nil, gate_threshold: DEFAULT_GATE_THRESHOLD) ⇒ Object



14
15
16
17
18
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 14

def create_filter(modality:, engine: nil, gate_threshold: DEFAULT_GATE_THRESHOLD, **)
  eng = engine || default_engine
  filter = eng.create_filter(modality: modality, gate_threshold: gate_threshold)
  { success: true, filter: filter.to_h }
end

#gating_report(engine: nil) ⇒ Object



57
58
59
60
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 57

def gating_report(engine: nil, **)
  eng = engine || default_engine
  { success: true, report: eng.gating_report }
end

#open_gate(filter_id:, engine: nil, amount: GATE_ADJUSTMENT) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 28

def open_gate(filter_id:, engine: nil, amount: GATE_ADJUSTMENT, **)
  eng = engine || default_engine
  result = eng.open_gate(filter_id: filter_id, amount: amount)
  return { success: false, error: 'filter not found' } unless result

  { success: true, filter: result.to_h }
end

#process_stimulus(filter_id:, intensity:, engine: nil) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 20

def process_stimulus(filter_id:, intensity:, engine: nil, **)
  eng = engine || default_engine
  result = eng.process_stimulus(filter_id: filter_id, intensity: intensity)
  return { success: false, error: 'filter not found' } unless result

  { success: true, outcome: result[:outcome], filter: result[:filter].to_h }
end

#sensitize(filter_id:, engine: nil, amount: SENSITIZATION_RATE) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/legion/extensions/agentic/attention/sensory_gating/runners/sensory_gating.rb', line 44

def sensitize(filter_id:, engine: nil, amount: SENSITIZATION_RATE, **)
  eng = engine || default_engine
  result = eng.sensitize(filter_id: filter_id, amount: amount)
  return { success: false, error: 'filter not found' } unless result

  { success: true, filter: result.to_h }
end