Module: Legion::Extensions::Agentic::Defense::Phantom::Runners::CognitivePhantom

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb

Instance Method Summary collapse

Instance Method Details

#acknowledge_phantom(phantom_id:, engine: nil) ⇒ Object



42
43
44
45
46
47
48
49
50
51
# File 'lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb', line 42

def acknowledge_phantom(phantom_id:, engine: nil, **)
  raise ArgumentError, 'phantom_id is required' if phantom_id.nil? || phantom_id.to_s.strip.empty?

  eng    = engine || phantom_engine
  result = eng.acknowledge(phantom_id: phantom_id)
  log.debug("[cognitive_phantom] acknowledge phantom_id=#{phantom_id[0..7]}")
  result.merge(success: result[:acknowledged])
rescue ArgumentError => e
  { success: false, error: e.message }
end

#decay_all(engine: nil) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb', line 60

def decay_all(engine: nil, **)
  eng = engine || phantom_engine
  resolved_count = eng.decay_all!
  report = eng.phantom_activity_report
  log.debug("[cognitive_phantom] decay_all resolved=#{resolved_count}")
  { success: true, resolved_this_cycle: resolved_count, **report }
end

#phantom_status(engine: nil) ⇒ Object



53
54
55
56
57
58
# File 'lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb', line 53

def phantom_status(engine: nil, **)
  eng    = engine || phantom_engine
  report = eng.phantom_activity_report
  log.debug("[cognitive_phantom] phantom_status total=#{report[:total]} active=#{report[:active]}")
  { success: true, **report }
end

#process_stimulus(stimulus:, domain: :general, engine: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb', line 26

def process_stimulus(stimulus:, domain: :general, engine: nil, **)
  raise ArgumentError, 'stimulus is required' if stimulus.nil?

  eng    = engine || phantom_engine
  fired  = eng.process_stimulus(stimulus: stimulus, domain: domain)
  log.debug("[cognitive_phantom] process_stimulus domain=#{domain} fired=#{fired.size}")
  {
    success:     true,
    fired_count: fired.size,
    signals:     fired.map(&:to_h),
    domain:      domain
  }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#register_removal(capability_name:, capability_domain: :general, engine: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/legion/extensions/agentic/defense/phantom/runners/cognitive_phantom.rb', line 13

def register_removal(capability_name:, capability_domain: :general, engine: nil, **)
  raise ArgumentError, 'capability_name is required' if capability_name.nil? || capability_name.to_s.strip.empty?

  eng  = engine || phantom_engine
  limb = eng.register_removal(capability_name: capability_name, capability_domain: capability_domain)
  return { success: false, error: 'MAX_PHANTOMS limit reached' } unless limb

  log.debug("[cognitive_phantom] register_removal capability=#{capability_name}")
  { success: true, phantom_id: limb.id, capability_name: capability_name, state: limb.state, intensity: limb.intensity }
rescue ArgumentError => e
  { success: false, error: e.message }
end