Module: Legion::Tools::Discovery
- Defined in:
- lib/legion/tools/discovery.rb
Constant Summary collapse
- ALWAYS_LOADED =
Extension/runner pairs that should always be loaded (not deferred) nil means all runners for that extension; array means specific runners only
{ 'apollo' => ['knowledge'], 'eval' => ['evaluation'] }.freeze
Class Method Summary collapse
Class Method Details
.discover_and_register ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/legion/tools/discovery.rb', line 22 def discover_and_register return unless defined?(Legion::Extensions) exts = loaded_extensions log&.info("[Tools::Discovery] scanning #{exts.size} extensions") exts.each do |ext| discover_runners(ext) rescue StandardError => e handle_exception(e, level: :warn, handled: true, operation: :discovery_process_extension) end log&.info( "[Tools::Discovery] done: always=#{Registry.tools.size} " \ "deferred=#{Registry.deferred_tools.size}" ) end |
.handle_exception(err, **opts) ⇒ Object
18 19 20 |
# File 'lib/legion/tools/discovery.rb', line 18 def handle_exception(err, **opts) log&.warn("[Tools::Discovery] #{opts[:operation]}: #{err.}") end |