claude-evolve 1.8.14 → 1.8.15

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.
@@ -1057,6 +1057,11 @@ Current evolution context:
1057
1057
 
1058
1058
  IMPORTANT: DO NOT read algorithm.py or any evolution_*.py files. Focus on creative ideation based on the brief and CSV context only. Reading code files wastes tokens and time.
1059
1059
 
1060
+ CROSS-POLLINATION OPPORTUNITY:
1061
+ Consider looking at the last 20-30 ideas from other evolution files in sibling directories (../*/evolution.csv).
1062
+ These may contain different algorithmic approaches that could inspire novel combinations or variations.
1063
+ This is OPTIONAL - only do it if you think it would help generate more diverse ideas.
1064
+
1060
1065
  CRITICAL TASK:
1061
1066
  The CSV file already contains $count stub rows with these IDs: $required_ids_str
1062
1067
  Each stub row has a PLACEHOLDER description like: \"[PLACEHOLDER: Replace this with your algorithmic idea]\"
@@ -1191,7 +1196,10 @@ generate_hill_climbing_direct() {
1191
1196
  # Use relative paths and change to evolution directory so AI can access files
1192
1197
  local temp_csv_basename=$(basename "$temp_csv")
1193
1198
 
1194
- local prompt="I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1199
+ # Build prompt using cat with heredoc to avoid variable expansion issues
1200
+ local prompt
1201
+ prompt=$(cat <<EOF
1202
+ I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1195
1203
 
1196
1204
  THE FILE HAS $total_lines TOTAL LINES. Read from line $read_offset to see the placeholder rows at the end.
1197
1205
 
@@ -1201,6 +1209,15 @@ Successful algorithms to tune:
1201
1209
  $top_performers
1202
1210
 
1203
1211
  IMPORTANT: Generate parameter tuning ideas based primarily on the descriptions and scores above.
1212
+ EOF
1213
+ )
1214
+
1215
+ prompt+="
1216
+
1217
+ CROSS-POLLINATION OPPORTUNITY:
1218
+ Consider looking at the last 20-30 ideas from other evolution files in sibling directories (../*/evolution.csv).
1219
+ These may contain interesting parameter tuning approaches or strategies that could be applied to your top performers.
1220
+ This is OPTIONAL - only do it if you think it would help generate more diverse tuning ideas.
1204
1221
 
1205
1222
  ONLY read parent source files (evolution_<PARENT_ID>.py) if:
1206
1223
  - The description is too vague to identify specific parameters
