hermes-hub/config/router_profiles.example.yaml
ochenstarik-ui 2b89372b0f feat(config): A41 чистая конфигурация при первой установке, безопасность учетных данных и сброс
1. P0-1: get_default_router_config() возвращает чистую конфигурацию (0 профилей,
   13 канонических ролей с пустыми цепочками). Миграция не внедряет фиктивные профили.
2. P0-2: Учетные данные (~/.hermes/*_profiles/, hub_settings.json) изолированы и
   никогда не затрагиваются при сбросе или установке.
3. P0-3: Профили создаются динамически при подключении аккаунтов (ag-1, codex-1, etc.).
   Пустые цепочки ролей являются нормальным рабочим состоянием.
4. P0-4: Добавлен экшен reset_router_config и кнопка «Начать настройку заново»
   в настройках с подтверждением и созданием бэкапа router_profiles.yaml.bak_<timestamp>.
5. P0-5: scripts/verify_multi_provider_router.py адаптирован и проходит 10/10 PASS
   как на пустой конфигурации, так и на заполненной.
6. tests/test_a41_clean_install.py: 6 тестов, 490 passed, ruff чисто.
2026-08-31 02:27:42 +07:00

136 lines
3.2 KiB
YAML

# Hermes Hub: Multi-Provider Account Router Default Profiles Template
# Clean initial configuration (0 profiles, 13 canonical roles with empty chains).
# Accounts are dynamically created and mapped as you connect them.
router:
enabled: true
default_role: "manager"
max_failover_attempts: 3
cooldown_base_seconds: 300
cooldown_max_seconds: 3600
session_affinity_ttl_seconds: 1800
quota_threshold_percent: 10.0
quota_threshold_action: "notify"
roles:
manager:
role_name: "manager"
preferred_chain: []
fallback_capabilities:
- "orchestrator"
- "reasoning"
max_failover_attempts: 3
session_affinity_enabled: true
default_model: "gemini-3.7-flash"
developer-1:
role_name: "developer-1"
preferred_chain: []
fallback_capabilities:
- "coding"
max_failover_attempts: 3
session_affinity_enabled: true
default_model: "gemini-3.7-flash"
developer-2:
role_name: "developer-2"
preferred_chain: []
fallback_capabilities:
- "coding"
- "reviewer"
max_failover_attempts: 3
session_affinity_enabled: true
default_model: "gemini-3.1-pro-high"
code-reviewer:
role_name: "code-reviewer"
preferred_chain: []
fallback_capabilities:
- "reviewer"
- "coding"
max_failover_attempts: 3
session_affinity_enabled: true
default_model: "claude-opus-4-6-thinking"
researcher:
role_name: "researcher"
preferred_chain: []
fallback_capabilities:
- "research"
- "search"
max_failover_attempts: 3
session_affinity_enabled: true
tester:
role_name: "tester"
preferred_chain: []
fallback_capabilities:
- "fast"
- "testing"
max_failover_attempts: 3
session_affinity_enabled: true
tech-writer:
role_name: "tech-writer"
preferred_chain: []
fallback_capabilities:
- "documentation"
- "reasoning"
max_failover_attempts: 3
session_affinity_enabled: true
analyst:
role_name: "analyst"
preferred_chain: []
fallback_capabilities:
- "reasoning"
- "research"
max_failover_attempts: 3
session_affinity_enabled: true
guardian:
role_name: "guardian"
preferred_chain: []
fallback_capabilities:
- "guardian"
- "security"
max_failover_attempts: 0
session_affinity_enabled: true
cost-controller:
role_name: "cost-controller"
preferred_chain: []
fallback_capabilities:
- "cost-controller"
- "budget"
max_failover_attempts: 0
session_affinity_enabled: true
integration-expert:
role_name: "integration-expert"
preferred_chain: []
fallback_capabilities:
- "integration"
- "coding"
max_failover_attempts: 3
session_affinity_enabled: true
security-expert:
role_name: "security-expert"
preferred_chain: []
fallback_capabilities:
- "security"
- "code-reviewer"
max_failover_attempts: 3
session_affinity_enabled: true
dependency-agent:
role_name: "dependency-agent"
preferred_chain: []
fallback_capabilities:
- "dependency-agent"
- "preflight"
max_failover_attempts: 3
session_affinity_enabled: true
profiles: {}