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.



45
46
47
# File 'lib/skill_bench/config/store.rb', line 45

def initialize
  @llm_providers_config = {}
end

Instance Attribute Details

#allow_host_executionBoolean? (readonly)

Returns whether running commands directly on the host is permitted when no real sandbox isolation (container) is active.

Returns:

  • (Boolean, nil)

    true when host execution is explicitly allowed



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

def allow_host_execution
  @allow_host_execution
end

#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

#command_argument_constraintsHash? (readonly)

Returns the optional per-command argument constraints.

Returns:

  • (Hash, nil)

    base command => disallowed argument substrings/flags, or nil when unconfigured



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

def command_argument_constraints
  @command_argument_constraints
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



37
38
39
# File 'lib/skill_bench/config/store.rb', line 37

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



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

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



52
53
54
# File 'lib/skill_bench/config/store.rb', line 52

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



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

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

#assign_allow_host_execution(value) ⇒ Boolean

Sets whether host command execution is permitted without isolation.

Parameters:

  • value (Boolean)

    true to permit un-isolated host execution

Returns:

  • (Boolean)

    assigned host execution flag



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

def assign_allow_host_execution(value)
  @allow_host_execution = value
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



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

def assign_allowed_commands(value)
  @allowed_commands = value
end

#assign_command_argument_constraints(value) ⇒ Hash?

Sets the optional per-command argument constraints.

Parameters:

  • value (Hash, nil)

    base command => disallowed argument substrings/flags

Returns:

  • (Hash, nil)

    assigned constraints



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

def assign_command_argument_constraints(value)
  @command_argument_constraints = value
end

#assign_current_llm_provider(value) ⇒ Symbol?

Sets the current provider.

Parameters:

  • value (String, Symbol)

    provider name

Returns:

  • (Symbol, nil)

    assigned provider



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

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



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

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



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

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



74
75
76
# File 'lib/skill_bench/config/store.rb', line 74

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



59
60
61
# File 'lib/skill_bench/config/store.rb', line 59

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



145
146
147
# File 'lib/skill_bench/config/store.rb', line 145

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



154
155
156
# File 'lib/skill_bench/config/store.rb', line 154

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



199
200
201
# File 'lib/skill_bench/config/store.rb', line 199

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



172
173
174
# File 'lib/skill_bench/config/store.rb', line 172

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



181
182
183
# File 'lib/skill_bench/config/store.rb', line 181

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



163
164
165
# File 'lib/skill_bench/config/store.rb', line 163

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



190
191
192
# File 'lib/skill_bench/config/store.rb', line 190

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



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

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