{ NclSyncNatsSettings = { # When true, ncl-sync connects to NATS and subscribes to # provisioning.workspace.ncl.{changed,removed} for event-driven cache invalidation. # Falls back to file watcher + sync-request sidecar when NATS is unavailable. enabled | Bool | default = false, # NATS URL. Empty → uses platform-nats default (nats://127.0.0.1:4222). url | String | default = "", }, NclSyncConfig = { cache_dir | String | optional, idle_timeout_secs | Number | default = 600, sync_poll_interval_ms | Number | default = 500, warm_concurrency | Number | default = 4, extra_import_paths | Array String | default = [], # Filename suffixes that identify library/schema files (not entry points). # Files matching are skipped during warm-up and watcher events. skip_patterns | Array String | default = [ "-schema.ncl", "-defaults.ncl", "-constraints.ncl", ], # Directory basenames that indicate non-exportable NCL files. # Any .ncl under a directory with this basename is skipped. skip_dirs | Array String | default = [ "schemas", "defaults", "constraints", ], nats | NclSyncNatsSettings | default = {}, }, }