@flowingspring/dsh-voco 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/bundle/voice-app/README.md
5
- README.md: 552f06d2b0684bc0e6a8c7279d7f17051f58862c
6
- README.zh.md: e9c15081c447823ddb5996f052a8587a9dea2cb8
5
+ README.md: 85e0ddca1de5bfa3106c01a16ad66887759237ef
6
+ README.zh.md: 8669857f56b4fefd0b0a1124be390cbb405b3803
package/README.md CHANGED
@@ -5,52 +5,97 @@
5
5
 
6
6
  English | [中文](README.zh.md)
7
7
 
8
- Persistent, interruptible voice conversations for the DSH Web UI. Speak naturally, get an immediate conversational response, and delegate workspace tasks to a durable background Agent Session without losing context.
8
+ Recoverable, interruptible voice conversations for the DeepSeek Harness (DSH) Web UI. Voco uses SiliconFlow cloud speech recognition and Edge TTS, and delegates work that needs tools to a background Agent.
9
9
 
10
10
  ## Install
11
11
 
12
- ```sh
12
+ ### npm (recommended)
13
+
14
+ Install the DSH CLI first:
15
+
16
+ ```powershell
17
+ npm install -g @deepseek-ai/dsh
18
+ ```
19
+
20
+ Add the plugin to the Web profile and start it:
21
+
22
+ ```powershell
13
23
  dsh plugin --profile web add @flowingspring/dsh-voco
14
24
  dsh web
15
25
  ```
16
26
 
17
- Install the DSH CLI first if needed:
27
+ ### GitHub Release
18
28
 
19
- ```sh
20
- npm install -g @deepseek-ai/dsh
29
+ GitHub Releases provide a prebuilt plugin package; no source checkout or pnpm installation is required:
30
+
31
+ ```powershell
32
+ dsh plugin --profile web add https://github.com/lgquan/dsh-voco/releases/download/v0.3.5/flowingspring-dsh-voco-0.3.5.tgz
21
33
  ```
22
34
 
