agentvibes 5.1.4 → 5.2.0

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.
Files changed (32) hide show
  1. package/.agentvibes/config.json +23 -13
  2. package/.claude/commands/agent-vibes/verbosity.md +98 -89
  3. package/.claude/config/audio-effects.cfg +4 -1
  4. package/.claude/hooks/bmad-speak.sh +2 -2
  5. package/.claude/hooks/piper-download-voices.sh +233 -225
  6. package/.claude/hooks/piper-installer.sh +1 -1
  7. package/.claude/hooks/piper-voice-manager.sh +125 -0
  8. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +97 -90
  9. package/.claude/hooks/play-tts-enhanced.sh +1 -1
  10. package/.claude/hooks/play-tts-piper.sh +16 -5
  11. package/.claude/hooks/play-tts-ssh-remote.sh +168 -167
  12. package/.claude/hooks/play-tts.sh +21 -9
  13. package/.claude/hooks/session-start-tts.sh +4 -1
  14. package/.claude/hooks/stop-tts.sh +1 -1
  15. package/.claude/hooks/verbosity-manager.sh +185 -178
  16. package/.claude/hooks-windows/download-extra-voices.ps1 +243 -185
  17. package/.claude/hooks-windows/play-tts-piper.ps1 +7 -2
  18. package/.claude/hooks-windows/play-tts.ps1 +7 -1
  19. package/.claude/hooks-windows/session-start-tts.ps1 +2 -1
  20. package/.claude/hooks-windows/verbosity-manager.ps1 +126 -119
  21. package/README.md +10 -2
  22. package/RELEASE_NOTES.md +36 -0
  23. package/bin/agentvibes-voice-browser.js +1939 -1840
  24. package/mcp-server/server.py +52 -9
  25. package/package.json +1 -1
  26. package/src/console/tabs/receiver-tab.js +1527 -1483
  27. package/src/console/tabs/settings-tab.js +2 -2
  28. package/src/console/tabs/setup-tab.js +53 -8
  29. package/src/console/tabs/voices-tab.js +130 -13
  30. package/src/i18n/en.js +202 -202
  31. package/src/services/verbosity-service.js +159 -157
  32. package/templates/agentvibes-receiver.sh +3 -2
