Module: Legion::Extensions::Agentic::Memory::SemanticPriming::Runners::SemanticPriming
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb
Instance Method Summary collapse
- #add_node(label:, node_type: :concept, engine: nil) ⇒ Object
- #connect_nodes(source_id:, target_id:, weight: nil, engine: nil) ⇒ Object
- #decay(engine: nil) ⇒ Object
- #find_node(label:, engine: nil) ⇒ Object
- #most_primed(limit: 5, engine: nil) ⇒ Object
- #neighbors(node_id:, engine: nil) ⇒ Object
- #prime(node_id:, amount: nil, engine: nil) ⇒ Object
- #prime_and_spread(node_id:, amount: nil, depth: nil, engine: nil) ⇒ Object
- #primed_nodes(engine: nil) ⇒ Object
- #priming_report(engine: nil) ⇒ Object
- #remove_node(node_id:, engine: nil) ⇒ Object
- #reset(engine: nil) ⇒ Object
- #spread_activation(source_id:, depth: nil, engine: nil) ⇒ Object
- #status(engine: nil) ⇒ Object
Instance Method Details
#add_node(label:, node_type: :concept, engine: nil) ⇒ Object
12 13 14 15 16 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 12 def add_node(label:, node_type: :concept, engine: nil, **) eng = engine || default_engine node = eng.add_node(label: label, node_type: node_type) { success: true, node: node.to_h } end |
#connect_nodes(source_id:, target_id:, weight: nil, engine: nil) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 26 def connect_nodes(source_id:, target_id:, weight: nil, engine: nil, **) eng = engine || default_engine w = weight || Helpers::Constants::DEFAULT_WEIGHT conn = eng.connect(source_id: source_id, target_id: target_id, weight: w) return { success: false, error: 'invalid nodes or self-connection' } unless conn { success: true, connection: conn.to_h } end |
#decay(engine: nil) ⇒ Object
63 64 65 66 67 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 63 def decay(engine: nil, **) eng = engine || default_engine result = eng.decay_all! { success: true, **result } end |
#find_node(label:, engine: nil) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 75 def find_node(label:, engine: nil, **) eng = engine || default_engine node = eng.find_node_by_label(label: label) return { success: false, error: 'node not found' } unless node { success: true, node: node.to_h } end |
#most_primed(limit: 5, engine: nil) ⇒ Object
94 95 96 97 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 94 def most_primed(limit: 5, engine: nil, **) eng = engine || default_engine { success: true, nodes: eng.most_primed(limit: limit).map(&:to_h) } end |
#neighbors(node_id:, engine: nil) ⇒ Object
83 84 85 86 87 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 83 def neighbors(node_id:, engine: nil, **) eng = engine || default_engine nodes = eng.neighbors(node_id: node_id) { success: true, neighbors: nodes.map(&:to_h) } end |
#prime(node_id:, amount: nil, engine: nil) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 35 def prime(node_id:, amount: nil, engine: nil, **) eng = engine || default_engine amt = amount || Helpers::Constants::PRIMING_BOOST node = eng.prime_node(node_id: node_id, amount: amt) return { success: false, error: 'node not found' } unless node { success: true, node: node.to_h } end |
#prime_and_spread(node_id:, amount: nil, depth: nil, engine: nil) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 44 def prime_and_spread(node_id:, amount: nil, depth: nil, engine: nil, **) eng = engine || default_engine amt = amount || Helpers::Constants::PRIMING_BOOST d = depth || Helpers::Constants::MAX_SPREAD_DEPTH result = eng.prime_and_spread(node_id: node_id, amount: amt, depth: d) return { success: false, error: 'node not found' } unless result { success: true, **result } end |
#primed_nodes(engine: nil) ⇒ Object
89 90 91 92 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 89 def primed_nodes(engine: nil, **) eng = engine || default_engine { success: true, nodes: eng.primed_nodes.map(&:to_h) } end |
#priming_report(engine: nil) ⇒ Object
99 100 101 102 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 99 def priming_report(engine: nil, **) eng = engine || default_engine { success: true, report: eng.priming_report } end |
#remove_node(node_id:, engine: nil) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 18 def remove_node(node_id:, engine: nil, **) eng = engine || default_engine node = eng.remove_node(node_id: node_id) return { success: false, error: 'node not found' } unless node { success: true, removed: node.to_h } end |
#reset(engine: nil) ⇒ Object
69 70 71 72 73 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 69 def reset(engine: nil, **) eng = engine || default_engine result = eng.reset_all! { success: true, **result } end |
#spread_activation(source_id:, depth: nil, engine: nil) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 54 def spread_activation(source_id:, depth: nil, engine: nil, **) eng = engine || default_engine d = depth || Helpers::Constants::MAX_SPREAD_DEPTH result = eng.spread_activation(source_id: source_id, depth: d) return { success: false, error: 'node not found' } unless result { success: true, activated: result } end |
#status(engine: nil) ⇒ Object
104 105 106 107 |
# File 'lib/legion/extensions/agentic/memory/semantic_priming/runners/semantic_priming.rb', line 104 def status(engine: nil, **) eng = engine || default_engine { success: true, **eng.to_h } end |