configTopLevelKeys top-level constant

Set<String> const configTopLevelKeys

Every top-level key the runtime config actually reads (the keys CliConfig.fromYaml consumes, plus the roles: group members). The source-text pin keeping this set honest lives in test/config/config_service_test.dart.

Implementation

const configTopLevelKeys = <String>{
  'provider',
  'model',
  'baseUrl',
  'mode',
  'approvalMode',
  'allowedTools',
  'prompts',
  'roles',
  'modelOverrides',
  'retry',
  'ttsr',
  'memory',
  'cube',
  'tools',
  'redact',
  'spills',
  'compaction',
  'customProviders',
  'models',
  'mcp',
  'a2a',
  'providerTimeouts',
  'agent',
  'images',
  'skills',
  'subagents',
  'fabric',
  'power',
  'tui',
  'links',

  // The main-model provider queue (issue #418): a top-level section in
  // project/user yaml (and the FA_PROVIDERS_QUEUE env) parsed by the
  // queue resolver (lib/src/model_roles/providers_queue.dart).
  'providersQueue',

  // Console-output behavior flags (gh-1198): the opt-in live thinking
  // stream (`output.streamThinking`).
  'output',

  // The self-update policy (issue #1377): the `auto_update` scalar
  // (`true`/`false`/`"notify"`), read by CliConfig.fromYaml and validated
  // by the strict scalar mirror below (this file cannot import
  // cli_config.dart — it uses dart:io).
  'auto_update',
};