Module: Legion::Extensions::Synapse::Runners::Promote

Included in:
Client
Defined in:
lib/legion/extensions/synapse/runners/promote.rb

Constant Summary collapse

CONFIDENCE_THRESHOLD =
0.9
STABILITY_HOURS =
24

Instance Method Summary collapse

Instance Method Details

#promote(synapse_id: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/synapse/runners/promote.rb', line 14

def promote(synapse_id: nil, **)
  Data::Model.define_synapse_model
  Data::Model.define_synapse_mutation_model
  candidates = if synapse_id
                 s = Data::Model::Synapse[synapse_id]
                 s ? [s] : []
               else
                 find_promotable
               end

  promoted = []
  candidates.each do |synapse|
    next unless promotable?(synapse)

    entry = build_knowledge_entry(synapse)
    promoted << entry
  end

  {
    success:  true,
    promoted: promoted,
    count:    promoted.size
  }
end