Class: Insika::ToolRegistry
- 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
-
#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. -
#side_effect?(name) ⇒ Boolean
-> bool; consumed by ToolEnvelope.
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.
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 |