Module: Legion::Extensions::Agentic::Executive::LoadBalancing::Runners::CognitiveLoadBalancing
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb
Instance Method Summary collapse
- #assign_cognitive_load(subsystem_id:, amount:) ⇒ Object
- #auto_assign_load(amount:, subsystem_type: nil) ⇒ Object
- #cognitive_load_balance_report ⇒ Object
- #cognitive_load_balancing_stats ⇒ Object
- #most_loaded_report(limit: 5) ⇒ Object
- #overloaded_subsystems_report ⇒ Object
- #rebalance_cognitive_load ⇒ Object
- #register_cognitive_subsystem(name:, subsystem_type: :general, capacity: nil) ⇒ Object
- #shed_cognitive_load(subsystem_id:, amount:) ⇒ Object
Instance Method Details
#assign_cognitive_load(subsystem_id:, amount:) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 20 def assign_cognitive_load(subsystem_id:, amount:, **) result = engine.assign_load(subsystem_id: subsystem_id, amount: amount) return { success: false, error: 'subsystem not found' } unless result { success: true }.merge(result.to_h) end |
#auto_assign_load(amount:, subsystem_type: nil) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 34 def auto_assign_load(amount:, subsystem_type: nil, **) result = engine.auto_assign(amount: amount, subsystem_type: subsystem_type) return { success: false, error: 'no available subsystem' } unless result { success: true, assigned_to: result.name }.merge(result.to_h) end |
#cognitive_load_balance_report ⇒ Object
56 57 58 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 56 def cognitive_load_balance_report(**) engine.balance_report end |
#cognitive_load_balancing_stats ⇒ Object
60 61 62 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 60 def cognitive_load_balancing_stats(**) engine.to_h end |
#most_loaded_report(limit: 5) ⇒ Object
51 52 53 54 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 51 def most_loaded_report(limit: 5, **) subs = engine.most_loaded(limit: limit) { success: true, limit: limit, subsystems: subs.map(&:to_h) } end |
#overloaded_subsystems_report ⇒ Object
46 47 48 49 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 46 def overloaded_subsystems_report(**) subs = engine.overloaded_subsystems { success: true, count: subs.size, subsystems: subs.map(&:to_h) } end |
#rebalance_cognitive_load ⇒ Object
41 42 43 44 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 41 def rebalance_cognitive_load(**) transfers = engine.rebalance { success: true, transfers: transfers, stats: engine.to_h } end |
#register_cognitive_subsystem(name:, subsystem_type: :general, capacity: nil) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 12 def register_cognitive_subsystem(name:, subsystem_type: :general, capacity: nil, **) cap = capacity || Helpers::Constants::DEFAULT_CAPACITY sub = engine.register_subsystem(name: name, subsystem_type: subsystem_type, capacity: cap) { success: true }.merge(sub.to_h) end |
#shed_cognitive_load(subsystem_id:, amount:) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/legion/extensions/agentic/executive/load_balancing/runners/cognitive_load_balancing.rb', line 27 def shed_cognitive_load(subsystem_id:, amount:, **) result = engine.shed_load(subsystem_id: subsystem_id, amount: amount) return { success: false, error: 'subsystem not found' } unless result { success: true, shed: result } end |