agentvibes 5.12.0-alpha.0 โ†’ 5.12.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.
Files changed (71) hide show
  1. package/.agentvibes/config.json +15 -1
  2. package/.agentvibes/install-manifest.json +342 -0
  3. package/.claude/activation-instructions +54 -54
  4. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  5. package/.claude/commands/agent-vibes-rdp.md +24 -24
  6. package/.claude/config/audio-effects.cfg +5 -5
  7. package/.claude/config/audio-effects.cfg.bak-kokoro +7 -0
  8. package/.claude/config/background-music-enabled.txt +1 -1
  9. package/.claude/config/background-music-position.txt +27 -0
  10. package/.claude/config/background-music-volume.txt +1 -0
  11. package/.claude/config/background-music.cfg +1 -0
  12. package/.claude/config/background-music.txt +1 -0
  13. package/.claude/config/language.txt +1 -0
  14. package/.claude/config/personality.txt +1 -0
  15. package/.claude/config/tts-speech-rate.txt +1 -0
  16. package/.claude/config/tts-verbosity.txt +1 -0
  17. package/.claude/docs/TERMUX_SETUP.md +408 -408
  18. package/.claude/github-star-reminder.txt +1 -1
  19. package/.claude/hooks/play-tts-ssh-remote.sh +42 -5
  20. package/.claude/hooks/play-tts.sh +21 -9
  21. package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +119 -0
  22. package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +153 -0
  23. package/.claude/hooks-windows/tts-watcher.ps1 +55 -0
  24. package/.claude/piper-voices-dir.txt +1 -0
  25. package/.clawdbot/README.md +105 -105
  26. package/.mcp.json +22 -0
  27. package/LICENSE +190 -190
  28. package/README.md +11 -6
  29. package/RELEASE_NOTES.md +38 -0
  30. package/WINDOWS-SETUP.md +208 -208
  31. package/bin/agent-vibes +39 -39
  32. package/bin/mcp-server.js +121 -121
  33. package/bin/test-bmad-pr +78 -78
  34. package/mcp-server/QUICK_START.md +203 -203
  35. package/mcp-server/README.md +345 -345
  36. package/mcp-server/examples/claude_desktop_config.json +11 -11
  37. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  38. package/mcp-server/examples/custom_instructions.md +169 -169
  39. package/mcp-server/pyproject.toml +52 -52
  40. package/mcp-server/requirements.txt +2 -2
  41. package/mcp-server/test_server.py +395 -395
  42. package/package.json +1 -1
  43. package/src/cli/list-personalities.js +110 -110
  44. package/src/cli/list-voices.js +114 -114
  45. package/src/commands/bmad-voices.js +394 -394
  46. package/src/console/app.js +1 -9
  47. package/src/console/brand-colors.js +13 -13
  48. package/src/console/constants/personalities.js +44 -44
  49. package/src/console/footer-config.js +0 -4
  50. package/src/console/navigation.js +0 -1
  51. package/src/console/tabs/agents-tab.js +14 -2
  52. package/src/console/tabs/help-tab.js +314 -314
  53. package/src/console/tabs/music-tab.js +101 -2
  54. package/src/console/tabs/placeholder-tab.js +0 -2
  55. package/src/console/tabs/readme-tab.js +272 -272
  56. package/src/console/tabs/settings-tab.js +13 -2
  57. package/src/console/tabs/setup-tab.js +30 -2
  58. package/src/console/tabs/voices-tab.js +19 -9
  59. package/src/console/widgets/destroy-list.js +25 -25
  60. package/src/console/widgets/notice.js +55 -55
  61. package/src/installer/language-screen.js +31 -31
  62. package/src/installer/music-file-input.js +304 -304
  63. package/src/services/language-service.js +47 -47
  64. package/src/services/navigation-service.js +1 -1
  65. package/src/utils/audio-format-validator.js +277 -277
  66. package/src/utils/dependency-checker.js +469 -469
  67. package/src/utils/file-ownership-verifier.js +358 -358
  68. package/src/utils/music-file-validator.js +285 -285
  69. package/src/utils/preview-list-prompt.js +144 -144
  70. package/src/utils/secure-music-storage.js +412 -412
  71. package/voice-assignments.json +8244 -8244
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # AgentVibes Release Notes
2
2
 