@@ -1,119 +1,126 @@
1
- #
2
- # File: .claude/hooks-windows/verbosity-manager.ps1
3
- #
4
- # AgentVibes - Finally, your AI Agents can Talk Back!
5
- # Website: https://agentvibes.org
6
- # Copyright (c) 2025 Paul Preibisch
7
- # Licensed under the Apache License, Version 2.0
8
-
9
- param(
10
- [Parameter(Position=0)]
11
- [string]$Command = "info",
12
- [Parameter(Position=1)]
13
- [string]$Arg1 = ""
14
- )
15
-
16
- $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
17
- $ClaudeDir = Split-Path -Parent $ScriptDir
18
-
19
- # Respect CLAUDE_PROJECT_DIR when set by MCP
20
- if ($env:CLAUDE_PROJECT_DIR) {
21
- $ConfigClaudeDir = Join-Path $env:CLAUDE_PROJECT_DIR ".claude"
22
- } else {
23
- $ConfigClaudeDir = $ClaudeDir
24
- }
25
-
26
- $VerbosityFile = Join-Path $ConfigClaudeDir "tts-verbosity.txt"
27
- $GlobalVerbosityFile = Join-Path $env:USERPROFILE ".claude\tts-verbosity.txt"
28
-
29
- function Get-Verbosity {
30
- if (Test-Path $VerbosityFile) {
31
- return (Get-Content $VerbosityFile -Raw).Trim()
32
- }
33
- if (Test-Path $GlobalVerbosityFile) {
34
- return (Get-Content $GlobalVerbosityFile -Raw).Trim()
35
- }
36
- return "high"
37
- }
38
-
39
- function Set-Verbosity {
40
- param([string]$Level)
41
-
42
- if ($Level -notmatch '^(low|medium|high)$') {
43
- Write-Output "Invalid verbosity level: $Level"
44
- Write-Output "Valid options: low, medium, high"
45
- exit 1
46
- }
47
-
48
- if (Test-Path $ConfigClaudeDir) {
49
- Set-Content -Path $VerbosityFile -Value $Level -NoNewline
50
- Write-Output "Verbosity set to: $Level (project-local)"
51
- } else {
52
- $globalDir = Split-Path -Parent $GlobalVerbosityFile
53
- if (-not (Test-Path $globalDir)) { New-Item -ItemType Directory -Path $globalDir -Force | Out-Null }
54
- Set-Content -Path $GlobalVerbosityFile -Value $Level -NoNewline
55
- Write-Output "Verbosity set to: $Level (global)"
56
- }
57
-
58
- Write-Output ""
59
- Write-Output "Verbosity levels:"
60
- Write-Output " LOW: Acknowledgments + Completions only"
61
- Write-Output " MEDIUM: + Major decisions and findings"
62
- Write-Output " HIGH: All reasoning (maximum transparency)"
63
- Write-Output ""
64
- Write-Output "Restart Claude Code for changes to take effect"
65
- }
66
-
67
- function Show-Info {
68
- $currentLevel = Get-Verbosity
69
-
70
- Write-Output "AgentVibes Verbosity Control"
71
- Write-Output "------------------------------------"
72
- Write-Output "Current level: $currentLevel"
73
- Write-Output ""
74
- Write-Output "Available levels:"
75
- Write-Output ""
76
- Write-Output "LOW (Minimal)"
77
- Write-Output " Acknowledgments only"
78
- Write-Output " Completions only"
79
- Write-Output " No reasoning spoken"
80
- Write-Output ""
81
- Write-Output "MEDIUM (Balanced)"
82
- Write-Output " Acknowledgments"
83
- Write-Output " Major decisions"
84
- Write-Output " Key findings"
85
- Write-Output " Completions"
86
- Write-Output ""
87
- Write-Output "HIGH (Maximum Transparency)"
88
- Write-Output " Acknowledgments"
89
- Write-Output " All reasoning"
90
- Write-Output " All decisions"
91
- Write-Output " All findings"
92
- Write-Output " Completions"
93
- Write-Output ""
94
- Write-Output "Usage:"
95
- Write-Output " verbosity-manager.ps1 get Show current level"
96
- Write-Output " verbosity-manager.ps1 set low|medium|high Change level"
97
- }
98
-
99
- switch ($Command) {
100
- "get" {
101
- Write-Output (Get-Verbosity)
102
- }
103
- "set" {
104
- if (-not $Arg1) {
105
- Write-Output "Error: Missing verbosity level"
106
- Write-Output "Usage: verbosity-manager.ps1 set low|medium|high"
107
- exit 1
108
- }
109
- Set-Verbosity $Arg1
110
- }
111
- { $_ -in "info", "" } {
112
- Show-Info
113
- }
114
- default {
115
- Write-Output "Unknown command: $Command"
116
- Write-Output "Usage: verbosity-manager.ps1 {get|set|info} [level]"
117
- exit 1
118
- }
119
- }
1
+ #
2
+ # File: .claude/hooks-windows/verbosity-manager.ps1
3
+ #
4
+ # AgentVibes - Finally, your AI Agents can Talk Back!
5
+ # Website: https://agentvibes.org
6
+ # Copyright (c) 2025 Paul Preibisch
7
+ # Licensed under the Apache License, Version 2.0
8
+
9
+ param(
10
+ [Parameter(Position=0)]
11
+ [string]$Command = "info",
12
+ [Parameter(Position=1)]
13
+ [string]$Arg1 = ""
14
+ )
15
+
16
+ $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
17
+ $ClaudeDir = Split-Path -Parent $ScriptDir
18
+
19
+ # Respect CLAUDE_PROJECT_DIR when set by MCP
20
+ if ($env:CLAUDE_PROJECT_DIR) {
21
+ $ConfigClaudeDir = Join-Path $env:CLAUDE_PROJECT_DIR ".claude"
22
+ } else {
23
+ $ConfigClaudeDir = $ClaudeDir
24
+ }
25
+
26
+ $VerbosityFile = Join-Path $ConfigClaudeDir "tts-verbosity.txt"
27
+ $GlobalVerbosityFile = Join-Path $env:USERPROFILE ".claude\tts-verbosity.txt"
28
+
29
+ function Get-Verbosity {
30
+ if (Test-Path $VerbosityFile) {
31
+ return (Get-Content $VerbosityFile -Raw).Trim()
32
+ }
33
+ if (Test-Path $GlobalVerbosityFile) {
34
+ return (Get-Content $GlobalVerbosityFile -Raw).Trim()
35
+ }
36
+ return "high"
37
+ }
38
+
39
+ function Set-Verbosity {
40
+ param([string]$Level)
41
+
42
+ if ($Level -notmatch '^(low|medium|high|caveman)$') {
43
+ Write-Output "Invalid verbosity level: $Level"
44
+ Write-Output "Valid options: low, medium, high, caveman"
45
+ exit 1
46
+ }
47
+
48
+ if (Test-Path $ConfigClaudeDir) {
49
+ Set-Content -Path $VerbosityFile -Value $Level -NoNewline
50
+ Write-Output "Verbosity set to: $Level (project-local)"
51
+ } else {
52
+ $globalDir = Split-Path -Parent $GlobalVerbosityFile
53
+ if (-not (Test-Path $globalDir)) { New-Item -ItemType Directory -Path $globalDir -Force | Out-Null }
54
+ Set-Content -Path $GlobalVerbosityFile -Value $Level -NoNewline
55
+ Write-Output "Verbosity set to: $Level (global)"
56
+ }
57
+
58
+ Write-Output ""
59
+ Write-Output "Verbosity levels:"
60
+ Write-Output " LOW: Acknowledgments + Completions only"
61
+ Write-Output " MEDIUM: + Major decisions and findings"
62
+ Write-Output " HIGH: All reasoning (maximum transparency)"
63
+ Write-Output " CAVEMAN: Ultra-terse fragments, max token savings"
64
+ Write-Output ""
65
+ Write-Output "Restart Claude Code for changes to take effect"
66
+ }
67
+
68
+ function Show-Info {
69
+ $currentLevel = Get-Verbosity
70
+
71
+ Write-Output "AgentVibes Verbosity Control"
72
+ Write-Output "------------------------------------"
73
+ Write-Output "Current level: $currentLevel"
74
+ Write-Output ""
75
+ Write-Output "Available levels:"
76
+ Write-Output ""
77
+ Write-Output "LOW (Minimal)"
78
+ Write-Output " Acknowledgments only"
79
+ Write-Output " Completions only"
80
+ Write-Output " No reasoning spoken"
81
+ Write-Output ""
82
+ Write-Output "MEDIUM (Balanced)"
83
+ Write-Output " Acknowledgments"
84
+ Write-Output " Major decisions"
85
+ Write-Output " Key findings"
86
+ Write-Output " Completions"
87
+ Write-Output ""
88
+ Write-Output "HIGH (Maximum Transparency)"
89
+ Write-Output " Acknowledgments"
90
+ Write-Output " All reasoning"
91
+ Write-Output " All decisions"
92
+ Write-Output " All findings"
93
+ Write-Output " Completions"
94
+ Write-Output ""
95
+ Write-Output "CAVEMAN (Ultra-Terse)"
96
+ Write-Output " Fragments only, no filler"
97
+ Write-Output " 65-75% fewer output tokens"
98
+ Write-Output " Abbreviations (DB/auth/config/fn/impl)"
99
+ Write-Output " Arrows instead of prose (X -> Y)"
100
+ Write-Output ""
101
+ Write-Output "Usage:"
102
+ Write-Output " verbosity-manager.ps1 get Show current level"
103
+ Write-Output " verbosity-manager.ps1 set low|medium|high|caveman Change level"
104
+ }
105
+
106
+ switch ($Command) {
107
+ "get" {
108
+ Write-Output (Get-Verbosity)
109
+ }
110
+ "set" {
111
+ if (-not $Arg1) {
112
+ Write-Output "Error: Missing verbosity level"
113
+ Write-Output "Usage: verbosity-manager.ps1 set low|medium|high|caveman"
114
+ exit 1
115
+ }
116
+ Set-Verbosity $Arg1
117
+ }
118
+ { $_ -in "info", "" } {
119
+ Show-Info
120
+ }
121
+ default {
122
+ Write-Output "Unknown command: $Command"
123
+ Write-Output "Usage: verbosity-manager.ps1 {get|set|info} [level]"
124
+ exit 1
125
+ }
126
+ }
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.1.4
14
+ **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v5.2.0
15
15
 
