{
  "$schema": "https://app.kilo.ai/config.json",

  // F1: tvrdá runtime pojistka pro D6 a invariant 3 "jeden orchestration path".
  // Default je sice 1, ale je zapsán explicitně, aby byl součástí auditu konfigurace.
  "subagent_depth": 3,

  // Orchestrátor je jediný primární agent tohoto projektu (D6).
  "default_agent": "promptmaster",

  // [OVĚŘENO] `mode` se musí deklarovat ZDE, nejen ve frontmatteru .md.
  // Markdown frontmatter se přiřadí jen tehdy, když `agent.<jméno>` v této mapě
  // ještě neexistuje. Pokud existuje (např. v globálním ~/.config/kilo/kilo.jsonc),
  // JSON vyhrává a frontmatter se TIŠE zahazuje — agent pak resolveuje s jiným
  // mode, než .md deklaruje. Orchestrátor tak resolveoval jako `all` místo
  // `primary`, což by při `task: allow` na orchestrator obešlo D6.
  "agent": {
    "orchestrator": {
      "mode": "primary",
      "description": "Jediný delegátor — řídí bezpečnostní řetěz"
    },
    "promptmaster": {
      "mode": "primary",
      "description": "Kvalifikuje prompt a připraví artefakt pro Orchestrátora"
    },
    "verifier": {
      "mode": "subagent",
      "description": "Deterministická verifikace před a po změně"
    },
    "code-reviewer": {
      "mode": "subagent",
      "description": "Čte diff a navrhuje změny. Nemění soubory."
    },
    "deep-research": {
      "mode": "subagent",
      "description": "Veřejný webový výzkum s URL a datem přístupu."
    },
    "documenter": {
      "mode": "subagent",
      "description": "Dokumentátor — píše a upravuje výhradně markdown dokumentaci. Nemá bash, nemá task, nemá exekuci kódu."
    },
    "implementer": {
      "mode": "subagent",
      "description": "Mění kód a testy podle schváleného zadání. První krok musí být diff k odsouhlasení."
    },
    "pricing-researcher": {
      "mode": "subagent",
      "description": "Simulované a reálné rozhovory zaměřené na peníze a balení produktu."
    },
    "security-auditor": {
      "mode": "subagent",
      "description": "Provádí bezpečnostní audit, fail-closed, read-only."
    },
    "tester": {
      "mode": "subagent",
      "description": "Spouští deterministické brány: pytest, ruff, mypy. Nepiš testy, abys jimi prošel."
    },
"threat-modeler": {
      "mode": "subagent",
      "description": "Modeluje hrozby a navrhuje mitigace. Read-only."
    },
    "gate3-auditor": {
      "mode": "subagent",
      "description": "Nezávislý Gate 3 auditér — spouští pytest, nekóduje, nevrací šablony."
    },
    "overseer": {
      "mode": "subagent",
      "description": "Dohorce nad rozhodnutími orchestrátora. Nekontroluje kód, kontroluje důkazy, scope a fail-closed. Nic nepíše."
    },
    "scout": {
      "mode": "subagent",
      "description": "Partner, který hledá lepší cestu a argumentuje s Orchestrátorem. Navrhuje alternativy, souhlasí jen když je nutný."
    }
  },

  "permission": {
    // Pravidla se vyhodnocují v konfiguračním pořadí a VYHRÁVA POSLEDNÍ SHODA
    // (https://kilo.ai/docs/customize/agent-permissions, staženo 2026-10-02).
    // Proto catch-all musí být PRVNÍ a výjimky až za něj.
    "*": "ask",

    // D3: žádný agent v tomto repozitáři nemá běh na hostovi — VYJÍMKA: tester, security-auditor, gate3-auditor, verifier, deep-research, orchestrator mají bash: allow (schváleno vlastníkem)
    "bash": "deny",
    "external_directory": { "/tmp/kilo/**": "ask", "*": "deny", "/oem/**": "allow" },
    "agent_manager": "deny",
    "doom_loop": "deny",

    // Globální zákaz delegace. Orchestrátor si konkrétní subagenty
    // výslovně povolí ve svém frontmatteru (D6).
    "task": { "*": "deny" },

    // MCP nástroje nejsou výjimka z bezpečnosti — jsou to brány do security plane.
    // Kilo jen promptuje uživatele; autorizaci provádí Python v
    // AuthorizedExecutionService (execution_plane/secure_gateway.py:82-169).
    "cyberbrain26_*": "ask"
  },

  "mcp": {
    // Výstup fáze F3. V F1 server v repu ještě neexistuje
    // [OVĚŘENO: src/cyberbrain26/mcp/ NEEXISTUJE, mcp SDK není v pyproject.toml],
    // proto je explicitně vypnutý = fail-closed, ne tichý fallback.
    // Test tests/test_kilo_agent_policy.py::test_mcp_server_explicitly_disabled
    // vyžaduje přesně {"enabled": false} — chybějící klíč by znamenal, že stav
    // závisí na výchozí hodnotě Kilo.
    "cyberbrain26": { "enabled": false }
  },
  "indexing": {
    "enabled": true,
    "model": "dolphin-mistral:latest",
    "dimension": 102400,
    "ollama": {
      "baseUrl": "http://localhost:11434"
    },
    "fileExtensions": [
      ".json",
      ".md",
      ".py",
      ".pyi",
      ".toml",
      ".yaml",
      ".yml"
    ]
  },
  "snapshot": false
}
