# Workspace Configuration Contracts # # Type-safe contracts for workspace configuration schemas. # These define the complete structure for workspace configurations. { # Workspace metadata contract Workspace = { name | String, version | String, created | String, current_infra | String, current_environment | String, }, # Path definitions contract Paths = { base | String, infra | String, cache | String, runtime | String, providers | String, taskservs | String, clusters | String, orchestrator | String, control_center | String, kms | String, generate | String, run_clusters | String, run_taskservs | String, extensions | String, resources | String, templates | String, tools | String, }, # Provisioning config contract ProvisioningConfig = { path | String, }, # Core config contract CoreConfig = { version | String, name | String, }, # Debug settings contract DebugConfig = { enabled | Bool, metadata | Bool, check_mode | Bool, validation | Bool, remote | Bool, log_level | String, # "debug" | "info" | "warn" | "error" no_terminal | Bool, }, # Output settings contract OutputConfig = { file_viewer | String, # "bat" | "less" | "cat" format | String, # "yaml" | "json" | "toml" }, # HTTP client contract HttpConfig = { use_curl | Bool, timeout | Number, }, # Provider config contract ProviderConfig = { active | Array String, default | String, }, # Platform services contract PlatformConfig = { orchestrator_enabled | Bool, control_center_enabled | Bool, mcp_enabled | Bool, }, # Secrets management contract SecretsConfig = { provider | String, # "sops" | "vault" | "aws-secrets" sops_enabled | Bool, kms_enabled | Bool, }, # KMS config contract KmsConfig = { mode | String, # "local" | "remote" | "hybrid" config_file | String, }, # SOPS config contract SopsConfig = { use_sops | Bool, config_path | String, key_search_paths | Array String, }, # AI config contract AiConfig = { enabled | Bool, provider | String, # "openai" | "anthropic" | "local" config_path | String, }, # Taskservs config contract TaskservsConfig = { run_path | String, }, # Clusters config contract ClustersConfig = { run_path | String, }, # Generation config contract GenerationConfig = { dir_path | String, defs_file | String, }, # Cache config contract CacheConfig = { enabled | Bool, path | String, infra_cache | String, grace_period | Number, check_updates | Bool, max_cache_size | String, }, # Infrastructure context contract InfraConfig = { current | String, }, # Tools config contract ToolsConfig = { use_kcl | Bool, use_kcl_plugin | Bool, use_tera_plugin | Bool, }, # KCL module config contract KclConfig = { core_module | String, core_version | String, core_package_name | String, use_module_loader | Bool, module_loader_path | String, modules_dir | String, }, # SSH config contract SshConfig = { user | String, options | Array String, timeout | Number, debug | Bool, }, # Complete workspace config contract WorkspaceConfig = { workspace | Workspace, paths | Paths, provisioning | ProvisioningConfig, core | CoreConfig, debug | DebugConfig, output | OutputConfig, http | HttpConfig, providers | ProviderConfig, platform | PlatformConfig, secrets | SecretsConfig, kms | KmsConfig, sops | SopsConfig, ai | AiConfig, taskservs | TaskservsConfig, clusters | ClustersConfig, generation | GenerationConfig, cache | CacheConfig, infra | InfraConfig, tools | ToolsConfig, kcl | KclConfig, ssh | SshConfig, }, }