16
16
  ---
17
17
 
@@ -43,7 +43,15 @@ Whether you're using Claude Code, GitHub Copilot, OpenAI Codex, Claude Desktop,
43
43
 
44
44
  ---
45
45
 
46
- ## 🛡️ NEW IN v5.1.4TTS Resilience Overhaul + Default LLM Provider
46
+ ## 🎯 NEW IN v5.2.0Remote Voice Preview + Caveman Mode + Voice Ratings
47
+
48
+ - **Caveman verbosity mode** — Ultra-terse TTS fragments. Set via `/agent-vibes:verbosity caveman`.
49
+ - **👍/👎 voice ratings** — Press `+` to thumbs up, `-` to thumbs down in any voice list. Replaces star favorites.
50
+ - **Remote voice preview** — TUI voice preview works on headless servers via SSH receiver. No local audio needed.
51
+ - **SSH receiver routing** — `ssh-remote` and `agentvibes-receiver` are now first-class providers.
52
+ - **Voice validation hardened** — Multi-speaker `::` format, cross-platform base64, no backslash injection.
53
+
54
+ ## 🛡️ v5.1.4 — TTS Resilience Overhaul + Default LLM Provider
47
55
 
48
56
  - **Default LLM provider** — New fallback entry at the bottom of Setup → Providers. Config-only; opens the standard Configure modal. Used when a tool calls TTS without identifying its LLM.
