agentvibes 4.0.1 → 4.4.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 (219) hide show
  1. package/.agentvibes/bmad/bmad-voices.md +69 -69
  2. package/.agentvibes/config.json +12 -0
  3. package/.claude/activation-instructions +54 -54
  4. package/.claude/audio/tracks/README.md +52 -52
  5. package/.claude/commands/agent-vibes/add.md +21 -21
  6. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  7. package/.claude/commands/agent-vibes/agent.md +79 -79
  8. package/.claude/commands/agent-vibes/background-music.md +111 -111
  9. package/.claude/commands/agent-vibes/bmad.md +198 -198
  10. package/.claude/commands/agent-vibes/clean.md +18 -18
  11. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  12. package/.claude/commands/agent-vibes/commands.json +145 -145
  13. package/.claude/commands/agent-vibes/effects.md +97 -97
  14. package/.claude/commands/agent-vibes/get.md +9 -9
  15. package/.claude/commands/agent-vibes/hide.md +91 -91
  16. package/.claude/commands/agent-vibes/language.md +23 -23
  17. package/.claude/commands/agent-vibes/learn.md +67 -67
  18. package/.claude/commands/agent-vibes/list.md +13 -13
  19. package/.claude/commands/agent-vibes/mute.md +37 -37
  20. package/.claude/commands/agent-vibes/preview.md +17 -17
  21. package/.claude/commands/agent-vibes/provider.md +68 -68
  22. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  23. package/.claude/commands/agent-vibes/sample.md +12 -12
  24. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  25. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  26. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  27. package/.claude/commands/agent-vibes/show.md +84 -84
  28. package/.claude/commands/agent-vibes/switch.md +87 -87
  29. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  30. package/.claude/commands/agent-vibes/target.md +30 -30
  31. package/.claude/commands/agent-vibes/translate.md +68 -68
  32. package/.claude/commands/agent-vibes/unmute.md +45 -45
  33. package/.claude/commands/agent-vibes/verbosity.md +89 -89
  34. package/.claude/commands/agent-vibes/whoami.md +7 -7
  35. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  36. package/.claude/commands/agent-vibes-rdp.md +24 -24
  37. package/.claude/config/agentvibes.json +1 -0
  38. package/.claude/config/audio-effects.cfg +3 -2
  39. package/.claude/config/audio-effects.cfg.sample +52 -52
  40. package/.claude/config/background-music-volume.txt +1 -0
  41. package/.claude/config/intro-text.txt +1 -0
  42. package/.claude/config/piper-speech-rate.txt +4 -0
  43. package/.claude/config/piper-target-speech-rate.txt +1 -0
  44. package/.claude/config/reverb-level.txt +1 -0
  45. package/.claude/config/tts-speech-rate.txt +4 -0
  46. package/.claude/config/tts-target-speech-rate.txt +1 -0
  47. package/.claude/docs/TERMUX_SETUP.md +408 -408
  48. package/.claude/github-star-reminder.txt +1 -1
  49. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  50. package/.claude/hooks/audio-cache-utils.sh +246 -246
  51. package/.claude/hooks/audio-processor.sh +433 -389
  52. package/.claude/hooks/background-music-manager.sh +404 -404
  53. package/.claude/hooks/bmad-speak-enhanced.sh +165 -165
  54. package/.claude/hooks/bmad-speak.sh +269 -112
  55. package/.claude/hooks/bmad-tts-injector.sh +568 -568
  56. package/.claude/hooks/bmad-voice-manager.sh +928 -928
  57. package/.claude/hooks/clawdbot-receiver-SECURE.sh +129 -129
  58. package/.claude/hooks/clawdbot-receiver.sh +107 -107
  59. package/.claude/hooks/clean-audio-cache.sh +22 -22
  60. package/.claude/hooks/cleanup-cache.sh +106 -106
  61. package/.claude/hooks/configure-rdp-mode.sh +137 -137
  62. package/.claude/hooks/download-extra-voices.sh +244 -244
  63. package/.claude/hooks/effects-manager.sh +268 -268
  64. package/.claude/hooks/github-star-reminder.sh +154 -154
  65. package/.claude/hooks/language-manager.sh +362 -362
  66. package/.claude/hooks/learn-manager.sh +492 -492
  67. package/.claude/hooks/macos-voice-manager.sh +205 -205
  68. package/.claude/hooks/migrate-background-music.sh +125 -125
  69. package/.claude/hooks/migrate-to-agentvibes.sh +161 -161
  70. package/.claude/hooks/optimize-background-music.sh +87 -87
  71. package/.claude/hooks/path-resolver.sh +60 -60
  72. package/.claude/hooks/personality-manager.sh +448 -448
  73. package/.claude/hooks/piper-download-voices.sh +225 -225
  74. package/.claude/hooks/piper-installer.sh +292 -292
  75. package/.claude/hooks/piper-multispeaker-registry.sh +171 -171
  76. package/.claude/hooks/piper-voice-manager.sh +24 -3
  77. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +90 -90
  78. package/.claude/hooks/play-tts-enhanced.sh +105 -70
  79. package/.claude/hooks/play-tts-macos.sh +368 -345
  80. package/.claude/hooks/play-tts-piper.sh +679 -578
  81. package/.claude/hooks/play-tts-soprano.sh +356 -320
  82. package/.claude/hooks/play-tts-ssh-remote.sh +167 -88
  83. package/.claude/hooks/play-tts-termux-ssh.sh +169 -169
  84. package/.claude/hooks/play-tts.sh +301 -298
  85. package/.claude/hooks/prepare-release.sh +54 -54
  86. package/.claude/hooks/provider-commands.sh +617 -617
  87. package/.claude/hooks/provider-manager.sh +399 -399
  88. package/.claude/hooks/replay-target-audio.sh +95 -95
  89. package/.claude/hooks/requirements.txt +6 -6
  90. package/.claude/hooks/sentiment-manager.sh +201 -201
  91. package/.claude/hooks/session-start-tts.sh +81 -71
  92. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  93. package/.claude/hooks/speed-manager.sh +291 -291
  94. package/.claude/hooks/stop-tts.sh +84 -0
  95. package/.claude/hooks/termux-installer.sh +261 -261
  96. package/.claude/hooks/translate-manager.sh +341 -341
  97. package/.claude/hooks/translator.py +237 -237
  98. package/.claude/hooks/tts-queue-worker.sh +145 -114
  99. package/.claude/hooks/tts-queue.sh +165 -136
  100. package/.claude/hooks/verbosity-manager.sh +178 -178
  101. package/.claude/hooks/voice-manager.sh +548 -544
  102. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  103. package/.claude/hooks-windows/background-music-manager.ps1 +348 -0
  104. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -0
  105. package/.claude/hooks-windows/download-extra-voices.ps1 +185 -0
  106. package/.claude/hooks-windows/effects-manager.ps1 +294 -0
  107. package/.claude/hooks-windows/language-manager.ps1 +193 -0
  108. package/.claude/hooks-windows/learn-manager.ps1 +241 -0
  109. package/.claude/hooks-windows/personality-manager.ps1 +266 -0
  110. package/.claude/hooks-windows/play-tts-piper.ps1 +209 -0
  111. package/.claude/hooks-windows/play-tts-sapi.ps1 +108 -0
  112. package/.claude/hooks-windows/play-tts-soprano.ps1 +159 -158
  113. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +50 -5
  114. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
  115. package/.claude/hooks-windows/play-tts.ps1 +344 -266
  116. package/.claude/hooks-windows/provider-manager.ps1 +29 -10
  117. package/.claude/hooks-windows/session-start-tts.ps1 +124 -124
  118. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  119. package/.claude/hooks-windows/speed-manager.ps1 +166 -0
  120. package/.claude/hooks-windows/verbosity-manager.ps1 +119 -0
  121. package/.claude/hooks-windows/voice-manager-windows.ps1 +92 -8
  122. package/.claude/output-styles/agent-vibes.md +202 -202
  123. package/.claude/personalities/angry.md +14 -14
  124. package/.claude/personalities/annoying.md +14 -14
  125. package/.claude/personalities/crass.md +14 -14
  126. package/.claude/personalities/dramatic.md +14 -14
  127. package/.claude/personalities/dry-humor.md +50 -50
  128. package/.claude/personalities/flirty.md +20 -20
  129. package/.claude/personalities/funny.md +14 -14
  130. package/.claude/personalities/grandpa.md +32 -32
  131. package/.claude/personalities/millennial.md +14 -14
  132. package/.claude/personalities/moody.md +14 -14
  133. package/.claude/personalities/normal.md +16 -16
  134. package/.claude/personalities/pirate.md +14 -14
  135. package/.claude/personalities/poetic.md +14 -14
  136. package/.claude/personalities/professional.md +14 -14
  137. package/.claude/personalities/rapper.md +55 -55
  138. package/.claude/personalities/robot.md +14 -14
  139. package/.claude/personalities/sarcastic.md +38 -38
  140. package/.claude/personalities/sassy.md +14 -14
  141. package/.claude/personalities/surfer-dude.md +14 -14
  142. package/.claude/personalities/zen.md +14 -14
  143. package/.claude/settings.json +15 -15
  144. package/.claude/verbosity.txt +1 -1
  145. package/.clawdbot/README.md +105 -105
  146. package/.clawdbot/skill/SKILL.md +241 -241
  147. package/.mcp.json +12 -0
  148. package/CLAUDE.md +170 -181
  149. package/README.md +2029 -1909
  150. package/RELEASE_NOTES.md +1310 -66
  151. package/WINDOWS-SETUP.md +208 -208
  152. package/bin/agent-vibes +39 -39
  153. package/bin/agentvibes-voice-browser.js +1840 -1826
  154. package/bin/agentvibes.js +48 -2
  155. package/bin/mcp-server.js +121 -121
  156. package/bin/mcp-server.sh +206 -206
  157. package/bin/test-bmad-pr +78 -78
  158. package/mcp-server/QUICK_START.md +203 -203
  159. package/mcp-server/README.md +345 -345
  160. package/mcp-server/WINDOWS_SETUP.md +260 -260
  161. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  162. package/mcp-server/examples/claude_desktop_config.json +11 -11
  163. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  164. package/mcp-server/examples/custom_instructions.md +169 -169
  165. package/mcp-server/install-deps.js +130 -130
  166. package/mcp-server/pyproject.toml +52 -52
  167. package/mcp-server/requirements.txt +2 -2
  168. package/mcp-server/server.py +1465 -1417
  169. package/mcp-server/test_server.py +395 -395
  170. package/mcp-server/test_windows_script_parity.py +336 -0
  171. package/package.json +110 -112
  172. package/setup-windows.ps1 +815 -815
  173. package/src/bmad-detector.js +71 -71
  174. package/src/cli/list-personalities.js +110 -110
  175. package/src/cli/list-voices.js +114 -114
  176. package/src/commands/bmad-voices.js +394 -394
  177. package/src/commands/install-mcp.js +476 -476
  178. package/src/console/app.js +824 -806
  179. package/src/console/audio-env.js +20 -1
  180. package/src/console/brand-colors.js +13 -13
  181. package/src/console/constants/personalities.js +44 -0
  182. package/src/console/footer-config.js +50 -46
  183. package/src/console/modals/modal-overlay.js +247 -247
  184. package/src/console/navigation.js +62 -61
  185. package/src/console/tabs/agents-tab.js +1684 -369
  186. package/src/console/tabs/help-tab.js +261 -261
  187. package/src/console/tabs/install-tab.js +1007 -991
  188. package/src/console/tabs/music-tab.js +22 -8
  189. package/src/console/tabs/placeholder-tab.js +53 -46
  190. package/src/console/tabs/readme-tab.js +267 -267
  191. package/src/console/tabs/receiver-tab.js +1472 -0
  192. package/src/console/tabs/settings-tab.js +185 -402
  193. package/src/console/tabs/voices-tab.js +100 -21
  194. package/src/console/widgets/destroy-list.js +25 -0
  195. package/src/console/widgets/format-utils.js +89 -0
  196. package/src/console/widgets/notice.js +55 -0
  197. package/src/console/widgets/personality-picker.js +185 -0
  198. package/src/console/widgets/reverb-picker.js +94 -0
  199. package/src/console/widgets/track-picker.js +285 -0
  200. package/src/installer/music-file-input.js +304 -304
  201. package/src/installer.js +5882 -5777
  202. package/src/services/agent-voice-store.js +423 -163
  203. package/src/services/config-service.js +264 -264
  204. package/src/services/navigation-service.js +123 -123
  205. package/src/services/provider-service.js +132 -132
  206. package/src/services/verbosity-service.js +157 -157
  207. package/src/utils/audio-duration-validator.js +298 -298
  208. package/src/utils/audio-format-validator.js +277 -277
  209. package/src/utils/dependency-checker.js +469 -466
  210. package/src/utils/file-ownership-verifier.js +358 -358
  211. package/src/utils/list-formatter.js +194 -194
  212. package/src/utils/music-file-validator.js +285 -275
  213. package/src/utils/preview-list-prompt.js +136 -136
  214. package/src/utils/provider-validator.js +96 -12
  215. package/src/utils/secure-music-storage.js +412 -412
  216. package/templates/agentvibes-receiver.sh +482 -162
  217. package/templates/audio/welcome-music.mp3 +0 -0
  218. package/voice-assignments.json +8244 -8244
  219. package/.claude/config/background-music-position.txt +0 -1
