Class: Aidp::ProviderManager

Inherits:
Object
  • Object
show all
Defined in:
lib/aidp/provider_manager.rb

Class Method Summary collapse

Class Method Details

.clear_cacheObject

Clear provider cache



126
127
128
# File 'lib/aidp/provider_manager.rb', line 126

def clear_cache
  @harness_factory&.clear_cache
end

.create_harness_provider(provider_name, options = {}) ⇒ Object

Create provider using harness configuration



37
38
39
40
41
42
# File 'lib/aidp/provider_manager.rb', line 37

def create_harness_provider(provider_name, options = {})
  factory = get_harness_factory
  raise "Harness factory not available" unless factory

  factory.create_provider(provider_name, options)
end

.get_all_providers(options = {}) ⇒ Object

Get all configured providers



45
46
47
48
49
50
# File 'lib/aidp/provider_manager.rb', line 45

def get_all_providers(options = {})
  factory = get_harness_factory
  return [] unless factory

  factory.create_all_providers(options)
end

.get_enabled_providers(options = {}) ⇒ Object

Get enabled providers



61
62
63
64
65
66
67
# File 'lib/aidp/provider_manager.rb', line 61

def get_enabled_providers(options = {})
  factory = get_harness_factory
  return [] unless factory

  enabled_names = factory.get_enabled_providers(options)
  factory.create_providers(enabled_names, options)
end

.get_harness_factoryObject

Get harness factory instance



27
28
29
30
31
32
33
34
# File 'lib/aidp/provider_manager.rb', line 27

def get_harness_factory
  @harness_factory ||= begin
    require_relative "harness/config_manager"
    Aidp::Harness::ProviderFactory.new
  rescue LoadError
    nil
  end
end

.get_provider(provider_type, options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/aidp/provider_manager.rb', line 9

def get_provider(provider_type, options = {})
  # Use harness factory if available
  if options[:use_harness] != false
    factory = get_harness_factory
    return factory.create_provider(provider_type, options) if factory
  end

  # Fallback to legacy method
  prompt = options[:prompt] || TTY::Prompt.new
  create_legacy_provider(provider_type, prompt: prompt)
end

.get_provider_capabilities(provider_name, options = {}) ⇒ Object

Get provider capabilities



86
87
88
89
90
91
# File 'lib/aidp/provider_manager.rb', line 86

def get_provider_capabilities(provider_name, options = {})
  factory = get_harness_factory
  return [] unless factory

  factory.get_provider_capabilities(provider_name, options)
end

.get_provider_models(provider_name, options = {}) ⇒ Object

Get provider models



102
103
104
105
106
107
# File 'lib/aidp/provider_manager.rb', line 102

def get_provider_models(provider_name, options = {})
  factory = get_harness_factory
  return [] unless factory

  factory.get_provider_models(provider_name, options)
end

.get_providers_by_priority(options = {}) ⇒ Object

Get providers by priority



53
54
55
56
57
58
# File 'lib/aidp/provider_manager.rb', line 53

def get_providers_by_priority(options = {})
  factory = get_harness_factory
  return [] unless factory

  factory.create_providers_by_priority(options)
end

.load_from_config(config = {}, options = {}) ⇒ Object



21
22
23
24
# File 'lib/aidp/provider_manager.rb', line 21

def load_from_config(config = {}, options = {})
  provider_type = config["provider"] || "cursor"
  get_provider(provider_type, options)
end

.provider_configured?(provider_name, options = {}) ⇒ Boolean

Check if provider is configured

Returns:

  • (Boolean)


70
71
72
73
74
75
# File 'lib/aidp/provider_manager.rb', line 70

def provider_configured?(provider_name, options = {})
  factory = get_harness_factory
  return false unless factory

  factory.get_configured_providers(options).include?(provider_name.to_s)
end

.provider_enabled?(provider_name, options = {}) ⇒ Boolean

Check if provider is enabled

Returns:

  • (Boolean)


78
79
80
81
82
83
# File 'lib/aidp/provider_manager.rb', line 78

def provider_enabled?(provider_name, options = {})
  factory = get_harness_factory
  return false unless factory

  factory.get_enabled_providers(options).include?(provider_name.to_s)
end

.provider_supports_feature?(provider_name, feature, options = {}) ⇒ Boolean

Check if provider supports feature

Returns:

  • (Boolean)


94
95
96
97
98
99
# File 'lib/aidp/provider_manager.rb', line 94

def provider_supports_feature?(provider_name, feature, options = {})
  factory = get_harness_factory
  return false unless factory

  factory.provider_supports_feature?(provider_name, feature, options)
end

.reload_configObject

Reload configuration



131
132
133
# File 'lib/aidp/provider_manager.rb', line 131

def reload_config
  @harness_factory&.reload_config
end

.validate_all_provider_configs(options = {}) ⇒ Object

Validate all provider configurations



118
119
120
121
122
123
# File 'lib/aidp/provider_manager.rb', line 118

def validate_all_provider_configs(options = {})
  factory = get_harness_factory
  return {} unless factory

  factory.validate_all_provider_configs(options)
end

.validate_provider_config(provider_name, options = {}) ⇒ Object

Validate provider configuration



110
111
112
113
114
115
# File 'lib/aidp/provider_manager.rb', line 110

def validate_provider_config(provider_name, options = {})
  factory = get_harness_factory
  return ["Harness factory not available"] unless factory

  factory.validate_provider_config(provider_name, options)
end