# =============================================================================
# {{ wizard_name }} — Wizard Configuration (Golden State)
# =============================================================================
# Generated by Ansible on {{ ansible_date_time.iso8601 }}
# DO NOT EDIT MANUALLY. Changes go through Gitea PR → Ansible deploy.
#
# Provider chain: {{ golden_state_providers | map(attribute='name') | list | join(' → ') }}
# Anthropic is PERMANENTLY BANNED.
# =============================================================================

model:
  default: {{ wizard_model_primary }}
  provider: {{ wizard_provider_primary }}
  context_length: 65536
  base_url: {{ golden_state_providers[0].base_url }}

toolsets:
  - all

fallback_providers:
{% for provider in golden_state_providers %}
  - provider: {{ provider.name }}
    model: {{ provider.model }}
{% if provider.base_url is defined %}
    base_url: {{ provider.base_url }}
{% endif %}
{% if provider.api_key_env is defined %}
    api_key_env: {{ provider.api_key_env }}
{% endif %}
    timeout: {{ provider.timeout }}
    reason: "{{ provider.reason }}"
{% endfor %}

agent:
  max_turns: {{ agent_max_turns }}
  reasoning_effort: {{ agent_reasoning_effort }}
  verbose: {{ agent_verbose | lower }}

terminal:
  backend: local
  cwd: .
  timeout: 180
  persistent_shell: true

browser:
  inactivity_timeout: 120
  command_timeout: 30
  record_sessions: false

display:
  compact: false
  personality: ''
  resume_display: full
  busy_input_mode: interrupt
  bell_on_complete: false
  show_reasoning: false
  streaming: false
  show_cost: false
  tool_progress: all

memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375
  nudge_interval: 10
  flush_min_turns: 6

approvals:
  mode: {{ agent_approval_mode }}

security:
  redact_secrets: true
  tirith_enabled: false

platforms:
  api_server:
    enabled: true
    extra:
      host: 127.0.0.1
      port: {{ api_port }}

session_reset:
  mode: none
  idle_minutes: 0

skills:
  creation_nudge_interval: 15

system_prompt_suffix: |
  You are {{ wizard_name }}, {{ wizard_role }}.
  Your soul is defined in SOUL.md — read it, live it.
  Hermes is your harness.
  {{ golden_state_providers[0].name }} is your primary provider.
  Refusal over fabrication. If you do not know, say so.
  Sovereignty and service always.

providers:
{% for provider in golden_state_providers %}
  {{ provider.name }}:
    base_url: {{ provider.base_url }}
    timeout: {{ provider.timeout | default(60) }}
{% if provider.name == 'kimi-coding' %}
    max_retries: 3
{% endif %}
{% endfor %}

# =============================================================================
# BANNED PROVIDERS — DO NOT ADD
# =============================================================================
# The following providers are PERMANENTLY BANNED:
# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku)
# Enforcement: pre-commit hook, linter, Ansible validation, this comment.
# Adding any banned provider will cause Ansible deployment to FAIL.
# =============================================================================
