Preface¶
When developing with DeepSeek Harness (DSH), adding notification mechanisms to different task flows usually requires writing integration code for a specific transport layer, such as the Telegram Bot API. The dsh-maestro-notifier plugin solves this problem by abstracting a pluggable notification service layer.
Plugin Positioning¶
This plugin is maintained by ddtcorex and belongs to the Maestro Harness suite (dsh-maestro-*). It provides an in-memory provider registry, integrates the Telegram transport by default, and reserves the ability to extend to other transport layers.
Core Features¶
The plugin mainly provides the following capabilities:
maestroNotifierservice: The service object includesregister,ids, andsendmethods, which are used to manage notification providers and dispatch messages.- Telegram transport: As the default transport layer, it provides unidirectional bot message sending. The configuration includes message content protection (
protect_content), disabled link previews, and a 10-second timeout. The plugin is designed not to log credentials. - Default target resolution: When the
sendmethod is called without an explicit target, it attempts to read thenotify.telegramconfiguration from the shared settings store as the default target. - Never-Throw delivery: This is a design principle. Whether the provider is unknown or target resolution fails, no exception is thrown; instead, an object containing the status and reason is returned:
{ sent: false, reason }.
Installation and Activation¶
Install it using the officially provided command. The plugin must be compatible with the Cordis core of DeepSeek Harness.
dsh plugin --profile web add @ddtcorex/dsh-maestro-notifier
After installation, the service is registered in the Cordis context and can be retrieved via ctx.get('maestroNotifier').
Typical Usage¶
In code, obtain the maestroNotifier instance and call the send method. The following example shows how to send a message, where the target is obtained through the default resolution logic.
const notifier = ctx.get('maestroNotifier')
// target 参数省略时,会尝试从共享设置读取 notify.telegram
await notifier.send('telegram', undefined, { text: 'review finished' })
Dependencies and Environment¶
Before using this plugin, make sure the runtime environment meets the following dependency requirements:
- Node.js version:
^22.19.0or>=24.0.0is required. - Cordis version: It depends on
@deepseek-ai/cordis, with the version requirement~4.0.4. - Configuration library: It depends on
@ddtcorex/dsh-maestro-config-lib(workspace:^0.3.0).
Notes¶
- Transport-only: This is a pure transport-layer plugin. The message text content (domain text) belongs to the consuming plugin; this package never generates domain text.
- Explicit target first: If the caller explicitly provides the target parameter, that parameter takes precedence; any resolver failure ultimately degrades to
{ sent: false, reason: 'not-configured' }. - Ecosystem membership: It is part of the Maestro Harness suite, with the short alias
maestro-notifier.
Summary¶
dsh-maestro-notifier provides DeepSeek Harness with a simple, non-invasive notification abstraction. Through its Never-Throw design and default target resolution mechanism, it lowers the integration cost of notification features. Developers can call the service directly from code without handling lower-level transport details or thrown errors.
- Plugin directory: ddtcorex/dsh-maestro-notifier
- Source repository: GitHub