agentvibes 2.9.6 → 2.10.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.
File without changes
@@ -0,0 +1,68 @@
1
+ ---
2
+ plugin: bmad-voices
3
+ version: 2.0.0
4
+ enabled: true
5
+ description: Provider-aware voice mappings for BMAD agents
6
+ ---
7
+
8
+ # BMAD Voice Plugin
9
+
10
+ This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
11
+
12
+ ## Agent Voice Mappings (Provider-Aware)
13
+
14
+ | Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality |
15
+ |----------|------------|-------|------------------|-------------|-------------|
16
+ | pm | John (Product Manager) | John, Product Manager here | Matthew Schmitz | en_US-ryan-high | professional |
17
+ | dev | Amelia (Developer) | Amelia, Developer here | Aria | en_US-amy-medium | normal |
18
+ | analyst | Mary (Business Analyst) | Mary, Business Analyst here | Jessica Anne Bogart | kristin | normal |
19
+ | architect | Winston (Architect) | Winston, Architect here | Michael | en_GB-alan-medium | normal |
20
+ | sm | Bob (Scrum Master) | Bob, Scrum Master here | Matthew Schmitz | en_US-joe-medium | professional |
21
+ | tea | Murat (Test Architect) | Murat, Test Architect here | Michael | en_US-arctic-medium | normal |
22
+ | tech-writer | Paige (Technical Writer) | Paige, Technical Writer here | Aria | jenny | normal |
23
+ | ux-designer | Sally (UX Designer) | Sally, UX Designer here | Jessica Anne Bogart | en_US-lessac-medium | normal |
24
+ | frame-expert | Saif (Visual Designer) | Saif, Visual Designer here | Matthew Schmitz | en_GB-alan-medium | normal |
25
+ | bmad-master | BMad Master | BMad Master here | Michael | en_US-danny-low | zen |
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.
34
+
35
+ ### Supports Both Display Names and Agent IDs
36
+
37
+ The `bmad-speak.sh` script accepts both formats:
38
+
39
+ **Party Mode** (multiple agents, uses display names):
40
+ ```bash
41
+ .claude/hooks/bmad-speak.sh "Winston" "I recommend microservices for scalability"
42
+ ```
43
+
44
+ **Individual Agents** (single agent sessions, uses agent IDs):
45
+ ```bash
46
+ .claude/hooks/bmad-speak.sh "architect" "I recommend microservices for scalability"
47
+ ```
48
+
49
+ Both formats map to the same voice configuration based on the agent ID in the table above. This allows BMAD to use customizable display names while maintaining stable voice mappings.
50
+
51
+ ## How to Edit
52
+
53
+ Simply edit the table above to change voice mappings. The format is:
54
+ - **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
55
+ - **Agent Name**: Display name (for reference only)
56
+ - **Intro**: Text spoken before agent's message (e.g., "John, Product Manager here"). Leave empty to disable.
57
+ - **ElevenLabs Voice**: Voice name for ElevenLabs provider
58
+ - **Piper Voice**: Voice model name for Piper provider
59
+ - **Personality**: Optional personality to apply (or "normal" for none)
60
+
61
+ ## Commands
62
+
63
+ - `/agent-vibes:bmad enable` - Enable BMAD voice plugin
64
+ - `/agent-vibes:bmad disable` - Disable BMAD voice plugin
65
+ - `/agent-vibes:bmad status` - Show plugin status
66
+ - `/agent-vibes:bmad edit` - Open this file for editing
67
+ - `/agent-vibes:bmad list` - List all agent voice mappings
68
+ - `/agent-vibes:bmad set <agent-id> <elevenlabs-voice> <piper-voice> [personality]` - Set voices for specific agent
@@ -39,7 +39,7 @@
39
39
  # @patterns Plugin architecture, auto-enable on dependency detection, state backup/restore on toggle
40
40
  # @related bmad-tts-injector.sh, .claude/config/bmad-voices.md, .bmad-agent-context file
41
41
 
42
- CONFIG_DIR=".claude/config"
42
+ CONFIG_DIR=".agentvibes/bmad"
43
43
  VOICE_CONFIG_FILE="$CONFIG_DIR/bmad-voices.md"
44
44
  ENABLED_FLAG="$CONFIG_DIR/bmad-voices-enabled.flag"
45
45
 
package/.test-bmad-config CHANGED
@@ -1,2 +1,2 @@
1
1
  SAVED_MODE="1"
2
- SAVED_TEST_DIR="/home/fire/claude/tests/test47"
2
+ SAVED_TEST_DIR="/home/fire/claude/tests/test48"
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.9.6",
4
+ "version": "2.10.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
@@ -650,20 +650,20 @@ async function copyPluginFiles(targetDir, spinner) {
650
650
  */
651
651
  async function copyBmadConfigFiles(targetDir, spinner) {
652
652
  spinner.start('Installing BMAD config files...');
653
- const srcConfigDir = path.join(__dirname, '..', '.claude', 'config');
654
- const destConfigDir = path.join(targetDir, '.claude', 'config');
653
+ const srcBmadDir = path.join(__dirname, '..', '.agentvibes', 'bmad');
654
+ const destBmadDir = path.join(targetDir, '.agentvibes', 'bmad');
655
655
 
656
- await fs.mkdir(destConfigDir, { recursive: true });
656
+ await fs.mkdir(destBmadDir, { recursive: true });
657
657
 
658
658
  let fileCount = 0;
659
659
 
660
660
  // Copy bmad-voices.md if it exists
661
661
  const bmadVoicesFile = 'bmad-voices.md';
662
- const srcPath = path.join(srcConfigDir, bmadVoicesFile);
662
+ const srcPath = path.join(srcBmadDir, bmadVoicesFile);
663
663
 
664
664
  try {
665
665
  await fs.access(srcPath);
666
- const destPath = path.join(destConfigDir, bmadVoicesFile);
666
+ const destPath = path.join(destBmadDir, bmadVoicesFile);
667
667
  await fs.copyFile(srcPath, destPath);
668
668
  console.log(chalk.gray(` ✓ ${bmadVoicesFile}`));
669
669
  fileCount++;
package/test-bmad-pr.sh CHANGED
@@ -50,7 +50,7 @@ echo ""
50
50
 
51
51
  read -p "Ready to continue? [Y/n]: " -n 1 -r
52
52
  echo
53
- if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ -n $REPLY ]]; then
53
+ if [[ ! $REPLY =~ ^[Yy1]$ ]] && [[ -n $REPLY ]]; then
54
54
  echo "❌ Setup cancelled"
55
55
  exit 0
56
56
  fi
@@ -187,7 +187,7 @@ echo ""
187
187
  read -p "Proceed with setup? [Y/n]: " -n 1 -r
188
188
  echo
189
189
  echo ""
190
- if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ -n $REPLY ]]; then
190
+ if [[ ! $REPLY =~ ^[Yy1]$ ]] && [[ -n $REPLY ]]; then
191
191
  echo "❌ Setup cancelled"
192
192
  exit 0
193
193
  fi
@@ -197,7 +197,7 @@ if [[ -d "$TEST_DIR" ]]; then
197
197
  echo "⚠️ Test directory already exists: $TEST_DIR"
198
198
  read -p "Delete and recreate? [Y/n]: " -n 1 -r
199
199
  echo
200
- if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then
200
+ if [[ $REPLY =~ ^[Yy1]$ ]] || [[ -z $REPLY ]]; then
201
201
  rm -rf "$TEST_DIR"
202
202
  echo -e "${GREEN}✓ Deleted old test directory${NC}"
203
203
  else