49
57
  - **Per-LLM background music auto-enables** — Setting a bg track on the per-LLM Configure modal actually plays it now (no need to also toggle global bg music).
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # AgentVibes Release Notes
2
2
 
3
+ ## 🎯 v5.2.0 — Remote Voice Preview + Caveman Mode + Voice Ratings
4
+
5
+ **Release Date:** April 2026
6
+
7
+ This release adds remote TTS preview support, a new ultra-terse verbosity mode, and thumbs up/down voice ratings across the TUI.
8
+
9
+ ### New Features
10
+
11
+ - **Caveman verbosity mode** — New `caveman` verbosity level for ultra-terse TTS output. Fragments instead of sentences. Set via `/agent-vibes:verbosity caveman` or the MCP `set_verbosity` tool. Auto-downloads a voice on fresh install if none are present.
12
+
13
+ - **Thumbs up/down voice ratings** — Replace the old star favorites with 👍/👎 ratings. Press `+` to thumbs up, `-` to thumbs down in both the Voices tab and the voice picker (Setup tab). Ratings persist across sessions and are shared between all voice selection UIs.
14
+
15
+ - **Remote voice preview** — Voice preview in the TUI Voices tab, voice picker, and voice browser now works on headless servers. When the active provider is `ssh-remote` or `agentvibes-receiver`, preview routes through `play-tts.sh` to play audio on the remote receiver instead of requiring local Piper + audio player. Platform-aware: uses PowerShell on Windows, bash on Linux.
16
+
17
+ - **SSH receiver provider routing** — `ssh-remote` and `agentvibes-receiver` are now first-class providers in `play-tts.sh`. Both the `speak_text()` function and the main routing case statement support them, eliminating "Unknown provider" errors.
18
+
19
+ ### Fixes
20
+
21
+ - **Auto-patch LibriTTS speaker names** — Voice download now auto-patches LibriTTS speaker names so multi-speaker voices work correctly out of the box.
22
+
23
+ - **Voice validation regex hardened** — The VOICE parameter regex in `play-tts-ssh-remote.sh` and `play-tts-agentvibes-receiver.sh` now allows `::` (multi-speaker), `.` (locale), and spaces (speaker names) without accepting backslash (injection risk). Linux and Windows receiver templates updated to match.
24
+
25
+ - **`base64` cross-platform compatibility** — `play-tts-agentvibes-receiver.sh` now probes for GNU `base64 -w 0`, falls back to BSD `-b 0`, then `tr -d '\n'`. Fixes script abort on macOS/BSD systems.
26
+
27
+ - **Audio effects double-processing fix** — `play-tts-piper.ps1` skips its own audio-processor call when `AGENTVIBES_NO_PLAY` is set, preventing reverb/music from being applied twice.
28
+
29
+ - **Exit code leak fix** — `play-tts.ps1` now exits with code 0 explicitly, preventing native command exit codes (piper, ffmpeg, sox) from leaking through and causing false TTS failure reports.
30
+
31
+ - **Windows receiver-tab platform support** — Tailscale IP detection, local IP via PowerShell, sshd_config reading, and clipboard copy all work natively on Windows now.
32
+
33
+ - **`llm:default` audio effects row** — New default row in `audio-effects.cfg` ensures remote receivers get reverb, music, and pretext even without a per-LLM config entry.
34
+
35
+ - **Preview sample text** — Changed from "Here is a preview of your audio settings" to avoid Piper pronunciation glitch on the word "preview".
36
+
37
+ ---
38
+
3
39
  ## 🛡️ v5.1.4 — TTS Resilience Overhaul + Default LLM Provider + Per-Client Routing
4
40
 
5
41
  **Release Date:** April 2026