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
- # Extract voice from markdown table
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'|' '{print $4}' | \
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 5 of markdown table
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 $5}' | \
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: 1.0.0
3
+ version: 2.0.0
4
4
  enabled: true
5
- description: Voice mappings for BMAD agents
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) | Burt Reynolds | professional |
19
- | architect | Winston (Architect) | Michael | normal |
20
- | po | Product Owner | Tiffany | professional |
21
- | analyst | Analyst | Ralf Eisend | normal |
22
- | sm | Scrum Master | Ms. Walker | professional |
23
- | ux-expert | UX Expert | Aria | normal |
24
- | bmad-master | BMAD Master | Archer | zen |
25
- | bmad-orchestrator | Orchestrator | Tom | professional |
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**: Must be a valid AgentVibes voice name
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 voice for specific agent
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-beta.8",
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' +