ddtcorex/dsh-maestro-notifier ↗★ 1
@ddtcorex/dsh-maestro-notifier
Maestro Notify — pluggable notifier service for the DeepSeek Harness (Telegram first; registry open to further providers) 适合需要让智能体在特定事件发生时向外部发送即时通知的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ddtcorex/dsh-maestro-notifier@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.
Requirements
- Node.js
^22.19.0 || >=24.0.0and pnpm 11+. A shell that defaults to Node 20 fails withNo such built-in module: node:sqlite; put a Node 22binfirst onPATHbefore runningdshorpnpm. - DSH 0.1.x or 0.2.x (peer range ``.
Installed with link: from a checkout? After every git pull, run pnpm install && pnpm build
(lib/ is gitignored) and restart dsh web.
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