{
  "comment": "KA Guardian — topologie des agents, services et nœuds. Source de vérité partagée orchestrateurs/runners.",
  "apika_monitoring_url": "https://www.api-ka.com/api/v1/monitoring/connectors",
  "runner_port": 7791,
  "agents": {
    "ka2": {
      "port": 8799,
      "domain": "www.ka2.bot",
      "accent": "#22d3ee",
      "accent2": "#0891b2",
      "tagline": "Gardien immobilier & local",
      "model": "sonnet",
      "services": ["louka", "immoka", "restoka"]
    },
    "ka4": {
      "port": 8899,
      "domain": "www.ka4.bot",
      "accent": "#fbbf24",
      "accent2": "#d97706",
      "tagline": "Gardien mobilité & quotidien",
      "model": "sonnet",
      "services": ["autoka", "foodka", "sortika"]
    },
    "ka6": {
      "port": 8999,
      "domain": "www.ka6.bot",
      "accent": "#a78bfa",
      "accent2": "#7c3aed",
      "tagline": "Gardien flagship — gros volumes",
      "model": "sonnet",
      "services": ["fabrika", "jobka", "creaka"],
      "default_for_unknown_services": true
    }
  },
  "nodes": {
    "m3u96a": { "lan_ip": "192.168.2.87", "alias": "M3U96a" },
    "m3u96b": { "lan_ip": "192.168.2.82", "alias": "M3U96b" },
    "m4m64a": { "lan_ip": "192.168.2.83", "alias": "M4M64a" },
    "m4m64b": { "lan_ip": "192.168.2.78", "alias": "M4M64b" }
  },
  "services": {
    "louka":   { "app": "Lou·Ka",    "node": "m3u96b", "dir": "~/apps/lou-ka",   "pm2": ["lou-ka-web", "lou-ka-sync"],   "web_port": 8095, "site": "https://www.lou-ka.com" },
    "restoka": { "app": "Resto·Ka",  "node": "m3u96b", "dir": "~/apps/resto-ka", "pm2": ["resto-ka", "resto-ka-sync"],   "web_port": 8115, "site": "https://www.resto-ka.com" },
    "creaka":  { "app": "Créa·Ka",   "node": "m3u96b", "dir": "~/apps/crea-ka",  "pm2": ["crea-ka-web", "crea-ka-sync"], "web_port": 8160, "site": "https://www.crea-ka.com" },
    "immoka":  { "app": "Immo·Ka",   "node": "m4m64a", "dir": "~/apps/immo-ka",  "pm2": ["immo-ka-web", "immo-ka-sync"], "web_port": 8096, "site": "https://www.immo-ka.com" },
    "fabrika": { "app": "Fabri·Ka",  "node": "m4m64a", "dir": "~/fabri-ka",      "pm2": ["fabri-ka-web", "fabri-ka-sync"], "web_port": 8097, "site": "https://www.fabri-ka.com" },
    "autoka":  { "app": "Auto·Ka",   "node": "m4m64b", "dir": "~/auto-ka",       "pm2": ["auto-ka-web", "auto-ka-sync"], "web_port": 8095, "site": "https://www.auto-ka.com" },
    "foodka":  { "app": "Food·Ka",   "node": "m4m64b", "dir": "~/apps/food-ka",  "pm2": ["food-ka-web", "food-ka-sync"], "web_port": 8097, "site": "https://www.food-ka.com" },
    "sortika": { "app": "Sorti·Ka",  "node": "m3u96a", "dir": "~/apps/sorti-ka", "pm2": ["sorti-ka-web", "sorti-ka-sync"], "web_port": 8120, "site": "https://www.sorti-ka.com" },
    "jobka":   { "app": "Job·Ka",    "node": "m3u96a", "dir": "~/apps/job-ka",   "pm2": ["job-ka-web", "job-ka-sync"],   "web_port": 8096, "site": "https://www.job-ka.com" }
  },
  "policy": {
    "poll_interval_seconds": 300,
    "trigger_statuses": ["broken", "stale"],
    "max_concurrent_missions": 1,
    "max_attempts_per_incident": 3,
    "attempt_cooldown_hours": 6,
    "watch_window_hours": 8,
    "mission_max_turns": 70,
    "mission_timeout_seconds": 3600,
    "effort_max_turns": 150,
    "effort_timeout_seconds": 7200
  }
}
