Module: Legion::Extensions::Agentic::Executive::GoalManagement::Runners::GoalManagement

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb

Instance Method Summary collapse

Instance Method Details

#abandon_goal(goal_id:) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 47

def abandon_goal(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner abandon_goal id=#{goal_id}"
  engine.abandon_goal(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] abandon_goal error: #{e.message}"
  { success: false, error: e.message }
end

#activate_goal(goal_id:) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 31

def activate_goal(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner activate_goal id=#{goal_id}"
  engine.activate_goal(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] activate_goal error: #{e.message}"
  { success: false, error: e.message }
end

#add_goal(content:, parent_id: nil, domain: :general, priority: Helpers::Constants::DEFAULT_PRIORITY, deadline: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 13

def add_goal(content:, parent_id: nil, domain: :general,
             priority: Helpers::Constants::DEFAULT_PRIORITY, deadline: nil, **)
  Legion::Logging.debug "[goal_management] runner add_goal domain=#{domain}"
  engine.add_goal(content: content, parent_id: parent_id, domain: domain,
                  priority: priority, deadline: deadline)
rescue StandardError => e
  Legion::Logging.error "[goal_management] add_goal error: #{e.message}"
  { success: false, error: e.message }
end

#advance_goal_progress(goal_id:, amount:) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 71

def advance_goal_progress(goal_id:, amount:, **)
  Legion::Logging.debug "[goal_management] runner advance_goal_progress id=#{goal_id} amount=#{amount}"
  engine.advance_progress(goal_id: goal_id, amount: amount)
rescue StandardError => e
  Legion::Logging.error "[goal_management] advance_goal_progress error: #{e.message}"
  { success: false, error: e.message }
end

#block_goal(goal_id:) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 55

def block_goal(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner block_goal id=#{goal_id}"
  engine.block_goal(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] block_goal error: #{e.message}"
  { success: false, error: e.message }
end

#complete_goal(goal_id:) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 39

def complete_goal(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner complete_goal id=#{goal_id}"
  engine.complete_goal(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] complete_goal error: #{e.message}"
  { success: false, error: e.message }
end

#decay_prioritiesObject



140
141
142
143
144
145
146
147
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 140

def decay_priorities(**)
  result = engine.decay_all_priorities!
  Legion::Logging.debug "[goal_management] decay_priorities decayed=#{result[:decayed]}"
  result.merge(success: true)
rescue StandardError => e
  Legion::Logging.error "[goal_management] decay_priorities error: #{e.message}"
  { success: false, error: e.message }
end

#decompose_goal(goal_id:, sub_goals:) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 23

def decompose_goal(goal_id:, sub_goals:, **)
  Legion::Logging.debug "[goal_management] runner decompose_goal parent=#{goal_id}"
  engine.decompose(goal_id: goal_id, sub_goals: sub_goals)
rescue StandardError => e
  Legion::Logging.error "[goal_management] decompose_goal error: #{e.message}"
  { success: false, error: e.message }
end

#detect_goal_conflicts(goal_id:) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 79

def detect_goal_conflicts(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner detect_goal_conflicts id=#{goal_id}"
  engine.detect_conflicts(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] detect_goal_conflicts error: #{e.message}"
  { success: false, error: e.message }
end

#get_goal_tree(goal_id:) ⇒ Object



123
124
125
126
127
128
129
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 123

def get_goal_tree(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner get_goal_tree id=#{goal_id}"
  engine.goal_tree(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] get_goal_tree error: #{e.message}"
  { success: false, error: e.message }
end

#goal_statusObject



149
150
151
152
153
154
155
156
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 149

def goal_status(**)
  report = engine.goal_report
  Legion::Logging.debug "[goal_management] goal_status total=#{report[:total]}"
  { success: true }.merge(report)
rescue StandardError => e
  Legion::Logging.error "[goal_management] goal_status error: #{e.message}"
  { success: false, error: e.message }
end

#highest_priority_goals(limit: 5) ⇒ Object



131
132
133
134
135
136
137
138
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 131

def highest_priority_goals(limit: 5, **)
  goals = engine.highest_priority(limit: limit)
  Legion::Logging.debug "[goal_management] highest_priority_goals limit=#{limit} count=#{goals.size}"
  { success: true, goals: goals.map(&:to_h), count: goals.size }
rescue StandardError => e
  Legion::Logging.error "[goal_management] highest_priority_goals error: #{e.message}"
  { success: false, error: e.message }
end

#list_active_goalsObject



87
88
89
90
91
92
93
94
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 87

def list_active_goals(**)
  goals = engine.active_goals
  Legion::Logging.debug "[goal_management] list_active_goals count=#{goals.size}"
  { success: true, goals: goals.map(&:to_h), count: goals.size }
rescue StandardError => e
  Legion::Logging.error "[goal_management] list_active_goals error: #{e.message}"
  { success: false, error: e.message }
end

#list_blocked_goalsObject



96
97
98
99
100
101
102
103
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 96

def list_blocked_goals(**)
  goals = engine.blocked_goals
  Legion::Logging.debug "[goal_management] list_blocked_goals count=#{goals.size}"
  { success: true, goals: goals.map(&:to_h), count: goals.size }
rescue StandardError => e
  Legion::Logging.error "[goal_management] list_blocked_goals error: #{e.message}"
  { success: false, error: e.message }
end

#list_completed_goalsObject



114
115
116
117
118
119
120
121
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 114

def list_completed_goals(**)
  goals = engine.completed_goals
  Legion::Logging.debug "[goal_management] list_completed_goals count=#{goals.size}"
  { success: true, goals: goals.map(&:to_h), count: goals.size }
rescue StandardError => e
  Legion::Logging.error "[goal_management] list_completed_goals error: #{e.message}"
  { success: false, error: e.message }
end

#list_overdue_goalsObject



105
106
107
108
109
110
111
112
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 105

def list_overdue_goals(**)
  goals = engine.overdue_goals
  Legion::Logging.debug "[goal_management] list_overdue_goals count=#{goals.size}"
  { success: true, goals: goals.map(&:to_h), count: goals.size }
rescue StandardError => e
  Legion::Logging.error "[goal_management] list_overdue_goals error: #{e.message}"
  { success: false, error: e.message }
end

#unblock_goal(goal_id:) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/legion/extensions/agentic/executive/goal_management/runners/goal_management.rb', line 63

def unblock_goal(goal_id:, **)
  Legion::Logging.debug "[goal_management] runner unblock_goal id=#{goal_id}"
  engine.unblock_goal(goal_id: goal_id)
rescue StandardError => e
  Legion::Logging.error "[goal_management] unblock_goal error: #{e.message}"
  { success: false, error: e.message }
end