# Commands Configuration Module
# Purpose: Command metadata registry and classification
# Release: 1.0.0

let contracts_lib = import "./contracts.ncl" in
let defaults_lib = import "./defaults.ncl" in

{
  # Direct access to defaults
  defaults = defaults_lib,

  # Convenience makers (not exported)
  make_command_requirements | not_exported = fun overrides =>
    defaults_lib.command_requirements & overrides,

  make_command_metadata | not_exported = fun overrides =>
    defaults_lib.command_metadata & overrides,

  make_command_registry | not_exported = fun overrides =>
    defaults_lib.command_registry & overrides,

  # Default schema instances
  DefaultCommandRequirements = defaults_lib.command_requirements,
  DefaultCommandMetadata = defaults_lib.command_metadata,
  DefaultCommandRegistry = defaults_lib.command_registry,

  # Individual command defaults
  ServerCreate = defaults_lib.server_create,
  ServerDelete = defaults_lib.server_delete,
  ServerList = defaults_lib.server_list,
  TaskservCreate = defaults_lib.taskserv_create,
  TaskservDelete = defaults_lib.taskserv_delete,
  ClusterCreate = defaults_lib.cluster_create,
  WorkspaceInit = defaults_lib.workspace_init,
  WorkspaceList = defaults_lib.workspace_list,
  WorkspaceSwitch = defaults_lib.workspace_switch,
  AuthLogin = defaults_lib.auth_login,
  MfaEnroll = defaults_lib.mfa_enroll,
  SetupWizard = defaults_lib.setup_wizard,
  HelpCommand = defaults_lib.help_command,
  VersionCommand = defaults_lib.version_command,
}
