Class: ClaudeSwarm::Configuration
- Inherits:
-
Object
- Object
- ClaudeSwarm::Configuration
- Defined in:
- lib/claude_swarm/configuration.rb
Constant Summary collapse
- VALID_PROVIDERS =
Frozen constants for validation
["claude", "openai"].freeze
- OPENAI_SPECIFIC_FIELDS =
["temperature", "api_version", "openai_token_env", "base_url", "reasoning_effort", "zdr"].freeze
- VALID_API_VERSIONS =
["chat_completion", "responses"].freeze
- VALID_REASONING_EFFORTS =
["low", "medium", "high"].freeze
- ENV_VAR_PATTERN =
Regex patterns
/\$\{([^}]+)\}/- ENV_VAR_WITH_DEFAULT_PATTERN =
/\$\{([^:}]+)(:=([^}]*))?\}/
Instance Attribute Summary collapse
-
#base_dir ⇒ Object
readonly
Returns the value of attribute base_dir.
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#config_path ⇒ Object
readonly
Returns the value of attribute config_path.
-
#instances ⇒ Object
readonly
Returns the value of attribute instances.
-
#main_instance ⇒ Object
readonly
Returns the value of attribute main_instance.
-
#swarm ⇒ Object
readonly
Returns the value of attribute swarm.
-
#swarm_name ⇒ Object
readonly
Returns the value of attribute swarm_name.
Instance Method Summary collapse
- #after_commands ⇒ Object
- #before_commands ⇒ Object
- #connections_for(instance_name) ⇒ Object
-
#initialize(config_path, base_dir: nil, options: {}) ⇒ Configuration
constructor
A new instance of Configuration.
- #instance_names ⇒ Object
- #main_instance_config ⇒ Object
- #validate_directories ⇒ Object
Constructor Details
#initialize(config_path, base_dir: nil, options: {}) ⇒ Configuration
Returns a new instance of Configuration.
16 17 18 19 20 21 22 |
# File 'lib/claude_swarm/configuration.rb', line 16 def initialize(config_path, base_dir: nil, options: {}) @config_path = Pathname.new(config_path). @config_dir = @config_path.dirname @base_dir = base_dir || @config_dir.to_s @options = load_and_validate end |
Instance Attribute Details
#base_dir ⇒ Object (readonly)
Returns the value of attribute base_dir.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def base_dir @base_dir end |
#config ⇒ Object (readonly)
Returns the value of attribute config.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def config @config end |
#config_path ⇒ Object (readonly)
Returns the value of attribute config_path.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def config_path @config_path end |
#instances ⇒ Object (readonly)
Returns the value of attribute instances.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def instances @instances end |
#main_instance ⇒ Object (readonly)
Returns the value of attribute main_instance.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def main_instance @main_instance end |
#swarm ⇒ Object (readonly)
Returns the value of attribute swarm.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def swarm @swarm end |
#swarm_name ⇒ Object (readonly)
Returns the value of attribute swarm_name.
14 15 16 |
# File 'lib/claude_swarm/configuration.rb', line 14 def swarm_name @swarm_name end |
Instance Method Details
#after_commands ⇒ Object
40 41 42 |
# File 'lib/claude_swarm/configuration.rb', line 40 def after_commands @swarm["after"] || [] end |
#before_commands ⇒ Object
36 37 38 |
# File 'lib/claude_swarm/configuration.rb', line 36 def before_commands @swarm["before"] || [] end |
#connections_for(instance_name) ⇒ Object
32 33 34 |
# File 'lib/claude_swarm/configuration.rb', line 32 def connections_for(instance_name) instances[instance_name][:connections] || [] end |
#instance_names ⇒ Object
28 29 30 |
# File 'lib/claude_swarm/configuration.rb', line 28 def instance_names instances.keys end |
#main_instance_config ⇒ Object
24 25 26 |
# File 'lib/claude_swarm/configuration.rb', line 24 def main_instance_config instances[main_instance] end |
#validate_directories ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/claude_swarm/configuration.rb', line 44 def validate_directories @instances.each do |name, instance| # Validate all directories in the directories array instance[:directories].each do |directory| raise Error, "Directory '#{directory}' for instance '#{name}' does not exist" unless File.directory?(directory) end end end |