agentvibes 5.6.1 → 5.6.2

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.
@@ -1 +1 @@
1
- 20260501
1
+ 20260502
@@ -97,6 +97,16 @@ if (Test-Path $BgEnabledFile) {
97
97
  $BgEnabled = (Get-Content $BgEnabledFile -Raw).Trim() -eq "true"
98
98
  }
99
99
 
100
+ # Per-message overrides from SSH/remote payload (set by the queue watcher).
101
+ # These allow remote senders (Hermes, SSH remote provider) to override music,
102
+ # volume, and effects for a single message without mutating persistent config.
103
+ $OverrideMusic = if ($env:AGENTVIBES_OVERRIDE_MUSIC) { $env:AGENTVIBES_OVERRIDE_MUSIC.Trim() } else { "" }
104
+ $OverrideVolume = if ($env:AGENTVIBES_OVERRIDE_VOLUME) { $env:AGENTVIBES_OVERRIDE_VOLUME.Trim() } else { "" }
105
+ $OverrideEffects = if ($env:AGENTVIBES_OVERRIDE_EFFECTS) { $env:AGENTVIBES_OVERRIDE_EFFECTS.Trim() } else { "" }
106
+
107
+ # If a music override is set, force background music on for this message
108
+ if ($OverrideMusic -ne "") { $BgEnabled = $true }
109
+
100
110
  # Check if reverb is enabled (allowlist validation)
101
111
  $ReverbLevel = "off"
102
112
  $ReverbFile = "$ConfigDir\reverb-level.txt"
@@ -106,6 +116,12 @@ if (Test-Path $ReverbFile) {
106
116
  $ReverbLevel = $reverbVal
107
117
  }
108
118
  }
119
+ # Per-message reverb override: AGENTVIBES_OVERRIDE_EFFECTS accepts a preset name
120
+ # ("off", "light", "medium", "heavy", "cathedral") — Sox effect strings are Linux-only
121
+ # and are silently ignored on Windows.
122
+ if ($OverrideEffects -ne "" -and $OverrideEffects -in @("off", "light", "medium", "heavy", "cathedral")) {
123
+ $ReverbLevel = $OverrideEffects
124
+ }
109
125
  $HasReverb = $ReverbLevel -ne "off"
110
126
 
111
127
  # Check ffmpeg availability for background music mixing or reverb
@@ -380,6 +396,21 @@ if (($BgEnabled -or $HasReverb) -and $HasFfmpeg) {
380
396
  $DefaultTrack = $configTrack
381
397
  }
382
398
  }
399
+ # Per-message music override from remote payload (e.g. Hermes, SSH remote)
400
+ # Accepts full filename (e.g. "agent_vibes_bachata_v1_loop.mp3") or a
401
+ # keyword (e.g. "bachata") — keyword triggers a glob search in TracksDir.
402
+ if ($OverrideMusic -ne "") {
403
+ if ($OverrideMusic -match '^[a-zA-Z0-9_\-\.]+$') {
404
+ if ($OverrideMusic -match '\.mp3$') {
405
+ # Full filename — use directly
406
+ $DefaultTrack = $OverrideMusic
407
+ } else {
408
+ # Keyword — find first matching track file
409
+ $matched = Get-ChildItem -Path $TracksDir -Filter "*$OverrideMusic*" -File -ErrorAction SilentlyContinue | Select-Object -First 1
410
+ if ($matched) { $DefaultTrack = $matched.Name }
411
+ }
412
+ }
413
+ }
383
414
  $BgTrackPath = Join-Path $TracksDir $DefaultTrack
384
415
  # Path containment: verify resolved path stays within tracks directory
385
416
  $ResolvedBgTrack = [System.IO.Path]::GetFullPath($BgTrackPath)
@@ -388,13 +419,16 @@ if (($BgEnabled -or $HasReverb) -and $HasFfmpeg) {
388
419
  $BgTrackPath = Join-Path $TracksDir "agent_vibes_bachata_v1_loop.mp3"
389
420
  }
390
421
 
391
- # Get volume (default 0.25)
422
+ # Get volume (default 0.25) — per-message override takes precedence
392
423
  $BgVolume = "0.25"
