Class: PromptObjects::Registry
- Inherits:
-
Object
- Object
- PromptObjects::Registry
- Defined in:
- lib/prompt_objects/registry.rb
Overview
Registry for all capabilities (both primitives and prompt objects). Provides lookup by name and generates tool descriptors for LLM calls.
Instance Method Summary collapse
-
#all ⇒ Array<Capability>
Get all registered capabilities.
-
#all_descriptors ⇒ Array<Hash>
Get tool descriptors for all capabilities.
-
#descriptors_for(names) ⇒ Array<Hash>
Get tool descriptors for a list of capability names.
-
#exists?(name) ⇒ Boolean
Check if a capability exists.
-
#get(name) ⇒ Capability?
Get a capability by name.
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
-
#names ⇒ Array<String>
Get all capability names.
-
#primitives ⇒ Array<Primitive>
Get only primitives.
-
#prompt_object?(name) ⇒ Boolean
Check if a capability is a prompt object.
-
#prompt_objects ⇒ Array<PromptObject>
Get only prompt objects.
-
#register(capability) ⇒ Capability
Register a capability.
-
#unregister(name) ⇒ Capability?
Unregister a capability by name.
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
7 8 9 |
# File 'lib/prompt_objects/registry.rb', line 7 def initialize @capabilities = {} end |
Instance Method Details
#all ⇒ Array<Capability>
Get all registered capabilities.
42 43 44 |
# File 'lib/prompt_objects/registry.rb', line 42 def all @capabilities.values end |
#all_descriptors ⇒ Array<Hash>
Get tool descriptors for all capabilities.
84 85 86 |
# File 'lib/prompt_objects/registry.rb', line 84 def all_descriptors @capabilities.values.map(&:descriptor) end |
#descriptors_for(names) ⇒ Array<Hash>
Get tool descriptors for a list of capability names.
75 76 77 78 79 80 |
# File 'lib/prompt_objects/registry.rb', line 75 def descriptors_for(names) names.filter_map do |name| cap = get(name) cap&.descriptor end end |
#exists?(name) ⇒ Boolean
Check if a capability exists.
36 37 38 |
# File 'lib/prompt_objects/registry.rb', line 36 def exists?(name) @capabilities.key?(name.to_s) end |
#get(name) ⇒ Capability?
Get a capability by name.
29 30 31 |
# File 'lib/prompt_objects/registry.rb', line 29 def get(name) @capabilities[name.to_s] end |
#names ⇒ Array<String>
Get all capability names.
48 49 50 |
# File 'lib/prompt_objects/registry.rb', line 48 def names @capabilities.keys end |
#primitives ⇒ Array<Primitive>
Get only primitives.
60 61 62 |
# File 'lib/prompt_objects/registry.rb', line 60 def primitives @capabilities.values.select { |c| c.is_a?(Primitive) } end |
#prompt_object?(name) ⇒ Boolean
Check if a capability is a prompt object.
67 68 69 70 |
# File 'lib/prompt_objects/registry.rb', line 67 def prompt_object?(name) cap = get(name) cap.is_a?(PromptObject) end |
#prompt_objects ⇒ Array<PromptObject>
Get only prompt objects.
54 55 56 |
# File 'lib/prompt_objects/registry.rb', line 54 def prompt_objects @capabilities.values.select { |c| c.is_a?(PromptObject) } end |
#register(capability) ⇒ Capability
Register a capability.
14 15 16 17 |
# File 'lib/prompt_objects/registry.rb', line 14 def register(capability) @capabilities[capability.name] = capability capability end |
#unregister(name) ⇒ Capability?
Unregister a capability by name.
22 23 24 |
# File 'lib/prompt_objects/registry.rb', line 22 def unregister(name) @capabilities.delete(name.to_s) end |