agentvibes 2.14.2 → 2.14.4
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/hooks/play-tts.sh +6 -0
- package/README.md +6 -9
- package/RELEASE_NOTES.md +200 -0
- package/package.json +1 -1
- package/src/installer.js +38 -33
- package/test/unit/play-tts.bats +45 -0
- package/test/unit/provider-manager.bats +22 -2
- package/test/unit/translator.bats +15 -9
|
@@ -116,6 +116,9 @@ speak_text() {
|
|
|
116
116
|
piper)
|
|
117
117
|
"$SCRIPT_DIR/play-tts-piper.sh" "$text" "$voice"
|
|
118
118
|
;;
|
|
119
|
+
macos)
|
|
120
|
+
"$SCRIPT_DIR/play-tts-macos.sh" "$text" "$voice"
|
|
121
|
+
;;
|
|
119
122
|
*)
|
|
120
123
|
echo "❌ Unknown provider: $provider" >&2
|
|
121
124
|
return 1
|
|
@@ -232,6 +235,9 @@ case "$ACTIVE_PROVIDER" in
|
|
|
232
235
|
piper)
|
|
233
236
|
exec "$SCRIPT_DIR/play-tts-piper.sh" "$TEXT" "$VOICE_OVERRIDE"
|
|
234
237
|
;;
|
|
238
|
+
macos)
|
|
239
|
+
exec "$SCRIPT_DIR/play-tts-macos.sh" "$TEXT" "$VOICE_OVERRIDE"
|
|
240
|
+
;;
|
|
235
241
|
*)
|
|
236
242
|
echo "❌ Unknown provider: $ACTIVE_PROVIDER"
|
|
237
243
|
echo " Run: /agent-vibes:provider list"
|
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.14.
|
|
14
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.14.4
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -94,17 +94,14 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
94
94
|
|
|
95
95
|
## 📰 Latest Release
|
|
96
96
|
|
|
97
|
-
**[v2.14.
|
|
97
|
+
**[v2.14.4 - Fully Automated Install](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.14.4)** 🎉
|
|
98
98
|
|
|
99
|
-
AgentVibes v2.14.
|
|
99
|
+
AgentVibes v2.14.4 fixes the `--yes` flag to skip ALL interactive prompts during installation. Previously, even with `--yes`, the installer would pause at three "Continue?" prompts. Now `npx agentvibes install --yes` runs fully unattended, perfect for CI/CD pipelines and automated deployments.
|
|
100
100
|
|
|
101
101
|
**Key Highlights:**
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
- 🔄 **Three-Way Provider Switching** - Seamless migration between ElevenLabs, Piper, and macOS
|
|
106
|
-
- 🎉 **Smarter BMAD Detection** - Improved installer message when BMAD-METHOD™ is detected
|
|
107
|
-
- ✅ **Zero Breaking Changes** - Fully backward compatible with v2.14.0
|
|
102
|
+
- ⚡ **Fully Automated Install** - `--yes` flag now skips ALL interactive prompts
|
|
103
|
+
- 🤖 **CI/CD Ready** - Perfect for automated deployments and scripted installs
|
|
104
|
+
- ✅ **No Breaking Changes** - Interactive mode unchanged when `--yes` is not used
|
|
108
105
|
|
|
109
106
|
💡 **Tip:** If `npx agentvibes` shows an older version or missing commands, clear your npm cache: `npm cache clean --force && npx agentvibes@latest --help`
|
|
110
107
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,3 +1,203 @@
|
|
|
1
|
+
# Release v2.14.4 - Fully Automated Install with --yes Flag
|
|
2
|
+
|
|
3
|
+
**Release Date:** 2025-11-30
|
|
4
|
+
**Type:** Patch Release (Enhancement)
|
|
5
|
+
|
|
6
|
+
## AI Summary
|
|
7
|
+
|
|
8
|
+
AgentVibes v2.14.4 fixes the `--yes` flag behavior during installation. Previously, even with `--yes`, the installer would pause at three intermediate "Continue?" prompts, blocking automated/CI installations. Now `npx agentvibes install --yes` runs fully unattended from start to finish.
|
|
9
|
+
|
|
10
|
+
**Key Highlights:**
|
|
11
|
+
- ⚡ **Fully Automated Install** - `--yes` flag now skips ALL interactive prompts
|
|
12
|
+
- 🤖 **CI/CD Ready** - Perfect for automated deployments and scripted installs
|
|
13
|
+
- ✅ **No Breaking Changes** - Interactive mode unchanged when `--yes` is not used
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Enhancement
|
|
18
|
+
|
|
19
|
+
### Fully Automated Install with --yes Flag
|
|
20
|
+
**File:** `src/installer.js`
|
|
21
|
+
|
|
22
|
+
Three intermediate prompts are now skipped when `--yes` is provided:
|
|
23
|
+
|
|
24
|
+
| Prompt | Purpose |
|
|
25
|
+
|--------|---------|
|
|
26
|
+
| "📋 Review the installation summary above. Continue?" | After file installation summary |
|
|
27
|
+
| "Continue?" | After setup instructions display |
|
|
28
|
+
| "🎙️ Review MCP Server setup info above. Continue?" | After MCP server info |
|
|
29
|
+
|
|
30
|
+
**Before:** `npx agentvibes install --yes` would still pause 3 times
|
|
31
|
+
**After:** `npx agentvibes install --yes` runs completely unattended
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Now works for fully automated installations:
|
|
35
|
+
npx agentvibes install --yes
|
|
36
|
+
|
|
37
|
+
# Perfect for CI/CD pipelines:
|
|
38
|
+
npx agentvibes@latest install -y
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Files Modified
|
|
44
|
+
|
|
45
|
+
| File | Changes |
|
|
46
|
+
|------|---------|
|
|
47
|
+
| `src/installer.js` | Wrapped 3 prompts with `if (!options.yes)` check (+12 lines) |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Changes Summary
|
|
52
|
+
|
|
53
|
+
**Commits:** 1
|
|
54
|
+
- `feat: Skip intermediate prompts with --yes flag for automated installs`
|
|
55
|
+
|
|
56
|
+
**Files Changed:** 1
|
|
57
|
+
**Lines Added:** 12
|
|
58
|
+
**Lines Removed:** 6
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Migration Notes
|
|
63
|
+
|
|
64
|
+
**No migration required** - This is a patch release with improved automation.
|
|
65
|
+
|
|
66
|
+
**Who benefits:**
|
|
67
|
+
- CI/CD pipelines installing AgentVibes
|
|
68
|
+
- Scripted/automated deployments
|
|
69
|
+
- Anyone running `npx agentvibes install --yes`
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Testing
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Verify fully automated install works:
|
|
77
|
+
npx agentvibes install --yes
|
|
78
|
+
|
|
79
|
+
# Should complete without any prompts
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
# Release v2.14.3 - macOS Provider Routing Fix
|
|
85
|
+
|
|
86
|
+
**Release Date:** 2025-11-30
|
|
87
|
+
**Type:** Patch Release (Bug Fix)
|
|
88
|
+
|
|
89
|
+
## AI Summary
|
|
90
|
+
|
|
91
|
+
AgentVibes v2.14.3 fixes a critical bug where the macOS TTS provider would not speak when selected. The TTS router (`play-tts.sh`) was missing the case handler for the macOS provider, causing it to fail silently. This release adds the missing routing and includes comprehensive test coverage to prevent regression.
|
|
92
|
+
|
|
93
|
+
**Key Highlights:**
|
|
94
|
+
- 🐛 **Fixed macOS Provider Routing** - macOS `say` provider now works when selected (Issue #52)
|
|
95
|
+
- ✅ **New Provider Tests** - 4 new tests ensure macOS provider is properly detected and routed
|
|
96
|
+
- 🔧 **Fixed Translator Tests** - Fixed 3 pre-existing failing tests related to PWD and locale warnings
|
|
97
|
+
- 🎯 **133 Tests Passing** - Full test suite now passes with comprehensive macOS coverage
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Bug Fixes
|
|
102
|
+
|
|
103
|
+
### macOS Provider Routing Fix (Issue #52)
|
|
104
|
+
**File:** `.claude/hooks/play-tts.sh`
|
|
105
|
+
|
|
106
|
+
The TTS router was missing case handlers for the `macos` provider in two locations:
|
|
107
|
+
1. The `speak_text()` function (used by translation/learning modes)
|
|
108
|
+
2. The main routing case statement
|
|
109
|
+
|
|
110
|
+
**Before:** Switching to macOS provider would silently fail - no TTS output
|
|
111
|
+
**After:** macOS provider correctly routes to `play-tts-macos.sh`
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# This now works correctly:
|
|
115
|
+
/agent-vibes:provider switch macos
|
|
116
|
+
# TTS output will now use macOS say command
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Test Improvements
|
|
122
|
+
|
|
123
|
+
### New macOS Provider Tests
|
|
124
|
+
**Files:** `test/unit/provider-manager.bats`, `test/unit/play-tts.bats`
|
|
125
|
+
|
|
126
|
+
Added 4 new tests to ensure macOS provider is properly supported:
|
|
127
|
+
|
|
128
|
+
| Test | Description |
|
|
129
|
+
|------|-------------|
|
|
130
|
+
| `provider-manager list shows available providers` | Verifies `macos` appears in provider list |
|
|
131
|
+
| `provider-manager switch to macos` | Tests switching to macOS provider |
|
|
132
|
+
| `provider-manager validate macos provider exists` | Validates macOS provider script exists |
|
|
133
|
+
| `play-tts routes to macos provider when configured` | Tests actual TTS routing to macOS |
|
|
134
|
+
| `play-tts speak_text function routes to macos` | Verifies internal routing function |
|
|
135
|
+
|
|
136
|
+
### Fixed Translator Tests
|
|
137
|
+
**File:** `test/unit/translator.bats`
|
|
138
|
+
|
|
139
|
+
Fixed 3 pre-existing failing tests:
|
|
140
|
+
- Tests now properly `cd` to project directory before running commands
|
|
141
|
+
- Fixed locale warning filtering using `env LC_ALL=C bash -c`
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Files Modified
|
|
146
|
+
|
|
147
|
+
| File | Changes |
|
|
148
|
+
|------|---------|
|
|
149
|
+
| `.claude/hooks/play-tts.sh` | Added macOS case handlers (+6 lines) |
|
|
150
|
+
| `test/unit/provider-manager.bats` | Added macOS provider tests (+24 lines) |
|
|
151
|
+
| `test/unit/play-tts.bats` | Added macOS routing tests (+45 lines) |
|
|
152
|
+
| `test/unit/translator.bats` | Fixed PWD and locale issues (+13 lines) |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Changes Summary
|
|
157
|
+
|
|
158
|
+
**Commits:** 2
|
|
159
|
+
- `fix: Add macOS provider routing to play-tts.sh`
|
|
160
|
+
- `test: Add macOS provider tests and fix translator tests`
|
|
161
|
+
|
|
162
|
+
**Files Changed:** 4
|
|
163
|
+
**Lines Added:** 88
|
|
164
|
+
**Lines Removed:** 11
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Migration Notes
|
|
169
|
+
|
|
170
|
+
**No migration required** - This is a bug fix release.
|
|
171
|
+
|
|
172
|
+
**Who is affected:** Mac users who updated to v2.14.1/v2.14.2 and tried to use the macOS provider.
|
|
173
|
+
|
|
174
|
+
**Fix verification:**
|
|
175
|
+
```bash
|
|
176
|
+
# Update AgentVibes
|
|
177
|
+
npx agentvibes update
|
|
178
|
+
|
|
179
|
+
# Switch to macOS provider - should now speak
|
|
180
|
+
/agent-vibes:provider switch macos
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Testing
|
|
186
|
+
|
|
187
|
+
All 133 tests pass:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
npm test
|
|
191
|
+
|
|
192
|
+
# Key tests:
|
|
193
|
+
# ok 21 play-tts routes to macos provider when configured
|
|
194
|
+
# ok 22 play-tts speak_text function routes to macos
|
|
195
|
+
# ok 29 provider-manager switch to macos
|
|
196
|
+
# ok 30 provider-manager validate macos provider exists
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
1
201
|
# Release v2.14.2 - Native macOS TTS Provider
|
|
2
202
|
|
|
3
203
|
**Release Date:** 2025-11-29
|
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.14.
|
|
4
|
+
"version": "2.14.4",
|
|
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
|
@@ -128,18 +128,17 @@ function showReleaseInfo() {
|
|
|
128
128
|
console.log(
|
|
129
129
|
boxen(
|
|
130
130
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
|
|
131
|
-
chalk.cyan.bold(' 📦 AgentVibes v2.14.
|
|
131
|
+
chalk.cyan.bold(' 📦 AgentVibes v2.14.4 - Fully Automated Install\n') +
|
|
132
132
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
133
133
|
chalk.green.bold('🎙️ WHAT\'S NEW:\n\n') +
|
|
134
|
-
chalk.cyan('AgentVibes v2.14.
|
|
135
|
-
chalk.cyan('
|
|
136
|
-
chalk.cyan('
|
|
134
|
+
chalk.cyan('AgentVibes v2.14.4 fixes the --yes flag to skip ALL prompts.\n') +
|
|
135
|
+
chalk.cyan('Now `npx agentvibes install --yes` runs fully unattended,\n') +
|
|
136
|
+
chalk.cyan('perfect for CI/CD pipelines and automated deployments.\n\n') +
|
|
137
137
|
chalk.green.bold('✨ KEY HIGHLIGHTS:\n\n') +
|
|
138
|
-
chalk.gray('
|
|
139
|
-
chalk.gray('
|
|
140
|
-
chalk.gray('
|
|
141
|
-
chalk.gray('
|
|
142
|
-
chalk.gray(' 🎉 Smarter BMAD Detection - Party mode recommendation on install\n\n') +
|
|
138
|
+
chalk.gray(' ⚡ Fully Automated Install - --yes skips ALL interactive prompts\n') +
|
|
139
|
+
chalk.gray(' 🤖 CI/CD Ready - Perfect for automated deployments\n') +
|
|
140
|
+
chalk.gray(' ✅ No Breaking Changes - Interactive mode unchanged\n') +
|
|
141
|
+
chalk.gray(' 🎯 133 Tests Passing - Full test suite coverage\n\n') +
|
|
143
142
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
144
143
|
chalk.gray('📖 Full Release Notes: RELEASE_NOTES.md\n') +
|
|
145
144
|
chalk.gray('🌐 Website: https://agentvibes.org\n') +
|
|
@@ -1556,14 +1555,16 @@ async function install(options = {}) {
|
|
|
1556
1555
|
console.log('');
|
|
1557
1556
|
|
|
1558
1557
|
// Pause to let user review installation summary
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1558
|
+
if (!options.yes) {
|
|
1559
|
+
await inquirer.prompt([
|
|
1560
|
+
{
|
|
1561
|
+
type: 'confirm',
|
|
1562
|
+
name: 'continue',
|
|
1563
|
+
message: chalk.cyan('📋 Review the installation summary above. Continue?'),
|
|
1564
|
+
default: true,
|
|
1565
|
+
}
|
|
1566
|
+
]);
|
|
1567
|
+
}
|
|
1567
1568
|
|
|
1568
1569
|
// Show recent changes from git log or RELEASE_NOTES.md
|
|
1569
1570
|
try {
|
|
@@ -1663,14 +1664,16 @@ async function install(options = {}) {
|
|
|
1663
1664
|
console.log(chalk.white(' • /agent-vibes:personality <style>') + chalk.gray(' - Set personality\n'));
|
|
1664
1665
|
|
|
1665
1666
|
// Pause to let user review setup instructions
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1667
|
+
if (!options.yes) {
|
|
1668
|
+
await inquirer.prompt([
|
|
1669
|
+
{
|
|
1670
|
+
type: 'confirm',
|
|
1671
|
+
name: 'continue',
|
|
1672
|
+
message: chalk.cyan('Continue?'),
|
|
1673
|
+
default: true,
|
|
1674
|
+
}
|
|
1675
|
+
]);
|
|
1676
|
+
}
|
|
1674
1677
|
|
|
1675
1678
|
// Recommend MCP Server installation
|
|
1676
1679
|
console.log(
|
|
@@ -1720,14 +1723,16 @@ async function install(options = {}) {
|
|
|
1720
1723
|
);
|
|
1721
1724
|
|
|
1722
1725
|
// Pause to let user review MCP server info
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1726
|
+
if (!options.yes) {
|
|
1727
|
+
await inquirer.prompt([
|
|
1728
|
+
{
|
|
1729
|
+
type: 'confirm',
|
|
1730
|
+
name: 'continue',
|
|
1731
|
+
message: chalk.cyan('🎙️ Review MCP Server setup info above. Continue?'),
|
|
1732
|
+
default: true,
|
|
1733
|
+
}
|
|
1734
|
+
]);
|
|
1735
|
+
}
|
|
1731
1736
|
|
|
1732
1737
|
// Create default BMAD voice assignments (works even if BMAD not installed yet)
|
|
1733
1738
|
await createDefaultBmadVoiceAssignmentsProactive(targetDir);
|
package/test/unit/play-tts.bats
CHANGED
|
@@ -90,3 +90,48 @@ teardown() {
|
|
|
90
90
|
[ "$status" -eq 1 ]
|
|
91
91
|
assert_output_contains "Error: No text provided"
|
|
92
92
|
}
|
|
93
|
+
|
|
94
|
+
# ============================================================================
|
|
95
|
+
# Provider Routing Tests (Issue #52)
|
|
96
|
+
# ============================================================================
|
|
97
|
+
|
|
98
|
+
@test "play-tts routes to macos provider when configured" {
|
|
99
|
+
# Issue #52: macOS provider routing was missing
|
|
100
|
+
# This test ensures the macos case exists in play-tts.sh
|
|
101
|
+
echo "macos" > "$CLAUDE_PROJECT_DIR/.claude/tts-provider.txt"
|
|
102
|
+
|
|
103
|
+
# Create a mock play-tts-macos.sh that we can detect was called
|
|
104
|
+
local macos_script="$TEST_CLAUDE_DIR/hooks/play-tts-macos.sh"
|
|
105
|
+
cat > "$macos_script" << 'EOF'
|
|
106
|
+
#!/usr/bin/env bash
|
|
107
|
+
echo "MACOS_PROVIDER_CALLED"
|
|
108
|
+
echo "Text: $1"
|
|
109
|
+
echo "Voice: $2"
|
|
110
|
+
exit 0
|
|
111
|
+
EOF
|
|
112
|
+
chmod +x "$macos_script"
|
|
113
|
+
|
|
114
|
+
run "$PLAY_TTS" "Test macOS routing"
|
|
115
|
+
|
|
116
|
+
[ "$status" -eq 0 ]
|
|
117
|
+
# Should have called the macos provider
|
|
118
|
+
assert_output_contains "MACOS_PROVIDER_CALLED"
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@test "play-tts speak_text function routes to macos" {
|
|
122
|
+
# Test the speak_text function also routes to macos (for translation/learning modes)
|
|
123
|
+
echo "macos" > "$CLAUDE_PROJECT_DIR/.claude/tts-provider.txt"
|
|
124
|
+
|
|
125
|
+
# Source play-tts.sh and test speak_text function
|
|
126
|
+
# We verify by checking the macos case exists in the script
|
|
127
|
+
run grep -A2 'case "\$provider" in' "$PLAY_TTS"
|
|
128
|
+
|
|
129
|
+
[ "$status" -eq 0 ]
|
|
130
|
+
# The macos case should exist in the speak_text function
|
|
131
|
+
run grep 'macos)' "$PLAY_TTS"
|
|
132
|
+
[ "$status" -eq 0 ]
|
|
133
|
+
|
|
134
|
+
# Count occurrences - should be 2 (one in speak_text, one in main routing)
|
|
135
|
+
local count=$(grep -c 'macos)' "$PLAY_TTS")
|
|
136
|
+
[ "$count" -ge 2 ]
|
|
137
|
+
}
|
|
@@ -27,9 +27,10 @@ teardown() {
|
|
|
27
27
|
|
|
28
28
|
[ "$status" -eq 0 ]
|
|
29
29
|
|
|
30
|
-
# Should show
|
|
30
|
+
# Should show all three providers: elevenlabs, piper, and macos
|
|
31
31
|
assert_output_contains "elevenlabs"
|
|
32
32
|
assert_output_contains "piper"
|
|
33
|
+
assert_output_contains "macos"
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
@test "provider-manager list finds providers from play-tts files" {
|
|
@@ -38,9 +39,10 @@ teardown() {
|
|
|
38
39
|
[ "$status" -eq 0 ]
|
|
39
40
|
|
|
40
41
|
# Verify it's detecting actual provider scripts
|
|
41
|
-
#
|
|
42
|
+
# All three providers should be present (Issue #52)
|
|
42
43
|
[[ "$output" =~ "elevenlabs" ]]
|
|
43
44
|
[[ "$output" =~ "piper" ]]
|
|
45
|
+
[[ "$output" =~ "macos" ]]
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
@test "provider-manager list works with no providers (edge case)" {
|
|
@@ -94,6 +96,24 @@ teardown() {
|
|
|
94
96
|
assert_file_contains "$PROVIDER_FILE" "elevenlabs"
|
|
95
97
|
}
|
|
96
98
|
|
|
99
|
+
@test "provider-manager switch to macos" {
|
|
100
|
+
# Issue #52: macOS provider must be switchable
|
|
101
|
+
run "$PROVIDER_MANAGER" switch "macos"
|
|
102
|
+
|
|
103
|
+
[ "$status" -eq 0 ]
|
|
104
|
+
assert_output_contains "Active provider set to: macos"
|
|
105
|
+
|
|
106
|
+
assert_file_exists "$PROVIDER_FILE"
|
|
107
|
+
assert_file_contains "$PROVIDER_FILE" "macos"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@test "provider-manager validate macos provider exists" {
|
|
111
|
+
# Issue #52: macOS provider must be recognized as valid
|
|
112
|
+
run "$PROVIDER_MANAGER" validate "macos"
|
|
113
|
+
|
|
114
|
+
[ "$status" -eq 0 ]
|
|
115
|
+
}
|
|
116
|
+
|
|
97
117
|
@test "provider-manager switch with invalid provider fails" {
|
|
98
118
|
run "$PROVIDER_MANAGER" switch "nonexistent"
|
|
99
119
|
|
|
@@ -132,7 +132,9 @@ teardown() {
|
|
|
132
132
|
@test "translate-manager.sh get-translate-to returns language" {
|
|
133
133
|
"$TRANSLATE_MANAGER" set french > /dev/null 2>&1
|
|
134
134
|
|
|
135
|
-
run
|
|
135
|
+
# Must run from same directory where 'set' wrote the config
|
|
136
|
+
# Set LC_ALL=C before bash to suppress locale warnings
|
|
137
|
+
run env LC_ALL=C bash -c "cd '$CLAUDE_PROJECT_DIR' && $TRANSLATE_MANAGER get-translate-to" 2>/dev/null
|
|
136
138
|
|
|
137
139
|
[ "$status" -eq 0 ]
|
|
138
140
|
[[ "$output" == "french" ]]
|
|
@@ -171,29 +173,33 @@ teardown() {
|
|
|
171
173
|
# ============================================
|
|
172
174
|
|
|
173
175
|
@test "translate-manager.sh detects BMAD communication_language" {
|
|
174
|
-
# Create mock BMAD config
|
|
175
|
-
mkdir -p "
|
|
176
|
-
cat > "
|
|
176
|
+
# Create mock BMAD config in the project directory
|
|
177
|
+
mkdir -p "$CLAUDE_PROJECT_DIR/.bmad/core"
|
|
178
|
+
cat > "$CLAUDE_PROJECT_DIR/.bmad/core/config.yaml" << 'EOF'
|
|
177
179
|
communication_language: Spanish
|
|
178
180
|
document_output_language: Spanish
|
|
179
181
|
EOF
|
|
180
182
|
|
|
181
|
-
run
|
|
183
|
+
# Must run from project directory where BMAD config exists
|
|
184
|
+
# Set LC_ALL=C before bash to suppress locale warnings
|
|
185
|
+
run env LC_ALL=C bash -c "cd '$CLAUDE_PROJECT_DIR' && $TRANSLATE_MANAGER get-bmad-language" 2>/dev/null
|
|
182
186
|
|
|
183
187
|
[ "$status" -eq 0 ]
|
|
184
188
|
[[ "$output" == "spanish" ]]
|
|
185
189
|
}
|
|
186
190
|
|
|
187
191
|
@test "translate-manager.sh auto uses BMAD language when set" {
|
|
188
|
-
# Create mock BMAD config
|
|
189
|
-
mkdir -p "
|
|
190
|
-
cat > "
|
|
192
|
+
# Create mock BMAD config in the project directory
|
|
193
|
+
mkdir -p "$CLAUDE_PROJECT_DIR/.bmad/core"
|
|
194
|
+
cat > "$CLAUDE_PROJECT_DIR/.bmad/core/config.yaml" << 'EOF'
|
|
191
195
|
communication_language: French
|
|
192
196
|
EOF
|
|
193
197
|
|
|
194
198
|
"$TRANSLATE_MANAGER" auto > /dev/null 2>&1
|
|
195
199
|
|
|
196
|
-
run
|
|
200
|
+
# Must run from project directory where BMAD config and tts-translate-to.txt exist
|
|
201
|
+
# Set LC_ALL=C before bash to suppress locale warnings
|
|
202
|
+
run env LC_ALL=C bash -c "cd '$CLAUDE_PROJECT_DIR' && $TRANSLATE_MANAGER get-translate-to" 2>/dev/null
|
|
197
203
|
|
|
198
204
|
[ "$status" -eq 0 ]
|
|
199
205
|
[[ "$output" == "french" ]]
|