Class: Insika::ToolRegistry

Inherits:
Registry show all
Defined in:
lib/insika/tool_registry.rb

Overview

Tool registry. Inherits from the generic one; optional/side_effect live in the metadata (defaults false). side_effect: true marks a non-idempotent tool — the checkpoint mechanism consumes it via side_effect?.

Instance Method Summary collapse

Methods inherited from Registry

#deregister_plugin, #entries, #entry, #initialize, #names, #resolve

Constructor Details

This class inherits a constructor from Insika::Registry

Instance Method Details

#register(name, callable = nil, optional: false, side_effect: false, plugin: nil, **extra, &block) ⇒ Object

Legacy compat: optional:/plugin: are still accepted; side_effect: is new. Everything is normalized into the metadata (defaults false).



10
11
12
13
# File 'lib/insika/tool_registry.rb', line 10

def register(name, callable = nil, optional: false, side_effect: false, plugin: nil, **extra, &block)
  super(name, callable, plugin: plugin,
                        optional: optional, side_effect: side_effect, **extra, &block)
end

#side_effect?(name) ⇒ Boolean

-> bool; consumed by ToolEnvelope. Unknown tool = false.

Returns:

  • (Boolean)


16
17
18
19
# File 'lib/insika/tool_registry.rb', line 16

def side_effect?(name)
  entry = entries.find { |e| e.name == name.to_s }
  entry ? !!entry.[:side_effect] : false
end