# | Workspace configuration instances (defaults only)
# | Migrated from: provisioning/kcl/workspace_config.k
# | Pattern: Hybrid - defaults + makers + direct access (contracts available via import)

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

{
  defaults = defaults_lib,

  make_workspace | not_exported = fun overrides =>
    defaults_lib.workspace & overrides,
  make_paths | not_exported = fun overrides =>
    defaults_lib.paths & overrides,
  make_provisioning | not_exported = fun overrides =>
    defaults_lib.provisioning & overrides,
  make_core | not_exported = fun overrides =>
    defaults_lib.core & overrides,
  make_debug | not_exported = fun overrides =>
    defaults_lib.debug & overrides,
  make_output | not_exported = fun overrides =>
    defaults_lib.output & overrides,
  make_http | not_exported = fun overrides =>
    defaults_lib.http & overrides,
  make_providers | not_exported = fun overrides =>
    defaults_lib.providers & overrides,
  make_platform | not_exported = fun overrides =>
    defaults_lib.platform & overrides,
  make_secrets | not_exported = fun overrides =>
    defaults_lib.secrets & overrides,
  make_kms | not_exported = fun overrides =>
    defaults_lib.kms & overrides,
  make_sops | not_exported = fun overrides =>
    defaults_lib.sops & overrides,
  make_ai | not_exported = fun overrides =>
    defaults_lib.ai & overrides,
  make_taskservs | not_exported = fun overrides =>
    defaults_lib.taskservs & overrides,
  make_clusters | not_exported = fun overrides =>
    defaults_lib.clusters & overrides,
  make_generation | not_exported = fun overrides =>
    defaults_lib.generation & overrides,
  make_cache | not_exported = fun overrides =>
    defaults_lib.cache & overrides,
  make_infra | not_exported = fun overrides =>
    defaults_lib.infra & overrides,
  make_tools | not_exported = fun overrides =>
    defaults_lib.tools & overrides,
  make_kcl | not_exported = fun overrides =>
    defaults_lib.kcl & overrides,
  make_ssh | not_exported = fun overrides =>
    defaults_lib.ssh & overrides,

  DefaultWorkspace = defaults_lib.workspace,
  DefaultPaths = defaults_lib.paths,
  DefaultProvisioningConfig = defaults_lib.provisioning,
  DefaultCoreConfig = defaults_lib.core,
  DefaultDebugConfig = defaults_lib.debug,
  DefaultOutputConfig = defaults_lib.output,
  DefaultHttpConfig = defaults_lib.http,
  DefaultProviderConfig = defaults_lib.providers,
  DefaultPlatformConfig = defaults_lib.platform,
  DefaultSecretsConfig = defaults_lib.secrets,
  DefaultKmsConfig = defaults_lib.kms,
  DefaultSopsConfig = defaults_lib.sops,
  DefaultAiConfig = defaults_lib.ai,
  DefaultTaskservsConfig = defaults_lib.taskservs,
  DefaultClustersConfig = defaults_lib.clusters,
  DefaultGenerationConfig = defaults_lib.generation,
  DefaultCacheConfig = defaults_lib.cache,
  DefaultInfraConfig = defaults_lib.infra,
  DefaultToolsConfig = defaults_lib.tools,
  DefaultKclConfig = defaults_lib.kcl,
  DefaultSshConfig = defaults_lib.ssh,
}
