@ddtcorex/dsh-maestro-config-lib

August 25, 2026 · View on GitHub

Embedded settings-store library shared by every dsh-maestro-* plugin: ONE atomic namespaced JSON store at ~/.dsh/maestro/settings.json (chmod 600). No Cordis surface — install it as a plain dependency so any subset of plugins works standalone.

API

defineDomain(name, validator)          // owner registers a schema (validated on write)
load({ dshHome? })                     // memoized read; runs one-shot legacy migration
get(domain, { dshHome? })              // domain value or undefined
set(domain, patch, { dshHome? })       // exclusive-lock write, deep-merge patch, 600 mode
onChange(cb)                           // fires after writes made through this instance
definedDomains()                       // schema-registered names

Legacy migration: first load with no modern store transforms ~/.dsh/dsh-maestro-{harness,remote,review}/config.json into the namespaced store, renames consumed files .bak, drops runtime state (lastTunnelRunning), parks unknown keys under _legacy. Never destructive on corrupt input.