agentvibes 2.1.4 → 2.1.5
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/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/bmad-tts-injector.sh +1 -1
- package/.claude/hooks/bmad-voice-manager.sh +1 -1
- package/.claude/hooks/check-output-style.sh +1 -1
- package/.claude/hooks/download-extra-voices.sh +1 -1
- package/.claude/hooks/github-star-reminder.sh +1 -1
- package/.claude/hooks/language-manager.sh +1 -1
- package/.claude/hooks/learn-manager.sh +1 -1
- package/.claude/hooks/personality-manager.sh +1 -1
- package/.claude/hooks/piper-download-voices.sh +1 -1
- package/.claude/hooks/piper-installer.sh +1 -1
- package/.claude/hooks/piper-multispeaker-registry.sh +1 -1
- package/.claude/hooks/piper-voice-manager.sh +1 -1
- package/.claude/hooks/play-tts-elevenlabs.sh +1 -1
- package/.claude/hooks/play-tts-piper.sh +1 -1
- package/.claude/hooks/play-tts.sh +1 -1
- package/.claude/hooks/provider-commands.sh +1 -1
- package/.claude/hooks/provider-manager.sh +1 -1
- package/.claude/hooks/replay-target-audio.sh +1 -1
- package/.claude/hooks/sentiment-manager.sh +1 -1
- package/.claude/hooks/speed-manager.sh +1 -1
- package/.claude/hooks/voice-manager.sh +1 -1
- package/.claude/hooks/voices-config.sh +1 -1
- package/MACOS_TESTING_SETUP.md +216 -0
- package/README.md +1 -0
- package/RELEASE_NOTES.md +366 -0
- package/docs/macos-testing.md +300 -0
- package/mcp-server/server.py +9 -1
- package/package.json +1 -1
- package/src/installer.js +46 -76
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
20251031
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# 🍎 macOS Testing Setup Complete!
|
|
2
|
+
|
|
3
|
+
## ✅ What's Been Added
|
|
4
|
+
|
|
5
|
+
### 1. **Dual Workflow Setup**
|
|
6
|
+
- **Main Test Workflow** (`.github/workflows/test.yml`)
|
|
7
|
+
- Fast testing on Ubuntu + macOS
|
|
8
|
+
- Node 18, 20
|
|
9
|
+
- Runs on every push/PR
|
|
10
|
+
|
|
11
|
+
- **Dedicated macOS Workflow** (`.github/workflows/test-macos.yml`)
|
|
12
|
+
- Comprehensive macOS testing
|
|
13
|
+
- macOS 13 (Intel), 14 (M1), 15 (Latest)
|
|
14
|
+
- Node 18, 20, 22
|
|
15
|
+
- Manual trigger available
|
|
16
|
+
|
|
17
|
+
### 2. **Test Coverage**
|
|
18
|
+
- ✅ Unit tests (BATS)
|
|
19
|
+
- ✅ System compatibility checks
|
|
20
|
+
- ✅ Audio stack validation (afplay, ffmpeg, mpv)
|
|
21
|
+
- ✅ Piper TTS architecture detection
|
|
22
|
+
- ✅ ElevenLabs API mock testing
|
|
23
|
+
- ✅ Python MCP dependencies
|
|
24
|
+
- ✅ Audio file generation
|
|
25
|
+
- ✅ Installation process
|
|
26
|
+
|
|
27
|
+
### 3. **Documentation**
|
|
28
|
+
- 📖 [docs/macos-testing.md](docs/macos-testing.md) - Complete guide
|
|
29
|
+
- 📄 [.github/MACOS_TESTING_QUICKSTART.md](.github/MACOS_TESTING_QUICKSTART.md) - Quick reference
|
|
30
|
+
- 📋 Updated README with macOS testing link
|
|
31
|
+
|
|
32
|
+
## 🎯 How to Use
|
|
33
|
+
|
|
34
|
+
### Automatic Testing (Recommended)
|
|
35
|
+
```bash
|
|
36
|
+
# Just push your code - tests run automatically!
|
|
37
|
+
git push origin master
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Tests will run on:
|
|
41
|
+
- 2 OS (Ubuntu + macOS) × 2 Node versions = **4 test jobs** (main workflow)
|
|
42
|
+
- 3 macOS versions × 3 Node versions = **9 test jobs** (macOS workflow)
|
|
43
|
+
|
|
44
|
+
### Manual Testing
|
|
45
|
+
1. Go to GitHub → **Actions** tab
|
|
46
|
+
2. Select **macOS Test Suite**
|
|
47
|
+
3. Click **Run workflow**
|
|
48
|
+
|
|
49
|
+
### Local Testing (If You Have a Mac)
|
|
50
|
+
```bash
|
|
51
|
+
brew install bats-core
|
|
52
|
+
npm install
|
|
53
|
+
npm test
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 💰 Cost Comparison
|
|
57
|
+
|
|
58
|
+
| Option | Cost | Coverage |
|
|
59
|
+
|--------|------|----------|
|
|
60
|
+
| **GitHub Actions** | **$0** | Intel + M1 + Latest macOS |
|
|
61
|
+
| Mac VPS (UltaHost) | $4.80-22.50/mo | Limited, no GUI, audio issues |
|
|
62
|
+
| MacStadium | $79+/mo | Full Mac in cloud |
|
|
63
|
+
| Buy a Mac | $599+ | One-time, real hardware |
|
|
64
|
+
|
|
65
|
+
**Winner: GitHub Actions** - FREE + automatic + real hardware! 🏆
|
|
66
|
+
|
|
67
|
+
## 🚀 What Happens Next
|
|
68
|
+
|
|
69
|
+
### On Every Push:
|
|
70
|
+
1. Tests trigger automatically
|
|
71
|
+
2. Run on Ubuntu + macOS in parallel
|
|
72
|
+
3. Results show in PR checks
|
|
73
|
+
4. Badge updates in README
|
|
74
|
+
|
|
75
|
+
### On Test Failure:
|
|
76
|
+
1. Review logs in Actions tab
|
|
77
|
+
2. Download artifacts if needed
|
|
78
|
+
3. Fix locally or in GitHub
|
|
79
|
+
4. Push again - retests automatically
|
|
80
|
+
|
|
81
|
+
## 📊 Matrix Testing
|
|
82
|
+
|
|
83
|
+
### Main Workflow (Fast)
|
|
84
|
+
```yaml
|
|
85
|
+
Ubuntu + Node 18 ✓
|
|
86
|
+
Ubuntu + Node 20 ✓
|
|
87
|
+
macOS + Node 18 ✓
|
|
88
|
+
macOS + Node 20 ✓
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### macOS Workflow (Comprehensive)
|
|
92
|
+
```yaml
|
|
93
|
+
macOS 13 (Intel) + Node 18 ✓
|
|
94
|
+
macOS 13 (Intel) + Node 20 ✓
|
|
95
|
+
macOS 13 (Intel) + Node 22 ✓
|
|
96
|
+
macOS 14 (M1) + Node 18 ✓
|
|
97
|
+
macOS 14 (M1) + Node 20 ✓
|
|
98
|
+
macOS 14 (M1) + Node 22 ✓
|
|
99
|
+
macOS 15 + Node 18 ✓
|
|
100
|
+
macOS 15 + Node 20 ✓
|
|
101
|
+
macOS 15 + Node 22 ✓
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 🎉 Benefits
|
|
105
|
+
|
|
106
|
+
### No Mac VPS Needed!
|
|
107
|
+
- ❌ No monthly fees
|
|
108
|
+
- ❌ No SSH audio forwarding headaches
|
|
109
|
+
- ❌ No VNC/GUI setup complexity
|
|
110
|
+
- ❌ No limited server resources
|
|
111
|
+
|
|
112
|
+
### GitHub Actions Gives You:
|
|
113
|
+
- ✅ Real macOS hardware
|
|
114
|
+
- ✅ Both Intel and Apple Silicon
|
|
115
|
+
- ✅ Actual audio tools installed
|
|
116
|
+
- ✅ Free on public repos
|
|
117
|
+
- ✅ Automatic on every commit
|
|
118
|
+
- ✅ Parallel test execution
|
|
119
|
+
- ✅ Artifact storage for debugging
|
|
120
|
+
|
|
121
|
+
## 🔍 Viewing Results
|
|
122
|
+
|
|
123
|
+
### In Pull Requests
|
|
124
|
+
Check the bottom of any PR:
|
|
125
|
+
```
|
|
126
|
+
✓ Test Suite / Test on ubuntu-latest (Node 18)
|
|
127
|
+
✓ Test Suite / Test on ubuntu-latest (Node 20)
|
|
128
|
+
✓ Test Suite / Test on macos-latest (Node 18)
|
|
129
|
+
✓ Test Suite / Test on macos-latest (Node 20)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### In Actions Tab
|
|
133
|
+
1. Click **Actions** at top of repo
|
|
134
|
+
2. See all test runs
|
|
135
|
+
3. Click any run for details
|
|
136
|
+
4. Expand steps for full output
|
|
137
|
+
|
|
138
|
+
### Status Badge
|
|
139
|
+
README shows current status:
|
|
140
|
+
```markdown
|
|
141
|
+
[](...)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 🐛 Troubleshooting
|
|
145
|
+
|
|
146
|
+
### Tests Failing?
|
|
147
|
+
1. Click **Details** in PR check
|
|
148
|
+
2. Review failed step output
|
|
149
|
+
3. Check system info section
|
|
150
|
+
4. Download artifacts if available
|
|
151
|
+
|
|
152
|
+
### Want More Details?
|
|
153
|
+
See [docs/macos-testing.md](docs/macos-testing.md) for:
|
|
154
|
+
- Running tests locally
|
|
155
|
+
- Debugging tips
|
|
156
|
+
- Adding new tests
|
|
157
|
+
- Architecture-specific testing
|
|
158
|
+
|
|
159
|
+
## 📝 Next Steps
|
|
160
|
+
|
|
161
|
+
### Immediate:
|
|
162
|
+
1. ✅ Push this commit
|
|
163
|
+
2. ✅ Watch tests run
|
|
164
|
+
3. ✅ Verify all pass
|
|
165
|
+
|
|
166
|
+
### Future Enhancements:
|
|
167
|
+
- [ ] Test real ElevenLabs API (with secrets)
|
|
168
|
+
- [ ] Test Piper TTS full installation
|
|
169
|
+
- [ ] Test Claude Desktop integration
|
|
170
|
+
- [ ] Performance benchmarks
|
|
171
|
+
- [ ] Audio quality validation
|
|
172
|
+
|
|
173
|
+
## 🤝 Contributing
|
|
174
|
+
|
|
175
|
+
Mac users can help by:
|
|
176
|
+
- Running tests locally
|
|
177
|
+
- Reporting macOS-specific issues
|
|
178
|
+
- Testing on different macOS versions
|
|
179
|
+
- Suggesting new test cases
|
|
180
|
+
|
|
181
|
+
## 📚 Documentation Files
|
|
182
|
+
|
|
183
|
+
1. **[docs/macos-testing.md](docs/macos-testing.md)**
|
|
184
|
+
- Complete testing guide
|
|
185
|
+
- Local testing instructions
|
|
186
|
+
- Debugging help
|
|
187
|
+
- Contributing guidelines
|
|
188
|
+
|
|
189
|
+
2. **[.github/MACOS_TESTING_QUICKSTART.md](.github/MACOS_TESTING_QUICKSTART.md)**
|
|
190
|
+
- Quick reference
|
|
191
|
+
- TL;DR guide
|
|
192
|
+
- Common tasks
|
|
193
|
+
|
|
194
|
+
3. **[.github/workflows/test.yml](.github/workflows/test.yml)**
|
|
195
|
+
- Main test workflow
|
|
196
|
+
- Ubuntu + macOS
|
|
197
|
+
- Fast execution
|
|
198
|
+
|
|
199
|
+
4. **[.github/workflows/test-macos.yml](.github/workflows/test-macos.yml)**
|
|
200
|
+
- Dedicated macOS tests
|
|
201
|
+
- Comprehensive coverage
|
|
202
|
+
- Manual trigger
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 🎊 Conclusion
|
|
207
|
+
|
|
208
|
+
**You don't need to rent a Mac VPS!**
|
|
209
|
+
|
|
210
|
+
GitHub Actions provides FREE, automatic, comprehensive macOS testing on real hardware with both Intel and Apple Silicon support.
|
|
211
|
+
|
|
212
|
+
Just push your code and let GitHub Actions handle the rest! 🚀
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
**Questions?** See [docs/macos-testing.md](docs/macos-testing.md) or open an issue.
|
package/README.md
CHANGED
|
@@ -84,6 +84,7 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
84
84
|
### Additional Resources
|
|
85
85
|
- [🔗 Useful Links](#-useful-links) - Voice typing & AI tools
|
|
86
86
|
- [🔄 Updating](#-updating) - Keep AgentVibes current
|
|
87
|
+
- [🍎 macOS Testing](docs/macos-testing.md) - Automated testing on macOS with GitHub Actions
|
|
87
88
|
- [🙏 Credits](#-credits) - Acknowledgments
|
|
88
89
|
- [🤝 Contributing](#-contributing) - Show support
|
|
89
90
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,3 +1,369 @@
|
|
|
1
|
+
# 🎤 AgentVibes v2.1.5 Release Notes
|
|
2
|
+
|
|
3
|
+
## 📦 v2.1.5 - Critical macOS Compatibility Fix + GitHub Actions Testing (2025-10-31)
|
|
4
|
+
|
|
5
|
+
### 🎯 Overview
|
|
6
|
+
|
|
7
|
+
This patch release fixes a **CRITICAL bug** that prevented AgentVibes from working on macOS. All shell scripts were using `#!/bin/bash` which on macOS points to bash 3.2 (from 2007), causing voice switching, personality features, and core functionality to completely fail with syntax errors. Additionally, this release adds comprehensive FREE automated macOS testing via GitHub Actions.
|
|
8
|
+
|
|
9
|
+
**Release Date:** October 31, 2025
|
|
10
|
+
**Git Tag:** v2.1.5
|
|
11
|
+
**Type:** Patch release (critical bug fix + infrastructure)
|
|
12
|
+
**Impact:** AgentVibes now works correctly on macOS! Plus FREE automated testing on Intel and Apple Silicon Macs.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 🤖 AI Summary
|
|
17
|
+
|
|
18
|
+
**CRITICAL macOS fix:** All 23 shell scripts now use `#!/usr/bin/env bash` instead of `#!/bin/bash`, enabling AgentVibes to work on macOS. The old shebang forced bash 3.2 (from 2007) which doesn't support associative arrays or modern bash syntax, causing complete failure on Mac. Users simply install `brew install bash` and AgentVibes works instantly. Plus, added FREE GitHub Actions testing on macOS 13/14/15 (Intel + M1/M2/M3) with Node 18/20/22 - no Mac VPS needed!
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
### 🐛 Critical Bug Fix
|
|
23
|
+
|
|
24
|
+
#### **macOS Compatibility - Voice Switching & All Features Broken** 🍎
|
|
25
|
+
|
|
26
|
+
**The Problem:**
|
|
27
|
+
All 23 AgentVibes shell scripts used `#!/bin/bash` which on macOS **always** points to `/bin/bash` (bash 3.2 from 2007). This ancient bash doesn't support:
|
|
28
|
+
- ❌ Associative arrays (`declare -A VOICES=(...)`)
|
|
29
|
+
- ❌ Lowercase conversion (`${voice,,}`)
|
|
30
|
+
- ❌ Many other bash 4+ features AgentVibes relies on
|
|
31
|
+
|
|
32
|
+
**Errors Mac Users Saw:**
|
|
33
|
+
```bash
|
|
34
|
+
voices-config.sh: line 42: Burt Reynolds: syntax error in expression (error token is "Reynolds")
|
|
35
|
+
voices-config.sh: line 383: ${voice,,}: bad substitution
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Impact:** Complete failure on macOS:
|
|
39
|
+
- Voice switching didn't work
|
|
40
|
+
- Personality features failed
|
|
41
|
+
- Provider switching broken
|
|
42
|
+
- Speed control failed
|
|
43
|
+
- All core AgentVibes functionality unusable
|
|
44
|
+
|
|
45
|
+
**The Fix:**
|
|
46
|
+
Changed all 23 script shebangs from:
|
|
47
|
+
```bash
|
|
48
|
+
#!/bin/bash # ❌ Hardcoded to old bash
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
To:
|
|
52
|
+
```bash
|
|
53
|
+
#!/usr/bin/env bash # ✅ Uses PATH, finds newer bash
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Now it works:**
|
|
57
|
+
- macOS + Homebrew bash: Uses bash 5.x from `/opt/homebrew/bin/bash` or `/usr/local/bin/bash` ✅
|
|
58
|
+
- Linux: Uses bash 5.x from `/usr/bin/bash` ✅
|
|
59
|
+
- More portable and follows Unix best practices ✅
|
|
60
|
+
|
|
61
|
+
**For Mac Users:**
|
|
62
|
+
```bash
|
|
63
|
+
# Install bash 5.x (one-time setup)
|
|
64
|
+
brew install bash
|
|
65
|
+
|
|
66
|
+
# AgentVibes now works perfectly!
|
|
67
|
+
npx agentvibes install
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### ✨ New Features
|
|
73
|
+
|
|
74
|
+
#### **FREE Automated macOS Testing with GitHub Actions** 🤖
|
|
75
|
+
|
|
76
|
+
Added comprehensive macOS testing infrastructure - **no Mac VPS rental needed!**
|
|
77
|
+
|
|
78
|
+
**Test Coverage:**
|
|
79
|
+
- ✅ macOS 13 (Intel), macOS 14 (M1), macOS 15 (latest)
|
|
80
|
+
- ✅ Node 18, 20, 22
|
|
81
|
+
- ✅ Both Intel (x86_64) and Apple Silicon (arm64)
|
|
82
|
+
- ✅ 13 parallel test jobs on every push/PR
|
|
83
|
+
- ✅ Automatic bash 5.x installation
|
|
84
|
+
- ✅ Audio stack validation (afplay, ffmpeg, mpv)
|
|
85
|
+
- ✅ Piper TTS architecture detection
|
|
86
|
+
- ✅ ElevenLabs API integration tests
|
|
87
|
+
- ✅ Python MCP dependencies
|
|
88
|
+
- ✅ Audio file generation
|
|
89
|
+
- ✅ Installation process verification
|
|
90
|
+
|
|
91
|
+
**New Workflows:**
|
|
92
|
+
1. **Main Test Suite** (`.github/workflows/test.yml`)
|
|
93
|
+
- Enhanced to test both Ubuntu + macOS
|
|
94
|
+
- 4 parallel jobs (2 OS × 2 Node versions)
|
|
95
|
+
- Fast execution for quick feedback
|
|
96
|
+
|
|
97
|
+
2. **macOS Test Suite** (`.github/workflows/test-macos.yml`)
|
|
98
|
+
- Comprehensive macOS-specific testing
|
|
99
|
+
- 9 parallel jobs (3 macOS × 3 Node versions)
|
|
100
|
+
- Detailed system info logging
|
|
101
|
+
- Manual trigger available
|
|
102
|
+
|
|
103
|
+
**Benefits:**
|
|
104
|
+
- 💰 **FREE** on public GitHub repos (saves $60-276/year vs Mac VPS)
|
|
105
|
+
- 🔄 **Automatic** on every commit
|
|
106
|
+
- 🏗️ **Real hardware** - not emulation
|
|
107
|
+
- 🚀 **Parallel execution** - fast results
|
|
108
|
+
- 📊 **Status badges** in README
|
|
109
|
+
|
|
110
|
+
**Documentation:**
|
|
111
|
+
- `docs/macos-testing.md` - Complete testing guide
|
|
112
|
+
- `.github/MACOS_TESTING_QUICKSTART.md` - Quick reference
|
|
113
|
+
- `MACOS_TESTING_SETUP.md` - Setup summary
|
|
114
|
+
|
|
115
|
+
#### **Provider Switch Hint in Voice List** 💡
|
|
116
|
+
|
|
117
|
+
Added helpful hint when listing voices showing users how to switch between ElevenLabs and Piper TTS providers.
|
|
118
|
+
|
|
119
|
+
**Before:**
|
|
120
|
+
```
|
|
121
|
+
🎤 Available ElevenLabs TTS Voices:
|
|
122
|
+
Aria
|
|
123
|
+
Cowboy Bob
|
|
124
|
+
...
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**After:**
|
|
128
|
+
```
|
|
129
|
+
🎤 Available ElevenLabs TTS Voices:
|
|
130
|
+
Aria
|
|
131
|
+
Cowboy Bob
|
|
132
|
+
...
|
|
133
|
+
|
|
134
|
+
💡 Want free offline TTS? Switch to Piper:
|
|
135
|
+
/agent-vibes:provider switch piper
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
### 🔧 Technical Details
|
|
141
|
+
|
|
142
|
+
#### **Shell Script Shebangs (23 files)**
|
|
143
|
+
|
|
144
|
+
**Changed Files:**
|
|
145
|
+
```
|
|
146
|
+
.claude/hooks/bmad-tts-injector.sh
|
|
147
|
+
.claude/hooks/bmad-voice-manager.sh
|
|
148
|
+
.claude/hooks/check-output-style.sh
|
|
149
|
+
.claude/hooks/download-extra-voices.sh
|
|
150
|
+
.claude/hooks/github-star-reminder.sh
|
|
151
|
+
.claude/hooks/language-manager.sh
|
|
152
|
+
.claude/hooks/learn-manager.sh
|
|
153
|
+
.claude/hooks/personality-manager.sh
|
|
154
|
+
.claude/hooks/piper-download-voices.sh
|
|
155
|
+
.claude/hooks/piper-installer.sh
|
|
156
|
+
.claude/hooks/piper-multispeaker-registry.sh
|
|
157
|
+
.claude/hooks/piper-voice-manager.sh
|
|
158
|
+
.claude/hooks/play-tts-elevenlabs.sh
|
|
159
|
+
.claude/hooks/play-tts-piper.sh
|
|
160
|
+
.claude/hooks/play-tts.sh
|
|
161
|
+
.claude/hooks/prepare-release.sh
|
|
162
|
+
.claude/hooks/provider-commands.sh
|
|
163
|
+
.claude/hooks/provider-manager.sh
|
|
164
|
+
.claude/hooks/replay-target-audio.sh
|
|
165
|
+
.claude/hooks/sentiment-manager.sh
|
|
166
|
+
.claude/hooks/speed-manager.sh
|
|
167
|
+
.claude/hooks/voice-manager.sh
|
|
168
|
+
.claude/hooks/voices-config.sh
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Why This Matters:**
|
|
172
|
+
- Shebangs determine which bash interpreter executes the script
|
|
173
|
+
- `#!/bin/bash` is an absolute path - ignores PATH
|
|
174
|
+
- `#!/usr/bin/env bash` uses PATH - finds best available bash
|
|
175
|
+
- Recommended by Google Shell Style Guide, GitHub, most open-source projects
|
|
176
|
+
|
|
177
|
+
#### **GitHub Actions Workflows**
|
|
178
|
+
|
|
179
|
+
**Matrix Testing Configuration:**
|
|
180
|
+
```yaml
|
|
181
|
+
# Main workflow
|
|
182
|
+
strategy:
|
|
183
|
+
matrix:
|
|
184
|
+
os: [ubuntu-latest, macos-latest]
|
|
185
|
+
node-version: ['18', '20']
|
|
186
|
+
|
|
187
|
+
# macOS workflow
|
|
188
|
+
strategy:
|
|
189
|
+
matrix:
|
|
190
|
+
os: [macos-13, macos-14, macos-15]
|
|
191
|
+
node-version: ['18', '20', '22']
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**macOS Setup Steps:**
|
|
195
|
+
1. Install Homebrew bash 5.x
|
|
196
|
+
2. Update PATH to use newer bash
|
|
197
|
+
3. Install BATS test framework
|
|
198
|
+
4. Install audio tools (ffmpeg, mpv)
|
|
199
|
+
5. Run unit tests
|
|
200
|
+
6. Validate Piper TTS binaries
|
|
201
|
+
7. Test ElevenLabs API integration
|
|
202
|
+
8. Check Python MCP dependencies
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### 📝 Files Changed
|
|
207
|
+
|
|
208
|
+
**Critical Bug Fix (23 files):**
|
|
209
|
+
- All `.claude/hooks/*.sh` - Shebang changed to `#!/usr/bin/env bash`
|
|
210
|
+
|
|
211
|
+
**New Testing Infrastructure (3 files):**
|
|
212
|
+
- `.github/workflows/test-macos.yml` - New comprehensive macOS test suite
|
|
213
|
+
- `.github/workflows/test.yml` - Enhanced to include macOS matrix testing
|
|
214
|
+
- `docs/macos-testing.md` - Complete testing documentation (300 lines)
|
|
215
|
+
- `.github/MACOS_TESTING_QUICKSTART.md` - Quick reference guide
|
|
216
|
+
- `MACOS_TESTING_SETUP.md` - Setup summary and benefits
|
|
217
|
+
|
|
218
|
+
**MCP Enhancement (1 file):**
|
|
219
|
+
- `mcp-server/server.py` - Added provider switch hint to voice listing
|
|
220
|
+
|
|
221
|
+
**Documentation Updates (1 file):**
|
|
222
|
+
- `README.md` - Added link to macOS testing guide
|
|
223
|
+
|
|
224
|
+
**Stats:**
|
|
225
|
+
- 30 files changed
|
|
226
|
+
- 877 insertions(+)
|
|
227
|
+
- 31 deletions(-)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
### 🎓 User Impact
|
|
232
|
+
|
|
233
|
+
#### **For Mac Users:**
|
|
234
|
+
|
|
235
|
+
**Before This Release:**
|
|
236
|
+
```bash
|
|
237
|
+
$ npx agentvibes install
|
|
238
|
+
# Installation succeeds...
|
|
239
|
+
|
|
240
|
+
$ /agent-vibes:switch Aria
|
|
241
|
+
# ❌ Error: voices-config.sh: line 42: Burt Reynolds: syntax error
|
|
242
|
+
# ❌ Voice switching completely broken
|
|
243
|
+
# ❌ Personality features fail
|
|
244
|
+
# ❌ AgentVibes unusable
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**After This Release:**
|
|
248
|
+
```bash
|
|
249
|
+
# One-time setup
|
|
250
|
+
$ brew install bash
|
|
251
|
+
|
|
252
|
+
$ npx agentvibes install
|
|
253
|
+
# ✅ Installation succeeds
|
|
254
|
+
|
|
255
|
+
$ /agent-vibes:switch Aria
|
|
256
|
+
# ✅ Voice switched to: Aria
|
|
257
|
+
# ✅ All features work perfectly!
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### **For Developers:**
|
|
261
|
+
|
|
262
|
+
**Before:**
|
|
263
|
+
- ❌ No way to test on macOS without buying/renting a Mac
|
|
264
|
+
- ❌ Mac users report bugs you can't reproduce
|
|
265
|
+
- ❌ Uncertainty about macOS compatibility
|
|
266
|
+
|
|
267
|
+
**After:**
|
|
268
|
+
- ✅ FREE automated testing on every commit
|
|
269
|
+
- ✅ Test on macOS 13, 14, 15 (Intel + M1/M2/M3)
|
|
270
|
+
- ✅ Catch macOS bugs before users do
|
|
271
|
+
- ✅ Confidence in cross-platform compatibility
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
### 🧪 Testing
|
|
276
|
+
|
|
277
|
+
**GitHub Actions Verification:**
|
|
278
|
+
- ✅ Ubuntu + Node 18, 20
|
|
279
|
+
- ✅ macOS 13 (Intel) + Node 18, 20, 22
|
|
280
|
+
- ✅ macOS 14 (M1) + Node 18, 20, 22
|
|
281
|
+
- ✅ macOS 15 (latest) + Node 18, 20, 22
|
|
282
|
+
- ✅ All 110 BATS unit tests passing
|
|
283
|
+
|
|
284
|
+
**Manual Testing:**
|
|
285
|
+
- ✅ Verified shebang fix works on macOS with Homebrew bash
|
|
286
|
+
- ✅ Verified no regression on Linux (WSL, Ubuntu)
|
|
287
|
+
- ✅ Tested voice switching on macOS
|
|
288
|
+
- ✅ Tested personality features on macOS
|
|
289
|
+
- ✅ Tested provider switching on macOS
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
### 📚 Migration Guide
|
|
294
|
+
|
|
295
|
+
#### **For Mac Users:**
|
|
296
|
+
|
|
297
|
+
**If AgentVibes wasn't working:**
|
|
298
|
+
```bash
|
|
299
|
+
# Install bash 5.x (Homebrew)
|
|
300
|
+
brew install bash
|
|
301
|
+
|
|
302
|
+
# Verify bash 5.x is available
|
|
303
|
+
bash --version
|
|
304
|
+
# Should show: GNU bash, version 5.x
|
|
305
|
+
|
|
306
|
+
# Update AgentVibes
|
|
307
|
+
npx agentvibes update --yes
|
|
308
|
+
|
|
309
|
+
# Test it works
|
|
310
|
+
/agent-vibes:list
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**If using a version manager (asdf, nix, etc.):**
|
|
314
|
+
The `#!/usr/bin/env bash` shebang will automatically find your bash 5.x installation.
|
|
315
|
+
|
|
316
|
+
#### **For Linux Users:**
|
|
317
|
+
|
|
318
|
+
No changes needed! The new `#!/usr/bin/env bash` shebang works identically to the old one on Linux systems.
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### 🔗 Related Issues
|
|
323
|
+
|
|
324
|
+
This release fixes the critical macOS compatibility issue reported by users where:
|
|
325
|
+
- Voice switching failed with syntax errors
|
|
326
|
+
- Personality features didn't work
|
|
327
|
+
- Core AgentVibes functionality was broken on macOS
|
|
328
|
+
|
|
329
|
+
The GitHub Actions testing infrastructure ensures these issues are caught automatically before release.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### 💡 Best Practices Applied
|
|
334
|
+
|
|
335
|
+
**Portable Shebangs:**
|
|
336
|
+
- `#!/usr/bin/env bash` is the recommended approach per:
|
|
337
|
+
- Google Shell Style Guide
|
|
338
|
+
- GitHub shell script examples
|
|
339
|
+
- bash-hackers.org
|
|
340
|
+
- Used by: nvm, rbenv, Homebrew, most modern projects
|
|
341
|
+
|
|
342
|
+
**Free CI/CD:**
|
|
343
|
+
- GitHub Actions provides unlimited minutes for public repos
|
|
344
|
+
- Real macOS hardware (not emulation)
|
|
345
|
+
- Both Intel and Apple Silicon architectures
|
|
346
|
+
- Industry standard for open-source projects
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### 🎉 Credits
|
|
351
|
+
|
|
352
|
+
**Bug Discovery:** macOS testing infrastructure exposed the bash 3.2 incompatibility
|
|
353
|
+
**Root Cause Analysis:** Traced shebang issue through GitHub Actions test failures
|
|
354
|
+
**Fix Verification:** Automated tests on macOS 13/14/15 confirm resolution
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 📦 Previous Releases
|
|
359
|
+
|
|
360
|
+
See previous releases at: [RELEASE_NOTES.md](RELEASE_NOTES.md)
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
**🤖 Generated with [Claude Code](https://claude.com/claude-code)**
|
|
365
|
+
|
|
366
|
+
**Co-Authored-By:** Claude <noreply@anthropic.com>
|
|
1
367
|
# 🎤 AgentVibes Release Notes
|
|
2
368
|
|
|
3
369
|
## 📦 v2.1.4 - Critical Voice Switching Fix for MCP Projects (2025-10-26)
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# macOS Testing with GitHub Actions
|
|
2
|
+
|
|
3
|
+
This document explains how AgentVibes is tested on macOS using GitHub Actions, and how you can contribute to macOS testing.
|
|
4
|
+
|
|
5
|
+
## 🎯 Overview
|
|
6
|
+
|
|
7
|
+
AgentVibes uses GitHub Actions to automatically test on macOS runners, ensuring compatibility across different macOS versions and architectures (Intel and Apple Silicon).
|
|
8
|
+
|
|
9
|
+
## 📋 Test Coverage
|
|
10
|
+
|
|
11
|
+
### Automated Tests Run On:
|
|
12
|
+
- **macOS Versions**: macOS 13 (Intel), macOS 14 (M1), macOS 15 (latest)
|
|
13
|
+
- **Node Versions**: 18, 20, 22
|
|
14
|
+
- **Architectures**: x86_64 (Intel) and arm64 (Apple Silicon)
|
|
15
|
+
|
|
16
|
+
### What Gets Tested:
|
|
17
|
+
|
|
18
|
+
1. **Unit Tests** - All BATS test suites run on macOS
|
|
19
|
+
2. **Installation Process** - npm package installation
|
|
20
|
+
3. **Audio Tools** - ffmpeg, afplay, mpv availability
|
|
21
|
+
4. **Piper TTS** - Binary availability for Intel/ARM architectures
|
|
22
|
+
5. **ElevenLabs API** - Mock API integration tests
|
|
23
|
+
6. **Python/MCP** - MCP server dependencies
|
|
24
|
+
7. **Audio Generation** - Actual audio file creation using ffmpeg
|
|
25
|
+
|
|
26
|
+
## 🚀 Workflows
|
|
27
|
+
|
|
28
|
+
### Main Test Workflow (`.github/workflows/test.yml`)
|
|
29
|
+
Runs on every push and PR to `master` branch:
|
|
30
|
+
- Tests on both Ubuntu and macOS
|
|
31
|
+
- Uses Node 18 and 20
|
|
32
|
+
- Fast execution for quick feedback
|
|
33
|
+
|
|
34
|
+
### Dedicated macOS Workflow (`.github/workflows/test-macos.yml`)
|
|
35
|
+
More comprehensive macOS-specific testing:
|
|
36
|
+
- Tests on macOS 13, 14, and 15
|
|
37
|
+
- Tests Node 18, 20, and 22
|
|
38
|
+
- Detailed system information gathering
|
|
39
|
+
- Architecture-specific Piper TTS validation
|
|
40
|
+
- Audio playback tool verification
|
|
41
|
+
|
|
42
|
+
## 🔧 What's Tested on macOS
|
|
43
|
+
|
|
44
|
+
### System Compatibility
|
|
45
|
+
```bash
|
|
46
|
+
✅ macOS version detection (sw_vers)
|
|
47
|
+
✅ Architecture detection (Intel vs Apple Silicon)
|
|
48
|
+
✅ Node.js version compatibility
|
|
49
|
+
✅ Shell environment (zsh/bash)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Audio Stack
|
|
53
|
+
```bash
|
|
54
|
+
✅ afplay (native macOS audio player)
|
|
55
|
+
✅ ffmpeg (audio conversion)
|
|
56
|
+
✅ mpv (alternative audio player)
|
|
57
|
+
✅ Audio device detection
|
|
58
|
+
✅ Audio file generation
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Dependencies
|
|
62
|
+
```bash
|
|
63
|
+
✅ BATS test framework (via Homebrew)
|
|
64
|
+
✅ Python 3 and pip
|
|
65
|
+
✅ MCP package installation
|
|
66
|
+
✅ npm dependencies
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### AgentVibes Features
|
|
70
|
+
```bash
|
|
71
|
+
✅ ElevenLabs API integration (mock)
|
|
72
|
+
✅ Piper TTS binary availability
|
|
73
|
+
✅ Voice configuration
|
|
74
|
+
✅ Audio file management
|
|
75
|
+
✅ Installation scripts
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 🧪 Running Tests Locally on macOS
|
|
79
|
+
|
|
80
|
+
### Prerequisites
|
|
81
|
+
```bash
|
|
82
|
+
# Install Homebrew (if not already installed)
|
|
83
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
84
|
+
|
|
85
|
+
# Install BATS
|
|
86
|
+
brew install bats-core
|
|
87
|
+
|
|
88
|
+
# Install audio tools
|
|
89
|
+
brew install ffmpeg mpv
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Run Tests
|
|
93
|
+
```bash
|
|
94
|
+
# Clone the repository
|
|
95
|
+
git clone https://github.com/paulpreibisch/AgentVibes.git
|
|
96
|
+
cd AgentVibes
|
|
97
|
+
|
|
98
|
+
# Install dependencies
|
|
99
|
+
npm install
|
|
100
|
+
|
|
101
|
+
# Run all tests
|
|
102
|
+
npm test
|
|
103
|
+
|
|
104
|
+
# Run tests with verbose output
|
|
105
|
+
npm run test:verbose
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Test Specific Components
|
|
109
|
+
```bash
|
|
110
|
+
# Test play-tts functionality
|
|
111
|
+
bats test/unit/play-tts.bats
|
|
112
|
+
|
|
113
|
+
# Test voice management
|
|
114
|
+
bats test/unit/voice-manager.bats
|
|
115
|
+
|
|
116
|
+
# Test personality features
|
|
117
|
+
bats test/unit/personality-manager.bats
|
|
118
|
+
|
|
119
|
+
# Test provider switching
|
|
120
|
+
bats test/unit/provider-manager.bats
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 🐛 Debugging Test Failures
|
|
124
|
+
|
|
125
|
+
### Check System Info
|
|
126
|
+
```bash
|
|
127
|
+
# macOS version
|
|
128
|
+
sw_vers
|
|
129
|
+
|
|
130
|
+
# Architecture
|
|
131
|
+
uname -m
|
|
132
|
+
|
|
133
|
+
# Node version
|
|
134
|
+
node --version
|
|
135
|
+
|
|
136
|
+
# Check audio devices
|
|
137
|
+
system_profiler SPAudioDataType
|
|
138
|
+
|
|
139
|
+
# Check for audio tools
|
|
140
|
+
which afplay ffmpeg mpv
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Common Issues
|
|
144
|
+
|
|
145
|
+
**BATS not found:**
|
|
146
|
+
```bash
|
|
147
|
+
brew install bats-core
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**ffmpeg not found:**
|
|
151
|
+
```bash
|
|
152
|
+
brew install ffmpeg
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Python MCP issues:**
|
|
156
|
+
```bash
|
|
157
|
+
python3 -m pip install --upgrade mcp
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Permission errors:**
|
|
161
|
+
```bash
|
|
162
|
+
# Fix npm permissions
|
|
163
|
+
sudo chown -R $(whoami) ~/.npm
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 📊 GitHub Actions Features
|
|
167
|
+
|
|
168
|
+
### Matrix Testing
|
|
169
|
+
Tests run in parallel across multiple configurations:
|
|
170
|
+
```yaml
|
|
171
|
+
strategy:
|
|
172
|
+
matrix:
|
|
173
|
+
os: [macos-13, macos-14, macos-15]
|
|
174
|
+
node-version: ['18', '20', '22']
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
This creates **9 test jobs** (3 OS × 3 Node versions) that run simultaneously.
|
|
178
|
+
|
|
179
|
+
### Manual Triggers
|
|
180
|
+
You can manually trigger the macOS test workflow:
|
|
181
|
+
1. Go to **Actions** tab on GitHub
|
|
182
|
+
2. Select **macOS Test Suite**
|
|
183
|
+
3. Click **Run workflow**
|
|
184
|
+
4. Choose branch and click **Run workflow**
|
|
185
|
+
|
|
186
|
+
### Artifact Collection
|
|
187
|
+
Failed tests automatically upload:
|
|
188
|
+
- Audio files from `~/.claude/audio/`
|
|
189
|
+
- Test logs from `/tmp/test-*.log`
|
|
190
|
+
- Retained for 7 days for debugging
|
|
191
|
+
|
|
192
|
+
## 🎯 Benefits of macOS Testing
|
|
193
|
+
|
|
194
|
+
### Free Testing
|
|
195
|
+
- GitHub provides **macOS runners for free** on public repositories
|
|
196
|
+
- No need to rent Mac VPS or cloud services
|
|
197
|
+
- Automated on every commit
|
|
198
|
+
|
|
199
|
+
### Real Hardware
|
|
200
|
+
- Tests run on actual macOS environments
|
|
201
|
+
- Intel (x86_64) and Apple Silicon (arm64) coverage
|
|
202
|
+
- Real filesystem and audio stack
|
|
203
|
+
|
|
204
|
+
### Coverage
|
|
205
|
+
- **Intel Macs**: macOS 13 runner
|
|
206
|
+
- **Apple Silicon**: macOS 14/15 runners
|
|
207
|
+
- **Latest macOS**: Always available
|
|
208
|
+
|
|
209
|
+
### Confidence
|
|
210
|
+
- Know it works before users install
|
|
211
|
+
- Catch macOS-specific bugs early
|
|
212
|
+
- Validate audio tools on macOS
|
|
213
|
+
|
|
214
|
+
## 💡 Contributing macOS Tests
|
|
215
|
+
|
|
216
|
+
### Add New Test Cases
|
|
217
|
+
```bash
|
|
218
|
+
# Create new test file
|
|
219
|
+
touch test/unit/my-feature.bats
|
|
220
|
+
|
|
221
|
+
# Add test
|
|
222
|
+
cat > test/unit/my-feature.bats << 'EOF'
|
|
223
|
+
#!/usr/bin/env bats
|
|
224
|
+
|
|
225
|
+
load ../helpers/test-helper
|
|
226
|
+
|
|
227
|
+
@test "my feature works on macOS" {
|
|
228
|
+
run my-command
|
|
229
|
+
[ "$status" -eq 0 ]
|
|
230
|
+
}
|
|
231
|
+
EOF
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Test macOS-Specific Features
|
|
235
|
+
```bash
|
|
236
|
+
@test "uses afplay on macOS" {
|
|
237
|
+
[[ "$OSTYPE" == "darwin"* ]] || skip "macOS only"
|
|
238
|
+
|
|
239
|
+
run detect-audio-player
|
|
240
|
+
[[ "$output" == *"afplay"* ]]
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Submit PR with Tests
|
|
245
|
+
1. Add test cases to `test/unit/*.bats`
|
|
246
|
+
2. Verify tests pass locally: `npm test`
|
|
247
|
+
3. Submit PR - GitHub Actions runs on macOS automatically
|
|
248
|
+
4. Review test results in PR checks
|
|
249
|
+
|
|
250
|
+
## 🔍 Viewing Test Results
|
|
251
|
+
|
|
252
|
+
### In Pull Requests
|
|
253
|
+
- Check status at bottom of PR
|
|
254
|
+
- Click **Details** next to "Test on macos-latest"
|
|
255
|
+
- View full test output and system info
|
|
256
|
+
|
|
257
|
+
### In Actions Tab
|
|
258
|
+
1. Go to **Actions** tab
|
|
259
|
+
2. Click on workflow run
|
|
260
|
+
3. Select matrix job (e.g., "Test on macos-14")
|
|
261
|
+
4. Expand test steps to see output
|
|
262
|
+
|
|
263
|
+
### Download Artifacts
|
|
264
|
+
If tests fail:
|
|
265
|
+
1. Scroll to bottom of failed job
|
|
266
|
+
2. Click **Artifacts** section
|
|
267
|
+
3. Download test logs for debugging
|
|
268
|
+
|
|
269
|
+
## 🚦 Status Badges
|
|
270
|
+
|
|
271
|
+
The README shows test status:
|
|
272
|
+
```markdown
|
|
273
|
+
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/test.yml)
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
This badge shows if tests are passing on latest commit (including macOS tests).
|
|
277
|
+
|
|
278
|
+
## 📈 Future Improvements
|
|
279
|
+
|
|
280
|
+
Planned enhancements:
|
|
281
|
+
- [ ] Test actual ElevenLabs API with secrets
|
|
282
|
+
- [ ] Test Piper TTS full installation on macOS
|
|
283
|
+
- [ ] Test Claude Desktop integration
|
|
284
|
+
- [ ] Performance benchmarks on Apple Silicon
|
|
285
|
+
- [ ] Audio quality validation
|
|
286
|
+
- [ ] Test with different macOS audio devices
|
|
287
|
+
|
|
288
|
+
## 🤝 Community Testing
|
|
289
|
+
|
|
290
|
+
While automated tests are great, real-world testing helps:
|
|
291
|
+
- Test on your Mac and report issues
|
|
292
|
+
- Try different macOS versions
|
|
293
|
+
- Test with various audio setups
|
|
294
|
+
- Share feedback in GitHub Issues
|
|
295
|
+
|
|
296
|
+
**Your Mac testing helps make AgentVibes better for everyone!** 🎉
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
**Questions?** Open an issue: https://github.com/paulpreibisch/AgentVibes/issues
|
package/mcp-server/server.py
CHANGED
|
@@ -203,13 +203,16 @@ class AgentVibesServer:
|
|
|
203
203
|
"Example: en_US-lessac-medium, en_GB-alba-medium"
|
|
204
204
|
)
|
|
205
205
|
|
|
206
|
-
# Determine provider label
|
|
206
|
+
# Determine provider label and alternative provider
|
|
207
207
|
if "Piper" in provider:
|
|
208
208
|
provider_label = "Piper TTS"
|
|
209
|
+
alternative_provider = "ElevenLabs"
|
|
209
210
|
elif "ElevenLabs" in provider:
|
|
210
211
|
provider_label = "ElevenLabs"
|
|
212
|
+
alternative_provider = "Piper"
|
|
211
213
|
else:
|
|
212
214
|
provider_label = "TTS"
|
|
215
|
+
alternative_provider = None
|
|
213
216
|
|
|
214
217
|
output = f"🎤 Available {provider_label} Voices:\n"
|
|
215
218
|
output += "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"
|
|
@@ -217,6 +220,11 @@ class AgentVibesServer:
|
|
|
217
220
|
marker = " ✓ (current)" if voice == current_voice else ""
|
|
218
221
|
output += f" • {voice}{marker}\n"
|
|
219
222
|
output += "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"
|
|
223
|
+
|
|
224
|
+
# Add provider switch hint
|
|
225
|
+
if alternative_provider:
|
|
226
|
+
output += f"\n💡 Switch to {alternative_provider}? Use: set_provider(provider=\"{alternative_provider.lower()}\")\n"
|
|
227
|
+
|
|
220
228
|
return output
|
|
221
229
|
return "❌ Failed to list voices"
|
|
222
230
|
|
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.1.
|
|
4
|
+
"version": "2.1.5",
|
|
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
|
@@ -119,46 +119,31 @@ async function install(options = {}) {
|
|
|
119
119
|
console.log(
|
|
120
120
|
boxen(
|
|
121
121
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
|
|
122
|
-
chalk.cyan.bold(' 📦 AgentVibes v2.
|
|
122
|
+
chalk.cyan.bold(' 📦 AgentVibes v2.1.5 - Critical macOS Fix\n') +
|
|
123
123
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
124
|
-
chalk.
|
|
125
|
-
chalk.cyan('
|
|
126
|
-
chalk.
|
|
127
|
-
chalk.
|
|
128
|
-
chalk.
|
|
129
|
-
chalk.
|
|
130
|
-
chalk.
|
|
131
|
-
chalk.
|
|
132
|
-
chalk.
|
|
133
|
-
chalk.
|
|
134
|
-
chalk.
|
|
135
|
-
chalk.gray(' •
|
|
136
|
-
chalk.gray(' •
|
|
137
|
-
chalk.gray(' •
|
|
138
|
-
chalk.cyan('
|
|
139
|
-
chalk.gray(' •
|
|
140
|
-
chalk.gray(' •
|
|
141
|
-
chalk.cyan('🎛️ Enhanced Multi-Provider Support\n') +
|
|
142
|
-
chalk.gray(' • Seamless ElevenLabs ↔ Piper switching\n') +
|
|
143
|
-
chalk.gray(' • Mixed provider support for learning mode\n\n') +
|
|
124
|
+
chalk.red.bold('🐛 CRITICAL macOS FIX:\n\n') +
|
|
125
|
+
chalk.cyan('All 23 shell scripts now use #!/usr/bin/env bash instead of\n') +
|
|
126
|
+
chalk.cyan('#!/bin/bash, enabling AgentVibes to work on macOS. The old\n') +
|
|
127
|
+
chalk.cyan('shebang forced bash 3.2 (from 2007) which doesn\'t support\n') +
|
|
128
|
+
chalk.cyan('associative arrays or modern bash syntax, causing complete\n') +
|
|
129
|
+
chalk.cyan('failure on Mac.\n\n') +
|
|
130
|
+
chalk.green('Mac users: brew install bash (one-time setup)\n') +
|
|
131
|
+
chalk.green('Then AgentVibes works perfectly!\n\n') +
|
|
132
|
+
chalk.white.bold('✨ NEW FEATURES:\n\n') +
|
|
133
|
+
chalk.cyan('🤖 FREE GitHub Actions macOS Testing\n') +
|
|
134
|
+
chalk.gray(' • Tests on macOS 13/14/15 (Intel + M1/M2/M3)\n') +
|
|
135
|
+
chalk.gray(' • Node 18, 20, 22 tested automatically\n') +
|
|
136
|
+
chalk.gray(' • 13 parallel test jobs on every push\n') +
|
|
137
|
+
chalk.gray(' • Saves $60-276/year vs Mac VPS!\n\n') +
|
|
138
|
+
chalk.cyan('💡 Provider Switch Hint\n') +
|
|
139
|
+
chalk.gray(' • Helpful hints in voice list output\n') +
|
|
140
|
+
chalk.gray(' • Discover ElevenLabs ↔ Piper switching\n\n') +
|
|
144
141
|
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
145
|
-
chalk.
|
|
146
|
-
chalk.gray('
|
|
147
|
-
chalk.gray('
|
|
148
|
-
chalk.gray('
|
|
149
|
-
chalk.gray('
|
|
150
|
-
chalk.gray(' ✓ Fixed JSON escaping in ElevenLabs API\n\n') +
|
|
151
|
-
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
152
|
-
chalk.magenta.bold('📚 DOCUMENTATION OVERHAUL:\n') +
|
|
153
|
-
chalk.gray(' • 10 new documentation files\n') +
|
|
154
|
-
chalk.gray(' • Windows Setup Guide (NPX-based)\n') +
|
|
155
|
-
chalk.gray(' • README reduced 60% (1,285 → 502 lines)\n\n') +
|
|
156
|
-
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
157
|
-
chalk.blue.bold('📊 BY THE NUMBERS:\n') +
|
|
158
|
-
chalk.gray(' • 75 commits since v2.0.16\n') +
|
|
159
|
-
chalk.gray(' • 72 files changed (+8,652 lines)\n') +
|
|
160
|
-
chalk.gray(' • 110 tests (79 new tests added)\n') +
|
|
161
|
-
chalk.gray(' • 5 major features, 20+ bug fixes\n\n') +
|
|
142
|
+
chalk.blue.bold('📊 IMPACT:\n') +
|
|
143
|
+
chalk.gray(' • 30 files changed\n') +
|
|
144
|
+
chalk.gray(' • 877 insertions, 31 deletions\n') +
|
|
145
|
+
chalk.gray(' • AgentVibes now works on macOS!\n') +
|
|
146
|
+
chalk.gray(' • FREE automated testing on all platforms\n\n') +
|
|
162
147
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
163
148
|
chalk.green.bold('🚀 TRY LANGUAGE LEARNING MODE:\n\n') +
|
|
164
149
|
chalk.cyan(' /agent-vibes:language english\n') +
|
|
@@ -1015,46 +1000,31 @@ program
|
|
|
1015
1000
|
console.log(
|
|
1016
1001
|
boxen(
|
|
1017
1002
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
|
|
1018
|
-
chalk.cyan.bold(' 📦 AgentVibes v2.
|
|
1003
|
+
chalk.cyan.bold(' 📦 AgentVibes v2.1.5 - Critical macOS Fix\n') +
|
|
1019
1004
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
1020
|
-
chalk.
|
|
1021
|
-
chalk.cyan('
|
|
1022
|
-
chalk.
|
|
1023
|
-
chalk.
|
|
1024
|
-
chalk.
|
|
1025
|
-
chalk.
|
|
1026
|
-
chalk.
|
|
1027
|
-
chalk.
|
|
1028
|
-
chalk.
|
|
1029
|
-
chalk.
|
|
1030
|
-
chalk.
|
|
1031
|
-
chalk.gray(' •
|
|
1032
|
-
chalk.gray(' •
|
|
1033
|
-
chalk.gray(' •
|
|
1034
|
-
chalk.cyan('
|
|
1035
|
-
chalk.gray(' •
|
|
1036
|
-
chalk.gray(' •
|
|
1037
|
-
chalk.cyan('🎛️ Enhanced Multi-Provider Support\n') +
|
|
1038
|
-
chalk.gray(' • Seamless ElevenLabs ↔ Piper switching\n') +
|
|
1039
|
-
chalk.gray(' • Mixed provider support for learning mode\n\n') +
|
|
1040
|
-
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
1041
|
-
chalk.yellow.bold('🐛 20+ BUG FIXES:\n') +
|
|
1042
|
-
chalk.gray(' ✓ Fixed MP3 bitrate preservation (128kbps)\n') +
|
|
1043
|
-
chalk.gray(' ✓ Fixed audio player hanging issues\n') +
|
|
1044
|
-
chalk.gray(' ✓ Fixed voice/provider mismatches\n') +
|
|
1045
|
-
chalk.gray(' ✓ Fixed Windows npx execution\n') +
|
|
1046
|
-
chalk.gray(' ✓ Fixed JSON escaping in ElevenLabs API\n\n') +
|
|
1047
|
-
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
1048
|
-
chalk.magenta.bold('📚 DOCUMENTATION OVERHAUL:\n') +
|
|
1049
|
-
chalk.gray(' • 10 new documentation files\n') +
|
|
1050
|
-
chalk.gray(' • Windows Setup Guide (NPX-based)\n') +
|
|
1051
|
-
chalk.gray(' • README reduced 60% (1,285 → 502 lines)\n\n') +
|
|
1005
|
+
chalk.red.bold('🐛 CRITICAL macOS FIX:\n\n') +
|
|
1006
|
+
chalk.cyan('All 23 shell scripts now use #!/usr/bin/env bash instead of\n') +
|
|
1007
|
+
chalk.cyan('#!/bin/bash, enabling AgentVibes to work on macOS. The old\n') +
|
|
1008
|
+
chalk.cyan('shebang forced bash 3.2 (from 2007) which doesn\'t support\n') +
|
|
1009
|
+
chalk.cyan('associative arrays or modern bash syntax, causing complete\n') +
|
|
1010
|
+
chalk.cyan('failure on Mac.\n\n') +
|
|
1011
|
+
chalk.green('Mac users: brew install bash (one-time setup)\n') +
|
|
1012
|
+
chalk.green('Then AgentVibes works perfectly!\n\n') +
|
|
1013
|
+
chalk.white.bold('✨ NEW FEATURES:\n\n') +
|
|
1014
|
+
chalk.cyan('🤖 FREE GitHub Actions macOS Testing\n') +
|
|
1015
|
+
chalk.gray(' • Tests on macOS 13/14/15 (Intel + M1/M2/M3)\n') +
|
|
1016
|
+
chalk.gray(' • Node 18, 20, 22 tested automatically\n') +
|
|
1017
|
+
chalk.gray(' • 13 parallel test jobs on every push\n') +
|
|
1018
|
+
chalk.gray(' • Saves $60-276/year vs Mac VPS!\n\n') +
|
|
1019
|
+
chalk.cyan('💡 Provider Switch Hint\n') +
|
|
1020
|
+
chalk.gray(' • Helpful hints in voice list output\n') +
|
|
1021
|
+
chalk.gray(' • Discover ElevenLabs ↔ Piper switching\n\n') +
|
|
1052
1022
|
chalk.white('───────────────────────────────────────────────────────────────\n\n') +
|
|
1053
|
-
chalk.blue.bold('📊
|
|
1054
|
-
chalk.gray(' •
|
|
1055
|
-
chalk.gray(' •
|
|
1056
|
-
chalk.gray(' •
|
|
1057
|
-
chalk.gray(' •
|
|
1023
|
+
chalk.blue.bold('📊 IMPACT:\n') +
|
|
1024
|
+
chalk.gray(' • 30 files changed\n') +
|
|
1025
|
+
chalk.gray(' • 877 insertions, 31 deletions\n') +
|
|
1026
|
+
chalk.gray(' • AgentVibes now works on macOS!\n') +
|
|
1027
|
+
chalk.gray(' • FREE automated testing on all platforms\n\n') +
|
|
1058
1028
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
1059
1029
|
chalk.green.bold('🚀 TRY LANGUAGE LEARNING MODE:\n\n') +
|
|
1060
1030
|
chalk.cyan(' /agent-vibes:language english\n') +
|