dsh-maestro-notifier
Maestro Notifier — pluggable notifier service for DeepSeek Harness (Telegram first; registry open to further providers)
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 25, 2026
- Updated
- Oct 6, 2026
Introduction
@ddtcorex/dsh-maestro-notifier
Pluggable notifier service for the DeepSeek Harness:
a tiny in-memory provider registry with Telegram as the first transport. Delivery is
never-throw — callers can notify without error handling; unknown providers and missing
targets resolve to { sent: false, reason }.
Part of the Maestro Harness suite (dsh-maestro-*). Cordis patch row id: maestro-notifier
(cordis.patch.yml). It has a host half (service, Telegram provider, settings RPC) and a
client half (a Settings tab).
What it provides
maestroNotifierservice:register(provider),ids(),send(providerId, target?, message)dispatching to the registered provider.- Telegram provider (one-way bot messages;
protect_content, no link preview, 10 s timeout; credentials never logged). - Transport only — message copy belongs to the consuming plugin; this package never authors domain text. Consumers depend on it structurally (a local type augmentation), never at compile time.
- Default-target resolution: when a caller omits the target, an optional
resolveTargethook readsdomains.notifier.telegram.{botToken,chatId}from the shared settings store (~/.dsh/dsh-maestro-config/settings.json), through the store this package embeds atsrc/host/vendor/store.ts. Explicit targets win; any resolver failure degrades to{ sent: false, reason: 'not-configured' }.
const notifier = ctx.get('maestroNotifier')
await notifier.send('telegram', undefined, { text: 'review finished' }) // target resolved from the store
- Settings RPC and tab: the package owns the
notifiersettings domain (its own validator insrc/host/validators.ts) and servesgetConfig/saveConfigon/dsh-maestro-notifier. The bot token is write-only: the host answershasBotToken, never the value. A Settings tab (settings.sectionidmaestro-notifier, order 33) edits the Telegram target and the review-notification toggle.
Install
dsh plugin --profile web add @ddtcorex/dsh-maestro-notifier
Development
pnpm install
pnpm verify # tsc --noEmit (host + client)
pnpm test # vitest run
pnpm build # tsc host + client, then the client bundle -> lib/
License
MIT