dsh-notify-say 0.4.18 → 0.4.19

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/LICENSE CHANGED
@@ -1,32 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 unifilitence
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-
23
- ---
24
-
25
- Third-party notice — bundled voice lines
26
-
27
- The WAV files under `sounds/` were synthesized locally with
28
- VOICEVOX (https://voicevox.hiroshiba.jp/), which is free for personal and
29
- commercial use under its own terms. Each VOICEVOX character voice has its
30
- own usage guidelines; when redistributing a voice pack, check the
31
- guidelines of the specific character voice you ship. This plugin does not
32
- redistribute the VOICEVOX engine itself.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 unifilitence
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/cordis.patch.yml CHANGED
@@ -1,9 +1,9 @@
1
- # dsh-notify-desktop bundle:回合完成 / 审批请求 的 Toast + 语音提醒。
1
+ # dsh-notify-say bundle:回合完成 / 审批请求 的 Toast + 语音提醒。
2
2
  # 语义沿用旧 dsh-notify-done;config 键说明见本包 CARD.md。
3
3
  # 依据:官方模板 templates/decoration/cordis.patch.yml 的 `- insert` 方言
4
4
  # (references/host-plugin.md「Manifest」节:同 id 覆盖时替换完整 config)。
5
5
  - insert:
6
- - id: notify-desktop
6
+ - id: notify-say
7
7
  name: dsh-notify-say
8
8
  config:
9
9
  notifyOnComplete: true # turn/end reason.kind=completed
package/lib/dev-reload.js CHANGED
@@ -209,7 +209,7 @@ export function selfReload(ctx, options = {}) {
209
209
 
210
210
  const internal = loader.internal;
211
211
  const backup = purgeCaches(internal, packageUrl);
212
- try { logger.info?.(`[dsh-notify-desktop] reload: purged ${backup.esm.size} module(s)`); } catch { /* ignore */ }
212
+ try { logger.info?.(`[dsh-notify-say] reload: purged ${backup.esm.size} module(s)`); } catch { /* ignore */ }
213
213
 
214
214
  // 缓存没清掉就**放弃**(上游会用 ?t= 强制重求值,我们不愿意,理由见模块头注释)。
215
215
  if (backup.esm.size === 0) {
@@ -243,7 +243,7 @@ export function selfReload(ctx, options = {}) {
243
243
  registry.delete(previous);
244
244
  await Promise.all(fibers.map(({ fiber }) => fiber.await()));
245
245
  } catch (error) {
246
- try { logger.warn?.(`[dsh-notify-desktop] reload: dispose reported ${(error && error.message) || error}`); } catch { /* ignore */ }
246
+ try { logger.warn?.(`[dsh-notify-say] reload: dispose reported ${(error && error.message) || error}`); } catch { /* ignore */ }
247
247
  }
248
248
 
249
249
  try {
@@ -258,7 +258,7 @@ export function selfReload(ctx, options = {}) {
258
258
  created.push(fresh);
259
259
  }
260
260
  await Promise.all(created.map((fiber) => fiber.await()));
261
- try { logger.info?.(`[dsh-notify-desktop] reload: complete, ${created.length} fiber(s)`); } catch { /* ignore */ }
261
+ try { logger.info?.(`[dsh-notify-say] reload: complete, ${created.length} fiber(s)`); } catch { /* ignore */ }
262
262
  return { ok: true, fibers: created.length };
263
263
  } catch (error) {
264
264
  restoreCaches(internal, backup);
@@ -313,7 +313,7 @@ export function watchPackage(packageDir, opts = {}) {
313
313
  try {
314
314
  watcher = fs.watch(packageDir, { recursive: true });
315
315
  } catch (error) {
316
- try { logger.warn?.(`[dsh-notify-desktop] cannot watch ${packageDir}: ${(error && error.message) || error}`); } catch { /* ignore */ }
316
+ try { logger.warn?.(`[dsh-notify-say] cannot watch ${packageDir}: ${(error && error.message) || error}`); } catch { /* ignore */ }
317
317
  return () => {};
318
318
  }
319
319
  const schedule = () => {
@@ -323,14 +323,14 @@ export function watchPackage(packageDir, opts = {}) {
323
323
  timer = undefined;
324
324
  if (paused) return;
325
325
  try { opts.onChange?.(); } catch (error) {
326
- try { logger.warn?.(`[dsh-notify-desktop] watch onChange threw: ${(error && error.message) || error}`); } catch { /* ignore */ }
326
+ try { logger.warn?.(`[dsh-notify-say] watch onChange threw: ${(error && error.message) || error}`); } catch { /* ignore */ }
327
327
  }
328
328
  }, debounceMs);
329
329
  if (timer && typeof timer.unref === 'function') timer.unref();
330
330
  };
331
331
  watcher.on('change', schedule);
332
332
  watcher.on('error', (error) => {
333
- try { logger.warn?.(`[dsh-notify-desktop] watcher error: ${(error && error.message) || error}`); } catch { /* ignore */ }
333
+ try { logger.warn?.(`[dsh-notify-say] watcher error: ${(error && error.message) || error}`); } catch { /* ignore */ }
334
334
  });
335
335
  return () => {
336
336
  paused = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-notify-say",
3
- "version": "0.4.18",
3
+ "version": "0.4.19",
4
4
  "description": "Desktop notifications for DSH Desktop that actually speak: Windows TTS out of the box (zero download), VOICEVOX voice packs optional, a selectable system-sound fallback, and an idle gate that waits for running subagents before saying the turn is done. Includes a settings-page GUI (sound source, per-event overrides, jump-back-to-session, cooldowns) and a self hot-reload for development.",
5
5
  "license": "MIT",
6
6
  "type": "module",