claude-evolve 1.8.21 → 1.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ai-cli.sh +4 -3
- package/package.json +1 -1
- package/lib/config.sh.bak +0 -337
package/lib/ai-cli.sh
CHANGED
|
@@ -60,12 +60,12 @@ $prompt"
|
|
|
60
60
|
;;
|
|
61
61
|
gpt5high)
|
|
62
62
|
local ai_output
|
|
63
|
-
ai_output=$(timeout -k 30 600 codex exec -m gpt-5 -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox "$prompt" 2>&1)
|
|
63
|
+
ai_output=$(timeout -k 30 600 codex exec -m gpt-5.1 -c model_reasoning_effort="high" --dangerously-bypass-approvals-and-sandbox "$prompt" 2>&1)
|
|
64
64
|
local ai_exit_code=$?
|
|
65
65
|
;;
|
|
66
66
|
gpt5)
|
|
67
67
|
local ai_output
|
|
68
|
-
ai_output=$(timeout -k 30 600 codex exec -m gpt-5 --dangerously-bypass-approvals-and-sandbox "$prompt" 2>&1)
|
|
68
|
+
ai_output=$(timeout -k 30 600 codex exec -m gpt-5.1 --dangerously-bypass-approvals-and-sandbox "$prompt" 2>&1)
|
|
69
69
|
local ai_exit_code=$?
|
|
70
70
|
;;
|
|
71
71
|
o3high)
|
|
@@ -134,7 +134,8 @@ $prompt"
|
|
|
134
134
|
;;
|
|
135
135
|
kimi-k2-think-moonshot)
|
|
136
136
|
local ai_output
|
|
137
|
-
|
|
137
|
+
# Use kimi CLI directly (assumes kimi is installed and configured)
|
|
138
|
+
ai_output=$(timeout -k 30 600 kimi --print -c "$prompt" 2>&1)
|
|
138
139
|
local ai_exit_code=$?
|
|
139
140
|
;;
|
|
140
141
|
codex-oss-local)
|
package/package.json
CHANGED
package/lib/config.sh.bak
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Configuration loader for claude-evolve
|
|
3
|
-
|
|
4
|
-
# Default configuration values
|
|
5
|
-
DEFAULT_EVOLUTION_DIR="evolution"
|
|
6
|
-
DEFAULT_ALGORITHM_FILE="algorithm.py"
|
|
7
|
-
DEFAULT_EVALUATOR_FILE="evaluator.py"
|
|
8
|
-
DEFAULT_BRIEF_FILE="BRIEF.md"
|
|
9
|
-
DEFAULT_EVOLUTION_CSV="evolution.csv"
|
|
10
|
-
DEFAULT_OUTPUT_DIR=""
|
|
11
|
-
DEFAULT_PARENT_SELECTION="best"
|
|
12
|
-
# Detect Python command based on platform
|
|
13
|
-
detect_python_cmd() {
|
|
14
|
-
# Try python3 first (macOS, Linux)
|
|
15
|
-
if command -v python3 >/dev/null 2>&1; then
|
|
16
|
-
echo "python3"
|
|
17
|
-
# Try python (Windows, some Linux)
|
|
18
|
-
elif command -v python >/dev/null 2>&1; then
|
|
19
|
-
# Verify it's Python 3
|
|
20
|
-
if python -c "import sys; sys.exit(0 if sys.version_info[0] >= 3 else 1)" 2>/dev/null; then
|
|
21
|
-
echo "python"
|
|
22
|
-
else
|
|
23
|
-
echo "python3" # Fallback
|
|
24
|
-
fi
|
|
25
|
-
else
|
|
26
|
-
echo "python3" # Default fallback
|
|
27
|
-
fi
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
DEFAULT_PYTHON_CMD="$(detect_python_cmd)"
|
|
31
|
-
|
|
32
|
-
# Default ideation strategy values
|
|
33
|
-
DEFAULT_TOTAL_IDEAS=15
|
|
34
|
-
DEFAULT_NOVEL_EXPLORATION=3
|
|
35
|
-
DEFAULT_HILL_CLIMBING=5
|
|
36
|
-
DEFAULT_STRUCTURAL_MUTATION=3
|
|
37
|
-
DEFAULT_CROSSOVER_HYBRID=4
|
|
38
|
-
DEFAULT_NUM_ELITES=3
|
|
39
|
-
DEFAULT_NUM_REVOLUTION=2 # Number of top novel candidates to include
|
|
40
|
-
|
|
41
|
-
# Default parallel execution values
|
|
42
|
-
DEFAULT_PARALLEL_ENABLED=false
|
|
43
|
-
DEFAULT_MAX_WORKERS=4
|
|
44
|
-
DEFAULT_LOCK_TIMEOUT=10
|
|
45
|
-
|
|
46
|
-
# Default auto ideation value
|
|
47
|
-
DEFAULT_AUTO_IDEATE=true
|
|
48
|
-
|
|
49
|
-
# Default retry value
|
|
50
|
-
DEFAULT_MAX_RETRIES=3
|
|
51
|
-
|
|
52
|
-
# Default memory limit (in MB, 0 means no limit)
|
|
53
|
-
# Set to reasonable limit for ML workloads - about half of available system RAM
|
|
54
|
-
DEFAULT_MEMORY_LIMIT_MB=12288
|
|
55
|
-
|
|
56
|
-
# Default LLM CLI configuration - use simple variables instead of arrays
|
|
57
|
-
# Run: 100% local with qwen3 via Codex+Ollama (more reliable than aider)
|
|
58
|
-
DEFAULT_LLM_RUN="codex-qwen3 codex-oss gemini-flash"
|
|
59
|
-
# Ideate: Commercial models for idea generation + local fallback
|
|
60
|
-
DEFAULT_LLM_IDEATE="gemini sonnet-think gpt5high glm grok-4 codex-qwen3 codex-oss"
|
|
61
|
-
|
|
62
|
-
# Load configuration from a YAML file and update variables
|
|
63
|
-
_load_yaml_config() {
|
|
64
|
-
local config_file="$1"
|
|
65
|
-
if [[ ! -f "$config_file" ]]; then
|
|
66
|
-
return 0 # File does not exist, nothing to load
|
|
67
|
-
fi
|
|
68
|
-
|
|
69
|
-
echo "[DEBUG] Loading configuration from: $config_file" >&2
|
|
70
|
-
|
|
71
|
-
local in_ideation_section=false
|
|
72
|
-
local in_parallel_section=false
|
|
73
|
-
local in_llm_cli_section=false
|
|
74
|
-
local llm_cli_subsection=""
|
|
75
|
-
|
|
76
|
-
while IFS='' read -r line; do
|
|
77
|
-
[[ $line =~ ^[[:space:]]*# ]] || [[ -z $line ]] && continue
|
|
78
|
-
|
|
79
|
-
if [[ ! $line =~ ^([^:]+):(.*)$ ]]; then
|
|
80
|
-
continue
|
|
81
|
-
fi
|
|
82
|
-
local key="${BASH_REMATCH[1]}"
|
|
83
|
-
local value="${BASH_REMATCH[2]}"
|
|
84
|
-
|
|
85
|
-
local is_indented=false
|
|
86
|
-
[[ $key =~ ^[[:space:]]+ ]] && is_indented=true
|
|
87
|
-
|
|
88
|
-
key=$(echo "$key" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
89
|
-
value=$(echo "$value" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
90
|
-
|
|
91
|
-
if [[ "${DEBUG_CONFIG:-}" == "true" ]]; then
|
|
92
|
-
echo "[CONFIG DEBUG] Before comment removal: key='$key' value='$value'" >&2
|
|
93
|
-
fi
|
|
94
|
-
|
|
95
|
-
value=$(echo "$value" | sed 's/[[:space:]]*#.*$//')
|
|
96
|
-
value=$(echo "$value" | sed 's/^"//;s/"$//')
|
|
97
|
-
|
|
98
|
-
if [[ $key == "ideation_strategies" ]]; then
|
|
99
|
-
in_ideation_section=true
|
|
100
|
-
in_parallel_section=false
|
|
101
|
-
in_llm_cli_section=false
|
|
102
|
-
continue
|
|
103
|
-
elif [[ $key == "parallel" ]]; then
|
|
104
|
-
in_parallel_section=true
|
|
105
|
-
in_ideation_section=false
|
|
106
|
-
in_llm_cli_section=false
|
|
107
|
-
continue
|
|
108
|
-
elif [[ $key == "llm_cli" ]]; then
|
|
109
|
-
in_llm_cli_section=true
|
|
110
|
-
in_ideation_section=false
|
|
111
|
-
in_parallel_section=false
|
|
112
|
-
llm_cli_subsection=""
|
|
113
|
-
continue
|
|
114
|
-
elif [[ $is_indented == false ]] && [[ $in_ideation_section == true || $in_parallel_section == true || $in_llm_cli_section == true ]]; then
|
|
115
|
-
in_ideation_section=false
|
|
116
|
-
in_parallel_section=false
|
|
117
|
-
in_llm_cli_section=false
|
|
118
|
-
llm_cli_subsection=""
|
|
119
|
-
fi
|
|
120
|
-
|
|
121
|
-
if [[ $in_ideation_section == true ]]; then
|
|
122
|
-
case $key in
|
|
123
|
-
total_ideas) TOTAL_IDEAS="$value" ;;
|
|
124
|
-
novel_exploration) NOVEL_EXPLORATION="$value" ;;
|
|
125
|
-
hill_climbing) HILL_CLIMBING="$value" ;;
|
|
126
|
-
structural_mutation) STRUCTURAL_MUTATION="$value" ;;
|
|
127
|
-
crossover_hybrid) CROSSOVER_HYBRID="$value" ;;
|
|
128
|
-
num_elites) NUM_ELITES="$value" ;;
|
|
129
|
-
num_revolution) NUM_REVOLUTION="$value" ;;
|
|
130
|
-
esac
|
|
131
|
-
elif [[ $in_parallel_section == true ]]; then
|
|
132
|
-
case $key in
|
|
133
|
-
enabled) PARALLEL_ENABLED="$value" ;;
|
|
134
|
-
max_workers) MAX_WORKERS="$value" ;;
|
|
135
|
-
lock_timeout) LOCK_TIMEOUT="$value" ;;
|
|
136
|
-
esac
|
|
137
|
-
elif [[ $in_llm_cli_section == true ]]; then
|
|
138
|
-
if [[ $key == "run" || $key == "ideate" ]]; then
|
|
139
|
-
case $key in
|
|
140
|
-
run) LLM_RUN="$value" ;;
|
|
141
|
-
ideate) LLM_IDEATE="$value" ;;
|
|
142
|
-
esac
|
|
143
|
-
else
|
|
144
|
-
value=$(echo "$value" | sed "s/^'//;s/'$//")
|
|
145
|
-
local var_key=$(echo "$key" | sed 's/-/_/g')
|
|
146
|
-
if [[ "${DEBUG_CONFIG:-}" == "true" ]]; then
|
|
147
|
-
echo "[CONFIG DEBUG] Setting LLM_CLI_${var_key} = '$value'" >&2
|
|
148
|
-
fi
|
|
149
|
-
eval "LLM_CLI_${var_key}=\"$value\""
|
|
150
|
-
fi
|
|
151
|
-
else
|
|
152
|
-
case $key in
|
|
153
|
-
algorithm_file) ALGORITHM_FILE="$value" ;;
|
|
154
|
-
evaluator_file) EVALUATOR_FILE="$value" ;;
|
|
155
|
-
brief_file) BRIEF_FILE="$value" ;;
|
|
156
|
-
evolution_csv) EVOLUTION_CSV="$value" ;;
|
|
157
|
-
output_dir) OUTPUT_DIR="$value" ;;
|
|
158
|
-
parent_selection) PARENT_SELECTION="$value" ;;
|
|
159
|
-
python_cmd) PYTHON_CMD="$value" ;;
|
|
160
|
-
auto_ideate) AUTO_IDEATE="$value" ;;
|
|
161
|
-
max_retries) MAX_RETRIES="$value" ;;
|
|
162
|
-
memory_limit_mb) MEMORY_LIMIT_MB="$value" ;;
|
|
163
|
-
evolution_dir):
|
|
164
|
-
echo "[WARN] evolution_dir in config is ignored - automatically inferred from config file location" >&2
|
|
165
|
-
;;
|
|
166
|
-
esac
|
|
167
|
-
fi
|
|
168
|
-
done < "$config_file"
|
|
169
|
-
# Keep track of the last config file loaded to infer evolution_dir
|
|
170
|
-
LAST_CONFIG_FILE_LOADED="$config_file"
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
load_config() {
|
|
174
|
-
echo "[DEBUG] $1 at start of load_config: '$1'" >&2
|
|
175
|
-
echo "[DEBUG] DEFAULT_EVOLUTION_DIR: $DEFAULT_EVOLUTION_DIR" >&2
|
|
176
|
-
# Set defaults first
|
|
177
|
-
EVOLUTION_DIR="$DEFAULT_EVOLUTION_DIR" # Initialize with default
|
|
178
|
-
ALGORITHM_FILE="$DEFAULT_ALGORITHM_FILE"
|
|
179
|
-
EVALUATOR_FILE="$DEFAULT_EVALUATOR_FILE"
|
|
180
|
-
BRIEF_FILE="$DEFAULT_BRIEF_FILE"
|
|
181
|
-
EVOLUTION_CSV="$DEFAULT_EVOLUTION_CSV"
|
|
182
|
-
OUTPUT_DIR="$DEFAULT_OUTPUT_DIR"
|
|
183
|
-
PARENT_SELECTION="$DEFAULT_PARENT_SELECTION"
|
|
184
|
-
PYTHON_CMD="$DEFAULT_PYTHON_CMD"
|
|
185
|
-
|
|
186
|
-
# Determine EVOLUTION_DIR based on specified logic, overriding default if found
|
|
187
|
-
if [[ -n "$CLAUDE_EVOLVE_WORKING_DIR" ]]; then
|
|
188
|
-
echo "[DEBUG] EVOLUTION_DIR set by CLAUDE_EVOLVE_WORKING_DIR: $CLAUDE_EVOLVE_WORKING_DIR" >&2
|
|
189
|
-
EVOLUTION_DIR="$CLAUDE_EVOLVE_WORKING_DIR"
|
|
190
|
-
elif [[ -f "evolution/evolution.csv" ]]; then
|
|
191
|
-
echo "[DEBUG] EVOLUTION_DIR set by evolution/evolution.csv: evolution" >&2
|
|
192
|
-
EVOLUTION_DIR="evolution"
|
|
193
|
-
elif [[ -f "./evolution.csv" ]]; then
|
|
194
|
-
echo "[DEBUG] EVOLUTION_DIR set by ./evolution.csv: ." >&2
|
|
195
|
-
EVOLUTION_DIR="."
|
|
196
|
-
else
|
|
197
|
-
echo "[DEBUG] EVOLUTION_DIR defaulting to: $DEFAULT_EVOLUTION_DIR" >&2
|
|
198
|
-
fi
|
|
199
|
-
echo "[DEBUG] EVOLUTION_DIR after initial determination: $EVOLUTION_DIR" >&2
|
|
200
|
-
|
|
201
|
-
TOTAL_IDEAS="$DEFAULT_TOTAL_IDEAS"
|
|
202
|
-
NOVEL_EXPLORATION="$DEFAULT_NOVEL_EXPLORATION"
|
|
203
|
-
HILL_CLIMBING="$DEFAULT_HILL_CLIMBING"
|
|
204
|
-
STRUCTURAL_MUTATION="$DEFAULT_STRUCTURAL_MUTATION"
|
|
205
|
-
CROSSOVER_HYBRID="$DEFAULT_CROSSOVER_HYBRID"
|
|
206
|
-
NUM_ELITES="$DEFAULT_NUM_ELITES"
|
|
207
|
-
NUM_REVOLUTION="$DEFAULT_NUM_REVOLUTION"
|
|
208
|
-
|
|
209
|
-
PARALLEL_ENABLED="$DEFAULT_PARALLEL_ENABLED"
|
|
210
|
-
MAX_WORKERS="$DEFAULT_MAX_WORKERS"
|
|
211
|
-
LOCK_TIMEOUT="$DEFAULT_LOCK_TIMEOUT"
|
|
212
|
-
|
|
213
|
-
AUTO_IDEATE="$DEFAULT_AUTO_IDEATE"
|
|
214
|
-
MAX_RETRIES="$DEFAULT_MAX_RETRIES"
|
|
215
|
-
MEMORY_LIMIT_MB="$DEFAULT_MEMORY_LIMIT_MB"
|
|
216
|
-
|
|
217
|
-
LLM_CLI_gpt5high='codex exec --profile gpt5high --dangerously-bypass-approvals-and-sandbox "{{PROMPT}}"'
|
|
218
|
-
LLM_CLI_o3high='codex exec --profile o3high --dangerously-bypass-approvals-and-sandbox "{{PROMPT}}"'
|
|
219
|
-
LLM_CLI_codex='codex exec --dangerously-bypass-approvals-and-sandbox "{{PROMPT}}"'
|
|
220
|
-
LLM_CLI_gemini='gemini -y -p "{{PROMPT}}"'
|
|
221
|
-
LLM_CLI_gemini_flash='gemini -y -p "{{PROMPT}}" --model gemini-2.5-flash'
|
|
222
|
-
LLM_CLI_opus='claude --dangerously-skip-permissions --mcp-config "" --model opus -p "{{PROMPT}}"'
|
|
223
|
-
LLM_CLI_opus_think='claude --dangerously-skip-permissions --mcp-config "" --model opus -p "ultrathink\n\n{{PROMPT}}"'
|
|
224
|
-
LLM_CLI_sonnet='claude --dangerously-skip-permissions --mcp-config "" --model sonnet -p "{{PROMPT}}"'
|
|
225
|
-
LLM_CLI_sonnet_think='claude --dangerously-skip-permissions --mcp-config "" --model sonnet -p "ultrathink\n\n{{PROMPT}}"'
|
|
226
|
-
LLM_CLI_cursor_sonnet='cursor-agent sonnet -p "{{PROMPT}}"'
|
|
227
|
-
LLM_CLI_cursor_opus='cursor-agent opus -p "{{PROMPT}}"'
|
|
228
|
-
LLM_CLI_glm='opencode -m openrouter/z-ai/glm-4.6 run "{{PROMPT}}"'
|
|
229
|
-
LLM_CLI_deepseek='opencode -m openrouter/deepseek/deepseek-v3.1-terminus run "{{PROMPT}}"'
|
|
230
|
-
LLM_CLI_ollama-cloud-kimi-k2='codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --oss --model kimi-k2:1t-cloud "{{PROMPT}}"' LLM_RUN="$DEFAULT_LLM_RUN"
|
|
231
|
-
LLM_IDEATE="$DEFAULT_LLM_IDEATE"
|
|
232
|
-
|
|
233
|
-
# Determine local config file path relative to EVOLUTION_DIR
|
|
234
|
-
local local_config_file="$EVOLUTION_DIR/config.yaml"
|
|
235
|
-
|
|
236
|
-
# Load local config
|
|
237
|
-
_load_yaml_config "$local_config_file"
|
|
238
|
-
|
|
239
|
-
# Load global config (overrides local config)
|
|
240
|
-
local global_config_file="$HOME/.config/claude-evolve/config.yaml"
|
|
241
|
-
_load_yaml_config "$global_config_file"
|
|
242
|
-
|
|
243
|
-
echo "[DEBUG] EVOLUTION_DIR before FULL_EVOLUTION_DIR calculation: $EVOLUTION_DIR" >&2
|
|
244
|
-
|
|
245
|
-
# Create full paths - ALL paths are relative to EVOLUTION_DIR
|
|
246
|
-
# Make EVOLUTION_DIR absolute if it\'s relative
|
|
247
|
-
if [[ "$EVOLUTION_DIR" = /* ]]; then
|
|
248
|
-
FULL_EVOLUTION_DIR="$EVOLUTION_DIR"
|
|
249
|
-
else
|
|
250
|
-
FULL_EVOLUTION_DIR="$(cd "$EVOLUTION_DIR" 2>/dev/null && pwd)" || FULL_EVOLUTION_DIR="$EVOLUTION_DIR"
|
|
251
|
-
fi
|
|
252
|
-
|
|
253
|
-
FULL_ALGORITHM_PATH="$FULL_EVOLUTION_DIR/$ALGORITHM_FILE"
|
|
254
|
-
FULL_EVALUATOR_PATH="$FULL_EVOLUTION_DIR/$EVALUATOR_FILE"
|
|
255
|
-
FULL_BRIEF_PATH="$FULL_EVOLUTION_DIR/$BRIEF_FILE"
|
|
256
|
-
FULL_CSV_PATH="$FULL_EVOLUTION_DIR/$EVOLUTION_CSV"
|
|
257
|
-
|
|
258
|
-
if [[ -n $OUTPUT_DIR ]]; then
|
|
259
|
-
FULL_OUTPUT_DIR="$FULL_EVOLUTION_DIR/$OUTPUT_DIR"
|
|
260
|
-
else
|
|
261
|
-
FULL_OUTPUT_DIR="$FULL_EVOLUTION_DIR"
|
|
262
|
-
fi
|
|
263
|
-
echo "[DEBUG] FULL_EVOLUTION_DIR at end of load_config: $FULL_EVOLUTION_DIR" >&2
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
# Validate configuration
|
|
267
|
-
validate_config() {
|
|
268
|
-
local errors=0
|
|
269
|
-
|
|
270
|
-
if [[ ! -d "$FULL_EVOLUTION_DIR" ]]; then
|
|
271
|
-
echo "[ERROR] Evolution directory not found: $FULL_EVOLUTION_DIR" >&2
|
|
272
|
-
((errors++))
|
|
273
|
-
fi
|
|
274
|
-
|
|
275
|
-
if [[ ! -f "$FULL_ALGORITHM_PATH" ]]; then
|
|
276
|
-
echo "[ERROR] Algorithm file not found: $FULL_ALGORITHM_PATH" >&2
|
|
277
|
-
((errors++))
|
|
278
|
-
fi
|
|
279
|
-
|
|
280
|
-
if [[ ! -f "$FULL_EVALUATOR_PATH" ]]; then
|
|
281
|
-
echo "[ERROR] Evaluator file not found: $FULL_EVALUATOR_PATH" >&2
|
|
282
|
-
((errors++))
|
|
283
|
-
fi
|
|
284
|
-
|
|
285
|
-
if [[ ! -f "$FULL_BRIEF_PATH" ]]; then
|
|
286
|
-
echo "[ERROR] Brief file not found: $FULL_BRIEF_PATH" >&2
|
|
287
|
-
((errors++))
|
|
288
|
-
fi
|
|
289
|
-
|
|
290
|
-
if ! command -v "$PYTHON_CMD" >/dev/null 2>&1; then
|
|
291
|
-
echo "[ERROR] Python command not found: $PYTHON_CMD" >&2
|
|
292
|
-
echo "[ERROR] Please install Python 3.x or set python_cmd in config.yaml" >&2
|
|
293
|
-
echo "[ERROR] Examples: python_cmd: \"python\" or python_cmd: \"C:\\Python39\\python.exe\"" >&2
|
|
294
|
-
((errors++))
|
|
295
|
-
else
|
|
296
|
-
# Verify Python version is 3.x
|
|
297
|
-
if ! "$PYTHON_CMD" -c "import sys; sys.exit(0 if sys.version_info[0] >= 3 else 1)" 2>/dev/null; then
|
|
298
|
-
echo "[ERROR] Python 3.x required, but $PYTHON_CMD appears to be Python 2" >&2
|
|
299
|
-
echo "[ERROR] Please set python_cmd in config.yaml to point to Python 3" >&2
|
|
300
|
-
((errors++))
|
|
301
|
-
fi
|
|
302
|
-
fi
|
|
303
|
-
|
|
304
|
-
return $errors
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
# Show current configuration
|
|
308
|
-
show_config() {
|
|
309
|
-
echo "Current claude-evolve configuration:"
|
|
310
|
-
echo " Evolution directory: $FULL_EVOLUTION_DIR"
|
|
311
|
-
echo " Algorithm file: $FULL_ALGORITHM_PATH"
|
|
312
|
-
echo " Evaluator file: $FULL_EVALUATOR_PATH"
|
|
313
|
-
echo " Brief file: $FULL_BRIEF_PATH"
|
|
314
|
-
echo " CSV file: $FULL_CSV_PATH"
|
|
315
|
-
echo " Output directory: $FULL_OUTPUT_DIR"
|
|
316
|
-
echo " Parent selection: $PARENT_SELECTION"
|
|
317
|
-
echo " Python command: $PYTHON_CMD"
|
|
318
|
-
echo " Parallel enabled: $PARALLEL_ENABLED"
|
|
319
|
-
echo " Max workers: $MAX_WORKERS"
|
|
320
|
-
echo " Lock timeout: $LOCK_TIMEOUT"
|
|
321
|
-
echo " Auto ideate: $AUTO_IDEATE"
|
|
322
|
-
echo " Max retries: $MAX_RETRIES"
|
|
323
|
-
echo " Memory limit: ${MEMORY_LIMIT_MB}MB"
|
|
324
|
-
echo " LLM configuration:"
|
|
325
|
-
# Show LLM configurations using dynamic variable names
|
|
326
|
-
for model in gpt5high o3high codex gemini opus opus_think sonnet sonnet_think cursor_sonnet cursor_opus glm deepseek; do
|
|
327
|
-
var_name="LLM_CLI_${model}"
|
|
328
|
-
var_value=$(eval echo "\$$var_name")
|
|
329
|
-
if [[ -n "$var_value" ]]; then
|
|
330
|
-
# Convert underscore back to dash for display
|
|
331
|
-
display_name=$(echo "$model" | sed 's/_/-/g')
|
|
332
|
-
echo " $display_name: $var_value"
|
|
333
|
-
fi
|
|
334
|
-
done
|
|
335
|
-
echo " LLM for run: $LLM_RUN"
|
|
336
|
-
echo " LLM for ideate: $LLM_IDEATE"
|
|
337
|
-
}
|