Module: Legion::Extensions::Agentic::Defense::Erosion::Runners::CognitiveErosion

Extended by:
CognitiveErosion
Includes:
Helpers::Lex
Included in:
Client, CognitiveErosion
Defined in:
lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb

Instance Method Summary collapse

Instance Method Details

#create_formation(material_type:, domain:, content:, resistance: nil, engine: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 14

def create_formation(material_type:, domain:, content:, resistance: nil, engine: nil, **)
  eng = engine || default_engine
  result = eng.create_formation(
    material_type: material_type,
    domain:        domain,
    content:       content,
    resistance:    resistance
  )
  log.debug("[cognitive_erosion] formation created: #{result[:formation_id]}") if result[:success]
  result
rescue ArgumentError => e
  log.warn("[cognitive_erosion] create_formation failed: #{e.message}")
  { success: false, error: e.message }
end

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



49
50
51
52
53
54
55
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 49

def deepest_channels(limit: 5, engine: nil, **)
  eng = engine || default_engine
  channels = eng.deepest_channels(limit: limit)
  { success: true, channels: channels, count: channels.size }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#erode(formation_id:, agent:, force:, engine: nil) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 29

def erode(formation_id:, agent:, force:, engine: nil, **)
  eng = engine || default_engine
  result = eng.erode(formation_id: formation_id, agent: agent, force: force)
  log.debug("[cognitive_erosion] eroded #{formation_id[0..7]} agent=#{agent} force=#{force.round(3)}") if result[:success]
  result
rescue ArgumentError => e
  log.warn("[cognitive_erosion] erode failed: #{e.message}")
  { success: false, error: e.message }
end

#erosion_report(engine: nil) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 65

def erosion_report(engine: nil, **)
  eng = engine || default_engine
  result = eng.erosion_report
  log.debug("[cognitive_erosion] report: formations=#{result[:total_formations]} " \
            "channels=#{result[:total_channels]} canyons=#{result[:canyons]}")
  result
rescue ArgumentError => e
  { success: false, error: e.message }
end

#get_formation(formation_id:, engine: nil) ⇒ Object



75
76
77
78
79
80
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 75

def get_formation(formation_id:, engine: nil, **)
  eng = engine || default_engine
  eng.get_formation(formation_id)
rescue ArgumentError => e
  { success: false, error: e.message }
end

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



57
58
59
60
61
62
63
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 57

def most_eroded(limit: 5, engine: nil, **)
  eng = engine || default_engine
  formations = eng.most_eroded(limit: limit)
  { success: true, formations: formations, count: formations.size }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#weather_all(force: 0.05, agent: :wind, engine: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/legion/extensions/agentic/defense/erosion/runners/cognitive_erosion.rb', line 39

def weather_all(force: 0.05, agent: :wind, engine: nil, **)
  eng = engine || default_engine
  result = eng.weather_all!(force: force, agent: agent)
  log.debug("[cognitive_erosion] weather_all: #{result[:weathered]} formations weathered") if result[:success]
  result
rescue ArgumentError => e
  log.warn("[cognitive_erosion] weather_all failed: #{e.message}")
  { success: false, error: e.message }
end