23
- ## Configure speech recognition
35
+ Release page: [v0.3.5](https://github.com/lgquan/dsh-voco/releases/tag/v0.3.5)
36
+
37
+ ## Configure the API key
38
+
39
+ Speech recognition requires your own [SiliconFlow API key](https://siliconflow.cn/). The only configuration name is `SILICONFLOW_API_KEY`; Edge TTS does not require a key.
24
40
 
25
- Set a [SiliconFlow](https://siliconflow.cn/) API key in the DSH environment:
41
+ For a temporary setting, use the same PowerShell session that starts DSH:
42
+
43
+ ```powershell
44
+ $env:SILICONFLOW_API_KEY = "sk-your-api-key"
45
+ dsh web
46
+ ```
47
+
48
+ For a persistent setting, create `.env` in the DSH user directory: `%USERPROFILE%\.dsh\.env` on Windows, or `$DSH_HOME/.env` when `DSH_HOME` is set:
26
49
 
27
50
  ```dotenv
28
- SILICONFLOW_API_KEY=your-key
51
+ SILICONFLOW_API_KEY=sk-your-api-key
52
+ ```
53
+
54
+ You may also put `.env` in the directory from which you run `dsh web`. Restart DSH after changing it. Never edit the npm installation directory or files under `node_modules`, and never commit a real key to GitHub.
55
+
56
+ ## First use
57
+
58
+ 1. Run `dsh web` and open the DSH Web UI.
59
+ 2. Create or select a session, click the microphone, and grant browser permission.
60
+ 3. Speak naturally. About 1.5 seconds of continuous silence submits an utterance.
61
+ 4. Ordinary conversation is answered in the frontend; work that needs project tools is delegated to the background Agent.
62
+
63
+ Each Voice Session keeps its own background Agent Session binding. When the context rotation threshold is reached, later tasks automatically use a new child session that remains associated with the original Voice Session.
64
+
65
+ ## Update
66
+
67
+ ```powershell
68
+ dsh plugin --profile web add @flowingspring/dsh-voco
29
69
  ```
30
70
 
31
- The plugin uses `XingChenAGI/XingChenASR-V3.2-Ultra` for cloud speech recognition and Edge TTS with `zh-CN-XiaoxiaoNeural` for speech output. Browser audio is uploaded only after lightweight local speech and silence detection.
71
+ You can also install a specific GitHub Release. Restart `dsh web` after updating.
72
+
73
+ ## Uninstall
74
+
75
+ ```powershell
76
+ dsh plugin --profile web remove @flowingspring/dsh-voco
77
+ ```
32
78
 
33
- ## Highlights
79
+ Uninstalling does not delete DSH sessions or Voice history.
34
80
 
35
- - Keeps one background Agent Session bound to each Voice Session, including after DSH restarts.
36
- - Answers ordinary conversation directly and delegates only work that needs tools.
37
- - Speaks a short contextual acknowledgement before starting delegated Agent work.
38
- - Keeps full task reports in the task UI while speaking a concise, purpose-written result.
39
- - Supports interruption, browser navigation, reconnects, and restored conversation history.
40
- - Pure voice sessions get a concise title from the first meaningful voice request, with the transcription as a fallback when the title model is unavailable.
41
- - Ships the server and browser surfaces as one public npm package.
81
+ ## Features
42
82
 
43
- ## Configuration
83
+ - SiliconFlow `XingChenAGI/XingChenASR-V3.2-Ultra` cloud speech recognition.
84
+ - Edge TTS `zh-CN-XiaoxiaoNeural` voice responses.
85
+ - Interruption, navigation, reconnects, and restored history.
86
+ - Immediate acknowledgement before delegation; full reports remain in the DSH task UI.
87
+ - Optional `@flowingspring/dsh-workspace-memory` integration.
44
88
 
45
- The default utterance boundary is 1.5 seconds of continuous silence. Advanced settings such as `silenceDurationMs`, `speechThreshold`, `minSpeechDurationMs`, and `maxUtteranceMs` are available in the plugin profile configuration.
89
+ ## Troubleshooting
46
90
 
47
- ## Requirements and limitations
91
+ - **Missing API key**: verify that `SILICONFLOW_API_KEY` is visible to the DSH process; restart `dsh web` after changing `.env`.
92
+ - **Microphone unavailable**: check browser permission and the system input device, and make sure the page is served by `dsh web`.
93
+ - **Recognition fails or is slow**: check network access, key validity, SiliconFlow quota, and model/provider latency.
48
94
 
49
- - The microphone and playback surface targets the DSH Web UI and is not a framework-independent browser plugin.
50
- - Speech recognition requires network access and a SiliconFlow API key.
51
- - Voice responses currently use the Chinese Xiaoxiao Edge TTS voice by default.
95
+ ## Links
52
96
 
53
- Source, development instructions, and issue tracking are available in the [GitHub repository](https://github.com/lgquan/dsh-voco).
97
+ - [GitHub source and issues](https://github.com/lgquan/dsh-voco)
98
+ - [npm package](https://www.npmjs.com/package/@flowingspring/dsh-voco)
54
99
 
55
100
  ## License
56
101
 
package/README.zh.md CHANGED
@@ -5,52 +5,97 @@
5
5
 
6
6
  [English](README.md) | 中文
7
7
 
8
- 面向 DSH Web UI 的可恢复、可打断语音对话插件。你可以自然说出需求、立即获得口语回复,并把需要工具的工作委派给持续复用的后台 Agent Session,而不会丢失任务上下文。
8
+ 面向 DeepSeek Harness(DSHWeb UI 的可恢复、可打断语音对话插件。它使用硅基流动云端语音识别和 Edge TTS,并把需要工具的工作委派给后台 Agent
9
9
 
10
10
  ## 安装
11
11
 
12
- ```sh
12
+ ### npm 安装(推荐)
13
+
14
+ 先安装 DSH CLI:
15
+
16
+ ```powershell
17
+ npm install -g @deepseek-ai/dsh
18
+ ```
19
+
20
+ 将插件加入 Web profile 并启动:
21
+
22
+ ```powershell
13
23
  dsh plugin --profile web add @flowingspring/dsh-voco
14
24
  dsh web
15
25
  ```
16
26
 
17
- 如果尚未安装 DSH 命令行:
27
+ ### GitHub Release 安装
18
28
 
19
- ```sh
20
- npm install -g @deepseek-ai/dsh
29
+ GitHub Release 提供已经构建好的插件包,不需要下载源码或安装 pnpm:
30
+
31
+ ```powershell
32
+ dsh plugin --profile web add https://github.com/lgquan/dsh-voco/releases/download/v0.3.5/flowingspring-dsh-voco-0.3.5.tgz
21
33
  ```
22
34
 
23
- ## 配置语音识别
35
+ Release 页面:[v0.3.5](https://github.com/lgquan/dsh-voco/releases/tag/v0.3.5)
36
+
37
+ ## 配置 API Key
38
+
39
+ 语音识别需要你自己的[硅基流动 API Key](https://siliconflow.cn/),配置名只有一个:`SILICONFLOW_API_KEY`。Edge TTS 不需要 API Key。
24
40
 
25
- DSH 的运行环境中设置[硅基流动](https://siliconflow.cn/) API Key:
41
+ 在启动 DSH 的同一个 PowerShell 中临时设置:
42
+
43
+ ```powershell
44
+ $env:SILICONFLOW_API_KEY = "sk-your-api-key"
45
+ dsh web
46
+ ```
47
+
48
+ 要持久保存,可创建 DSH 用户环境文件 `%USERPROFILE%\.dsh\.env`(设置了 `DSH_HOME` 时使用 `$DSH_HOME/.env`):
26
49
 
27
50
  ```dotenv
28
- SILICONFLOW_API_KEY=你的密钥
51
+ SILICONFLOW_API_KEY=sk-your-api-key
52
+ ```
53
+
54
+ 也可在运行 `dsh web` 的当前目录放置 `.env`。修改后重启 DSH;不要修改 npm 安装目录或 `node_modules` 中的文件,也不要把真实密钥提交到 GitHub。
55
+
56
+ ## 首次使用
57
+
58
+ 1. 运行 `dsh web` 并打开 DSH Web UI。
59
+ 2. 新建或选择会话,点击麦克风并允许浏览器权限。
60
+ 3. 直接说话,连续静音约 1.5 秒后提交一句话。
61
+ 4. 普通聊天由前台回答,需要项目工具的工作会委派给后台 Agent。
62
+
63
+ 每个语音会话持续绑定自己的后台 Agent Session。上下文达到轮换阈值后,后续任务会自动进入新的子会话,但仍与原语音会话绑定。
64
+
65
+ ## 更新
66
+
67
+ ```powershell
68
+ dsh plugin --profile web add @flowingspring/dsh-voco
29
69
  ```
30
70
 
31
- 插件使用 `XingChenAGI/XingChenASR-V3.2-Ultra` 完成云端语音识别,并通过 Edge TTS 的 `zh-CN-XiaoxiaoNeural` 音色输出语音。浏览器只在本地做轻量起音和静音检测,确认一句话结束后才上传音频。
71
+ 也可以安装指定的 GitHub Release。更新后重启 `dsh web`。
72
+
73
+ ## 卸载
74
+
75
+ ```powershell
76
+ dsh plugin --profile web remove @flowingspring/dsh-voco
77
+ ```
32
78
 
33
- ## 主要功能
79
+ 卸载不会自动删除 DSH 会话或语音历史。
34
80
 
35
- - 每个 Voice Session 持续绑定一个后台 Agent Session,重启 DSH 后也能恢复。
36
- - 普通聊天直接回答,只有需要工具的工作才委派给后台 Agent。
37
- - 委派任务启动前立即播报一句贴合当前请求的简短确认语。
38
- - 完整任务报告保留在任务界面,语音只播报专门生成的简洁结果。
39
- - 支持语音打断、页面切换、断线重连以及历史对话恢复。
40
- - 纯语音会话会根据第一条有效语音请求生成简短标题;标题模型不可用时使用语音转写作为备用。
41
- - 服务端和浏览器界面统一通过一个公开 npm 包发行。
81
+ ## 功能
42
82
 
43
- ## 配置项
83
+ - SiliconFlow `XingChenAGI/XingChenASR-V3.2-Ultra` 云端语音识别。
84
+ - Edge TTS `zh-CN-XiaoxiaoNeural` 语音回复。
85
+ - 语音打断、页面切换、断线重连和历史恢复。
86
+ - 委派前即时确认,完整报告保留在 DSH 任务界面。
87
+ - 可选接入 `@flowingspring/dsh-workspace-memory` 长期记忆。
44
88
 
45
- 默认以连续静音 1.5 秒作为一句话的边界。`silenceDurationMs`、`speechThreshold`、`minSpeechDurationMs` 和 `maxUtteranceMs` 等高级参数可在插件 profile 配置中调整。
89
+ ## 排查
46
90
 
47
- ## 要求与限制
91
+ - **缺少 API Key**:确认 `SILICONFLOW_API_KEY` 在启动 DSH 的进程中可见;修改 `.env` 后重启 `dsh web`。
92
+ - **无法录音**:检查浏览器麦克风权限和系统输入设备,并确认页面来自 `dsh web`。
93
+ - **识别失败或较慢**:检查网络、Key 有效期、硅基流动账户额度及模型/Provider 延迟。
48
94
 
49
- - 麦克风和播放界面面向 DSH Web UI,并不是框架无关的浏览器插件。
50
- - 云端语音识别需要网络连接及硅基流动 API Key。
51
- - 语音回复目前默认使用 Edge TTS 的中文晓晓音色。
95
+ ## 链接
52
96
 
53
- 源码、开发说明和问题反馈请前往 [GitHub 仓库](https://github.com/lgquan/dsh-voco)
97
+ - [GitHub 源码与问题反馈](https://github.com/lgquan/dsh-voco)
98
+ - [npm 包](https://www.npmjs.com/package/@flowingspring/dsh-voco)
54
99
 
55
100
  ## 许可证
56
101
 
package/lib/client.js CHANGED
@@ -20,11 +20,11 @@ window.__ModuleLoader__.load({
20
20
  document.head.appendChild(tag);
21
21
  }
22
22
  var VoiceControl_module_css_default = {
23
- "button": "TFZsua_button",
24
- "voice-pulse": "TFZsua_voice-pulse",
25
- "interruptButton": "TFZsua_interruptButton",
26
23
  "controls": "TFZsua_controls",
27
- "active": "TFZsua_active"
24
+ "active": "TFZsua_active",
25
+ "interruptButton": "TFZsua_interruptButton",
26
+ "button": "TFZsua_button",
27
+ "voice-pulse": "TFZsua_voice-pulse"
28
28
  };
29
29
  //#endregion
30
30
  //#region ../ui-voice/src/client/VoiceControl.tsx
@@ -163,23 +163,23 @@ window.__ModuleLoader__.load({
163
163
  document.head.appendChild(tag);
164
164
  }
165
165
  var VoiceNodeViews_module_css_default = {
166
- "taskDot": "Kt2smW_taskDot",
167
- "bubble": "Kt2smW_bubble",
168
- "taskDetails": "Kt2smW_taskDetails",
166
+ "utterance": "Kt2smW_utterance",
167
+ "taskSummary": "Kt2smW_taskSummary",
169
168
  "taskLink": "Kt2smW_taskLink",
170
169
  "taskCancel": "Kt2smW_taskCancel",
171
170
  "taskTitle": "Kt2smW_taskTitle",
172
- "taskSummary": "Kt2smW_taskSummary",
171
+ "taskDetails": "Kt2smW_taskDetails",
172
+ "taskInput": "Kt2smW_taskInput",
173
+ "taskDot": "Kt2smW_taskDot",
174
+ "taskChevron": "Kt2smW_taskChevron",
173
175
  "meta": "Kt2smW_meta",
174
- "utterance": "Kt2smW_utterance",
175
176
  "voiceBadge": "Kt2smW_voiceBadge",
176
- "taskCard": "Kt2smW_taskCard",
177
- "taskChevron": "Kt2smW_taskChevron",
177
+ "taskUpdate": "Kt2smW_taskUpdate",
178
178
  "miniWave": "Kt2smW_miniWave",
179
- "taskActions": "Kt2smW_taskActions",
180
179
  "taskStatus": "Kt2smW_taskStatus",
181
- "taskUpdate": "Kt2smW_taskUpdate",
182
- "taskInput": "Kt2smW_taskInput"
180
+ "taskActions": "Kt2smW_taskActions",
181
+ "taskCard": "Kt2smW_taskCard",
182
+ "bubble": "Kt2smW_bubble"
183
183
  };
184
184
  //#endregion
185
185
  //#region ../ui-voice/src/client/VoiceNodeViews.tsx
@@ -317,11 +317,11 @@ window.__ModuleLoader__.load({
317
317
  document.head.appendChild(tag);
318
318
  }
319
319
  var VoiceOverlay_module_css_default = {
320
+ "root": "GPPB2G_root",
321
+ "status": "GPPB2G_status",
320
322
  "stop": "GPPB2G_stop",
321
- "wave": "GPPB2G_wave",
322
323
  "voice-wave": "GPPB2G_voice-wave",
323
- "root": "GPPB2G_root",
324
- "status": "GPPB2G_status"
324
+ "wave": "GPPB2G_wave"
325
325
  };
326
326
  //#endregion
327
327
  //#region ../ui-voice/src/client/VoiceOverlay.tsx
@@ -380,20 +380,20 @@ window.__ModuleLoader__.load({
380
380
  document.head.appendChild(tag);
381
381
  }
382
382
  var VoiceSessionMarkers_module_css_default = {
383
- "deleteStatus": "_0brRca_deleteStatus",
384
383
  "childMain": "_0brRca_childMain",
385
- "childTime": "_0brRca_childTime",
386
- "marker": "_0brRca_marker",
387
384
  "deleteError": "_0brRca_deleteError",
385
+ "childDot": "_0brRca_childDot",
386
+ "childTime": "_0brRca_childTime",
388
387
  "slot": "_0brRca_slot",
389
- "toggle": "_0brRca_toggle",
390
- "children": "_0brRca_children",
391
388
  "child": "_0brRca_child",
389
+ "children": "_0brRca_children",
390
+ "toggle": "_0brRca_toggle",
392
391
  "childActions": "_0brRca_childActions",
392
+ "deleteAction": "_0brRca_deleteAction",
393
+ "deleteStatus": "_0brRca_deleteStatus",
393
394
  "childMenuButton": "_0brRca_childMenuButton",
394
- "childDot": "_0brRca_childDot",
395
- "childLabel": "_0brRca_childLabel",
396
- "deleteAction": "_0brRca_deleteAction"
395
+ "marker": "_0brRca_marker",
396
+ "childLabel": "_0brRca_childLabel"
397
397
  };
398
398
  //#endregion
399
399
  //#region ../ui-voice/src/client/VoiceSessionMarkers.tsx
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@flowingspring/dsh-voco",
3
3
  "description": "Persistent voice conversations for DSH with cloud speech recognition, Edge TTS, and background Agent delegation",
4
- "version": "0.3.4",
4
+ "version": "0.3.5",
5
5
  "keywords": [
6
6
  "deepseek-harness",
7
7
  "dsh",