3
+ ## ๐ŸŽ‰ v5.12.0 โ€” The Fable Week Overhaul (Stable)
4
+
5
+ **Released:** 2026-07-05 ยท now on `latest` โ€” `npm install agentvibes`
6
+
7
+ This turns the "Fable Week" alpha into a stable release. During a week of early access to Anthropic's new **Fable** model, we pointed it at the whole AgentVibes codebase and rebuilt the core properly.
8
+
9
+ ### A stronger, shared core
10
+
11
+ Every time AgentVibes speaks it makes a lot of decisions โ€” which voice, which engine, whether to play here or send the audio to another machine, background music, volume, mute. That logic had been copied into several separate scripts (Mac/Linux, Windows, remote, and the voice server), and the copies slowly **drifted apart** โ€” a fix in one was missed in the others, which is why certain glitches kept coming back.
12
+
13
+ We replaced all of it with **one shared core** that every part of AgentVibes now follows โ€” one place to fix, one place to trust. What you'll notice:
14
+
15
+ - **Kokoro voices that were silent on Linux now work everywhere.**
16
+ - **Your voice choices stick** โ€” settings no longer get quietly overridden.
17
+ - **Volume, mute, and remote playback behave the same** across Mac, Linux, and Windows.
18
+ - **Safe by default** โ€” if the new core isn't available on your machine, AgentVibes falls back to the old behaviour, so it never just stops talking.
19
+
20
+ ### Previews now play in the right place
21
+
22
+ Previewing a voice or track used to play on whatever machine you were sitting at โ€” which was silent if you'd set AgentVibes up to send its audio elsewhere. Now:
23
+
24
+ - **If you have SSH remote configured, previews play on your receiver; otherwise they play locally, like before.**
25
+ - This covers **voice previews** (Piper and Kokoro) from the Setup, Agent, and Settings screens, and **music/track previews** โ€” press Space to play, Space again to stop.
26
+
27
+ ### A simpler voice menu
28
+
29
+ - We **removed the redundant Voices tab.** It only ever listed Piper voices and confused people, since choosing a voice for any provider already lives in **Setup**.
30
+
31
+ ### Groundwork for what's next
32
+
33
+ - The receiver now also receives the **full path of the project folder** a message came from (a new `projectPath` field, alongside the project name it already got) โ€” laying the groundwork for upcoming enhancements.
34
+
35
+ ### Reviewed before shipping
36
+
37
+ We ran three independent reviews over the changes โ€” security, correctness, and regressions โ€” and fixed every real issue before release.
38
+
39
+ ---
40
+
3
41
  ## ๐Ÿงช v5.12.0-alpha.0 โ€” The "Fable Week" Overhaul (ALPHA / testing)
4
42
 
5
43
  **Published:** 2026-07-04 ยท dist-tag **`alpha`** (not `latest`). Try it with `npm install agentvibes@alpha`.
