dsh-task-notify
Verifieddsh-task-notify · v0.2.0 · MIT · Web UI
DSH task completion system notifications (host-side node-notifier)
Install
dsh plugin add dsh-task-notify Confirm the layer applied with dsh --profile default --dump-config â see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
ð dsh-task-notify
DSHïŒDeepSeek HarnessïŒæä»¶ïŒä»»å¡å®æ · ç³»ç»åŒ¹çªéç¥
æš¡ååçå®äœ ç请æ±ïŒç³»ç»ç«å³åŒ¹åºåçéç¥ââåå°å«ççªå£å·å§ãåä»£ç æ¶ïŒåä¹äžæéè¿ DSH çå®æä¿¡å·ã
ç³»ç»éç¥ Â· é¶äŸµå
¥ · é²ææ° Â· å¯é
眮
âš ç¹æ§äžè§
| ç¹æ§ | 诎æ |
|---|---|
| ðª åçç³»ç»éç¥ | host 端 node-notifierïŒWindows éç¥äžå¿ / macOS éç¥ / Linux åçéç¥ |
| â åç¡®çå®æä¿¡å· | çå¬ turn/end (completed)ïŒåªåšæš¡åçæ£åç宿¶åŒ¹ïŒå€±èŽ¥/äžæäžè¯¯æ¥ |
| ð åå€é¢è§ | éç¥æ£æåžŠæš¡ååççåŒå€Žææ¬ïŒé¿åºŠå¯é çœ®ïŒ |
| ð§ 鲿æ°è®Ÿè®¡ | é»è®€ä» åšé¡µé¢äžåšåå°æ¶åŒ¹ïŒç§åçå°é®çäžåŒ¹ïŒå代çäžåŒ¹ |
| ðïž 7 项å¯é 眮 | 讟眮页ãä»»å¡éç¥ãåºåå¯è§åè°æŽïŒæ cordis patch èŠç |
| ð¡ïž å®å š | å
šéš API ç» Host å€Žä¿¡ä»»åŽæ ïŒäž /api çœå
³åæºæ ¡éª |
| ðŠ äžé®å®è£ | dsh plugin add èªåšè£
äŸèµ + èªåšæèœœïŒé¶é
眮 |
ðŠ å®è£
åçœ®èŠæ±
| èŠæ± | 诎æ |
|---|---|
| DSH | å·²å®è£
äž dsh web 坿£åžžè¿è¡ïŒéŠæ¬¡è¿è¡äŒèªåšåå§å ~/.dsh/profiles/webïŒ |
| Node.js | ⥠20 |
| pnpm | ⥠10 |
æ¹åŒäžïŒnpm å®è£ ïŒæšèïŒ
dsh plugin --profile web add dsh-task-notify
dsh plugin addèªåšå®æäžæ¥ïŒâ å®è£ äŸèµïŒnode-notifierãschemasteryèªåšåžŠäžïŒïŒâ¡ æ£æµdsh.bundle声æèªåšæèœœïŒâ¢ æ éæåšæ¹ä»»äœé 眮ã
æ¹åŒäºïŒæ¬å°åŒåïŒlinkïŒ
cd ~/.dsh/profiles/web
pnpm add "dsh-task-notify@link:<æä»¶ç®åœç»å¯¹è·¯åŸ>"
åžèœœ
dsh plugin --profile web remove dsh-task-notify
çæ
- host 端ïŒçå¬é»èŸïŒæ¹åš â éå¯
dsh web - client 端ïŒè®Ÿçœ®é¢æ¿ïŒæ¹åš â ç¡¬å·æ°æµè§åšïŒCtrl/Cmd+Shift+RïŒ
ð å¿«é䜿çš
# 1. å®è£
dsh plugin --profile web add dsh-task-notify
# 2. éå¯
dsh web --port 8080
# 3. äœ¿çš ââ 让 DSH è·äžäžªä»»å¡ïŒå®æåç³»ç»åŒ¹çªïŒ
# æ é¢ïŒä»»å¡å®æ · <å·¥äœç®åœå>
# æ£æïŒæš¡ååççåŒå€Ž 120 å
ð¡ é»è®€
onlyWhenBlurred: trueââ页é¢åšåå°æ¶äžåŒ¹ïŒé²ææ°ïŒãæ³æµè¯ææïŒå æ DSH 页é¢åå°åå°/æå°ååè·ä»»å¡ã
âïž é 眮
è®Ÿçœ®é¡µïŒæšèïŒ
DSH 讟眮 â ãä»»å¡éç¥ãåºåïŒå¯è§åè°æŽå šéšé项ã
cordis patch èŠç
~/.dsh/profiles/web/cordis.patch.ymlïŒ
- id: task-notify
name: 'dsh-task-notify'
config:
enabled: true # æ»åŒå
³
onlyWhenBlurred: true # ä»
页é¢äžåšåå°æ¶éç¥
notifyOnError: false # åºé/äžæä¹éç¥
maxBodyChars: 120 # æ£æé¢è§é¿åºŠïŒå笊ïŒ
minTurnMs: 0 # æçéç¥æ¶é¿ïŒæ¯«ç§ïŒïŒè¿æ»€ç§å
sessions: top-level # all | top-level
showCwd: true # æ 颿Ÿç€ºå·¥äœç®åœå
é 眮项诊解
| é 眮项 | ç±»å | é»è®€åŒ | 诎æ |
|---|---|---|---|
enabled |
boolean | true |
æ»åŒå ³ |
onlyWhenBlurred |
boolean | true |
ä» é¡µé¢äžåšåå°æ¶éç¥ïŒclient äžæ¥å¯è§æ§ïŒ |
notifyOnError |
boolean | false |
error / aborted / max-tokens ç»æä¹éç¥ |
maxBodyChars |
number | 120 |
æ£æé¢è§æªæé¿åºŠïŒ0â500ïŒ |
minTurnMs |
number | 0 |
ååçäºæ€æ¶é¿ïŒæ¯«ç§ïŒäžéç¥ïŒè¿æ»€å¿«éé®ç |
sessions |
'all' | 'top-level' |
'top-level' |
top-level è·³è¿å代çäŒè¯ |
showCwd |
boolean | true |
æ é¢é垊工äœç®åœåïŒåºåå€äŒè¯ |
ð§ å·¥äœåç
ââââââââââââââââââââââââââââââââ DSH è¿è¡æ¶ ââââââââââââââââââââââââââââââââ
â â
â âââââââââââââââââââ append âââââââââââââââââââââââââââââââ â
â â Agent ååæ§è¡ â ââââââââââ⺠â Session äºä»¶æ¥å¿(æä¹
å) â â
â â turn/end â â session/event äºä»¶æµ â â
â âââââââââââââââââââ ââââââââââââââââ¬âââââââââââââââ â
â â ctx.on('session/event') â
â ââââââââââââââââââââââââââââââââââââââââââââââââŒâââââââââââââââ â
â â dsh-task-notify (host 端) â â
â â · turn/end & reason.kind === 'completed' è§Šå â â
â â · è¿æ»€ïŒenabled / sessions / onlyWhenBlurred / minTurnMs â â
â â · æå该ååæåäžæ¡ assistant ææ¬äœæ£æïŒæªæïŒ â â
â â · node-notifier 匹åçç³»ç»éç¥ïŒå€±èŽ¥åé msg.exeïŒ â â
â ââââââââââââââââââââââââââââââââââââââââââââââââ¬âââââââââââââââ â
â â â
â ââââââââââââââââââââââââââââââââââââââââââââââââŒâââââââââââââââ â
â â dsh-task-notify (client 端) â â
â â · çå¬ visibilitychange/blur/focus â POST /task-notify/api/ â â
â â visibility äžæ¥é¡µé¢å¯è§æ§ïŒäŸ onlyWhenBlurred éšæ§ â â
â â · 讟眮页ãä»»å¡éç¥ãåºå â /task-notify/api/settings.* 读å â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
å®æä¿¡å·
| ä¿¡å· | äºä»¶ | 诎æ |
|---|---|---|
| äž»ä¿¡å· | session/event â turn/end |
reason.kind === 'completed' = æš¡ååçå®äžèœ® |
| å ¶ä» reason | error / aborted / max-tokens / interrupted |
é»è®€äžéç¥ïŒnotifyOnError åŒå¯æ¶åäžç§ä¹éç¥ |
å®å šè®Ÿè®¡
- ææ
/task-notify/api/*è·¯ç±ç»è¿ Host å€Žä¿¡ä»»åŽæ ïŒloopback /webRuntime.trustedHostsïŒïŒäž/apiçœå ³åäžå¥æ ¡éª - æä»¶åªè¯»äŒè¯æ¥å¿ïŒäžä¿®æ¹ä»»äœ DSH æ°æ®
- éç¥å
å®¹æªæïŒ
maxBodyCharsïŒïŒæ ææä¿¡æ¯å€æ³
ð 项ç®ç»æ
dsh-task-notify/
âââ package.json # dsh.client 声æ + å端 exports + bundle patch
âââ cordis.patch.yml # æèœœå£°æïŒdsh plugin add èªåšè¯å«ïŒ
âââ tsconfig.json # åŒåç±»åæ£æ¥
âââ tsconfig.build.json # æå»ºçŒè¯ïŒhost 端 tsc â lib/ïŒ
âââ tsdown.config.ts # client bundle æå
ïŒ__ModuleLoader__ æ ŒåŒïŒ
âââ README.md
âââ DISTRIBUTE.md # ååžäžå®è£
æå
âââ src/
âââ index.ts # host 端ïŒè®¢é
turn/end â node-notifier 匹çª
âââ config.ts # schemastery é
眮 schemaïŒ7 项ïŒ
âââ context-types.ts # cordis Context ç±»åå¢åŒº
âââ client/
âââ index.tsx # client 端ïŒè®Ÿçœ®é¢æ¿ + 页é¢å¯è§æ§äžæ¥
ð ïž åŒåäžæå»º
pnpm install # å®è£
äŸèµ
pnpm typecheck # tsc --noEmit ç±»åæ£æ¥
pnpm build # tsc(host) + tsdown(client) â lib/
pnpm watch # tsdown --watchïŒclient çé蜜ïŒ
pnpm pack # çæå¯åå tarball
æå»ºäº§ç©
| äº§ç© | 诎æ |
|---|---|
lib/index.js |
host 端ïŒNodeïŒESMïŒ |
lib/client.js |
client 端 bundleïŒwindow.__ModuleLoader__.load æ ŒåŒïŒäŸæµè§åšå èœœïŒ |
lib/*.d.ts |
ç±»å声æ |
ååžå° npm
# æ¹ package.json version â 0.1.x
npm publish
â åžžè§é®é¢
è£ äºäœè®Ÿçœ®é¡µæ²¡æãä»»å¡éç¥ãåºåïŒ
ç¡¬å·æ°æµè§åšïŒCtrl/Cmd+Shift+RïŒãclient 端æ¹åšäžéèŠéå¯ DSHã
ä»»å¡å®æäºäœæ²¡åŒ¹éç¥ïŒ
æé¡ºåºææ¥ïŒ
- 页颿¯åŠåšåå°ïŒé»è®€
onlyWhenBlurred: trueïŒé¡µé¢å¯è§æ¶æ æäžåŒ¹ïŒé²ææ°ïŒââååå°åè¯ïŒæå°è®Ÿçœ®é¡µå ³æè¯¥é¡¹ - ç³»ç»éç¥æéïŒWindowsã讟眮 â ç³»ç» â éç¥ãå 讞æ¥èª PowerShell/ç»ç«¯çéç¥ïŒmacOSãç³»ç»è®Ÿçœ® â éç¥ã
- æ£æ¥è®Ÿçœ®é¡µãä»»å¡éç¥ãæ¯åŠå¯çšäºæ»åŒå ³
å®è£ æ¶åºç° "missing peer @deepseek-ai/*" èŠåïŒ
æ£åžžç°è±¡ã@deepseek-ai/* ç± DSH è¿è¡æ¶æäŸïŒäžåš profile ç node_modules éïŒïŒpnpm åš profile 屿£æ¥äžå°æä»¥åèŠïŒäžåœ±åè¿è¡ââ宿¹ dsh-better-sidebar å®è£
æ¶åæ ·åŠæ€ã
Windows éŠæ¬¡åŒ¹çªæ²¡ååºïŒ
node-notifier åš Windows èµ° PowerShell toast èæ¬ïŒéŠæ¬¡å¯èœè¢« SmartScreen æŠæªïŒæŸè¡äžæ¬¡å³å¯ïŒæä»¶å
眮åéïŒmsg.exeïŒïŒå®åšäžè¡äŒåšäŒè¯æ¥å¿èŸåº [dsh-task-notify] èŠåã
å代ç/åå°ä»»å¡å®æä¹äŒåŒ¹åïŒ
é»è®€äžåŒ¹ïŒsessions: top-level è·³è¿ delegationDepth > 0 çå代çäŒè¯ïŒãæ¹äžº all åææäŒè¯éœéç¥ã
ð 讞å¯è¯
dsh-task-notify · 让æ¯äžæ¬¡ä»»å¡å®æéœäžè¢«éè¿