Module: Legion::Extensions::Agentic::Integration::Mycelium::Runners::CognitiveMycelium

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb

Instance Method Summary collapse

Instance Method Details

#connect(source_id:, target_id:, nutrient_type:, strength: 0.5, engine: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb', line 25

def connect(source_id:, target_id:, nutrient_type:,
            strength: 0.5, engine: nil, **)
  eng   = resolve_engine(engine)
  hypha = eng.connect(source_id: source_id, target_id: target_id,
                      nutrient_type: nutrient_type,
                      strength: strength)
  log.debug("[cognitive_mycelium] connect: source=#{source_id[0..7]} target=#{target_id[0..7]}")
  { success: true, hypha: hypha.to_h }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#create_node(node_type:, domain:, content:, nutrient_level: 0.5, engine: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb', line 13

def create_node(node_type:, domain:, content:,
                nutrient_level: 0.5, engine: nil, **)
  eng  = resolve_engine(engine)
  node = eng.create_node(node_type: node_type, domain: domain,
                         content: content,
                         nutrient_level: nutrient_level)
  log.debug("[cognitive_mycelium] create_node: type=#{node_type} domain=#{domain}")
  { success: true, node: node.to_h }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#fruit(node_id:, fruiting_type:, content:, engine: nil) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb', line 46

def fruit(node_id:, fruiting_type:, content:, engine: nil, **)
  eng  = resolve_engine(engine)
  body = eng.fruit!(node_id: node_id, fruiting_type: fruiting_type,
                    content: content)
  log.debug("[cognitive_mycelium] fruit: node_id=#{node_id[0..7]} type=#{fruiting_type}")
  { success: true, fruiting_body: body.to_h }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#network_status(engine: nil) ⇒ Object



56
57
58
59
60
# File 'lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb', line 56

def network_status(engine: nil, **)
  eng = resolve_engine(engine)
  log.debug('[cognitive_mycelium] network_status')
  { success: true, report: eng.network_report }
end

#transfer_nutrients(hypha_id:, engine: nil) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/legion/extensions/agentic/integration/mycelium/runners/cognitive_mycelium.rb', line 37

def transfer_nutrients(hypha_id:, engine: nil, **)
  eng    = resolve_engine(engine)
  result = eng.transfer_nutrients(hypha_id: hypha_id)
  log.debug("[cognitive_mycelium] transfer_nutrients: hypha_id=#{hypha_id[0..7]}")
  { success: true }.merge(result)
rescue ArgumentError => e
  { success: false, error: e.message }
end