Class: Legion::Extensions::Agentic::Executive::Volition::Helpers::GoalBridge

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/agentic/executive/volition/helpers/goal_bridge.rb

Instance Method Summary collapse

Constructor Details

#initialize(goal_client:, persistence: nil) ⇒ GoalBridge

Returns a new instance of GoalBridge.



12
13
14
15
16
17
# File 'lib/legion/extensions/agentic/executive/volition/helpers/goal_bridge.rb', line 12

def initialize(goal_client:, persistence: nil)
  @goal_client = goal_client
  @persistence = persistence || default_persistence
  @bridged_intentions = @persistence&.load_bridge_state || {}
  @mutex = Mutex.new
end

Instance Method Details

#bridge_intentions(intentions) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/legion/extensions/agentic/executive/volition/helpers/goal_bridge.rb', line 19

def bridge_intentions(intentions)
  result = { bridged: 0, skipped: 0, duplicates: 0, goal_ids: [], errors: [] }
  return result if intentions.nil? || intentions.empty?

  intentions.each do |intention|
    outcome = bridge_one(intention)
    case outcome[:status]
    when :bridged
      result[:bridged] += 1
      result[:goal_ids] << outcome[:goal_id]
    when :skipped   then result[:skipped] += 1
    when :duplicate then result[:duplicates] += 1
    when :error     then result[:errors] << outcome[:error]
    end
  end

  persist_bridge_state
  log.info "[goal_bridge] bridged #{result[:bridged]} intentions to goals"
  result
end