# WP30 resource guardrails (enforced by the runner; a trial must not silently expand a cap) hardware: local_node: laptop-m5max # Apple M5 Max, 18 cores, 48 GiB unified memory, macOS 27.0 remote_nodes: [M3U96b] # MacLustr, LAN 192.168.2.85, mlx available; used only for E2/E6 transfer limits: trial_timeout_s: 600 # one attempt; timeout recorded as censoring bound batch_timeout_s: 14400 max_concurrent_workers: 1 # single-model execution per process; Metal is not time-shared for timing trials memory_guard_bytes: 40000000000 # abort a trial if mlx active memory would exceed 40 GB disk_allowance_bytes: 150000000000 # runs/ + data/ + models max_context_tokens: 16384 budgets: api: enabled: true # keys found in sibling WP .env files (same author); probed live 2026-10-29 hard_cap_usd: 25.0 # total for Track D; runner stops scheduling hosted trials beyond this providers: anthropic: {model: claude-haiku-4-5, max_output_tokens: 256} openai: {model: gpt-5-nano, max_output_tokens: 256} training: mapper_max_device_hours: 6.0 # Phase 6 learned mapper (if run); checkpoints saved every epoch retry: max_attempts: 2 # first attempt + one retry on implementation_error/timeout; both kept retry_on: [timeout, implementation_error]