Class: SkillBench::Config::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/config/store.rb

Overview

Holds mutable evaluator configuration state behind the Config facade.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStore

Initializes a new configuration store with empty provider settings.



28
29
30
# File 'lib/skill_bench/config/store.rb', line 28

def initialize
  @llm_providers_config = {}
end

Instance Attribute Details

#allowed_commandsArray<String>?

Returns the allowed command list.

Returns:

  • (Array<String>, nil)

    allowed commands



20
21
22
# File 'lib/skill_bench/config/store.rb', line 20

def allowed_commands
  @allowed_commands
end

#current_llm_providerSymbol?

Returns the current provider name.

Returns:

  • (Symbol, nil)

    current provider



10
11
12
# File 'lib/skill_bench/config/store.rb', line 10

def current_llm_provider
  @current_llm_provider
end

#llm_providers_configHash?

Returns provider configuration.

Returns:

  • (Hash, nil)

    provider configuration by provider name



25
26
27
# File 'lib/skill_bench/config/store.rb', line 25

def llm_providers_config
  @llm_providers_config
end

#max_execution_timeInteger? (readonly)

Returns the maximum command execution time.

Returns:

  • (Integer, nil)

    maximum execution time in seconds



15
16
17
# File 'lib/skill_bench/config/store.rb', line 15

def max_execution_time
  @max_execution_time
end

Instance Method Details

#api_keyString?

Returns the API key for the current provider.

Returns:

  • (String, nil)

    configured API key



35
36
37
# File 'lib/skill_bench/config/store.rb', line 35

def api_key
  llm_providers_config.dig(current_llm_provider, :api_key)
end

#apply_provider_config(providers) ⇒ Hash

Applies provider-specific configuration values.

Parameters:

  • providers (Hash)

    provider configuration by provider name

Returns:

  • (Hash)

    provider configuration



65
66
67
68
69
# File 'lib/skill_bench/config/store.rb', line 65

def apply_provider_config(providers)
  providers.each do |provider, config|
    provider_config(provider).merge!(config)
  end
end

#assign_allowed_commands(value) ⇒ Array<String>?

Sets allowed commands.

Parameters:

  • value (Array<String>, nil)

    allowed command list

Returns:

  • (Array<String>, nil)

    assigned allowed commands



103
104
105
# File 'lib/skill_bench/config/store.rb', line 103

def assign_allowed_commands(value)
  @allowed_commands = value
end

#assign_current_llm_provider(value) ⇒ Symbol?

Sets the current provider.

Parameters:

  • value (String, Symbol)

    provider name

Returns:

  • (Symbol, nil)

    assigned provider



85
86
87
88
89
# File 'lib/skill_bench/config/store.rb', line 85

def assign_current_llm_provider(value)
  stripped = value.to_s.strip
  @current_llm_provider = stripped.empty? ? nil : stripped.to_sym
  @current_llm_provider
end

#assign_max_execution_time(value) ⇒ Integer

Sets maximum command execution time.

Parameters:

  • value (Integer)

    maximum execution time in seconds

Returns:

  • (Integer)

    assigned maximum execution time



95
96
97
# File 'lib/skill_bench/config/store.rb', line 95

def assign_max_execution_time(value)
  @max_execution_time = value
end

#base_urlString?

Returns the base URL for the current provider.

Returns:

  • (String, nil)

    configured base URL



49
50
51
# File 'lib/skill_bench/config/store.rb', line 49

def base_url
  llm_providers_config.dig(current_llm_provider, :base_url)
end

#for_provider(provider) ⇒ Hash

Returns configuration for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

Returns:

  • (Hash)

    configuration for the provider



57
58
59
# File 'lib/skill_bench/config/store.rb', line 57

def for_provider(provider)
  llm_providers_config[provider.to_sym] || {}
end

#modelString?

Returns the model for the current provider.

Returns:

  • (String, nil)

    configured model name



42
43
44
# File 'lib/skill_bench/config/store.rb', line 42

def model
  llm_providers_config.dig(current_llm_provider, :model)
end

#replace_provider_config(value) ⇒ Hash

Sets provider configuration.

Parameters:

  • value (Hash)

    provider configuration

Returns:

  • (Hash)

    assigned provider configuration



111
112
113
# File 'lib/skill_bench/config/store.rb', line 111

def replace_provider_config(value)
  @llm_providers_config = value
end

#set_provider_api_key(provider, api_key) ⇒ String

Sets API key for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • api_key (String)

    API key value

Returns:

  • (String)

    assigned API key



120
121
122
# File 'lib/skill_bench/config/store.rb', line 120

def set_provider_api_key(provider, api_key)
  provider_config(provider)[:api_key] = api_key
end

#set_provider_base_url(provider, base_url) ⇒ String

Sets base_url for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • base_url (String)

    base URL

Returns:

  • (String)

    assigned base_url



165
166
167
# File 'lib/skill_bench/config/store.rb', line 165

def set_provider_base_url(provider, base_url)
  provider_config(provider)[:base_url] = base_url
end

#set_provider_endpoint(provider, endpoint) ⇒ String

Sets endpoint for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • endpoint (String)

    endpoint URL

Returns:

  • (String)

    assigned endpoint



138
139
140
# File 'lib/skill_bench/config/store.rb', line 138

def set_provider_endpoint(provider, endpoint)
  provider_config(provider)[:endpoint] = endpoint
end

#set_provider_location(provider, location) ⇒ String

Sets location for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • location (String)

    location

Returns:

  • (String)

    assigned location



147
148
149
# File 'lib/skill_bench/config/store.rb', line 147

def set_provider_location(provider, location)
  provider_config(provider)[:location] = location
end

#set_provider_model(provider, model) ⇒ String

Sets model for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • model (String)

    model name

Returns:

  • (String)

    assigned model



129
130
131
# File 'lib/skill_bench/config/store.rb', line 129

def set_provider_model(provider, model)
  provider_config(provider)[:model] = model
end

#set_provider_project_id(provider, project_id) ⇒ String

Sets project_id for a specific provider.

Parameters:

  • provider (Symbol)

    provider name

  • project_id (String)

    project ID

Returns:

  • (String)

    assigned project_id



156
157
158
# File 'lib/skill_bench/config/store.rb', line 156

def set_provider_project_id(provider, project_id)
  provider_config(provider)[:project_id] = project_id
end

#set_provider_setting(provider, setting, value) ⇒ Object

Sets one provider-specific configuration value.

Parameters:

  • provider (String, Symbol)

    provider name

  • setting (Symbol)

    provider setting name

  • value (Object)

    provider setting value

Returns:

  • (Object)

    assigned value



77
78
79
# File 'lib/skill_bench/config/store.rb', line 77

def set_provider_setting(provider, setting, value)
  provider_config(provider)[setting] = value
end