# Tuned defaults for the ShinkaEvolve backend.
# Applied when no user config (-c) overrides these values.
# Model name and iterations come from CLI (--model, -i).
# Meta model auto-follows the main model.

evolution:
  max_parallel_jobs: 4
  patch_types: ["diff", "full", "cross"]
  patch_type_probs: [0.6, 0.3, 0.1]
  max_patch_resamples: 3
  max_patch_attempts: 3
  llm_kwargs:
    temperatures: [0.0, 0.7, 1.0]
    # 16384 = safe ceiling across all current OpenAI models (gpt-4o caps here)
    max_tokens: 16384
    reasoning_efforts: ["high"]
  meta_rec_interval: 10
  meta_llm_kwargs:
    temperatures: [0.7]
    max_tokens: 16384
  embedding_model: "text-embedding-3-small"
  code_embed_sim_threshold: 0.995
  llm_dynamic_selection: "ucb1"
  llm_dynamic_selection_kwargs:
    exploration_coef: 1.0

database:
  num_islands: 5
  archive_size: 20
  parent_selection_strategy: "weighted"
  parent_selection_lambda: 10.0
  elite_selection_ratio: 0.3
  num_archive_inspirations: 4
  num_top_k_inspirations: 2
  migration_interval: 5
  migration_rate: 0.1
  island_elitism: true
