agentvibes 2.7.1 β 2.7.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.
- package/.bmad/core/workflows/party-mode/instructions.md +2 -0
- package/.claude/commands/agent-vibes/bmad.md +3 -3
- package/.claude/commands/{agent-vibes-bmad-party.md β agent-vibes-bmad-voices.md} +4 -4
- package/.claude/hooks/bmad-speak.sh +1 -0
- package/.claude/hooks/bmad-voice-manager.sh +30 -8
- package/.claude/hooks/stop.sh +2 -2
- package/.claude/hooks/tts-queue-worker.sh +22 -4
- package/.claude/output-styles/agent-vibes.md +3 -3
- package/README.md +8 -8
- package/RELEASE_NOTES.md +233 -0
- package/package.json +1 -1
- package/src/installer.js +15 -15
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<critical>The workflow execution engine is governed by: {project_root}/.bmad/core/tasks/workflow.xml</critical>
|
|
4
4
|
<critical>This workflow orchestrates group discussions between all installed BMAD agents</critical>
|
|
5
|
+
<critical>IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)</critical>
|
|
5
6
|
|
|
6
7
|
<workflow>
|
|
7
8
|
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
|
|
26
27
|
<step n="2" goal="Initialize Party Mode">
|
|
27
28
|
<action>Announce party mode activation with enthusiasm</action>
|
|
29
|
+
<note>If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)</note>
|
|
28
30
|
<action>List all participating agents with their merged information:</action>
|
|
29
31
|
<format>
|
|
30
32
|
π PARTY MODE ACTIVATED! π
|
|
@@ -119,7 +119,7 @@ Quickly change voice for specific agent.
|
|
|
119
119
|
- `personality` (optional): Personality to apply (default: normal)
|
|
120
120
|
|
|
121
121
|
### `edit`
|
|
122
|
-
Opens `.claude/
|
|
122
|
+
Opens `.claude/config/bmad-voices.md` for manual editing.
|
|
123
123
|
|
|
124
124
|
**Example:**
|
|
125
125
|
```
|
|
@@ -132,8 +132,8 @@ Edit the markdown table directly to change voice mappings.
|
|
|
132
132
|
## How It Works
|
|
133
133
|
|
|
134
134
|
### Voice Assignment
|
|
135
|
-
1. **Plugin File**: `.claude/
|
|
136
|
-
2. **Activation Flag**: `.claude/
|
|
135
|
+
1. **Plugin File**: `.claude/config/bmad-voices.md` contains voice-to-agent mappings
|
|
136
|
+
2. **Activation Flag**: `.claude/config/bmad-voices-enabled.flag` enables/disables the plugin
|
|
137
137
|
|
|
138
138
|
### TTS Injection (Automatic)
|
|
139
139
|
When you run `/agent-vibes:bmad enable`, the system automatically:
|
|
@@ -51,7 +51,7 @@ The integration detects agent responses in the format:
|
|
|
51
51
|
When detected, it:
|
|
52
52
|
1. Extracts the agent's display name (e.g., "Winston", "John")
|
|
53
53
|
2. Maps it to their agent ID using `.bmad/_cfg/agent-manifest.csv`
|
|
54
|
-
3. Looks up their voice from `.claude/
|
|
54
|
+
3. Looks up their voice from `.claude/config/bmad-voices.md`
|
|
55
55
|
4. Speaks their dialogue with that specific voice
|
|
56
56
|
|
|
57
57
|
## Example
|
|
@@ -79,7 +79,7 @@ See current agent-to-voice mappings:
|
|
|
79
79
|
|
|
80
80
|
Edit voice assignments in:
|
|
81
81
|
```
|
|
82
|
-
.claude/
|
|
82
|
+
.claude/config/bmad-voices.md
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
## Requirements
|
|
@@ -93,7 +93,7 @@ Edit voice assignments in:
|
|
|
93
93
|
**Party mode voices not working?**
|
|
94
94
|
|
|
95
95
|
1. Check BMAD is installed: `ls .bmad/_cfg/agent-manifest.csv`
|
|
96
|
-
2. Check voice plugin enabled: `ls .claude/
|
|
96
|
+
2. Check voice plugin enabled: `ls .claude/config/bmad-voices-enabled.flag`
|
|
97
97
|
3. Check party mode not disabled: `ls .claude/plugins/bmad-party-mode-disabled.flag`
|
|
98
98
|
4. View status: `/agent-vibes:bmad-party status`
|
|
99
99
|
|
|
@@ -101,7 +101,7 @@ Edit voice assignments in:
|
|
|
101
101
|
|
|
102
102
|
Check voice mappings: `/agent-vibes:bmad status`
|
|
103
103
|
|
|
104
|
-
Edit mappings in: `.claude/
|
|
104
|
+
Edit mappings in: `.claude/config/bmad-voices.md`
|
|
105
105
|
|
|
106
106
|
## Related Commands
|
|
107
107
|
|
|
@@ -102,6 +102,7 @@ fi
|
|
|
102
102
|
|
|
103
103
|
# Speak with agent's voice using queue system (non-blocking for Claude)
|
|
104
104
|
# Queue system ensures sequential playback while allowing Claude to continue
|
|
105
|
+
# Output from play-tts.sh will be displayed by the queue worker (GitHub Issue #39)
|
|
105
106
|
if [[ -n "$AGENT_VOICE" ]]; then
|
|
106
107
|
bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" "$AGENT_VOICE" &
|
|
107
108
|
else
|
|
@@ -453,8 +453,8 @@ disable_plugin() {
|
|
|
453
453
|
}
|
|
454
454
|
|
|
455
455
|
# @function list_mappings
|
|
456
|
-
# @intent Display all BMAD agent-to-voice mappings in readable format
|
|
457
|
-
# @why Help users see which voice is assigned to each agent
|
|
456
|
+
# @intent Display all BMAD agent-to-voice mappings in readable format (provider-aware)
|
|
457
|
+
# @why Help users see which voice is assigned to each agent based on active TTS provider
|
|
458
458
|
# @param None
|
|
459
459
|
# @returns None
|
|
460
460
|
# @exitcode 0=success, 1=plugin file not found
|
|
@@ -462,21 +462,43 @@ disable_plugin() {
|
|
|
462
462
|
# @edgecases Parses markdown table format, skips header and separator rows
|
|
463
463
|
# @calledby enable_plugin, show_status, main command dispatcher with "list"
|
|
464
464
|
# @calls grep, sed, echo
|
|
465
|
+
# @version 2.1.0 - Now provider-aware: shows ElevenLabs or Piper voices based on active provider
|
|
465
466
|
list_mappings() {
|
|
466
467
|
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
467
468
|
echo "β Plugin file not found: $VOICE_CONFIG_FILE"
|
|
468
469
|
return 1
|
|
469
470
|
fi
|
|
470
471
|
|
|
471
|
-
|
|
472
|
+
# Detect active TTS provider
|
|
473
|
+
local provider_file=""
|
|
474
|
+
if [[ -f ".claude/tts-provider.txt" ]]; then
|
|
475
|
+
provider_file=".claude/tts-provider.txt"
|
|
476
|
+
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
477
|
+
provider_file="$HOME/.claude/tts-provider.txt"
|
|
478
|
+
fi
|
|
479
|
+
|
|
480
|
+
local active_provider="elevenlabs" # default
|
|
481
|
+
if [[ -n "$provider_file" ]] && [[ -f "$provider_file" ]]; then
|
|
482
|
+
active_provider=$(cat "$provider_file")
|
|
483
|
+
fi
|
|
484
|
+
|
|
485
|
+
# Display provider info
|
|
486
|
+
echo "π BMAD Agent Voice Mappings (Provider: $active_provider):"
|
|
472
487
|
echo ""
|
|
473
488
|
|
|
489
|
+
# Table: Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality
|
|
490
|
+
# AWK columns: $1=empty | $2=ID | $3=Name | $4=Intro | $5=ElevenLabs | $6=Piper | $7=Personality
|
|
491
|
+
local voice_column=5 # Default to ElevenLabs (AWK column 5)
|
|
492
|
+
if [[ "$active_provider" == "piper" ]]; then
|
|
493
|
+
voice_column=6 # Use Piper (AWK column 6)
|
|
494
|
+
fi
|
|
495
|
+
|
|
474
496
|
grep "^| " "$VOICE_CONFIG_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
|
|
475
|
-
while IFS='|' read -r
|
|
476
|
-
agent_id=$(echo "$
|
|
477
|
-
name=$(echo "$
|
|
478
|
-
voice=$(echo "$
|
|
479
|
-
personality=$(echo "$
|
|
497
|
+
while IFS='|' read -r line; do
|
|
498
|
+
agent_id=$(echo "$line" | awk -F'|' '{print $2}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
499
|
+
name=$(echo "$line" | awk -F'|' '{print $3}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
500
|
+
voice=$(echo "$line" | awk -F'|' "{print \$$voice_column}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
501
|
+
personality=$(echo "$line" | awk -F'|' '{print $7}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
480
502
|
|
|
481
503
|
[[ -n "$agent_id" ]] && echo " $agent_id β $voice [$personality]"
|
|
482
504
|
done
|
package/.claude/hooks/stop.sh
CHANGED
|
@@ -101,7 +101,7 @@ extract_and_speak() {
|
|
|
101
101
|
# @function is_party_mode_enabled
|
|
102
102
|
# @context Check if BMAD party mode voice integration is enabled
|
|
103
103
|
# @architecture Auto-enable for BMAD users, opt-out via disable flag
|
|
104
|
-
# @dependencies .bmad/_cfg/agent-manifest.csv, .claude/
|
|
104
|
+
# @dependencies .bmad/_cfg/agent-manifest.csv, .claude/config/bmad-voices-enabled.flag
|
|
105
105
|
# @returns 0=enabled, 1=disabled
|
|
106
106
|
# @aiNotes Auto-enabled when BMAD detected, respects opt-out flag for user control
|
|
107
107
|
#
|
|
@@ -111,7 +111,7 @@ is_party_mode_enabled() {
|
|
|
111
111
|
|
|
112
112
|
# Auto-enable if BMAD detected + voice plugin enabled
|
|
113
113
|
if [[ -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]] && \
|
|
114
|
-
[[ -f "$PROJECT_ROOT/.claude/
|
|
114
|
+
[[ -f "$PROJECT_ROOT/.claude/config/bmad-voices-enabled.flag" ]]; then
|
|
115
115
|
return 0
|
|
116
116
|
fi
|
|
117
117
|
|
|
@@ -14,6 +14,23 @@ IDLE_TIMEOUT=5 # Exit after 5 seconds of no new requests
|
|
|
14
14
|
# Get script directory
|
|
15
15
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
16
|
|
|
17
|
+
# Configurable delay between speakers (seconds)
|
|
18
|
+
# Can be overridden by .claude/tts-speaker-delay.txt or ~/.claude/tts-speaker-delay.txt
|
|
19
|
+
SPEAKER_DELAY=4 # Default: 4 seconds between speakers
|
|
20
|
+
|
|
21
|
+
# Check for custom delay configuration
|
|
22
|
+
if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
|
|
23
|
+
CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
|
|
24
|
+
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
25
|
+
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
26
|
+
fi
|
|
27
|
+
elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
|
|
28
|
+
CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
|
|
29
|
+
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
30
|
+
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
31
|
+
fi
|
|
32
|
+
fi
|
|
33
|
+
|
|
17
34
|
# Trap to clean up on exit
|
|
18
35
|
trap "rm -f $WORKER_PID_FILE" EXIT
|
|
19
36
|
|
|
@@ -50,14 +67,15 @@ process_queue() {
|
|
|
50
67
|
VOICE=$(echo -n "$VOICE_B64" | base64 -d)
|
|
51
68
|
|
|
52
69
|
# Play TTS (this blocks until audio finishes due to lock mechanism)
|
|
70
|
+
# Display output to show file location (GitHub Issue #39)
|
|
53
71
|
if [[ -n "${VOICE:-}" ]]; then
|
|
54
|
-
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" "$VOICE"
|
|
72
|
+
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" "$VOICE" || true
|
|
55
73
|
else
|
|
56
|
-
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT"
|
|
74
|
+
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" || true
|
|
57
75
|
fi
|
|
58
76
|
|
|
59
|
-
# Add
|
|
60
|
-
sleep
|
|
77
|
+
# Add configurable pause between speakers for natural conversation flow
|
|
78
|
+
sleep $SPEAKER_DELAY
|
|
61
79
|
|
|
62
80
|
# Remove processed item
|
|
63
81
|
rm -f "$queue_item"
|
|
@@ -133,8 +133,8 @@ You: "β
That bug be walkin' the plank now, arr!"
|
|
|
133
133
|
When a BMAD agent is activated (e.g., `/BMad:agents:pm`), AgentVibes will automatically:
|
|
134
134
|
|
|
135
135
|
1. **Detect BMAD agent from command/context**
|
|
136
|
-
2. **Check if BMAD plugin is enabled** (`.claude/
|
|
137
|
-
3. **Look up voice mapping** from `.claude/
|
|
136
|
+
2. **Check if BMAD plugin is enabled** (`.claude/config/bmad-voices-enabled.flag`)
|
|
137
|
+
3. **Look up voice mapping** from `.claude/config/bmad-voices.md`
|
|
138
138
|
4. **Apply agent's assigned voice** for all TTS acknowledgments/completions
|
|
139
139
|
5. **Apply agent's personality** from the mapping (if specified)
|
|
140
140
|
|
|
@@ -153,7 +153,7 @@ fi
|
|
|
153
153
|
# Note: This detection happens automatically when BMAD agent activates
|
|
154
154
|
|
|
155
155
|
# If BMAD agent detected and plugin enabled, use mapped voice
|
|
156
|
-
if [[ -n "$BMAD_AGENT_ID" ]] && [[ -f ".claude/
|
|
156
|
+
if [[ -n "$BMAD_AGENT_ID" ]] && [[ -f ".claude/config/bmad-voices-enabled.flag" ]]; then
|
|
157
157
|
MAPPED_VOICE=$(.claude/hooks/bmad-voice-manager.sh get-voice "$BMAD_AGENT_ID")
|
|
158
158
|
MAPPED_PERSONALITY=$(.claude/hooks/bmad-voice-manager.sh get-personality "$BMAD_AGENT_ID")
|
|
159
159
|
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
|
|
12
12
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
13
13
|
|
|
14
|
-
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.7.
|
|
14
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.7.2
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -94,16 +94,16 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
94
94
|
|
|
95
95
|
## π° Latest Release
|
|
96
96
|
|
|
97
|
-
**[v2.7.
|
|
97
|
+
**[v2.7.2 - Party Mode Voice Fixes](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2)** π
|
|
98
98
|
|
|
99
|
-
AgentVibes v2.7.
|
|
99
|
+
AgentVibes v2.7.2 resolves critical party mode voice issues! This patch fixes provider-aware voice display (issue #38), shows audio file locations (issue #39), increases speaker delay to 4s (configurable), and updates all documentation paths to the official `.claude/config/` directory.
|
|
100
100
|
|
|
101
101
|
**Key highlights:**
|
|
102
|
-
- π **
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
- π **
|
|
106
|
-
-
|
|
102
|
+
- π **Provider-Aware Voice Display** - Fixed issue #38: Voice mappings show correct voices
|
|
103
|
+
- π **Audio File Locations** - Fixed issue #39: TTS output displays file paths
|
|
104
|
+
- βΈοΈ **Configurable Speaker Delay** - Increased to 4s (customizable via config file)
|
|
105
|
+
- π **Documentation Path Updates** - All references migrated to `.claude/config/`
|
|
106
|
+
- πͺ **Command Renamed** - Prevents conflicts with BMAD party mode
|
|
107
107
|
|
|
108
108
|
[β View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
|
|
109
109
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,3 +1,236 @@
|
|
|
1
|
+
# Release v2.7.2 - Party Mode Voice Fixes
|
|
2
|
+
|
|
3
|
+
**Release Date:** 2025-11-18
|
|
4
|
+
**Type:** Patch Release (Bug Fixes)
|
|
5
|
+
|
|
6
|
+
## π― AI Summary
|
|
7
|
+
|
|
8
|
+
AgentVibes v2.7.2 resolves critical party mode voice issues and enhances the multi-agent conversation experience. This patch fixes issue #38 where BMAD agents appeared to use the same voice due to non-provider-aware status display, and issue #39 by showing audio file locations in output. The speaker delay has been increased from 2s to 4s and made configurable, documentation paths have been updated from the old `.claude/plugins/` to the official `.claude/config/` directory, and the command has been renamed to prevent conflicts with BMAD's party mode.
|
|
9
|
+
|
|
10
|
+
**Key Highlights:**
|
|
11
|
+
- π **Provider-Aware Voice Display** - Fixed issue #38: Voice mappings now show correct voices for active TTS provider
|
|
12
|
+
- π **Audio File Locations** - Fixed issue #39: TTS output now displays file paths and voice used
|
|
13
|
+
- βΈοΈ **Configurable Speaker Delay** - Increased from 2s to 4s with customizable configuration
|
|
14
|
+
- π **Documentation Path Updates** - Migrated all references from `.claude/plugins/` to `.claude/config/`
|
|
15
|
+
- πͺ **Command Renamed** - Prevents conflict with BMAD's `/bmad:core:workflows:party-mode`
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## π Bug Fixes
|
|
20
|
+
|
|
21
|
+
### Issue #38: Provider-Aware Voice Mappings
|
|
22
|
+
|
|
23
|
+
**Fixed Voice Display for Active Provider** (commit: 34db8510)
|
|
24
|
+
- Problem: `list_mappings()` in `bmad-voice-manager.sh` always showed ElevenLabs voices regardless of active provider
|
|
25
|
+
- Made agents appear to use same voice when using Piper provider
|
|
26
|
+
- Solution: Added provider detection logic to `list_mappings()` function
|
|
27
|
+
- Now displays correct voice column based on active TTS provider (Piper or ElevenLabs)
|
|
28
|
+
- Added provider indicator to status output: "Provider: piper" or "Provider: elevenlabs"
|
|
29
|
+
- Actual voice assignment was working correctly - only the display was wrong
|
|
30
|
+
|
|
31
|
+
**Technical Details:**
|
|
32
|
+
```bash
|
|
33
|
+
# Detect active TTS provider
|
|
34
|
+
local active_provider="elevenlabs" # default
|
|
35
|
+
if [[ -f ".claude/tts-provider.txt" ]]; then
|
|
36
|
+
active_provider=$(cat .claude/tts-provider.txt)
|
|
37
|
+
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
38
|
+
active_provider=$(cat "$HOME/.claude/tts-provider.txt)
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Select correct voice column
|
|
42
|
+
local voice_column=5 # ElevenLabs (AWK column 5)
|
|
43
|
+
if [[ "$active_provider" == "piper" ]]; then
|
|
44
|
+
voice_column=6 # Piper (AWK column 6)
|
|
45
|
+
fi
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Issue #39: Display Audio File Locations
|
|
49
|
+
|
|
50
|
+
**Show TTS Output in Party Mode** (commit: 3afff2b0)
|
|
51
|
+
- Problem: Audio file paths were hidden due to `2>/dev/null` redirect
|
|
52
|
+
- Users couldn't see which files were being played or which voices were used
|
|
53
|
+
- Solution: Removed output suppression from `tts-queue-worker.sh`
|
|
54
|
+
- Now displays: File path, voice used, and model information
|
|
55
|
+
- Helps with debugging and transparency
|
|
56
|
+
|
|
57
|
+
**Example Output:**
|
|
58
|
+
```
|
|
59
|
+
π Using multi-speaker voice: kristin (Model: 16Speakers, Speaker ID: 2)
|
|
60
|
+
π΅ Saved to: /home/fire/claude/AgentVibes/.claude/audio/tts-padded-1763498669.wav
|
|
61
|
+
π€ Voice used: 16Speakers (Piper TTS)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Party Mode Hook Path Issues
|
|
65
|
+
|
|
66
|
+
**Project Hooks vs Global Hooks** (commit: 34a53d67)
|
|
67
|
+
- Problem: Party mode instructions didn't specify project-local hooks
|
|
68
|
+
- Claude AI sometimes used `~/.claude/hooks/` instead of `.claude/hooks/`
|
|
69
|
+
- Caused wrong TTS provider to be used in party mode
|
|
70
|
+
- Solution: Added explicit guidance in `.bmad/core/workflows/party-mode/instructions.md`
|
|
71
|
+
- Critical note: "IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)"
|
|
72
|
+
- Also added to step 2: "If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)"
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## β¨ Improvements
|
|
77
|
+
|
|
78
|
+
### Configurable Speaker Delay
|
|
79
|
+
|
|
80
|
+
**Increased and Made Configurable** (commit: 65264c9c)
|
|
81
|
+
- Changed default speaker delay from 2s to 4s between agents
|
|
82
|
+
- User feedback: "there was still a little overlap in the different agents when they speak"
|
|
83
|
+
- Made delay configurable via text file for user customization
|
|
84
|
+
- Supports project-local `.claude/tts-speaker-delay.txt` or global `~/.claude/tts-speaker-delay.txt`
|
|
85
|
+
- Project config takes precedence over global config
|
|
86
|
+
- Must be a positive integer (validated with regex)
|
|
87
|
+
|
|
88
|
+
**Configuration:**
|
|
89
|
+
```bash
|
|
90
|
+
# Set custom delay (e.g., 6 seconds)
|
|
91
|
+
echo "6" > .claude/tts-speaker-delay.txt
|
|
92
|
+
|
|
93
|
+
# Or globally
|
|
94
|
+
echo "6" > ~/.claude/tts-speaker-delay.txt
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Implementation:**
|
|
98
|
+
```bash
|
|
99
|
+
SPEAKER_DELAY=4 # Default: 4 seconds
|
|
100
|
+
|
|
101
|
+
# Check for custom delay
|
|
102
|
+
if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
|
|
103
|
+
CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
|
|
104
|
+
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
105
|
+
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
106
|
+
fi
|
|
107
|
+
elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
|
|
108
|
+
CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
|
|
109
|
+
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
110
|
+
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
111
|
+
fi
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
# Later in queue processing:
|
|
115
|
+
sleep $SPEAKER_DELAY
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## π Documentation Updates
|
|
121
|
+
|
|
122
|
+
### Path Migration from plugins/ to config/
|
|
123
|
+
|
|
124
|
+
**Updated All Path References** (commit: 34a53d67)
|
|
125
|
+
- Problem: Documentation still referenced old `.claude/plugins/` path
|
|
126
|
+
- Code had already moved to `.claude/config/` in v2.7.0
|
|
127
|
+
- Solution: Updated all references in:
|
|
128
|
+
- `.claude/commands/agent-vibes/bmad.md`
|
|
129
|
+
- `.claude/output-styles/agent-vibes.md`
|
|
130
|
+
- `.claude/hooks/stop.sh`
|
|
131
|
+
- Ensures consistency between code and documentation
|
|
132
|
+
- Prevents confusion about config file locations
|
|
133
|
+
|
|
134
|
+
**Files Updated:**
|
|
135
|
+
- `agent-vibes/bmad.md`: All references to bmad-voices.md path
|
|
136
|
+
- `agent-vibes.md`: BMAD plugin integration section
|
|
137
|
+
- `stop.sh`: Config file cleanup logic
|
|
138
|
+
|
|
139
|
+
### Command Renamed to Prevent Conflicts
|
|
140
|
+
|
|
141
|
+
**Renamed /agent-vibes-bmad-party** (commit: 34a53d67)
|
|
142
|
+
- Problem: `/agent-vibes-bmad-party` conflicted with BMAD's `/bmad:core:workflows:party-mode`
|
|
143
|
+
- When typing "party", Claude Code suggested the wrong command
|
|
144
|
+
- Solution: Renamed to `/agent-vibes-bmad-voices`
|
|
145
|
+
- Better describes purpose (managing BMAD voice mappings)
|
|
146
|
+
- No longer conflicts with BMAD party mode workflow
|
|
147
|
+
- Renamed file: `.claude/commands/agent-vibes-bmad-party.md` β `.claude/commands/agent-vibes-bmad-voices.md`
|
|
148
|
+
|
|
149
|
+
**Before:**
|
|
150
|
+
- `/agent-vibes-bmad-party` - Control BMAD party mode voice integration
|
|
151
|
+
|
|
152
|
+
**After:**
|
|
153
|
+
- `/agent-vibes-bmad-voices` - Control BMAD party mode voice integration
|
|
154
|
+
- Clear distinction from `/bmad:core:workflows:party-mode`
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## π§ Technical Details
|
|
159
|
+
|
|
160
|
+
### Files Modified
|
|
161
|
+
- `.claude/hooks/bmad-voice-manager.sh` - Made `list_mappings()` provider-aware (lines 455-505)
|
|
162
|
+
- `.claude/hooks/tts-queue-worker.sh` - Added configurable delay, removed output suppression (lines 18-32, 78)
|
|
163
|
+
- `.claude/commands/agent-vibes-bmad-voices.md` - Renamed from bmad-party.md, updated paths
|
|
164
|
+
- `.claude/commands/agent-vibes/bmad.md` - Updated documentation paths
|
|
165
|
+
- `.claude/output-styles/agent-vibes.md` - Updated BMAD integration paths
|
|
166
|
+
- `.claude/hooks/stop.sh` - Updated config file paths
|
|
167
|
+
- `.bmad/core/workflows/party-mode/instructions.md` - Added project hooks guidance
|
|
168
|
+
|
|
169
|
+
### BMAD-METHOD Repository Updates
|
|
170
|
+
- Committed party mode instruction fixes to BMAD-METHOD repo (commit: 60635fcc)
|
|
171
|
+
- **Note:** Changes not yet pushed to GitHub (manual push required)
|
|
172
|
+
- PR #934 will need to be updated with latest commits
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## π Stats
|
|
177
|
+
|
|
178
|
+
- **Commits:** 5
|
|
179
|
+
- **Files Changed:** 7
|
|
180
|
+
- **Lines Modified:** ~50
|
|
181
|
+
- **Issues Resolved:** 2 (#38, #39)
|
|
182
|
+
- **Configuration Options Added:** 1 (speaker delay)
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## π Upgrade Guide
|
|
187
|
+
|
|
188
|
+
### From v2.7.1
|
|
189
|
+
|
|
190
|
+
**No breaking changes** - this is a backward-compatible bug fix release.
|
|
191
|
+
|
|
192
|
+
To get the fixes:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Update AgentVibes
|
|
196
|
+
npx agentvibes update
|
|
197
|
+
|
|
198
|
+
# Voice mappings will now show correct provider-specific voices
|
|
199
|
+
# Audio file locations will display in output
|
|
200
|
+
# Speaker delay automatically increased to 4s
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Optional: Customize Speaker Delay
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Set custom delay (e.g., 6 seconds)
|
|
207
|
+
echo "6" > .claude/tts-speaker-delay.txt
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## π€ Contributors
|
|
213
|
+
|
|
214
|
+
- Paul Preibisch (@paulpreibisch)
|
|
215
|
+
- Claude AI (code generation assistant)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## π Links
|
|
220
|
+
|
|
221
|
+
- **npm Package:** https://www.npmjs.com/package/agentvibes
|
|
222
|
+
- **GitHub Repository:** https://github.com/paulpreibisch/AgentVibes
|
|
223
|
+
- **GitHub Release:** https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2
|
|
224
|
+
- **Issue #38:** https://github.com/paulpreibisch/AgentVibes/issues/38
|
|
225
|
+
- **Issue #39:** https://github.com/paulpreibisch/AgentVibes/issues/39
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
**Full Changelog:** https://github.com/paulpreibisch/AgentVibes/compare/v2.7.1...v2.7.2
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
|
|
1
234
|
# Release v2.7.0 - Party Mode Voice Improvements
|
|
2
235
|
|
|
3
236
|
**Release Date:** 2025-11-18
|
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": "2.7.
|
|
4
|
+
"version": "2.7.2",
|
|
5
5
|
"description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
|
|
6
6
|
"homepage": "https://agentvibes.org",
|
|
7
7
|
"keywords": [
|
package/src/installer.js
CHANGED
|
@@ -127,24 +127,24 @@ function showReleaseInfo() {
|
|
|
127
127
|
console.log(
|
|
128
128
|
boxen(
|
|
129
129
|
chalk.white.bold('βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n') +
|
|
130
|
-
chalk.cyan.bold(' π¦ AgentVibes v2.7.
|
|
130
|
+
chalk.cyan.bold(' π¦ AgentVibes v2.7.2 - Party Mode Voice Fixes\n') +
|
|
131
131
|
chalk.white.bold('βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n\n') +
|
|
132
132
|
chalk.green.bold('ποΈ WHAT\'S NEW:\n\n') +
|
|
133
|
-
chalk.cyan('AgentVibes v2.7.
|
|
134
|
-
chalk.cyan('multi-agent
|
|
135
|
-
chalk.cyan('
|
|
136
|
-
chalk.cyan('
|
|
137
|
-
chalk.cyan('
|
|
133
|
+
chalk.cyan('AgentVibes v2.7.2 resolves critical party mode voice issues and\n') +
|
|
134
|
+
chalk.cyan('enhances the multi-agent conversation experience! This patch fixes\n') +
|
|
135
|
+
chalk.cyan('provider-aware voice display, shows audio file locations, increases\n') +
|
|
136
|
+
chalk.cyan('speaker delay to 4s (configurable), and updates documentation paths\n') +
|
|
137
|
+
chalk.cyan('to the official .claude/config/ directory.\n\n') +
|
|
138
138
|
chalk.green.bold('β¨ KEY HIGHLIGHTS:\n\n') +
|
|
139
|
-
chalk.gray(' π
|
|
140
|
-
chalk.gray('
|
|
141
|
-
chalk.gray('
|
|
142
|
-
chalk.gray(' π
|
|
143
|
-
chalk.gray('
|
|
144
|
-
chalk.cyan('
|
|
145
|
-
chalk.gray('
|
|
146
|
-
chalk.gray('
|
|
147
|
-
chalk.gray('
|
|
139
|
+
chalk.gray(' π Provider-Aware Voice Display - Fixed issue #38\n') +
|
|
140
|
+
chalk.gray(' π Audio File Locations - Fixed issue #39 (shows paths)\n') +
|
|
141
|
+
chalk.gray(' βΈοΈ Configurable Speaker Delay - 4s default, customizable\n') +
|
|
142
|
+
chalk.gray(' π Documentation Paths - Migrated to .claude/config/\n') +
|
|
143
|
+
chalk.gray(' πͺ Command Renamed - Prevents BMAD party mode conflicts\n\n') +
|
|
144
|
+
chalk.cyan('Bug fixes and improvements:\n') +
|
|
145
|
+
chalk.gray(' Voice mappings show correct provider-specific voices\n') +
|
|
146
|
+
chalk.gray(' Audio file paths displayed in TTS output\n') +
|
|
147
|
+
chalk.gray(' Party mode uses project hooks (not global)\n\n') +
|
|
148
148
|
chalk.white.bold('βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n\n') +
|
|
149
149
|
chalk.gray('π Full Release Notes: RELEASE_NOTES.md\n') +
|
|
150
150
|
chalk.gray('π Website: https://agentvibes.org\n') +
|