package/WINDOWS-SETUP.md CHANGED
@@ -1,208 +1,208 @@
1
- # AgentVibes Windows Native Setup
2
-
3
- This folder contains AgentVibes configured for **native Windows** (not WSL) with three TTS providers available.
4
-
5
- ## Quick Start
6
-
7
- ### 1. Open in VS Code (Native Windows)
8
-
9
- - **File > Open Folder** > Select this folder (`agentvibes-in-windows`)
10
- - Make sure you're opening in **native Windows VS Code** (not WSL remote)
11
-
12
- ### 2. Open PowerShell Terminal
13
-
14
- - **Terminal > New Terminal**
15
- - Change shell to **PowerShell** (if needed)
16
-
17
- ### 3. Run Setup
18
-
19
- ```powershell
20
- .\setup-windows.ps1
21
- ```
22
-
23
- This script will:
24
- - Check PowerShell version (5.1+)
25
- - Create `.claude` directories
26
- - Let you choose TTS provider (Piper or SAPI)
27
- - Install Piper if you choose it
28
- - Download a default voice model
29
- - Test TTS
30
- - Configure for first use
31
-
32
- ### 4. Install Dependencies
33
-
34
- ```powershell
35
- npm install
36
- ```
37
-
38
- ### 5. Start Using AgentVibes
39
-
40
- Open a Claude Code session in this project. The SessionStart hook will automatically inject TTS protocol instructions, causing Claude to speak all responses.
41
-
42
- ## TTS Providers
43
-
44
- ### Option 1: Soprano (Best Quality)
45
- - **Quality**: Ultra-high (80M parameter neural model)
46
- - **Voices**: Single high-quality voice (Soprano-1.1-80M)
47
- - **Download**: `pip install soprano-tts`
48
- - **Setup**: Start WebUI with `soprano-webui` or API with `uvicorn soprano.server:app`
49
- - **Speed**: GPU-accelerated, very fast
50
- - **Features**: Gradio WebUI mode, OpenAI-compatible API mode, CLI fallback
51
-
52
- To set up Soprano:
53
- ```powershell
54
- # Install Soprano
55
- pip install soprano-tts
56
-
57
- # Start WebUI (recommended - stays running in background)
58
- soprano-webui
59
-
60
- # Set provider
61
- .\.claude\hooks-windows\provider-manager.ps1 set soprano
62
-
63
- # Test
64
- .\.claude\hooks-windows\play-tts-soprano.ps1 "Hello from Soprano"
65
- ```
66
-
67
- ### Option 2: Windows Piper (Recommended for Offline)
68
- - **Quality**: High (neural voices)
69
- - **Voices**: 50+ available
70
- - **Download**: ~100MB
71
- - **Setup**: Automatic (run `setup-windows.ps1`)
72
- - **Speed**: Offline synthesis
73
- - **Features**: All AgentVibes features supported
74
-
75
- ### Option 3: Windows SAPI (Built-in, Zero Setup)
76
- - **Quality**: Basic
77
- - **Voices**: ~10 built-in (David, Zira, Mark)
78
- - **Download**: 0 MB (no installation needed)
79
- - **Setup**: Select during `setup-windows.ps1`
80
- - **Speed**: Fast
81
- - **Features**: Core TTS only
82
-
83
- ## Claude Code Integration
84
-
85
- AgentVibes hooks into Claude Code via `.claude/settings.json`. The SessionStart hook runs automatically when Claude starts a session:
86
-
87
- ```json
88
- {
89
- "hooks": {
90
- "SessionStart": [{
91
- "hooks": [{
92
- "type": "command",
93
- "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$CLAUDE_PROJECT_DIR\\.claude\\hooks-windows\\session-start-tts.ps1\""
94
- }]
95
- }]
96
- }
97
- }
98
- ```
99
-
100
- This injects TTS protocol instructions so Claude speaks every response using the configured provider.
101
-
102
- ## Manual Commands
103
-
104
- Test TTS manually:
105
-
106
- ```powershell
107
- # Test current provider
108
- .\.claude\hooks-windows\play-tts.ps1 "Hello from Windows"
109
-
110
- # Test specific providers
111
- .\.claude\hooks-windows\play-tts-windows-sapi.ps1 "Hello SAPI"
112
- .\.claude\hooks-windows\play-tts-windows-piper.ps1 "Hello Piper"
113
- .\.claude\hooks-windows\play-tts-soprano.ps1 "Hello Soprano"
114
-
115
- # List available voices
116
- .\.claude\hooks-windows\voice-manager-windows.ps1 list
117
-
118
- # Switch voice (for Piper/SAPI)
119
- .\.claude\hooks-windows\voice-manager-windows.ps1 switch "en_US-lessac-high"
120
-
121
- # List providers
122
- .\.claude\hooks-windows\provider-manager.ps1 list
123
-
124
- # Switch provider
125
- .\.claude\hooks-windows\provider-manager.ps1 set soprano
126
- .\.claude\hooks-windows\provider-manager.ps1 set windows-piper
127
- .\.claude\hooks-windows\provider-manager.ps1 set windows-sapi
128
- ```
129
-
130
- ## Troubleshooting
131
-
132
- ### PowerShell Execution Policy Error
133
-
134
- If you get an "execution policy" error, run:
135
-
136
- ```powershell
137
- Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
138
- ```
139
-
140
- Then try again.
141
-
142
- ### No Audio Playing
143
-
144
- 1. Check Windows volume isn't muted
145
- 2. Try switching to SAPI provider (zero-setup): `.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi`
146
- 3. Test SAPI directly: `.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "test"`
147
-
148
- ### Soprano Not Detected
149
-
150
- 1. Ensure soprano-webui is running: `soprano-webui`
151
- 2. Check port 7860 is accessible: `Test-NetConnection -ComputerName 127.0.0.1 -Port 7860`
152
- 3. Set custom port if needed: `$env:SOPRANO_PORT = "8080"` before running TTS
153
-
154
- ### Piper Installation Failed
155
-
156
- 1. Check internet connection
157
- 2. Run setup again: `.\setup-windows.ps1`
158
- 3. Or manually download from: https://github.com/rhasspy/piper/releases
159
-
160
- ### Can't Find Voice
161
-
162
- For Piper, voices are stored in: `%USERPROFILE%\.claude\piper-voices\`
163
-
164
- You can download additional voices with `.\download-piper-voices.ps1`.
165
-
166
- ## Architecture
167
-
168
- ```
169
- agentvibes-in-windows/
170
- โ”œโ”€โ”€ .claude/
171
- โ”‚ โ”œโ”€โ”€ hooks-windows/ # PowerShell TTS scripts
172
- โ”‚ โ”‚ โ”œโ”€โ”€ play-tts.ps1 # Main router (dispatches to active provider)
173
- โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-soprano.ps1 # Soprano provider
174
- โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-windows-piper.ps1 # Piper provider
175
- โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-windows-sapi.ps1 # SAPI provider
176
- โ”‚ โ”‚ โ”œโ”€โ”€ soprano-gradio-synth.py # Python helper for Soprano Gradio API
177
- โ”‚ โ”‚ โ”œโ”€โ”€ provider-manager.ps1 # Provider switching
178
- โ”‚ โ”‚ โ”œโ”€โ”€ voice-manager-windows.ps1 # Voice management
179
- โ”‚ โ”‚ โ”œโ”€โ”€ session-start-tts.ps1 # SessionStart hook (injects TTS protocol)
180
- โ”‚ โ”‚ โ””โ”€โ”€ audio-cache-utils.ps1 # Audio cache cleanup
181
- โ”‚ โ”œโ”€โ”€ settings.json # Claude Code hooks config
182
- โ”‚ โ”œโ”€โ”€ audio/ # Audio cache (auto-created)
183
- โ”‚ โ”œโ”€โ”€ piper-voices/ # Piper voice models (auto-created)
184
- โ”‚ โ””โ”€โ”€ tts-provider.txt # Active provider config
185
- โ”œโ”€โ”€ setup-windows.ps1 # Installation script
186
- โ”œโ”€โ”€ download-piper-voices.ps1 # Download additional Piper voices
187
- โ””โ”€โ”€ WINDOWS-SETUP.md # This file
188
- ```
189
-
190
- ## What's Different from WSL
191
-
192
- | Feature | WSL Version | Windows Native |
193
- |---------|-------------|----------------|
194
- | **TTS Scripts** | Bash shell scripts (.sh) | PowerShell scripts (.ps1) |
195
- | **Audio** | PulseAudio/paplay | System.Media.SoundPlayer |
196
- | **Providers** | Piper, macOS, Termux, Soprano | Piper, SAPI, Soprano |
197
- | **Setup** | WSL + PulseAudio config | Native Windows only |
198
- | **Hook Dir** | `.claude/hooks/` | `.claude/hooks-windows/` |
199
-
200
- ## Support
201
-
202
- - **Documentation**: https://agentvibes.org
203
- - **Issues**: https://github.com/paulpreibisch/AgentVibes/issues
204
-
205
- ---
206
-
207
- **Version**: 2.0 (Windows Native + Soprano)
208
- **Last Updated**: 2026-02-11
1
+ # AgentVibes Windows Native Setup
2
+
3
+ This folder contains AgentVibes configured for **native Windows** (not WSL) with three TTS providers available.
4
+
5
+ ## Quick Start
6
+
7
+ ### 1. Open in VS Code (Native Windows)
8
+
9
+ - **File > Open Folder** > Select this folder (`agentvibes-in-windows`)
10
+ - Make sure you're opening in **native Windows VS Code** (not WSL remote)
11
+
12
+ ### 2. Open PowerShell Terminal
13
+
14
+ - **Terminal > New Terminal**
15
+ - Change shell to **PowerShell** (if needed)
16
+
17
+ ### 3. Run Setup
18
+
19
+ ```powershell
20
+ .\setup-windows.ps1
21
+ ```
22
+
23
+ This script will:
24
+ - Check PowerShell version (5.1+)
25
+ - Create `.claude` directories
26
+ - Let you choose TTS provider (Piper or SAPI)
27
+ - Install Piper if you choose it
28
+ - Download a default voice model
29
+ - Test TTS
30
+ - Configure for first use
31
+
32
+ ### 4. Install Dependencies
33
+
34
+ ```powershell
35
+ npm install
36
+ ```
37
+
38
+ ### 5. Start Using AgentVibes
39
+
40
+ Open a Claude Code session in this project. The SessionStart hook will automatically inject TTS protocol instructions, causing Claude to speak all responses.
41
+
42
+ ## TTS Providers
43
+
44
+ ### Option 1: Soprano (Best Quality)
45
+ - **Quality**: Ultra-high (80M parameter neural model)
46
+ - **Voices**: Single high-quality voice (Soprano-1.1-80M)
47
+ - **Download**: `pip install soprano-tts`
48
+ - **Setup**: Start WebUI with `soprano-webui` or API with `uvicorn soprano.server:app`
49
+ - **Speed**: GPU-accelerated, very fast
50
+ - **Features**: Gradio WebUI mode, OpenAI-compatible API mode, CLI fallback
51
+
52
+ To set up Soprano:
53
+ ```powershell
54
+ # Install Soprano
55
+ pip install soprano-tts
56
+
57
+ # Start WebUI (recommended - stays running in background)
58
+ soprano-webui
59
+
60
+ # Set provider
61
+ .\.claude\hooks-windows\provider-manager.ps1 set soprano
62
+
63
+ # Test
64
+ .\.claude\hooks-windows\play-tts-soprano.ps1 "Hello from Soprano"
65
+ ```
66
+
67
+ ### Option 2: Windows Piper (Recommended for Offline)
68
+ - **Quality**: High (neural voices)
69
+ - **Voices**: 50+ available
70
+ - **Download**: ~100MB
71
+ - **Setup**: Automatic (run `setup-windows.ps1`)
72
+ - **Speed**: Offline synthesis
73
+ - **Features**: All AgentVibes features supported
74
+
75
+ ### Option 3: Windows SAPI (Built-in, Zero Setup)
76
+ - **Quality**: Basic
77
+ - **Voices**: ~10 built-in (David, Zira, Mark)
78
+ - **Download**: 0 MB (no installation needed)
79
+ - **Setup**: Select during `setup-windows.ps1`
80
+ - **Speed**: Fast
81
+ - **Features**: Core TTS only
82
+
83
+ ## Claude Code Integration
84
+
85
+ AgentVibes hooks into Claude Code via `.claude/settings.json`. The SessionStart hook runs automatically when Claude starts a session:
86
+
87
+ ```json
88
+ {
89
+ "hooks": {
90
+ "SessionStart": [{
91
+ "hooks": [{
92
+ "type": "command",
93
+ "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$CLAUDE_PROJECT_DIR\\.claude\\hooks-windows\\session-start-tts.ps1\""
94
+ }]
95
+ }]
96
+ }
97
+ }
98
+ ```
99
+
100
+ This injects TTS protocol instructions so Claude speaks every response using the configured provider.
101
+
102
+ ## Manual Commands
103
+
104
+ Test TTS manually:
105
+
106
+ ```powershell
107
+ # Test current provider
108
+ .\.claude\hooks-windows\play-tts.ps1 "Hello from Windows"
109
+
110
+ # Test specific providers
111
+ .\.claude\hooks-windows\play-tts-windows-sapi.ps1 "Hello SAPI"
112
+ .\.claude\hooks-windows\play-tts-windows-piper.ps1 "Hello Piper"
113
+ .\.claude\hooks-windows\play-tts-soprano.ps1 "Hello Soprano"
114
+
115
+ # List available voices
116
+ .\.claude\hooks-windows\voice-manager-windows.ps1 list
117
+
118
+ # Switch voice (for Piper/SAPI)
119
+ .\.claude\hooks-windows\voice-manager-windows.ps1 switch "en_US-lessac-high"
120
+
121
+ # List providers
122
+ .\.claude\hooks-windows\provider-manager.ps1 list
123
+
124
+ # Switch provider
125
+ .\.claude\hooks-windows\provider-manager.ps1 set soprano
126
+ .\.claude\hooks-windows\provider-manager.ps1 set windows-piper
127
+ .\.claude\hooks-windows\provider-manager.ps1 set windows-sapi
128
+ ```
129
+
130
+ ## Troubleshooting
131
+
132
+ ### PowerShell Execution Policy Error
133
+
134
+ If you get an "execution policy" error, run:
135
+
136
+ ```powershell
137
+ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
138
+ ```
139
+
140
+ Then try again.
141
+
142
+ ### No Audio Playing
143
+
144
+ 1. Check Windows volume isn't muted
145
+ 2. Try switching to SAPI provider (zero-setup): `.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi`
146
+ 3. Test SAPI directly: `.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "test"`
147
+
148
+ ### Soprano Not Detected
149
+
150
+ 1. Ensure soprano-webui is running: `soprano-webui`
151
+ 2. Check port 7860 is accessible: `Test-NetConnection -ComputerName 127.0.0.1 -Port 7860`
152
+ 3. Set custom port if needed: `$env:SOPRANO_PORT = "8080"` before running TTS
153
+
154
+ ### Piper Installation Failed
155
+
156
+ 1. Check internet connection
157
+ 2. Run setup again: `.\setup-windows.ps1`
158
+ 3. Or manually download from: https://github.com/rhasspy/piper/releases
159
+
160
+ ### Can't Find Voice
161
+
162
+ For Piper, voices are stored in: `%USERPROFILE%\.claude\piper-voices\`
163
+
164
+ You can download additional voices with `.\download-piper-voices.ps1`.
165
+
166
+ ## Architecture
167
+
168
+ ```
169
+ agentvibes-in-windows/
170
+ โ”œโ”€โ”€ .claude/
171
+ โ”‚ โ”œโ”€โ”€ hooks-windows/ # PowerShell TTS scripts
172
+ โ”‚ โ”‚ โ”œโ”€โ”€ play-tts.ps1 # Main router (dispatches to active provider)
173
+ โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-soprano.ps1 # Soprano provider
174
+ โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-windows-piper.ps1 # Piper provider
175
+ โ”‚ โ”‚ โ”œโ”€โ”€ play-tts-windows-sapi.ps1 # SAPI provider
176
+ โ”‚ โ”‚ โ”œโ”€โ”€ soprano-gradio-synth.py # Python helper for Soprano Gradio API
177
+ โ”‚ โ”‚ โ”œโ”€โ”€ provider-manager.ps1 # Provider switching
178
+ โ”‚ โ”‚ โ”œโ”€โ”€ voice-manager-windows.ps1 # Voice management
179
+ โ”‚ โ”‚ โ”œโ”€โ”€ session-start-tts.ps1 # SessionStart hook (injects TTS protocol)
180
+ โ”‚ โ”‚ โ””โ”€โ”€ audio-cache-utils.ps1 # Audio cache cleanup
181
+ โ”‚ โ”œโ”€โ”€ settings.json # Claude Code hooks config
182
+ โ”‚ โ”œโ”€โ”€ audio/ # Audio cache (auto-created)
183
+ โ”‚ โ”œโ”€โ”€ piper-voices/ # Piper voice models (auto-created)
184
+ โ”‚ โ””โ”€โ”€ tts-provider.txt # Active provider config
185
+ โ”œโ”€โ”€ setup-windows.ps1 # Installation script
186
+ โ”œโ”€โ”€ download-piper-voices.ps1 # Download additional Piper voices
187
+ โ””โ”€โ”€ WINDOWS-SETUP.md # This file
188
+ ```
189
+
190
+ ## What's Different from WSL
191
+
192
+ | Feature | WSL Version | Windows Native |
193
+ |---------|-------------|----------------|
194
+ | **TTS Scripts** | Bash shell scripts (.sh) | PowerShell scripts (.ps1) |
195
+ | **Audio** | PulseAudio/paplay | System.Media.SoundPlayer |
196
+ | **Providers** | Piper, macOS, Termux, Soprano | Piper, SAPI, Soprano |
197
+ | **Setup** | WSL + PulseAudio config | Native Windows only |
198
+ | **Hook Dir** | `.claude/hooks/` | `.claude/hooks-windows/` |
199
+
200
+ ## Support
201
+
202
+ - **Documentation**: https://agentvibes.org
203
+ - **Issues**: https://github.com/paulpreibisch/AgentVibes/issues
204
+
205
+ ---
206
+
207
+ **Version**: 2.0 (Windows Native + Soprano)
208
+ **Last Updated**: 2026-02-11
package/bin/agent-vibes CHANGED
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
-
3
- /**
4
- * AgentVibes - Beautiful ElevenLabs TTS voice commands for Claude Code
5
- * This file ensures proper execution when run via npx
6
- */
7
-
8
- import { execFileSync } from 'node:child_process';
9
- import path from 'node:path';
10
- import fs from 'node:fs';
11
- import { fileURLToPath } from 'node:url';
12
-
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = path.dirname(__filename);
15
-
16
- // Check if we're running in an npx temporary directory
17
- const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
18
-
19
- // Get CLI arguments
20
- const arguments_ = process.argv.slice(2);
21
-
22
- // Route through the TUI console (agentvibes.js) which handles install/config/etc
23
- const installerPath = path.join(__dirname, 'agentvibes.js');
24
-
25
- if (!fs.existsSync(installerPath)) {
26
- console.error('Error: Could not find installer.js at', installerPath);
27
- console.error('Current directory:', __dirname);
28
- process.exit(1);
29
- }
30
-
31
- try {
32
- // Security: Use execFileSync with array args to prevent command injection
33
- // Arguments are passed as array elements, not string interpolation
34
- execFileSync('node', [installerPath, ...arguments_], {
35
- stdio: 'inherit',
36
- cwd: path.dirname(__dirname),
37
- });
38
- } catch (error) {
39
- process.exit(error.status || 1);
40
- }
2
+
3
+ /**
4
+ * AgentVibes - Beautiful ElevenLabs TTS voice commands for Claude Code
5
+ * This file ensures proper execution when run via npx
6
+ */
7
+
8
+ import { execFileSync } from 'node:child_process';
9
+ import path from 'node:path';
10
+ import fs from 'node:fs';
11
+ import { fileURLToPath } from 'node:url';
12
+
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
15
+
16
+ // Check if we're running in an npx temporary directory
17
+ const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
18
+
19
+ // Get CLI arguments
20
+ const arguments_ = process.argv.slice(2);
21
+
22
+ // Route through the TUI console (agentvibes.js) which handles install/config/etc
23
+ const installerPath = path.join(__dirname, 'agentvibes.js');
24
+
25
+ if (!fs.existsSync(installerPath)) {
26
+ console.error('Error: Could not find installer.js at', installerPath);
27
+ console.error('Current directory:', __dirname);
28
+ process.exit(1);
29
+ }
30
+
31
+ try {
32
+ // Security: Use execFileSync with array args to prevent command injection
33
+ // Arguments are passed as array elements, not string interpolation
34
+ execFileSync('node', [installerPath, ...arguments_], {
35
+ stdio: 'inherit',
36
+ cwd: path.dirname(__dirname),
37
+ });
38
+ } catch (error) {
39
+ process.exit(error.status || 1);
40
+ }