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



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 22

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



35
36
37
38
39
40
41
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 35

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



96
97
98
99
100
101
102
103
104
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 96

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



82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 82

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



53
54
55
56
57
58
59
60
61
62
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 53

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



64
65
66
67
68
69
70
71
72
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 64

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



74
75
76
77
78
79
80
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 74

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



106
107
108
109
110
111
112
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 106

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

#logObject



12
13
14
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 12

def log
  Legion::Logging
end

#metamorphosis_status(engine: nil) ⇒ Object



114
115
116
117
118
119
120
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 114

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



43
44
45
46
47
48
49
50
51
# File 'lib/legion/extensions/agentic/learning/chrysalis/runners/cognitive_chrysalis.rb', line 43

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