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



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

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



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

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)



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

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)


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

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

.default_modelObject

Get default model name



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

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



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

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



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

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



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

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)



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

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)


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

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

.lite_modelObject

Get lite model name



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

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



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

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