Class: AgentHarness::Providers::Registry
- Inherits:
-
Object
- Object
- AgentHarness::Providers::Registry
- Includes:
- Singleton
- Defined in:
- lib/agent_harness/providers/registry.rb
Overview
Registry for provider classes
Manages registration and lookup of provider classes. Supports dynamic registration of custom providers and aliasing of provider names.
Instance Method Summary collapse
-
#all ⇒ Array<Symbol>
List all registered provider names.
-
#available ⇒ Array<Symbol>
List available providers (CLI installed).
-
#get(name) ⇒ Class
Get provider class by name.
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
-
#register(name, klass, aliases: []) ⇒ void
Register a provider class.
-
#registered?(name) ⇒ Boolean
Check if provider is registered.
-
#reset! ⇒ void
Reset registry (useful for testing).
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
20 21 22 23 24 |
# File 'lib/agent_harness/providers/registry.rb', line 20 def initialize @providers = {} @aliases = {} @builtin_registered = false end |
Instance Method Details
#all ⇒ Array<Symbol>
List all registered provider names
69 70 71 72 |
# File 'lib/agent_harness/providers/registry.rb', line 69 def all ensure_builtin_providers_registered @providers.keys end |
#available ⇒ Array<Symbol>
List available providers (CLI installed)
77 78 79 80 |
# File 'lib/agent_harness/providers/registry.rb', line 77 def available ensure_builtin_providers_registered @providers.select { |_, klass| klass.available? }.keys end |
#get(name) ⇒ Class
Get provider class by name
50 51 52 53 54 |
# File 'lib/agent_harness/providers/registry.rb', line 50 def get(name) ensure_builtin_providers_registered name = resolve_alias(name.to_sym) @providers[name] || raise(ConfigurationError, "Unknown provider: #{name}") end |
#register(name, klass, aliases: []) ⇒ void
This method returns an undefined value.
Register a provider class
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/agent_harness/providers/registry.rb', line 32 def register(name, klass, aliases: []) name = name.to_sym validate_provider_class!(klass) @providers[name] = klass aliases.each do |alias_name| @aliases[alias_name.to_sym] = name end AgentHarness.logger&.debug("[AgentHarness::Registry] Registered provider: #{name}") end |
#registered?(name) ⇒ Boolean
Check if provider is registered
60 61 62 63 64 |
# File 'lib/agent_harness/providers/registry.rb', line 60 def registered?(name) ensure_builtin_providers_registered name = resolve_alias(name.to_sym) @providers.key?(name) end |
#reset! ⇒ void
This method returns an undefined value.
Reset registry (useful for testing)
85 86 87 88 89 |
# File 'lib/agent_harness/providers/registry.rb', line 85 def reset! @providers.clear @aliases.clear @builtin_registered = false end |