Some checks failed
PR Checklist / pr-checklist (pull_request) Failing after 1m27s
Implements the Ansible Infrastructure as Code story from KT 2026-04-08. One canonical Ansible playbook defines: - Deadman switch (snapshot good config on health, rollback+restart on death) - Golden state config deployment (Anthropic BANNED, Kimi→Gemini→Ollama) - Cron schedule (source-controlled, no manual crontab edits) - Agent startup sequence (pull→validate→start→verify) - request_log telemetry table (every inference call logged) - Thin config pattern (immutable local pointer to upstream) - Gitea webhook handler (deploy on merge) - Config validator (rejects banned providers) Fleet inventory: Timmy (Mac), Allegro (VPS), Bezalel (VPS), Ezra (VPS) Roles: wizard_base, golden_state, deadman_switch, request_log, cron_manager Addresses: timmy-config #442, #443, #444, #445, #446 References: KT Final 2026-04-08 P2, KT Bezalel 2026-04-08 #1-#5
116 lines
3.1 KiB
Django/Jinja
116 lines
3.1 KiB
Django/Jinja
# =============================================================================
|
|
# {{ 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.
|
|
# =============================================================================
|