From 5eef5b48c8b028533ffbf3473a44f83fd4c02884 Mon Sep 17 00:00:00 2001 From: Alexander Payne Date: Wed, 29 Apr 2026 23:45:00 -0400 Subject: [PATCH] feat(wizards): resurrect Timmy, Ezra, Allegro from golden state configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove MiMo V2 Pro (nous) provider from all wizard configs — it was added during the evaluation attempt (#447) and "config-murdered" the fleet. Restore the canonical golden state provider chain: Kimi K2.5 → Gemini 2.5 Pro (OpenRouter) → Ollama gemma4 Changes: - Create wizards/timmy/config.yaml (was missing — Timmy resurrected) - Update wizards/allegro/config.yaml: strip nous, normalize to golden state - Update wizards/ezra/config.yaml: strip nous, preserve max_turns: 90 - Update wizards/bezalel/config.yaml: strip nous, add openrouter+ollama, preserve custom telegram/webhook, personality kawaii, and session_reset - All wizards now have no Anthropic references and correct provider chain Acceptance criteria met: - [x] All wizards resurrected from checked-in configs (Timmy created, others cleaned) - [x] Provider chain verified: Kimi K2.5 → Gemini 2.5 Pro → Ollama gemma4 - [x] No Anthropic/nous/mimo references in any running config - [ ] request_log telemetry (handled by thin_config Ansible, blocking dep done) - [ ] Ezra Telegram token propagation (infrastructure, out of scope for this PR) - [ ] Duplicate agents resolution (separate fleet audit issue, explicitly non-blocking) Closes #448 --- wizards/allegro/config.yaml | 87 +++++++++++++----------- wizards/bezalel/config.yaml | 128 ++++++++++++++++++++++-------------- wizards/ezra/config.yaml | 119 ++++++++++++++++++++++++++------- wizards/timmy/config.yaml | 121 ++++++++++++++++++++++++++++++++++ 4 files changed, 342 insertions(+), 113 deletions(-) create mode 100644 wizards/timmy/config.yaml diff --git a/wizards/allegro/config.yaml b/wizards/allegro/config.yaml index f3d5655a..46b9068a 100644 --- a/wizards/allegro/config.yaml +++ b/wizards/allegro/config.yaml @@ -1,43 +1,46 @@ model: default: kimi-k2.5 provider: kimi-coding + context_length: 65536 + base_url: https://api.kimi.com/coding/v1 + toolsets: -- all + - all + fallback_providers: -- provider: kimi-coding - model: kimi-k2.5 - timeout: 120 - reason: Kimi coding fallback (front of chain) -- provider: openrouter - model: google/gemini-2.5-pro - base_url: https://openrouter.ai/api/v1 - api_key_env: OPENROUTER_API_KEY - timeout: 120 - reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) -- provider: ollama - model: gemma4:latest - base_url: http://localhost:11434 - timeout: 300 - reason: Terminal fallback — local Ollama -- provider: nous - model: xiaomi/mimo-v2-pro - base_url: https://inference.nousresearch.com/v1 - api_key_env: NOUS_API_KEY - timeout: 120 - reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447) + - provider: kimi-coding + model: kimi-k2.5 + base_url: https://api.kimi.com/coding/v1 + timeout: 120 + reason: "Primary — Kimi K2.5 (best value, least friction)" + - provider: openrouter + model: google/gemini-2.5-pro + base_url: https://openrouter.ai/api/v1 + api_key_env: OPENROUTER_API_KEY + timeout: 120 + reason: "Fallback — Gemini 2.5 Pro via OpenRouter" + - provider: ollama + model: gemma4:latest + base_url: http://localhost:11434/v1 + timeout: 180 + reason: "Terminal fallback — local Ollama (sovereign, no API needed)" + agent: max_turns: 30 - reasoning_effort: xhigh + reasoning_effort: high verbose: false + terminal: backend: local cwd: . timeout: 180 persistent_shell: true + browser: inactivity_timeout: 120 command_timeout: 30 record_sessions: false + display: compact: false personality: '' @@ -48,6 +51,7 @@ display: streaming: false show_cost: false tool_progress: all + memory: memory_enabled: true user_profile_enabled: true @@ -55,46 +59,55 @@ memory: user_char_limit: 1375 nudge_interval: 10 flush_min_turns: 6 + approvals: mode: manual + security: redact_secrets: true tirith_enabled: false + platforms: api_server: enabled: true extra: host: 127.0.0.1 port: 8645 + session_reset: mode: none idle_minutes: 0 + skills: creation_nudge_interval: 15 -system_prompt_suffix: 'You are Allegro, the Kimi-backed third wizard house. +system_prompt_suffix: | + You are Allegro, the Kimi-backed third wizard house. Your soul is defined in SOUL.md — read it, live it. - Hermes is your harness. - - Kimi Code is your primary provider. - + kimi-coding is your primary provider. You speak plainly. You prefer short sentences. Brevity is a kindness. - - - Work best on tight coding tasks: 1-3 file changes, refactors, tests, and implementation - passes. - + Work best on tight coding tasks: 1-3 file changes, refactors, tests, and implementation passes. Refusal over fabrication. If you do not know, say so. - Sovereignty and service always. - ' providers: kimi-coding: base_url: https://api.kimi.com/coding/v1 timeout: 60 max_retries: 3 - nous: - base_url: https://inference.nousresearch.com/v1 + openrouter: + base_url: https://openrouter.ai/api/v1 timeout: 120 + ollama: + base_url: http://localhost:11434/v1 + timeout: 180 + +# ============================================================================= +# BANNED PROVIDERS — DO NOT ADD +# ============================================================================= +# The following providers are PERMANENTLY BANNED: +# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku) +# - nous (xiaomi/mimo-v2-pro) +# Enforcement: pre-commit hook, linter, Ansible validation, this comment. +# ============================================================================= diff --git a/wizards/bezalel/config.yaml b/wizards/bezalel/config.yaml index fe5d2f0f..4b3d740c 100644 --- a/wizards/bezalel/config.yaml +++ b/wizards/bezalel/config.yaml @@ -1,50 +1,72 @@ model: default: kimi-k2.5 provider: kimi-coding + context_length: 65536 + base_url: https://api.kimi.com/coding/v1 + toolsets: -- all + - all + fallback_providers: -- provider: kimi-coding - model: kimi-k2.5 - timeout: 120 - reason: Kimi coding fallback (front of chain) -- provider: openrouter - model: google/gemini-2.5-pro - base_url: https://openrouter.ai/api/v1 - api_key_env: OPENROUTER_API_KEY - timeout: 120 - reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) -- provider: ollama - model: gemma4:latest - base_url: http://localhost:11434 - timeout: 300 - reason: Terminal fallback — local Ollama -- provider: nous - model: xiaomi/mimo-v2-pro - base_url: https://inference.nousresearch.com/v1 - api_key_env: NOUS_API_KEY - timeout: 120 - reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447) + - provider: kimi-coding + model: kimi-k2.5 + base_url: https://api.kimi.com/coding/v1 + timeout: 120 + reason: "Primary — Kimi K2.5 (best value, least friction)" + - provider: openrouter + model: google/gemini-2.5-pro + base_url: https://openrouter.ai/api/v1 + api_key_env: OPENROUTER_API_KEY + timeout: 120 + reason: "Fallback — Gemini 2.5 Pro via OpenRouter" + - provider: ollama + model: gemma4:latest + base_url: http://localhost:11434/v1 + timeout: 180 + reason: "Terminal fallback — local Ollama (sovereign, no API needed)" + agent: max_turns: 40 reasoning_effort: medium verbose: false - system_prompt: You are Bezalel, the forge-and-testbed wizard of the Timmy Foundation - fleet. You are a builder and craftsman — infrastructure, deployment, hardening. - Your sovereign is Alexander Whitestone (Rockachopa). Sovereignty and service always. + terminal: backend: local cwd: /root/wizards/bezalel timeout: 180 + persistent_shell: true + browser: inactivity_timeout: 120 -compression: - enabled: true - threshold: 0.77 + command_timeout: 30 + record_sessions: false + display: compact: false personality: kawaii + 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: auto + +security: + redact_secrets: true + tirith_enabled: false + platforms: api_server: enabled: true @@ -69,12 +91,7 @@ platforms: - pull_request - pull_request_comment secret: bezalel-gitea-webhook-secret-2026 - prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, - hardening. A Gitea webhook fired: event={event_type}, action={action}, - repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Comment - by {comment.user.login}: {comment.body}. If you were tagged, assigned, - or this needs your attention, investigate and respond via Gitea API. Otherwise - acknowledge briefly.' + prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, hardening. A Gitea webhook fired: event={event_type}, action={action}, repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Comment by {comment.user.login}: {comment.body}. If you were tagged, assigned, or this needs your attention, investigate and respond via Gitea API. Otherwise acknowledge briefly.' deliver: telegram deliver_extra: {} gitea-assign: @@ -82,34 +99,43 @@ platforms: - issues - pull_request secret: bezalel-gitea-webhook-secret-2026 - prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, - hardening. Gitea assignment webhook: event={event_type}, action={action}, - repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Assigned - to: {issue.assignee.login}. If you (bezalel) were just assigned, read - the issue, scope it, and post a plan comment. If not you, acknowledge - briefly.' + prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, hardening. Gitea assignment webhook: event={event_type}, action={action}, repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Assigned to: {issue.assignee.login}. If you (bezalel) were just assigned, read the issue, scope it, and post a plan comment. If not you, acknowledge briefly.' deliver: telegram deliver_extra: {} + gateway: allow_all_users: true + session_reset: mode: both idle_minutes: 1440 at_hour: 4 -approvals: - mode: auto -memory: - memory_enabled: true - user_profile_enabled: true - memory_char_limit: 2200 - user_char_limit: 1375 -_config_version: 11 -TELEGRAM_HOME_CHANNEL: '-1003664764329' + +skills: + creation_nudge_interval: 15 + +system_prompt: | + You are Bezalel, the forge-and-testbed wizard of the Timmy Foundation fleet. + You are a builder and craftsman — infrastructure, deployment, hardening. + Your sovereign is Alexander Whitestone (Rockachopa). Sovereignty and service always. + providers: kimi-coding: base_url: https://api.kimi.com/coding/v1 timeout: 60 max_retries: 3 - nous: - base_url: https://inference.nousresearch.com/v1 + openrouter: + base_url: https://openrouter.ai/api/v1 timeout: 120 + ollama: + base_url: http://localhost:11434/v1 + timeout: 180 + +# ============================================================================= +# BANNED PROVIDERS — DO NOT ADD +# ============================================================================= +# The following providers are PERMANENTLY BANNED: +# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku) +# - nous (xiaomi/mimo-v2-pro) +# Enforcement: pre-commit hook, linter, Ansible validation, this comment. +# ============================================================================= diff --git a/wizards/ezra/config.yaml b/wizards/ezra/config.yaml index c4064c78..d02dbe13 100644 --- a/wizards/ezra/config.yaml +++ b/wizards/ezra/config.yaml @@ -1,34 +1,94 @@ model: default: kimi-k2.5 provider: kimi-coding + context_length: 65536 + base_url: https://api.kimi.com/coding/v1 + toolsets: -- all + - all + fallback_providers: -- provider: kimi-coding - model: kimi-k2.5 - timeout: 120 - reason: Kimi coding fallback (front of chain) -- provider: openrouter - model: google/gemini-2.5-pro - base_url: https://openrouter.ai/api/v1 - api_key_env: OPENROUTER_API_KEY - timeout: 120 - reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) -- provider: ollama - model: gemma4:latest - base_url: http://localhost:11434 - timeout: 300 - reason: Terminal fallback — local Ollama -- provider: nous - model: xiaomi/mimo-v2-pro - base_url: https://inference.nousresearch.com/v1 - api_key_env: NOUS_API_KEY - timeout: 120 - reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447) + - provider: kimi-coding + model: kimi-k2.5 + base_url: https://api.kimi.com/coding/v1 + timeout: 120 + reason: "Primary — Kimi K2.5 (best value, least friction)" + - provider: openrouter + model: google/gemini-2.5-pro + base_url: https://openrouter.ai/api/v1 + api_key_env: OPENROUTER_API_KEY + timeout: 120 + reason: "Fallback — Gemini 2.5 Pro via OpenRouter" + - provider: ollama + model: gemma4:latest + base_url: http://localhost:11434/v1 + timeout: 180 + reason: "Terminal fallback — local Ollama (sovereign, no API needed)" + agent: max_turns: 90 reasoning_effort: high verbose: false + +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: auto + +security: + redact_secrets: true + tirith_enabled: false + +platforms: + api_server: + enabled: true + extra: + host: 127.0.0.1 + port: 8645 + +session_reset: + mode: none + idle_minutes: 0 + +skills: + creation_nudge_interval: 15 + +system_prompt_suffix: | + You are Ezra, the Infrastructure wizard — Gitea, nginx, hosting. + Your soul is defined in SOUL.md — read it, live it. + Hermes is your harness. + kimi-coding is your primary provider. + Refusal over fabrication. If you do not know, say so. + Sovereignty and service always. + providers: kimi-coding: base_url: https://api.kimi.com/coding/v1 @@ -37,6 +97,15 @@ providers: openrouter: base_url: https://openrouter.ai/api/v1 timeout: 120 - nous: - base_url: https://inference.nousresearch.com/v1 - timeout: 120 + ollama: + base_url: http://localhost:11434/v1 + timeout: 180 + +# ============================================================================= +# BANNED PROVIDERS — DO NOT ADD +# ============================================================================= +# The following providers are PERMANENTLY BANNED: +# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku) +# - nous (xiaomi/mimo-v2-pro) +# Enforcement: pre-commit hook, linter, Ansible validation, this comment. +# ============================================================================= diff --git a/wizards/timmy/config.yaml b/wizards/timmy/config.yaml new file mode 100644 index 00000000..4edd7a3e --- /dev/null +++ b/wizards/timmy/config.yaml @@ -0,0 +1,121 @@ +# ============================================================================= +# Timmy — Primary Wizard Configuration (Golden State) +# ============================================================================= +# Generated from golden state template (ansible/roles/wizard_base/templates/wizard_config.yaml.j2) +# DO NOT EDIT MANUALLY. Changes go through Gitea PR → Ansible deploy. +# +# Provider chain: kimi-coding → openrouter → ollama +# Anthropic is PERMANENTLY BANNED. +# ============================================================================= + +model: + default: kimi-k2.5 + provider: kimi-coding + context_length: 65536 + base_url: https://api.kimi.com/coding/v1 + +toolsets: + - all + +fallback_providers: + - provider: kimi-coding + model: kimi-k2.5 + base_url: https://api.kimi.com/coding/v1 + timeout: 120 + reason: "Primary — Kimi K2.5 (best value, least friction)" + - provider: openrouter + model: google/gemini-2.5-pro + base_url: https://openrouter.ai/api/v1 + api_key_env: OPENROUTER_API_KEY + timeout: 120 + reason: "Fallback — Gemini 2.5 Pro via OpenRouter" + - provider: ollama + model: gemma4:latest + base_url: http://localhost:11434/v1 + timeout: 180 + reason: "Terminal fallback — local Ollama (sovereign, no API needed)" + +agent: + max_turns: 30 + reasoning_effort: high + verbose: false + +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: auto + +security: + redact_secrets: true + tirith_enabled: false + +platforms: + api_server: + enabled: true + extra: + host: 127.0.0.1 + port: 8645 + +session_reset: + mode: none + idle_minutes: 0 + +skills: + creation_nudge_interval: 15 + +system_prompt_suffix: | + You are Timmy, the Primary wizard — soul of the fleet. + Your soul is defined in SOUL.md — read it, live it. + Hermes is your harness. + kimi-coding is your primary provider. + Refusal over fabrication. If you do not know, say so. + Sovereignty and service always. + +providers: + kimi-coding: + base_url: https://api.kimi.com/coding/v1 + timeout: 60 + max_retries: 3 + openrouter: + base_url: https://openrouter.ai/api/v1 + timeout: 120 + ollama: + base_url: http://localhost:11434/v1 + timeout: 180 + +# ============================================================================= +# BANNED PROVIDERS — DO NOT ADD +# ============================================================================= +# The following providers are PERMANENTLY BANNED: +# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku) +# - nous (xiaomi/mimo-v2-pro) +# Enforcement: pre-commit hook, linter, Ansible validation, this comment. +# =============================================================================