@@ -1327,7 +1344,10 @@ generate_structural_mutation_direct() {
1327
1344
  # Use relative paths and change to evolution directory so AI can access files
1328
1345
  local temp_csv_basename=$(basename "$temp_csv")
1329
1346
 
1330
- local prompt="I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1347
+ # Build prompt using cat with heredoc to avoid variable expansion issues
1348
+ local prompt
1349
+ prompt=$(cat <<EOF
1350
+ I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1331
1351
 
1332
1352
  THE FILE HAS $total_lines TOTAL LINES. Read from line $read_offset to see the placeholder rows at the end.
1333
1353
 
@@ -1341,6 +1361,15 @@ IMPORTANT: DO NOT read evolution_*.py files. Generate structural ideas based ONL
1341
1361
  - The performance scores
1342
1362
  - Your knowledge of common algorithmic structures and patterns
1343
1363
  Reading code files wastes tokens and time. Focus on high-level architectural ideas based on the descriptions.
1364
+ EOF
1365
+ )
1366
+
1367
+ prompt+="
1368
+
1369
+ CROSS-POLLINATION OPPORTUNITY:
1370
+ Consider looking at the last 20-30 ideas from other evolution files in sibling directories (../*/evolution.csv).
1371
+ These may contain different structural approaches or architectural patterns that could be adapted to your top performers.
1372
+ This is OPTIONAL - only do it if you think it would help generate more creative structural modifications.
1344
1373
 
1345
1374
  CRITICAL TASK:
1346
1375
  The CSV file already contains $count stub rows with these IDs: $required_ids_str
@@ -1454,7 +1483,10 @@ generate_crossover_direct() {
1454
1483
  # Use relative paths and change to evolution directory so AI can access files
1455
1484
  local temp_csv_basename=$(basename "$temp_csv")
1456
1485
 
1457
- local prompt="I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1486
+ # Build prompt using cat with heredoc to avoid variable expansion issues
1487
+ local prompt
1488
+ prompt=$(cat <<EOF
1489
+ I need you to use your file editing capabilities to fill in PLACEHOLDER descriptions in the CSV file: $temp_csv_basename
1458
1490
 
1459
1491
  THE FILE HAS $total_lines TOTAL LINES. Read from line $read_offset to see the placeholder rows at the end.
1460
1492
 
@@ -1468,6 +1500,15 @@ IMPORTANT: DO NOT read evolution_*.py files. Generate crossover ideas based ONLY
1468
1500
  - The performance scores
1469
1501
  - Your knowledge of how different algorithmic approaches can be combined
1470
1502
  Reading code files wastes tokens and time. Focus on combining the described features creatively.
1503
+ EOF
1504
+ )
1505
+
1506
+ prompt+="
1507
+
1508
+ CROSS-POLLINATION OPPORTUNITY:
1509
+ Consider looking at the last 20-30 ideas from other evolution files in sibling directories (../*/evolution.csv).
1510
+ These parallel evolutionary strains may have developed different successful features that could be crossed with your top performers.
1511
+ This is OPTIONAL - only do it if you think it would help generate more innovative hybrid ideas.
1471
1512
 
1472
1513
  CRITICAL TASK:
1473
1514
  The CSV file already contains $count stub rows with these IDs: $required_ids_str
@@ -1551,15 +1592,20 @@ ideate_ai_legacy() {
1551
1592
  # Build prompt for direct CSV modification
1552
1593
  # Use relative paths and change to evolution directory so AI can access files
1553
1594
  local temp_csv_basename=$(basename "$temp_csv")
1554
-
1555
- local prompt="I need you to use your file editing capabilities to add exactly $TOTAL_IDEAS algorithmic ideas to the CSV file: $temp_csv_basename
1595
+
1596
+ # Build initial prompt safely
1597
+ local prompt
1598
+ prompt=$(cat <<EOF
1599
+ I need you to use your file editing capabilities to add exactly $TOTAL_IDEAS algorithmic ideas to the CSV file: $temp_csv_basename
1556
1600
 
1557
1601
  Current evolution context:
1558
1602
  - Generation: $CURRENT_GENERATION
1559
1603
  - Algorithm: algorithm.py (base algorithm)
1560
1604
  - Brief: $(head -10 "$FULL_BRIEF_PATH" 2>/dev/null | head -c 1000 || echo "No brief file found")
1561
1605
 
1562
- IMPORTANT: DO NOT read algorithm.py or any evolution_*.py files - that uses too many tokens and is unnecessary for ideation. Just generate creative ideas based on the brief and top performers listed above. Focus your creativity on the problem space, not the implementation details."
1606
+ IMPORTANT: DO NOT read algorithm.py or any evolution_*.py files - that uses too many tokens and is unnecessary for ideation. Just generate creative ideas based on the brief and top performers listed above. Focus your creativity on the problem space, not the implementation details.
1607
+ EOF
1608
+ )
1563
1609
 
1564
1610
  if [[ -n $top_performers ]]; then
1565
1611
  prompt+="
package/lib/config.sh CHANGED
@@ -60,7 +60,7 @@ DEFAULT_WORKER_MAX_CANDIDATES=3
60
60
  # Default LLM CLI configuration
61
61
  DEFAULT_LLM_RUN="glm-zai glm-zai glm-zai glm-zai glm-zai codex-oss-local gemini-flash haiku"
62
62
  # Ideate: Commercial models for idea generation + local fallback
63
- DEFAULT_LLM_IDEATE="gemini-pro sonnet-think gpt5high glm-openrouter grok-4-openrouter deepseek-openrouter glm-zai"
63
+ DEFAULT_LLM_IDEATE="opus gemini-pro sonnet-think gpt5high grok-4-openrouter deepseek-openrouter glm-zai"
64
64
 
65
65
  # Load configuration from a YAML file and update variables
66
66
  _load_yaml_config() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-evolve",
3
- "version": "1.8.14",
3
+ "version": "1.8.15",
4
4
  "bin": {
5
5
  "claude-evolve": "./bin/claude-evolve",
6
6
  "claude-evolve-main": "./bin/claude-evolve-main",
@@ -80,7 +80,7 @@ llm_cli:
80
80
  # Default configuration: 100% local code generation, commercial ideation + local fallback
81
81
  # Commented out because these change over time; uncomment to override
82
82
  #run: codex-qwen3
83
- #ideate: gemini sonnet-think gpt5high o3high glm grok-4 codex-qwen3
83
+ #ideate: opus gemini-pro sonnet-think gpt5high grok-4-openrouter deepseek-openrouter glm-zai
84
84
 
85
85
  # Available models:
86
86
  # - sonnet: Claude 3.5 Sonnet via Claude CLI