Module: Legion::Extensions::Synapse::Runners::GaiaReport

Included in:
Client
Defined in:
lib/legion/extensions/synapse/runners/gaia_report.rb

Instance Method Summary collapse

Instance Method Details

#gaia_reflectionObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/legion/extensions/synapse/runners/gaia_report.rb', line 37

def gaia_reflection(**)
  Data::Model.define_synapse_mutation_model
  summary = gaia_summary
  recent_mutations = Data::Model::SynapseMutation
                     .where { created_at >= Time.now - 3600 }
                     .all

  {
    success:           true,
    summary:           summary,
    mutations_1h:      recent_mutations.size,
    mutation_types:    recent_mutations.map(&:mutation_type).tally,
    mutation_triggers: recent_mutations.map(&:trigger).tally
  }
end

#gaia_summaryObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/legion/extensions/synapse/runners/gaia_report.rb', line 13

def gaia_summary(**)
  Data::Model.define_synapse_model
  synapses = Data::Model::Synapse.all
  active = synapses.select { |s| s.status == 'active' }
  dampened = synapses.select { |s| s.status == 'dampened' }
  observing = synapses.select { |s| s.status == 'observing' }

  pain_threshold = 0.3
  elevated_pain = active.select { |s| s.confidence < pain_threshold }

  {
    success:             true,
    total_synapses:      synapses.size,
    active_count:        active.size,
    dampened_count:      dampened.size,
    observing_count:     observing.size,
    elevated_pain_count: elevated_pain.size,
    avg_confidence:      avg_confidence(active),
    emergent_candidates: observing.size,
    health_score:        compute_health_score(active, dampened, elevated_pain),
    blast_distribution:  blast_distribution(synapses)
  }
end