Module: Legion::Extensions::Agentic::Attention::Salience::Runners::Salience

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

Instance Method Summary collapse

Instance Method Details

#compute_salience(tick_results: {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/legion/extensions/agentic/attention/salience/runners/salience.rb', line 13

def compute_salience(tick_results: {}, **)
  integrated = Helpers::SignalIntegrator.integrate(tick_results: tick_results)
  salience_map.update(integrated)

  log.debug("[salience] compute: overall=#{salience_map.overall_salience.round(3)} " \
            "urgency=#{salience_map.urgency_level} dominant=#{salience_map.dominant_source}")

  {
    overall:         salience_map.overall_salience,
    urgency:         salience_map.urgency_level,
    dominant_source: salience_map.dominant_source,
    above_baseline:  salience_map.above_baseline?,
    conflicts:       salience_map.conflict_signals,
    sources:         integrated,
    trend:           salience_map.salience_trend
  }
end

#salience_for(source:) ⇒ Object



43
44
45
46
47
# File 'lib/legion/extensions/agentic/attention/salience/runners/salience.rb', line 43

def salience_for(source:, **)
  data = salience_map.current_map[source]
  log.debug("[salience] salience_for: source=#{source} salience=#{data || 0.0}")
  { source: source, salience: data || 0.0, urgency: salience_map.urgency_level }
end

#salience_history(limit: 10) ⇒ Object



49
50
51
# File 'lib/legion/extensions/agentic/attention/salience/runners/salience.rb', line 49

def salience_history(limit: 10, **)
  { entries: salience_map.history.last(limit) }
end

#salience_statsObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/legion/extensions/agentic/attention/salience/runners/salience.rb', line 53

def salience_stats(**)
  {
    overall:        salience_map.overall_salience,
    baseline:       salience_map.baseline,
    urgency:        salience_map.urgency_level,
    dominant:       salience_map.dominant_source,
    history_size:   salience_map.history.size,
    conflict_count: salience_map.conflict_signals.size,
    trend:          salience_map.salience_trend
  }
end

#salience_statusObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/legion/extensions/agentic/attention/salience/runners/salience.rb', line 31

def salience_status(**)
  log.debug("[salience] status: urgency=#{salience_map.urgency_level} trend=#{salience_map.salience_trend}")
  {
    overall:        salience_map.overall_salience,
    urgency:        salience_map.urgency_level,
    dominant:       salience_map.dominant_source,
    baseline:       salience_map.baseline,
    trend:          salience_map.salience_trend,
    above_baseline: salience_map.above_baseline?
  }
end