Module: Clacky::ClackyEnv

Defined in:
lib/clacky/agent_config.rb

Overview

Clacky environment variable layer Provides configuration from CLACKY_XXX environment variables

Constant Summary collapse

ENV_API_KEY =

Environment variable names for default model

"CLACKY_API_KEY"
ENV_BASE_URL =
"CLACKY_BASE_URL"
ENV_MODEL =
"CLACKY_MODEL"
ENV_ANTHROPIC_FORMAT =
"CLACKY_ANTHROPIC_FORMAT"
ENV_LITE_API_KEY =

Environment variable names for lite model

"CLACKY_LITE_API_KEY"
ENV_LITE_BASE_URL =
"CLACKY_LITE_BASE_URL"
ENV_LITE_MODEL =
"CLACKY_LITE_MODEL"
ENV_LITE_ANTHROPIC_FORMAT =
"CLACKY_LITE_ANTHROPIC_FORMAT"
DEFAULT_MODEL =

Default model name (only for model, not base_url)

"claude-sonnet-4-5"

Class Method Summary collapse

Class Method Details

.default_anthropic_formatObject

Get default model anthropic_format flag



95
96
97
98
# File 'lib/clacky/agent_config.rb', line 95

def default_anthropic_format
  return true if ENV[ENV_ANTHROPIC_FORMAT].nil? || ENV[ENV_ANTHROPIC_FORMAT].empty?
  ENV[ENV_ANTHROPIC_FORMAT].downcase == "true"
end

.default_api_keyObject

Get default model API key



80
81
82
# File 'lib/clacky/agent_config.rb', line 80

def default_api_key
  ENV[ENV_API_KEY] if ENV[ENV_API_KEY] && !ENV[ENV_API_KEY].empty?
end

.default_base_urlObject

Get default model base URL (no default, must be explicitly set)



85
86
87
# File 'lib/clacky/agent_config.rb', line 85

def default_base_url
  ENV[ENV_BASE_URL] if ENV[ENV_BASE_URL] && !ENV[ENV_BASE_URL].empty?
end

.default_configured?Boolean

Check if default model is configured via environment variables

Returns:

  • (Boolean)


70
71
72
# File 'lib/clacky/agent_config.rb', line 70

def default_configured?
  !default_api_key.nil? && !default_api_key.empty?
end

.default_modelObject

Get default model name



90
91
92
# File 'lib/clacky/agent_config.rb', line 90

def default_model
  ENV[ENV_MODEL] && !ENV[ENV_MODEL].empty? ? ENV[ENV_MODEL] : DEFAULT_MODEL
end

.default_model_configObject

Get default model configuration as a hash



101
102
103
104
105
106
107
108
109
# File 'lib/clacky/agent_config.rb', line 101

def default_model_config
  {
    "type" => "default",
    "api_key" => default_api_key,
    "base_url" => default_base_url,
    "model" => default_model,
    "anthropic_format" => default_anthropic_format
  }.compact
end

.lite_anthropic_formatObject

Get lite model anthropic_format flag



127
128
129
130
# File 'lib/clacky/agent_config.rb', line 127

def lite_anthropic_format
  return true if ENV[ENV_LITE_ANTHROPIC_FORMAT].nil? || ENV[ENV_LITE_ANTHROPIC_FORMAT].empty?
  ENV[ENV_LITE_ANTHROPIC_FORMAT].downcase == "true"
end

.lite_api_keyObject

Get lite model API key



112
113
114
# File 'lib/clacky/agent_config.rb', line 112

def lite_api_key
  ENV[ENV_LITE_API_KEY] if ENV[ENV_LITE_API_KEY] && !ENV[ENV_LITE_API_KEY].empty?
end

.lite_base_urlObject

Get lite model base URL (no default, must be explicitly set)



117
118
119
# File 'lib/clacky/agent_config.rb', line 117

def lite_base_url
  ENV[ENV_LITE_BASE_URL] if ENV[ENV_LITE_BASE_URL] && !ENV[ENV_LITE_BASE_URL].empty?
end

.lite_configured?Boolean

Check if lite model is configured via environment variables

Returns:

  • (Boolean)


75
76
77
# File 'lib/clacky/agent_config.rb', line 75

def lite_configured?
  !lite_api_key.nil? && !lite_api_key.empty?
end

.lite_modelObject

Get lite model name



122
123
124
# File 'lib/clacky/agent_config.rb', line 122

def lite_model
  ENV[ENV_LITE_MODEL] && !ENV[ENV_LITE_MODEL].empty? ? ENV[ENV_LITE_MODEL] : "claude-haiku-4"
end

.lite_model_configObject

Get lite model configuration as a hash



133
134
135
136
137
138
139
140
141
# File 'lib/clacky/agent_config.rb', line 133

def lite_model_config
  {
    "type" => "lite",
    "api_key" => lite_api_key,
    "base_url" => lite_base_url,
    "model" => lite_model,
    "anthropic_format" => lite_anthropic_format
  }.compact
end