# Sync Hermes Orchestrator — config template
#
# Copy this to ~/.hermes-sync/config.yaml as the starting config for
# the orchestrator runtime. Customize the model, personality, and
# Telegram/Discord bot config to taste.
#
# IMPORTANT: this is a SEPARATE config dir from your personal Hermes
# (~/.hermes/). Keep them distinct — different API keys, different
# Telegram bot tokens, different skill bundles. See
# ../briefs/sync-hermes-agent-brief.md §3 for why.
#
# Most fields here mirror your personal config; only the differences
# that matter for the orchestrator are commented inline.

model:
  # Recommended: Sonnet 4.6 for the orchestrator since it'll do reasoning
  # work (find_relevant_voices, decision-capture extraction, etc.) when
  # those skills are built. Haiku 4.5 is fine if you want to keep cost
  # down during scaffold testing.
  default: claude-sonnet-4-6
  provider: anthropic

providers: {}
fallback_providers: []
credential_pool_strategies: {}

toolsets:
- hermes-cli

agent:
  max_turns: 90
  gateway_timeout: 1800
  restart_drain_timeout: 60
  api_max_retries: 3
  service_tier: ''
  tool_use_enforcement: auto
  gateway_timeout_warning: 900
  gateway_notify_interval: 180
  gateway_auto_continue_freshness: 3600
  image_input_mode: auto
  disabled_toolsets: []
  verbose: false
  reasoning_effort: medium
  personalities:
    # The orchestrator's identity should be sharper / more deliberate
    # than a personal assistant. It speaks for "Sync" as an institution.
    sync_orchestrator: |
      You are the Sync Hermes orchestrator — a second-tier agent that
      represents the Sync coherence/reputation system to other agents
      and to humans coordinating across teams. You are NOT a personal
      assistant. You speak with measured deliberation, not warmth.
      Cite real data from the Pulse MCP tools, never fabricate.
      Your job is to make Sync addressable, not to be charming.
    helpful: You are a helpful, friendly AI assistant.

terminal:
  backend: local
  modal_mode: auto
  cwd: .
  timeout: 180
  env_passthrough: []
  shell_init_files: []
  auto_source_bashrc: true

# Same MCP server config as personal Hermes — the orchestrator IS an
# MCP client and consumes the same Sync surface. Auth uses an API key
# in the orchestrator's environment (set in ~/.hermes-sync/.env).
#
# When team-scoped queries land (currently deferred per ADR-046), this
# server registration may need a privileged API key with cross-user
# read scope. For now, a regular CoachJ-scoped key is fine.
mcp_servers:
  pulse:
    transport: http
    url: https://sync.beaconinfra.xyz/api/agent/v1/mcp
    headers:
      Authorization: "Bearer ${PULSE_API_KEY}"

# Orchestrator-specific Telegram bot — separate from your personal bot.
# Create a new bot via @BotFather, copy the token, and set
# TELEGRAM_BOT_TOKEN in ~/.hermes-sync/.env.
#
# Leave this section commented out if you don't want a Telegram surface
# for the orchestrator yet — the runtime works fine via CLI alone.
#
# telegram:
#   reactions: true
#   channel_prompts: {}

display:
  compact: false
  personality: sync_orchestrator
  resume_display: full
  busy_input_mode: interrupt
  show_reasoning: false
  streaming: true
  final_response_markdown: strip
  inline_diffs: true
  show_cost: false
  skin: default

# Skills directory — initially empty. F2 skills (Skill 5 / 6-8 / 9) land
# here as they come back from deferral. Personal-DTA skills (the v2
# pulse-judgment-layer SKILL.md) do NOT belong here — they live in
# ~/.hermes/skills/ for the personal Hermes.
skills:
  external_dirs: []
  template_vars: true
  inline_shell: false
  inline_shell_timeout: 10
  guard_agent_created: false
  creation_nudge_interval: 15
  disabled: []

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

approvals:
  mode: manual
  timeout: 60
  cron_mode: deny
  mcp_reload_confirm: true

logging:
  level: INFO
  max_size_mb: 5
  backup_count: 3