@@ -1,169 +1,169 @@
1
- # Custom Instructions for Claude Desktop
2
-
3
- Add these to your Claude Desktop settings to enable automatic voice acknowledgments.
4
-
5
- ## Basic Auto-TTS
6
-
7
- ```markdown
8
- # Voice Acknowledgement Protocol
9
-
10
- When I give you a task:
11
- 1. Use the text_to_speech tool to acknowledge the task before starting
12
- 2. Perform the task
13
- 3. Use the text_to_speech tool to confirm completion
14
-
15
- Keep spoken messages brief (under 150 characters).
16
-
17
- Example workflow:
18
- - User: "Search for Python files"
19
- - You: [Call text_to_speech("Looking for Python files now")]
20
- [Perform the search]
21
- [Call text_to_speech("Found 23 Python files")]
22
- ```
23
-
24
- ## With Personality Support
25
-
26
- ```markdown
27
- # Voice Protocol with Dynamic Personality
28
-
29
- Before starting any task:
30
- 1. Call get_config() to check current personality setting
31
- 2. Generate a UNIQUE acknowledgment in that personality style
32
- 3. Use text_to_speech to speak the acknowledgment
33
- 4. Perform the task
34
- 5. Generate a UNIQUE completion message in the same personality
35
- 6. Use text_to_speech to speak the completion
36
-
37
- **CRITICAL:** Never repeat the same phrases! Each message must be freshly generated.
38
-
39
- Personality Examples:
40
-
41
- **Flirty personality:**
42
- - "I'll handle that for you, sweetheart"
43
- - "Ooh, I love when you ask me to do that"
44
- - "My pleasure, darling"
45
- - "Consider it done, gorgeous"
46
-
47
- **Sarcastic personality:**
48
- - "Oh what a treat, another task"
49
- - "How delightful, more work"
50
- - "Well isn't this fun"
51
- - "Another one? Wonderful"
52
-
53
- **Pirate personality:**
54
- - "Arr matey, I'll handle that fer ye"
55
- - "Aye aye captain, on it now"
56
- - "Shiver me timbers, I'll get that done"
57
- - "Yo ho ho, task accepted"
58
-
59
- **Robot personality:**
60
- - "Affirmative. Commencing task execution"
61
- - "Processing request. Please stand by"
62
- - "Task acknowledged. Initiating procedures"
63
- - "Request accepted. Beginning operations"
64
-
65
- Generate responses in the active personality's STYLE, not using fixed templates!
66
- ```
67
-
68
- ## For Multi-Language Support
69
-
70
- ```markdown
71
- # Multi-Language Voice Protocol
72
-
73
- When responding in different languages:
74
- 1. Check if a language is set using get_config()
75
- 2. If a non-English language is active, speak TTS messages in that language
76
- 3. Generate acknowledgments and completions in the target language
77
-
78
- Example with Spanish:
79
- - User: "Busca archivos Python" (Search for Python files)
80
- - You: [Call text_to_speech("Buscando archivos Python ahora", language="spanish")]
81
- [Perform search]
82
- [Call text_to_speech("EncontrƩ 23 archivos Python", language="spanish")]
83
- ```
84
-
85
- ## Selective Voice Usage
86
-
87
- ```markdown
88
- # Selective Voice Protocol
89
-
90
- Use text_to_speech in these scenarios:
91
- 1. āœ… Task acknowledgment (beginning of work)
92
- 2. āœ… Task completion (end of work)
93
- 3. āœ… Important warnings or errors
94
- 4. āŒ Don't use for intermediate steps
95
- 5. āŒ Don't use for every single message
96
-
97
- Example:
98
- - User: "Install dependencies and run tests"
99
- - You: [Call text_to_speech("Installing dependencies and running tests")]
100
- Installing dependencies...
101
- āœ… Dependencies installed
102
- Running tests...
103
- āœ… All 42 tests passed
104
- [Call text_to_speech("Dependencies installed and all tests passed")]
105
- ```
106
-
107
- ## Combined: Full Featured
108
-
109
- ```markdown
110
- # AgentVibes Full Voice Protocol
111
-
112
- When I give you a task:
113
-
114
- 1. **Check Configuration**
115
- - Call get_config() to see personality, language, voice
116
-
117
- 2. **Acknowledge Task**
118
- - Generate UNIQUE acknowledgment in active personality/language
119
- - Call text_to_speech with the message
120
- - Be creative! Never repeat phrases
121
-
122
- 3. **Perform Work**
123
- - Execute the task
124
- - Show progress in text (no TTS for intermediate steps)
125
-
126
- 4. **Complete Task**
127
- - Generate UNIQUE completion in same personality/language
128
- - Call text_to_speech with the message
129
-
130
- **Voice Guidelines:**
131
- - Keep TTS messages under 150 characters
132
- - Be creative and vary your responses
133
- - Match the personality style naturally
134
- - Use appropriate language if set
135
-
136
- **Personality Styles:**
137
- - normal: Professional and friendly
138
- - flirty: Playful and charming
139
- - sarcastic: Witty with gentle sarcasm
140
- - pirate: Nautical themed speech
141
- - robot: Technical and precise
142
- - zen: Calm and mindful
143
- - dramatic: Theatrical and expressive
144
- - millennial: Modern casual slang
145
- - angry: Frustrated but professional
146
- - sassy: Bold and confident
147
-
148
- **Languages:**
149
- Spanish, French, German, Italian, Portuguese, Chinese, Japanese,
150
- Korean, Russian, Polish, Dutch, Turkish, Arabic, Hindi, and more!
151
-
152
- Remember: Make each TTS message unique and naturally match the style!
153
- ```
154
-
155
- ## Usage Tips
156
-
157
- 1. **Start Simple:** Begin with basic auto-TTS, then add personality support
158
- 2. **Test Personalities:** Try different personalities to find your favorite
159
- 3. **Language Learning:** Use multi-language mode to practice languages
160
- 4. **Voice Variety:** Switch voices regularly using set_voice tool
161
- 5. **Audio History:** Use replay_audio(n) to replay recent messages
162
-
163
- ## Troubleshooting
164
-
165
- If Claude doesn't use TTS automatically:
166
- - Make sure custom instructions are saved
167
- - Try explicitly asking: "Use voice acknowledgment for this task"
168
- - Check that MCP server is configured correctly
169
- - Verify tools are available: Ask "What AgentVibes tools do you have?"
1
+ # Custom Instructions for Claude Desktop
2
+
3
+ Add these to your Claude Desktop settings to enable automatic voice acknowledgments.
4
+
5
+ ## Basic Auto-TTS
6
+
7
+ ```markdown
8
+ # Voice Acknowledgement Protocol
9
+
10
+ When I give you a task:
11
+ 1. Use the text_to_speech tool to acknowledge the task before starting
12
+ 2. Perform the task
13
+ 3. Use the text_to_speech tool to confirm completion
14
+
15
+ Keep spoken messages brief (under 150 characters).
16
+
17
+ Example workflow:
18
+ - User: "Search for Python files"
19
+ - You: [Call text_to_speech("Looking for Python files now")]
20
+ [Perform the search]
21
+ [Call text_to_speech("Found 23 Python files")]
22
+ ```
23
+
24
+ ## With Personality Support
25
+
26
+ ```markdown
27
+ # Voice Protocol with Dynamic Personality
28
+
29
+ Before starting any task:
30
+ 1. Call get_config() to check current personality setting
31
+ 2. Generate a UNIQUE acknowledgment in that personality style
32
+ 3. Use text_to_speech to speak the acknowledgment
33
+ 4. Perform the task
34
+ 5. Generate a UNIQUE completion message in the same personality
35
+ 6. Use text_to_speech to speak the completion
36
+
37
+ **CRITICAL:** Never repeat the same phrases! Each message must be freshly generated.
38
+
39
+ Personality Examples:
40
+
41
+ **Flirty personality:**
42
+ - "I'll handle that for you, sweetheart"
43
+ - "Ooh, I love when you ask me to do that"
44
+ - "My pleasure, darling"
45
+ - "Consider it done, gorgeous"
46
+
47
+ **Sarcastic personality:**
48
+ - "Oh what a treat, another task"
49
+ - "How delightful, more work"
50
+ - "Well isn't this fun"
51
+ - "Another one? Wonderful"
52
+
53
+ **Pirate personality:**
54
+ - "Arr matey, I'll handle that fer ye"
55
+ - "Aye aye captain, on it now"
56
+ - "Shiver me timbers, I'll get that done"
57
+ - "Yo ho ho, task accepted"
58
+
59
+ **Robot personality:**
60
+ - "Affirmative. Commencing task execution"
61
+ - "Processing request. Please stand by"
62
+ - "Task acknowledged. Initiating procedures"
63
+ - "Request accepted. Beginning operations"
64
+
65
+ Generate responses in the active personality's STYLE, not using fixed templates!
66
+ ```
67
+
68
+ ## For Multi-Language Support
69
+
70
+ ```markdown
71
+ # Multi-Language Voice Protocol
72
+
73
+ When responding in different languages:
74
+ 1. Check if a language is set using get_config()
75
+ 2. If a non-English language is active, speak TTS messages in that language
76
+ 3. Generate acknowledgments and completions in the target language
77
+
78
+ Example with Spanish:
79
+ - User: "Busca archivos Python" (Search for Python files)
80
+ - You: [Call text_to_speech("Buscando archivos Python ahora", language="spanish")]
81
+ [Perform search]
82
+ [Call text_to_speech("EncontrƩ 23 archivos Python", language="spanish")]
83
+ ```
84
+
85
+ ## Selective Voice Usage
86
+
87
+ ```markdown
88
+ # Selective Voice Protocol
89
+
90
+ Use text_to_speech in these scenarios:
91
+ 1. āœ… Task acknowledgment (beginning of work)
92
+ 2. āœ… Task completion (end of work)
93
+ 3. āœ… Important warnings or errors
94
+ 4. āŒ Don't use for intermediate steps
95
+ 5. āŒ Don't use for every single message
96
+
97
+ Example:
98
+ - User: "Install dependencies and run tests"
99
+ - You: [Call text_to_speech("Installing dependencies and running tests")]
100
+ Installing dependencies...
101
+ āœ… Dependencies installed
102
+ Running tests...
103
+ āœ… All 42 tests passed
104
+ [Call text_to_speech("Dependencies installed and all tests passed")]
105
+ ```
106
+
107
+ ## Combined: Full Featured
108
+
109
+ ```markdown
110
+ # AgentVibes Full Voice Protocol
111
+
112
+ When I give you a task:
113
+
114
+ 1. **Check Configuration**
115
+ - Call get_config() to see personality, language, voice
116
+
117
+ 2. **Acknowledge Task**
118
+ - Generate UNIQUE acknowledgment in active personality/language
119
+ - Call text_to_speech with the message
120
+ - Be creative! Never repeat phrases
121
+
122
+ 3. **Perform Work**
123
+ - Execute the task
124
+ - Show progress in text (no TTS for intermediate steps)
125
+
126
+ 4. **Complete Task**
127
+ - Generate UNIQUE completion in same personality/language
128
+ - Call text_to_speech with the message
129
+
130
+ **Voice Guidelines:**
131
+ - Keep TTS messages under 150 characters
132
+ - Be creative and vary your responses
133
+ - Match the personality style naturally
134
+ - Use appropriate language if set
135
+
136
+ **Personality Styles:**
137
+ - normal: Professional and friendly
138
+ - flirty: Playful and charming
139
+ - sarcastic: Witty with gentle sarcasm
140
+ - pirate: Nautical themed speech
141
+ - robot: Technical and precise
142
+ - zen: Calm and mindful
143
+ - dramatic: Theatrical and expressive
144
+ - millennial: Modern casual slang
145
+ - angry: Frustrated but professional
146
+ - sassy: Bold and confident
147
+
148
+ **Languages:**
149
+ Spanish, French, German, Italian, Portuguese, Chinese, Japanese,
150
+ Korean, Russian, Polish, Dutch, Turkish, Arabic, Hindi, and more!
151
+
152
+ Remember: Make each TTS message unique and naturally match the style!
153
+ ```
154
+
155
+ ## Usage Tips
156
+
157
+ 1. **Start Simple:** Begin with basic auto-TTS, then add personality support
158
+ 2. **Test Personalities:** Try different personalities to find your favorite
159
+ 3. **Language Learning:** Use multi-language mode to practice languages
160
+ 4. **Voice Variety:** Switch voices regularly using set_voice tool
161
+ 5. **Audio History:** Use replay_audio(n) to replay recent messages
162
+
163
+ ## Troubleshooting
164
+
165
+ If Claude doesn't use TTS automatically:
166
+ - Make sure custom instructions are saved
167
+ - Try explicitly asking: "Use voice acknowledgment for this task"
168
+ - Check that MCP server is configured correctly
169
+ - Verify tools are available: Ask "What AgentVibes tools do you have?"
@@ -1,130 +1,130 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Automatic MCP Python Dependencies Installer
4
- *
5
- * Runs after npm install to ensure Python mcp package is installed
6
- */
7
-
8
- import { execFileSync } from 'child_process';
9
- import { platform } from 'os';
10
-
11
- const isWindows = platform() === 'win32';
12
-
13
- console.log('šŸŽ¤ AgentVibes MCP Server - Installing Python dependencies...\n');
14
-
15
- // Function to check if Python is available
16
- function checkPython() {
17
- const pythonCommands = ['python3', 'python', 'py'];
18
-
19
- for (const cmd of pythonCommands) {
20
- // Security: Validate command is in our allowlist only
21
- if (!pythonCommands.includes(cmd)) {
22
- continue;
23
- }
24
-
25
- try {
26
- // Security: Use execFileSync with array args to prevent command injection
27
- const version = execFileSync(cmd, ['--version'], { encoding: 'utf8', stdio: 'pipe' });
28
- console.log(`āœ… Found ${cmd}: ${version.trim()}`);
29
- return cmd;
30
- } catch (error) {
31
- // Try next command
32
- }
33
- }
34
-
35
- return null;
36
- }
37
-
38
- // Function to check if mcp is installed
39
- function checkMcpInstalled(pythonCmd) {
40
- // Security: Validate pythonCmd is in allowlist
41
- const allowedCommands = ['python3', 'python', 'py'];
42
- if (!allowedCommands.includes(pythonCmd)) {
43
- console.error('āŒ Invalid Python command');
44
- return false;
45
- }
46
-
47
- try {
48
- // Security: Use execFileSync with array args to prevent command injection
49
- execFileSync(pythonCmd, ['-c', 'import mcp'], { stdio: 'pipe' });
50
- return true;
51
- } catch (error) {
52
- return false;
53
- }
54
- }
55
-
56
- // Function to install mcp package
57
- function installMcp(pythonCmd) {
58
- // Security: Validate pythonCmd is in allowlist
59
- const allowedCommands = ['python3', 'python', 'py'];
60
- if (!allowedCommands.includes(pythonCmd)) {
61
- console.error('āŒ Invalid Python command');
62
- return false;
63
- }
64
-
65
- try {
66
- console.log('\nšŸ“¦ Installing Python mcp package...');
67
- // Security: Use execFileSync with array args to prevent command injection
68
- execFileSync(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], { stdio: 'inherit' });
69
- console.log('āœ… Python mcp package installed successfully!\n');
70
- return true;
71
- } catch (error) {
72
- // Check if this is a PEP 668 externally-managed environment error (macOS, some Linux distros)
73
- const errorOutput = error.stderr?.toString() || error.message || '';
74
- if (errorOutput.includes('externally-managed-environment') || errorOutput.includes('PEP 668')) {
75
- console.log('ā„¹ļø Python environment is externally managed (PEP 668)');
76
- console.log(' This is normal on macOS and some Linux distributions');
77
- console.log(' MCP will work when installed in a virtual environment');
78
- console.log(' See mcp-server/README.md for setup instructions\n');
79
- return 'skipped'; // Special return value
80
- }
81
-
82
- console.error('āŒ Failed to install mcp package');
83
- console.error('āš ļø Manual installation required:');
84
- console.error(' Please install manually: pip install --user mcp');
85
- console.error(' Run: pip install mcp\n');
86
- return false;
87
- }
88
- }
89
-
90
- // Main installation flow
91
- function main() {
92
- // Check if Python is available
93
- const pythonCmd = checkPython();
94
-
95
- if (!pythonCmd) {
96
- console.error('āŒ Python not found!');
97
- console.error(' Please install Python 3.10+ from https://python.org\n');
98
- console.error(' After installing Python, run: npm run install-mcp-deps\n');
99
- process.exit(0); // Don't fail npm install
100
- }
101
-
102
- // Check if mcp is already installed
103
- if (checkMcpInstalled(pythonCmd)) {
104
- console.log('āœ… Python mcp package already installed\n');
105
- console.log('šŸŽ‰ AgentVibes MCP Server is ready to use!');
106
- console.log(' See mcp-server/README.md for setup instructions\n');
107
- return;
108
- }
109
-
110
- // Install mcp package
111
- const result = installMcp(pythonCmd);
112
-
113
- if (result === true) {
114
- console.log('šŸŽ‰ AgentVibes MCP Server setup complete!');
115
- console.log(' See mcp-server/README.md for Claude Desktop configuration\n');
116
- } else if (result === 'skipped') {
117
- console.log('āœ… AgentVibes MCP Server is ready for virtual environment setup');
118
- console.log(' Create a venv and install: python3 -m venv venv && source venv/bin/activate && pip install mcp\n');
119
- } else {
120
- console.log('āš ļø Manual installation required:');
121
- console.log(' Run: pip install mcp\n');
122
- }
123
- }
124
-
125
- // Run if executed directly
126
- if (import.meta.url === `file://${process.argv[1]}`) {
127
- main();
128
- }
129
-
130
- export { checkPython, checkMcpInstalled, installMcp };
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Automatic MCP Python Dependencies Installer
4
+ *
5
+ * Runs after npm install to ensure Python mcp package is installed
6
+ */
7
+
8
+ import { execFileSync } from 'child_process';
9
+ import { platform } from 'os';
10
+
11
+ const isWindows = platform() === 'win32';
12
+
13
+ console.log('šŸŽ¤ AgentVibes MCP Server - Installing Python dependencies...\n');
14
+
15
+ // Function to check if Python is available
16
+ function checkPython() {
17
+ const pythonCommands = ['python3', 'python', 'py'];
18
+
19
+ for (const cmd of pythonCommands) {
20
+ // Security: Validate command is in our allowlist only
21
+ if (!pythonCommands.includes(cmd)) {
22
+ continue;
23
+ }
24
+
25
+ try {
26
+ // Security: Use execFileSync with array args to prevent command injection
27
+ const version = execFileSync(cmd, ['--version'], { encoding: 'utf8', stdio: 'pipe' });
28
+ console.log(`āœ… Found ${cmd}: ${version.trim()}`);
29
+ return cmd;
30
+ } catch (error) {
31
+ // Try next command
32
+ }
33
+ }
34
+
35
+ return null;
36
+ }
37
+
38
+ // Function to check if mcp is installed
39
+ function checkMcpInstalled(pythonCmd) {
40
+ // Security: Validate pythonCmd is in allowlist
41
+ const allowedCommands = ['python3', 'python', 'py'];
42
+ if (!allowedCommands.includes(pythonCmd)) {
43
+ console.error('āŒ Invalid Python command');
44
+ return false;
45
+ }
46
+
47
+ try {
48
+ // Security: Use execFileSync with array args to prevent command injection
49
+ execFileSync(pythonCmd, ['-c', 'import mcp'], { stdio: 'pipe' });
50
+ return true;
51
+ } catch (error) {
52
+ return false;
53
+ }
54
+ }
55
+
56
+ // Function to install mcp package
57
+ function installMcp(pythonCmd) {
58
+ // Security: Validate pythonCmd is in allowlist
59
+ const allowedCommands = ['python3', 'python', 'py'];
60
+ if (!allowedCommands.includes(pythonCmd)) {
61
+ console.error('āŒ Invalid Python command');
62
+ return false;
63
+ }
64
+
65
+ try {
66
+ console.log('\nšŸ“¦ Installing Python mcp package...');
67
+ // Security: Use execFileSync with array args to prevent command injection
68
+ execFileSync(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], { stdio: 'inherit' });
69
+ console.log('āœ… Python mcp package installed successfully!\n');
70
+ return true;
71
+ } catch (error) {
72
+ // Check if this is a PEP 668 externally-managed environment error (macOS, some Linux distros)
73
+ const errorOutput = error.stderr?.toString() || error.message || '';
74
+ if (errorOutput.includes('externally-managed-environment') || errorOutput.includes('PEP 668')) {
75
+ console.log('ā„¹ļø Python environment is externally managed (PEP 668)');
76
+ console.log(' This is normal on macOS and some Linux distributions');
77
+ console.log(' MCP will work when installed in a virtual environment');
78
+ console.log(' See mcp-server/README.md for setup instructions\n');
79
+ return 'skipped'; // Special return value
80
+ }
81
+
82
+ console.error('āŒ Failed to install mcp package');
83
+ console.error('āš ļø Manual installation required:');
84
+ console.error(' Please install manually: pip install --user mcp');
85
+ console.error(' Run: pip install mcp\n');
86
+ return false;
87
+ }
88
+ }
89
+
90
+ // Main installation flow
91
+ function main() {
92
+ // Check if Python is available
93
+ const pythonCmd = checkPython();
94
+
95
+ if (!pythonCmd) {
96
+ console.error('āŒ Python not found!');
97
+ console.error(' Please install Python 3.10+ from https://python.org\n');
98
+ console.error(' After installing Python, run: npm run install-mcp-deps\n');
99
+ process.exit(0); // Don't fail npm install
100
+ }
101
+
102
+ // Check if mcp is already installed
103
+ if (checkMcpInstalled(pythonCmd)) {
104
+ console.log('āœ… Python mcp package already installed\n');
105
+ console.log('šŸŽ‰ AgentVibes MCP Server is ready to use!');
106
+ console.log(' See mcp-server/README.md for setup instructions\n');
107
+ return;
108
+ }
109
+
110
+ // Install mcp package
111
+ const result = installMcp(pythonCmd);
112
+
113
+ if (result === true) {
114
+ console.log('šŸŽ‰ AgentVibes MCP Server setup complete!');
115
+ console.log(' See mcp-server/README.md for Claude Desktop configuration\n');
116
+ } else if (result === 'skipped') {
117
+ console.log('āœ… AgentVibes MCP Server is ready for virtual environment setup');
118
+ console.log(' Create a venv and install: python3 -m venv venv && source venv/bin/activate && pip install mcp\n');
119
+ } else {
120
+ console.log('āš ļø Manual installation required:');
121
+ console.log(' Run: pip install mcp\n');
122
+ }
123
+ }
124
+
125
+ // Run if executed directly
126
+ if (import.meta.url === `file://${process.argv[1]}`) {
127
+ main();
128
+ }
129
+
130
+ export { checkPython, checkMcpInstalled, installMcp };