shutdown_timeout: 30s

address: ":8080"

stt:
  url: "http://localhost:8178"

tts:
  url: "http://localhost:8880"
  voice: "af_heart"
  timeout: "60s"

default_model:
  provider: "llama.cpp"
  model: "qwen3.6-27b"

providers:
  - name: "llama.cpp"
    key: ${LLM_API_KEY}
    url: "http://localhost:8081/v1"
    timeout: "5m"

  - name: "openrouter"
    url: "https://openrouter.ai/api/v1"
    key: "${OPENROUTER_KEY}"
    timeout: "5m"
    models:
      - "~anthropic/claude-opus-latest:exacto"
      - "~google/gemini-pro-latest:exacto"
      - "~openai/gpt-latest:exacto"
      - "deepseek/deepseek-v4-pro:exacto"
      - "deepseek/deepseek-v4-flash:exacto"
      - "minimax/minimax-m3:exacto"
      - "mistralai/mistral-medium-3-5:exacto"
      - "moonshotai/kimi-k2.6:exacto"
      - "moonshotai/kimi-k2.7-code:exacto"
      - "qwen/qwen3.6-27b:exacto"
      - "z-ai/glm-5.1:exacto"

tools:
  - name: get_weather
    description: "Get current weather for a location"
    command: "curl"
    arguments:
      - "-s"
      - "https://wttr.in/{{ .location }}?format=j1"
    parameters:
      type: object
      properties:
        location:
          type: string
          description: "City name or location"
      required:
        - location
    timeout: "10s"
  - name: sandbox_run
    description: |
      Execute a shell command inside a bubblewrap sandbox. The sandbox has
      read-write access to the current directory, read-only access to system
      binaries, no network access, no SSH keys, isolated /tmp, and process
      isolation. Use this for all file operations (cat, grep, find, mkdir,
      sed, tee, patch), building, testing, and any command execution that
      does not require network access.
    command: "sandbox_run"
    arguments:
      - "{{ .command }}"
    parameters:
      type: object
      properties:
        command:
          type: string
          description:
            "The complete shell command to execute inside the sandbox."
      required:
        - command
    timeout: "30s"
  - name: host_run
    description: |
      Execute a shell command on the host system with no sandbox. Use only
      when you need network access (curl, SSH, git clone), system-level
      changes (package installs, service management), or access to files
      outside the current directory. Prefer sandbox_run for all other command
      execution.
    command: "bash"
    arguments:
      - "-c"
      - "{{ .command }}"
    parameters:
      type: object
      properties:
        command:
          type: string
          description: "The complete shell command to execute on the host"
      required:
        - command
    timeout: "60s"

jobs:
  - name: "daily_summary"
    schedule: "0 9 * * *"
    system_message: "You are an assistant."
    task: "Report the uptime on your host."
    timeout: "3m"
    max_iterations: 5  # 0 means unlimited
