[run_eval]
# Copy this file, set your own run_id, then pass:
#   --config <your_file.toml>
run_id = "replace-me"
patcher = "openai"
conditions = "adaptive_llm_discretion"
k = 2
jobs = 4
retry_prompt_mode = "full"
case_list_file = ["evals/artifacts/case_lists/failed_cases.txt"]
force_patch_attempt = true
case_fail_fast_on_request_budget_exceeded = true
transport_fail_fast_streak = 0

# Secret policy: use env indirection, not plaintext keys.
openai_api_key_env = "OPENAI_API_KEY"

[run_eval.openai]
base_url = "http://127.0.0.1:12000/v1"
model = "Qwen3.5-35B-A3B-Q4_K_M"
http2 = true
response_mode = "edits"
auto_context_window = true
response_mode_autoswitch = "retry_to_diff"
max_propose_sec = 300.0
transport_max_retries = 6
transport_retry_backoff_base_sec = 1.0
transport_retry_backoff_max_sec = 8.0

[run_eval.adaptive]
max_helper_calls = 1
budget_topup_max_calls = 1
informativeness_pregate = true
informativeness_pregate_threshold = 0.7
online_policy_mode = "on"
online_policy_algo = "linucb"
online_alpha = 1.0
online_epsilon = 0.12
online_l2 = 1.0
online_warmup_decisions = 20
online_save_every = 5
online_feature_scaling_profile = "v1"
online_state_path = "evals/artifacts/policies/replace-me-policy.json"
online_events_path = "evals/results/replace-me-policy-events.jsonl"
# Explicitly pin budget policy mode instead of relying on CLI defaults.
budget_policy_mode = "on"
budget_policy_algo = "linucb"
budget_policy_tiers = "1.0,1.5,2.0"
budget_policy_max_ups_per_case = 1
budget_online_alpha = 0.6
budget_online_epsilon = 0.03
budget_online_l2 = 1.0
budget_online_warmup_decisions = 0
budget_online_save_every = 5
budget_feature_scaling_profile = "v1"
budget_online_state_path = "evals/artifacts/policies/replace-me-budget-policy.json"
budget_online_events_path = "evals/results/replace-me-budget-policy-events.jsonl"
budget_reward_rho_budget_exceeded = 0.5
reward_lambda_tokens = 0.02
reward_mu_latency = 0.01
reward_token_scale = 1000.0
reward_latency_scale = 10.0
reward_eta_progress = 0.15
reward_kappa_stagnation = 0.10
no_progress_token_cap = 15000

[run_eval.context]
compaction_mode = "auto_overflow"
compaction_scope = "snapshot,pytest,files"
compaction_max_calls = 1
compaction_target_chars = 18000

[run_eval.patch]
sanitize_enabled = true
verifier_infer_test_source_scope = true

[run_eval.syntax]
preflight_enabled = true
preflight_max_cycles = 2
