agentvibes 2.2.0-beta.8 → 2.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.
|
@@ -123,7 +123,7 @@ auto_enable_if_bmad_detected() {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
# @function get_agent_voice
|
|
126
|
-
# @intent Retrieve TTS voice assigned to specific BMAD agent
|
|
126
|
+
# @intent Retrieve TTS voice assigned to specific BMAD agent (provider-aware)
|
|
127
127
|
# @why Each BMAD agent needs unique voice for multi-agent conversation differentiation
|
|
128
128
|
# @param $1 {string} agent_id - BMAD agent identifier (pm, dev, qa, architect, etc.)
|
|
129
129
|
# @returns Echoes voice name to stdout, empty string if plugin disabled or agent not found
|
|
@@ -132,6 +132,7 @@ auto_enable_if_bmad_detected() {
|
|
|
132
132
|
# @edgecases Returns empty string if plugin disabled/missing, parses markdown table syntax
|
|
133
133
|
# @calledby bmad-tts-injector.sh, play-tts.sh when BMAD agent is active
|
|
134
134
|
# @calls auto_enable_if_bmad_detected, grep, awk, sed
|
|
135
|
+
# @version 2.0.0 - Now provider-aware: returns ElevenLabs or Piper voice based on active provider
|
|
135
136
|
get_agent_voice() {
|
|
136
137
|
local agent_id="$1"
|
|
137
138
|
|
|
@@ -148,9 +149,28 @@ get_agent_voice() {
|
|
|
148
149
|
return
|
|
149
150
|
fi
|
|
150
151
|
|
|
151
|
-
#
|
|
152
|
+
# Detect active TTS provider
|
|
153
|
+
local provider_file=""
|
|
154
|
+
if [[ -f ".claude/tts-provider.txt" ]]; then
|
|
155
|
+
provider_file=".claude/tts-provider.txt"
|
|
156
|
+
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
157
|
+
provider_file="$HOME/.claude/tts-provider.txt"
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
local active_provider="elevenlabs" # default
|
|
161
|
+
if [[ -n "$provider_file" ]] && [[ -f "$provider_file" ]]; then
|
|
162
|
+
active_provider=$(cat "$provider_file")
|
|
163
|
+
fi
|
|
164
|
+
|
|
165
|
+
# Extract voice from markdown table based on provider
|
|
166
|
+
# Column 4 = ElevenLabs Voice, Column 5 = Piper Voice
|
|
167
|
+
local column=4 # Default to ElevenLabs (column 4)
|
|
168
|
+
if [[ "$active_provider" == "piper" ]]; then
|
|
169
|
+
column=5 # Use Piper column
|
|
170
|
+
fi
|
|
171
|
+
|
|
152
172
|
local voice=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
|
|
153
|
-
awk -F'|'
|
|
173
|
+
awk -F'|' "{print \$$column}" | \
|
|
154
174
|
sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
155
175
|
|
|
156
176
|
echo "$voice"
|
|
@@ -163,9 +183,10 @@ get_agent_voice() {
|
|
|
163
183
|
# @returns Echoes personality name to stdout, empty string if not found
|
|
164
184
|
# @exitcode Always 0
|
|
165
185
|
# @sideeffects None
|
|
166
|
-
# @edgecases Returns empty string if plugin file missing, parses column
|
|
186
|
+
# @edgecases Returns empty string if plugin file missing, parses column 6 of markdown table
|
|
167
187
|
# @calledby bmad-tts-injector.sh for personality-aware voice synthesis
|
|
168
188
|
# @calls grep, awk, sed
|
|
189
|
+
# @version 2.0.0 - Updated to column 6 (was 5) due to new provider-aware format
|
|
169
190
|
get_agent_personality() {
|
|
170
191
|
local agent_id="$1"
|
|
171
192
|
|
|
@@ -174,8 +195,9 @@ get_agent_personality() {
|
|
|
174
195
|
return
|
|
175
196
|
fi
|
|
176
197
|
|
|
198
|
+
# Column 6 = Personality (changed from 5 due to new ElevenLabs/Piper columns)
|
|
177
199
|
local personality=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
|
|
178
|
-
awk -F'|' '{print $
|
|
200
|
+
awk -F'|' '{print $6}' | \
|
|
179
201
|
sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
180
202
|
|
|
181
203
|
echo "$personality"
|
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
plugin: bmad-voices
|
|
3
|
-
version:
|
|
3
|
+
version: 2.0.0
|
|
4
4
|
enabled: true
|
|
5
|
-
description:
|
|
5
|
+
description: Provider-aware voice mappings for BMAD agents
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# BMAD Voice Plugin
|
|
9
9
|
|
|
10
|
-
This plugin automatically assigns voices to BMAD agents based on their role.
|
|
10
|
+
This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
|
|
11
11
|
|
|
12
|
-
## Agent Voice Mappings
|
|
12
|
+
## Agent Voice Mappings (Provider-Aware)
|
|
13
13
|
|
|
14
|
-
| Agent ID | Agent Name | Voice | Personality |
|
|
15
|
-
|
|
16
|
-
| pm | John (Product Manager) | Jessica Anne Bogart | professional |
|
|
17
|
-
| dev | James (Developer) | Matthew Schmitz | normal |
|
|
18
|
-
| qa | Quinn (QA) |
|
|
19
|
-
| architect | Winston (Architect) | Michael | normal |
|
|
20
|
-
| po | Product Owner |
|
|
21
|
-
| analyst | Analyst |
|
|
22
|
-
| sm | Scrum Master |
|
|
23
|
-
| ux-expert | UX Expert | Aria | normal |
|
|
24
|
-
| bmad-master | BMAD Master |
|
|
25
|
-
| bmad-orchestrator | Orchestrator |
|
|
14
|
+
| Agent ID | Agent Name | ElevenLabs Voice | Piper Voice | Personality |
|
|
15
|
+
|----------|------------|------------------|-------------|-------------|
|
|
16
|
+
| pm | John (Product Manager) | Jessica Anne Bogart | en_US-ryan-high | professional |
|
|
17
|
+
| dev | James (Developer) | Matthew Schmitz | en_US-joe-medium | normal |
|
|
18
|
+
| qa | Quinn (QA) | Aria | en_US-amy-medium | professional |
|
|
19
|
+
| architect | Winston (Architect) | Michael | en_GB-alan-medium | normal |
|
|
20
|
+
| po | Product Owner | Aria | en_US-amy-medium | professional |
|
|
21
|
+
| analyst | Analyst | Matthew Schmitz | kristin | normal |
|
|
22
|
+
| sm | Scrum Master | Jessica Anne Bogart | kristin | professional |
|
|
23
|
+
| ux-expert | UX Expert | Aria | jenny | normal |
|
|
24
|
+
| bmad-master | BMAD Master | Michael | en_GB-alan-medium | zen |
|
|
25
|
+
| bmad-orchestrator | Orchestrator | Matthew Schmitz | en_US-ryan-high | professional |
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
The voice manager automatically selects the appropriate voice based on your active TTS provider:
|
|
30
|
+
- **ElevenLabs active**: Uses voices from the "ElevenLabs Voice" column
|
|
31
|
+
- **Piper active**: Uses voices from the "Piper Voice" column
|
|
32
|
+
|
|
33
|
+
This ensures BMAD agents work seamlessly regardless of which provider you're using.
|
|
26
34
|
|
|
27
35
|
## How to Edit
|
|
28
36
|
|
|
29
37
|
Simply edit the table above to change voice mappings. The format is:
|
|
30
|
-
- **Agent ID**: Must match BMAD's `agent.id` field
|
|
38
|
+
- **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
|
|
31
39
|
- **Agent Name**: Display name (for reference only)
|
|
32
|
-
- **Voice**:
|
|
40
|
+
- **ElevenLabs Voice**: Voice name for ElevenLabs provider
|
|
41
|
+
- **Piper Voice**: Voice model name for Piper provider
|
|
33
42
|
- **Personality**: Optional personality to apply (or "normal" for none)
|
|
34
43
|
|
|
35
44
|
## Commands
|
|
@@ -39,4 +48,4 @@ Simply edit the table above to change voice mappings. The format is:
|
|
|
39
48
|
- `/agent-vibes:bmad status` - Show plugin status
|
|
40
49
|
- `/agent-vibes:bmad edit` - Open this file for editing
|
|
41
50
|
- `/agent-vibes:bmad list` - List all agent voice mappings
|
|
42
|
-
- `/agent-vibes:bmad set <agent-id> <voice> [personality]` - Set
|
|
51
|
+
- `/agent-vibes:bmad set <agent-id> <elevenlabs-voice> <piper-voice> [personality]` - Set voices for specific agent
|
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.2.0
|
|
4
|
+
"version": "2.2.0",
|
|
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
|
@@ -930,7 +930,7 @@ async function install(options = {}) {
|
|
|
930
930
|
' "mcpServers": {\n' +
|
|
931
931
|
' "agentvibes": {\n' +
|
|
932
932
|
' "command": "npx",\n' +
|
|
933
|
-
' "args": ["-y", "agentvibes-mcp-server"]\n' +
|
|
933
|
+
' "args": ["-y", "--package=agentvibes", "agentvibes-mcp-server"]\n' +
|
|
934
934
|
' }\n' +
|
|
935
935
|
' }\n' +
|
|
936
936
|
'}\n\n' +
|