393
424
  $VolumeFile = "$ConfigDir\background-music-volume.txt"
394
425
  if (Test-Path $VolumeFile) {
395
426
  $vol = (Get-Content $VolumeFile -Raw).Trim()
396
427
  if ($vol -match '^\d+\.?\d*$') { $BgVolume = $vol }
397
428
  }
429
+ if ($OverrideVolume -ne "" -and $OverrideVolume -match '^\d+\.?\d*$') {
430
+ $BgVolume = $OverrideVolume
431
+ }
398
432
 
399
433
  if (Test-Path $BgTrackPath) {
400
434
  $MixedFile = $RecentWav.FullName -replace '\.wav$', '-mixed.wav'
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Publish](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
12
12
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
13
13
 
14
- **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v5.6.1
14
+ **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v5.6.2
15
15
 
16
16
  ---
17
17
 
@@ -40,7 +40,11 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, using Warp Ter
40
40
 
41
41
  ---
42
42
 
43
- ## 🌟 NEW IN v5.6.1Hermes Agent Integration
43
+ ## 🌟 NEW IN v5.6.2Per-Message Audio Control
44
+
45
+ Remote senders (Hermes, SSH remote provider) can now control **voice, music, reverb, and volume per message** — no persistent config changes needed. Pass any field in the JSON payload and the Windows receiver applies it for that message only.
46
+
47
+ ## v5.6.1 — Hermes Agent Integration
44
48
 
45
49
  AgentVibes now speaks for **[Hermes Agent](https://github.com/NousResearch/hermes-agent)** — the self-hosted, self-improving AI assistant. Two production-ready skills ship in `docs/hermes/skills/`:
46
50
 
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # AgentVibes Release Notes
2
2
 
3
+ ## 🎛️ v5.6.2 — Per-Message Audio Control for Remote Providers
4
+
5
+ **Released:** 2026-05-02
6
+
7
+ ### 🎉 Per-Message Override: Voice, Music, Reverb, Volume
8
+
9
+ Remote senders (Hermes, SSH remote provider) can now control every audio parameter **per message** without touching the receiver's persistent config:
10
+
11
+ - **Music** — pass `"music": "bachata"` (keyword) or full filename to switch background track for that message
12
+ - **Volume** — pass `"volume": "0.35"` to adjust music volume for that message
13
+ - **Reverb** — pass `"effects": "medium"` (`off`/`light`/`medium`/`heavy`/`cathedral`) to set reverb per message
14
+ - **Voice** — already worked; now documented with full field reference
15
+ - **Pretext** — pass `"pretext": ""` to suppress the intro prefix for a single message
16
+
17
+ Previously these fields were parsed by the receiver and queued but **never applied** — `play-tts.ps1` didn't read the `AGENTVIBES_OVERRIDE_*` env vars the watcher set. Fixed.
18
+
19
+ ### 📚 Hermes Skill: Full Payload Field Reference
20
+
21
+ `agentvibes-target` SKILL.md now documents all 9 JSON payload fields with examples so Hermes (or any AI agent) can say "switch to chillwave", "add reverb", "use a female voice", "remove the intro prefix" — and it just works.
22
+
23
+ ### 🐛 Hermes Hook: handler.py + HOOK.yaml now ship in the package
24
+
25
+ `docs/hermes/skills/tts/hermes-agentvibes-hook/` was missing `handler.py` and `HOOK.yaml` — only `SKILL.md` was included. Both files now ship. `handler.py` also reads `AGENTVIBES_MUSIC` from the environment so the default background music is configurable without editing the file.
26
+
27
+ ---
28
+
3
29
  ## 🤖 v5.6.1 — Hermes Agent Integration & Windows PS5.1 Fixes
4
30
 
5
31
  **Released:** 2026-05-01
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "agentvibes",
4
- "version": "5.6.1",
4
+ "version": "5.6.2",
5
5
  "description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code, Claude Desktop (via MCP), and Clawdbot with multi-provider support.",
6
6
  "homepage": "https://agentvibes.org",
7
7
  "keywords": [