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.



33
34
35
# File 'lib/skill_bench/config/store.rb', line 33

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

#skill_sourcesHash?

Returns skill sources mapping.

Returns:

  • (Hash, nil)

    skill source name → directory path



30
31
32
# File 'lib/skill_bench/config/store.rb', line 30

def skill_sources
  @skill_sources
end

Instance Method Details

#api_keyString?

Returns the API key for the current provider.

Returns:

  • (String, nil)

    configured API key



40
41
42
# File 'lib/skill_bench/config/store.rb', line 40

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



70
71
72
73
74
# File 'lib/skill_bench/config/store.rb', line 70

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



108
109
110
# File 'lib/skill_bench/config/store.rb', line 108

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



90
91
92
93
94
# File 'lib/skill_bench/config/store.rb', line 90

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



100
101
102
# File 'lib/skill_bench/config/store.rb', line 100

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



54
55
56
# File 'lib/skill_bench/config/store.rb', line 54

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



62
63
64
# File 'lib/skill_bench/config/store.rb', line 62

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



47
48
49
# File 'lib/skill_bench/config/store.rb', line 47

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



116
117
118
# File 'lib/skill_bench/config/store.rb', line 116

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



125
126
127
# File 'lib/skill_bench/config/store.rb', line 125

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



170
171
172
# File 'lib/skill_bench/config/store.rb', line 170

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



143
144
145
# File 'lib/skill_bench/config/store.rb', line 143

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



152
153
154
# File 'lib/skill_bench/config/store.rb', line 152

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



134
135
136
# File 'lib/skill_bench/config/store.rb', line 134

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



161
162
163
# File 'lib/skill_bench/config/store.rb', line 161

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



82
83
84
# File 'lib/skill_bench/config/store.rb', line 82

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