let C = import "contracts.ncl" in

{
  nickel_import_paths = [".", ".ontology", "ontology/schemas", "adrs", "reflection/requirements", "reflection/schemas"],

  ui = {
    templates_dir = "crates/ontoref-daemon/templates",
    public_dir    = "crates/ontoref-daemon/public",
    tls_cert      = "",
    tls_key       = "",
    logo          = "ontoref-logo.svg",
  },

  log | C.LogConfig = {
    level    = "info",
    path     = "logs",
    rotation = "daily",
    compress = false,
    archive  = "logs-archive",
    max_files = 7,
  },

  mode_run = {
    rules = [
      { when = { mode_id = "validate-ontology" }, allow = true, reason = "validation always allowed" },
      { when = { actor = "agent" },               allow = true, reason = "agent actor always allowed" },
      { when = { actor = "ci" },                  allow = true, reason = "ci actor always allowed" },
    ],
  },

  nats_events = {
    enabled      = false,
    url          = "nats://localhost:4222",
    emit         = [],
    subscribe    = [],
    handlers_dir = "reflection/handlers",
  },

  actor_init = [
    { actor = "agent",     mode = "describe capabilities", auto_run = true  },
    { actor = "developer", mode = "",                      auto_run = false },
    { actor = "ci",        mode = "",                      auto_run = false },
  ],

  quick_actions = [
    {
      id       = "gen-docs",
      label    = "Generate documentation",
      icon     = "book-open",
      category = "docs",
      mode     = "generate-mdbook",
      actors   = ["developer", "agent"],
    },
    {
      id       = "sync-onto",
      label    = "Sync ontology",
      icon     = "refresh",
      category = "sync",
      mode     = "sync-ontology",
      actors   = ["developer", "ci", "agent"],
    },
    {
      id       = "coder-workflow",
      label    = "Coder workflow",
      icon     = "code",
      category = "process",
      mode     = "coder-workflow",
      actors   = ["developer", "agent"],
    },
  ],

  card = import "../card.ncl",
}
