dshbase

插件目录 / Developer / dsh-audio-alert

dsh-audio-alert

已验证 · 实测可装 ellelkktrraaa

✓ 持续维护 基于 9 个官方 DSH 包 纯 TypeScript

查看 GitHub ↗ ← 返回插件目录

2Stars
0Forks
0未关闭 issue
TypeScript语言
2026-08-14最近推送
跨平台平台

功能简介

DSH中断声音提示喵(可配置音频喵):浏览器音频提醒DSH注意力边缘:审批请求、提问用户、完成回合

✅
我们的评价
可用 — 实测通过,早期项目

DSH中断声音提示喵(可配置音频喵):浏览器音频提醒DSH注意力边缘:审批请求、提问用户、完成回合 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

@deepseek-ai/dsh-client-audio-alert

English | 中文

Sound alerts for the moments a session needs you: an interrupted turn (approval request), a question, or a finished turn — a reminder to come back without keeping the tab in view. The node half registers the audio-alert settings namespace; the browser half subscribes to the session list and plays a sound on three attention edges: an approval request (pendingInteraction becomes approval or plan-review), an ask-user question (pendingInteraction becomes question), and a finished turn (a session's running bit flips true → false).

Sounds are configurable per trigger through the audio-alert settings namespace (Settings → plugin configuration, or the settings.yaml document). Each field is optional: enabled (default true), volume (default 0.8, in [0, 1]), approvalSound / questionSound / doneSound, and debug (default false). A sound field accepts a data URI, an http(s)/blob URL, a root-relative URL (leading /), or a local filesystem path. An empty field selects the built-in synthesized tone. debug: true logs the resolved config and each play to the browser console and the server log.

A local path (for example C:/sounds/alert.mp3, ~/sounds/alert.mp3, or ./alert.mp3) is read by the node half on the machine running dsh web and served to the browser over /audio-alert/audio/<kind>, so the browser never touches the filesystem itself. Write the path with no data: or file: scheme prefix.

Installation

Prerequisites — a dsh web deployment (DeepSeek Harness; the web profile is created on first use), Node ^22.19 || >=24, and pnpm. The plugin resolves its @deepseek-ai/* peers from the profile's own node_modules, so no extra packages are needed.

Install — dsh plugin forwards its arguments to pnpm inside the profile directory:

# from GitHub (recommended; the build runs automatically on install)
dsh plugin --profile web add https://github.com/ellelkktrraaa/dsh-audio-alert.git

# or from a local checkout
dsh plugin --profile web add C:\path\to\dsh-audio-alert

# remove again (by package name)
dsh plugin --profile web remove @deepseek-ai/dsh-client-audio-alert

Configure — create an audio-alert: section in $DSH_HOME/settings.yaml (default C:\Users\<you>\.dsh\settings.yaml):

audio-alert:
  enabled: true
  volume: 0.8
  approvalSound: "C:/sounds/approval.mp3"   # empty = built-in tone; or a data:/http(s) URL
  questionSound: "C:/sounds/question.mp3"
  doneSound: "C:/sounds/done.mp3"
  debug: true

Then restart dsh web.

Verify — with debug: true, the browser console (F12) shows the resolved config and each alert:

[audio-alert] browser half mounted
[audio-alert] scope changed: {"status":"ready","writable":true,"value":{"enabled":true,"volume":0.8,...}}
[audio-alert] alert kind: approval

Trigger an approval, an ask-user question, or a finished turn and listen for the sound.

Host requirement for custom sounds — the browser reads the audio-alert settings namespace through the host API proxy, which only serves namespaces on an explicit allowlist. On the current DeepSeek Harness checkout this needs 'audio-alert' added to WEB_SETTINGS_NAMESPACES in packages/host/apiproxy/src/api-proxy.ts (a namespace absent there answers settings-not-exposed). Without it the plugin still plays built-in tones at the default volume, but the custom sounds are not read by the browser.

Troubleshooting

  • No [audio-alert] lines in the console → the browser is serving a cached client.js; hard-refresh (Ctrl+Shift+R) or open a fresh tab.
  • Scope stuck at "unavailable" → the host does not expose the audio-alert namespace (see the host requirement above).
  • Built-in tone plays but not the configured file → the path must exist and be readable on the machine running dsh web; the server log (debug: true) prints [audio-alert] serving approval from ... or the failure reason.
  • First sound is silent → the browser autoplay policy blocks playback until the page has had a user gesture; click anywhere once.

Compatibility Evidence

Following the dsh-plugin-radar evidence ladder, this repository carries evidence at every level:

Level Check Status
L0 discovery topic, visibility, metadata dsh-plugin topic set; repository public; keywords / homepage / repository present in package.json
L1 manifest package.json, name, entry fields @deepseek-ai/dsh-client-audio-alert; main → lib/index.js, exports["./client"] → lib/client.js
L2 static compat patches, seams, dependency ranges Seams: the audio-alert settings namespace (installSettingsSection), the /audio-alert/audio web-server route, and the browser sessions.list / settingsScope services. Peer dependencies are pinned to the 0.1.0-rc.x dsh family
L3 compile experiment type/syntax check in a workspace pnpm typecheck (tsc -b) and pnpm build (tsc -b && tsdown) pass on Node 22/24
L4 runtime test install, load, minimal task Install via dsh plugin add (see the tutorial above); 37 unit tests pass; with debug: true the browser console logs [audio-alert] scope changed: {"status":"ready",...} and each alert kind

Known boundaries — the radar's own caveats apply here too: mainline and plugins change fast, so conclusions age quickly; a static pass does not guarantee runtime success; a compile failure can come from the environment or missing dependencies rather than real API drift; and the runtime checks above only cover the minimal path described here.

Model Experience

None, as the plugin only plays a browser sound on live session-list attention edges; nothing here reaches a model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

  • Done fires on the running edge — a turn ending for any reason (completed, error, aborted) announces once; the sound does not distinguish the reason.
  • Autoplay policy — the first sound can be suppressed until the browser has registered a user gesture on the page; playback rejection is contained, never retried.
  • First observation is silent — sessions already pending or idle at load do not replay their attention, matching the session list's own reminder semantics.
  • Local files are read on the server — the node half reads the file on the machine running dsh web, whole into memory, per request; a path is not portable to another machine.
  • Leading-slash paths are URLs — a /-prefixed value is a root-relative URL, never a local file, so a POSIX absolute path must be written ~-relative or cwd-relative instead.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-audio-alert」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:ellelkktrraaa/dsh-audio-alert

Headless(CLI)profile:

dsh plugin --profile headless add github:ellelkktrraaa/dsh-audio-alert

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →