Module: Legion::Extensions::Agentic::Integration::Zeitgeist::Runners::CognitiveZeitgeist

Includes:
Helpers::Lex
Included in:
Helpers::Client
Defined in:
lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb

Instance Method Summary collapse

Instance Method Details

#cognitive_convergence(engine: nil) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 44

def cognitive_convergence(engine: nil, **)
  eng   = engine || default_engine
  conv  = eng.cognitive_convergence
  label = Helpers::Constants.label_for(Helpers::Constants::CONVERGENCE_LABELS, conv)
  alert = eng.divergence_alert?
  log.debug("[cognitive_zeitgeist] convergence value=#{conv.round(2)} label=#{label} " \
            "alert=#{alert}")
  { success: true, convergence: conv, convergence_label: label, divergence_alert: alert }
end

#collective_mood(engine: nil) ⇒ Object



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

def collective_mood(engine: nil, **)
  eng   = engine || default_engine
  mood  = eng.collective_mood
  label = Helpers::Constants.label_for(Helpers::Constants::MOOD_LABELS, normalize_mood(mood))
  log.debug("[cognitive_zeitgeist] mood value=#{mood.round(2)} label=#{label}")
  { success: true, mood: mood, mood_label: label }
end

#dominant_themes(limit: 5, engine: nil) ⇒ Object



54
55
56
57
58
59
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 54

def dominant_themes(limit: 5, engine: nil, **)
  eng    = engine || default_engine
  themes = eng.dominant_themes(limit: limit)
  log.debug("[cognitive_zeitgeist] dominant_themes count=#{themes.size}")
  { success: true, themes: themes, count: themes.size }
end

#falling_domains(engine: nil) ⇒ Object



68
69
70
71
72
73
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 68

def falling_domains(engine: nil, **)
  eng     = engine || default_engine
  domains = eng.falling_domains
  log.debug("[cognitive_zeitgeist] falling count=#{domains.size}")
  { success: true, domains: domains, count: domains.size }
end

#ingest_signal(source_subsystem:, domain:, intensity: Helpers::Constants::DEFAULT_INTENSITY, valence: 0.0, engine: nil) ⇒ Object



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

def ingest_signal(source_subsystem:, domain:, intensity: Helpers::Constants::DEFAULT_INTENSITY,
                  valence: 0.0, engine: nil, **)
  eng     = engine || default_engine
  signal  = eng.ingest(
    source_subsystem: source_subsystem,
    domain:           domain,
    intensity:        intensity,
    valence:          valence
  )
  log.debug("[cognitive_zeitgeist] ingest source=#{source_subsystem} " \
            "domain=#{domain} intensity=#{intensity.round(2)} valence=#{valence.round(2)}")
  { success: true, signal: signal.to_h }
end

#rising_domains(engine: nil) ⇒ Object



61
62
63
64
65
66
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 61

def rising_domains(engine: nil, **)
  eng     = engine || default_engine
  domains = eng.rising_domains
  log.debug("[cognitive_zeitgeist] rising count=#{domains.size}")
  { success: true, domains: domains, count: domains.size }
end

#trend_window_status(engine: nil) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 75

def trend_window_status(engine: nil, **)
  eng    = engine || default_engine
  window = eng.trend_window.to_h
  mom_label = Helpers::Constants.label_for(Helpers::Constants::MOMENTUM_LABELS, window[:momentum])
  log.debug("[cognitive_zeitgeist] trend_window size=#{window[:size]} " \
            "momentum=#{mom_label}")
  { success: true, trend_window: window, momentum_label: mom_label }
end

#zeitgeist_report(engine: nil) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/legion/extensions/agentic/integration/zeitgeist/runners/cognitive_zeitgeist.rb', line 27

def zeitgeist_report(engine: nil, **)
  eng    = engine || default_engine
  report = eng.zeitgeist_report
  log.debug("[cognitive_zeitgeist] report signals=#{report[:signal_count]} " \
            "mood=#{report[:mood_label]} convergence=#{report[:convergence_label]} " \
            "momentum=#{report[:momentum_label]}")
  { success: true }.merge(report)
end