The component descriptor.
Config file name (e.g., 'jeeves-watcher.config.json').
Zod schema for validating config files.
OptionalcustomCliCommands?: $InferOuterFunctionType<Extension point: add custom CLI commands to the service CLI.
OptionalcustomMerge?: $InferOuterFunctionType<Custom merge function for config apply. Receives the existing config and the patch, returns the merged result. Optional — if omitted, the default deep-merge (object-recursive, array-replacing) is used.
Use this to implement domain-specific merge strategies such as name-based array merging for inference rules.
OptionalcustomPluginTools?: $InferOuterFunctionType<Extension point: return additional plugin tool descriptors.
Default port for the service's HTTP API.
Optionaldependencies?: { hard: string[]; soft: string[] }Component dependencies for HEARTBEAT alert suppression.
Components that must be healthy for this component to function.
Components that improve behavior but are not strictly required.
Produce the component's TOOLS.md section content.
Returns a default config object for init.
Component name (e.g., 'watcher', 'runner', 'server', 'meta').
OptionalonConfigApply?: $InferOuterFunctionType<Service-side callback after config apply. Receives the merged, validated config (not the raw patch). Optional — if omitted, write-only (service picks up changes on restart).
npm package name for the plugin.
Refresh interval in seconds (must be a prime number).
In-process service entry point for the CLI start command.
TOOLS.md section name (e.g., 'Watcher').
OptionalserviceName?: stringSystem service name. Defaults to jeeves-${name} when not provided.
npm package name for the service.
Returns command + args for launching the service process.
Consumed by service install.
Component version (from package.json).
A ServiceManager for the current platform.
Create a platform-aware service manager from a component descriptor.