Module: Legion::Extensions::Agentic::Learning::Chrysalis::Runners::CognitiveChrysalis

Extended by:
CognitiveChrysalis
Included in:
Client, CognitiveChrysalis
Defined in:
lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb

Instance Method Summary collapse

Instance Method Details

#create_chrysalis(chrysalis_type: :silk, content: '', engine: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 18

def create_chrysalis(chrysalis_type: :silk, content: '', engine: nil, **)
  engine ||= default_engine
  type = chrysalis_type.to_sym
  unless Helpers::Constants::CHRYSALIS_TYPES.include?(type)
    return { success: false, reason: :invalid_type, valid_types: Helpers::Constants::CHRYSALIS_TYPES }
  end

  log.debug "[cognitive_chrysalis] creating chrysalis type=#{type}"
  engine.create_chrysalis(chrysalis_type: type, content: content)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#create_cocoon(environment: 'default', temperature: 0.5, humidity: 0.5, engine: nil) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 31

def create_cocoon(environment: 'default', temperature: 0.5, humidity: 0.5, engine: nil, **)
  engine ||= default_engine
  log.debug "[cognitive_chrysalis] creating cocoon environment=#{environment}"
  engine.create_cocoon(environment: environment, temperature: temperature, humidity: humidity)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#disturb(cocoon_id:, force: 0.1, engine: nil) ⇒ Object



92
93
94
95
96
97
98
99
100
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 92

def disturb(cocoon_id:, force: 0.1, engine: nil, **)
  return { success: false, reason: :missing_cocoon_id } if cocoon_id.nil?

  engine ||= default_engine
  log.debug "[cognitive_chrysalis] disturbing cocoon=#{cocoon_id} force=#{force}"
  engine.disturb_cocoon(cocoon_id: cocoon_id, force: force)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#emerge(chrysalis_id:, force: false, engine: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 78

def emerge(chrysalis_id:, force: false, engine: nil, **)
  return { success: false, reason: :missing_chrysalis_id } if chrysalis_id.nil?

  engine ||= default_engine
  log.debug "[cognitive_chrysalis] emerging chrysalis=#{chrysalis_id} force=#{force}"
  if force
    engine.force_emerge(chrysalis_id: chrysalis_id)
  else
    engine.natural_emerge(chrysalis_id: chrysalis_id)
  end
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#enclose(chrysalis_id:, cocoon_id:, engine: nil) ⇒ Object



49
50
51
52
53
54
55
56
57
58
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 49

def enclose(chrysalis_id:, cocoon_id:, engine: nil, **)
  return { success: false, reason: :missing_chrysalis_id } if chrysalis_id.nil?
  return { success: false, reason: :missing_cocoon_id }    if cocoon_id.nil?

  engine ||= default_engine
  log.debug "[cognitive_chrysalis] enclosing chrysalis=#{chrysalis_id} in cocoon=#{cocoon_id}"
  engine.enclose(chrysalis_id: chrysalis_id, cocoon_id: cocoon_id)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#incubate(chrysalis_id:, engine: nil) ⇒ Object



60
61
62
63
64
65
66
67
68
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 60

def incubate(chrysalis_id:, engine: nil, **)
  return { success: false, reason: :missing_chrysalis_id } if chrysalis_id.nil?

  engine ||= default_engine
  log.debug "[cognitive_chrysalis] incubating chrysalis=#{chrysalis_id}"
  engine.incubate(chrysalis_id: chrysalis_id)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#incubate_all(engine: nil) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 70

def incubate_all(engine: nil, **)
  engine ||= default_engine
  log.debug '[cognitive_chrysalis] incubating all eligible chrysalises'
  engine.incubate_all!
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#list_chrysalises(engine: nil) ⇒ Object



102
103
104
105
106
107
108
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 102

def list_chrysalises(engine: nil, **)
  engine ||= default_engine
  all = engine.instance_variable_get(:@chrysalises) || {}
  { success: true, chrysalises: all.values.map(&:to_h), count: all.size }
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#metamorphosis_status(engine: nil) ⇒ Object



110
111
112
113
114
115
116
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 110

def metamorphosis_status(engine: nil, **)
  engine ||= default_engine
  report = engine.metamorphosis_report
  { success: true }.merge(report)
rescue ArgumentError => e
  { success: false, reason: e.message }
end

#spin(chrysalis_id:, engine: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 39

def spin(chrysalis_id:, engine: nil, **)
  return { success: false, reason: :missing_chrysalis_id } if chrysalis_id.nil?

  engine ||= default_engine
  log.debug "[cognitive_chrysalis] spinning chrysalis=#{chrysalis_id}"
  engine.spin(chrysalis_id: chrysalis_id)
rescue ArgumentError => e
  { success: false, reason: e.message }
end