agentvibes 4.2.0 ā 4.4.1
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/.agentvibes/bmad/bmad-voices.md +69 -69
- package/.agentvibes/config.json +12 -0
- package/.claude/activation-instructions +54 -54
- package/.claude/audio/tracks/README.md +52 -52
- package/.claude/commands/agent-vibes/add.md +21 -21
- package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
- package/.claude/commands/agent-vibes/agent.md +79 -79
- package/.claude/commands/agent-vibes/background-music.md +111 -111
- package/.claude/commands/agent-vibes/bmad.md +198 -198
- package/.claude/commands/agent-vibes/clean.md +18 -18
- package/.claude/commands/agent-vibes/cleanup.md +18 -18
- package/.claude/commands/agent-vibes/commands.json +145 -145
- package/.claude/commands/agent-vibes/effects.md +97 -97
- package/.claude/commands/agent-vibes/get.md +9 -9
- package/.claude/commands/agent-vibes/hide.md +91 -91
- package/.claude/commands/agent-vibes/language.md +23 -23
- package/.claude/commands/agent-vibes/learn.md +67 -67
- package/.claude/commands/agent-vibes/list.md +13 -13
- package/.claude/commands/agent-vibes/mute.md +37 -37
- package/.claude/commands/agent-vibes/preview.md +17 -17
- package/.claude/commands/agent-vibes/provider.md +68 -68
- package/.claude/commands/agent-vibes/replay-target.md +14 -14
- package/.claude/commands/agent-vibes/sample.md +12 -12
- package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
- package/.claude/commands/agent-vibes/set-pretext.md +65 -65
- package/.claude/commands/agent-vibes/set-speed.md +41 -41
- package/.claude/commands/agent-vibes/show.md +84 -84
- package/.claude/commands/agent-vibes/switch.md +87 -87
- package/.claude/commands/agent-vibes/target-voice.md +26 -26
- package/.claude/commands/agent-vibes/target.md +30 -30
- package/.claude/commands/agent-vibes/translate.md +68 -68
- package/.claude/commands/agent-vibes/unmute.md +45 -45
- package/.claude/commands/agent-vibes/verbosity.md +89 -89
- package/.claude/commands/agent-vibes/whoami.md +7 -7
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/agentvibes.json +1 -0
- package/.claude/config/audio-effects.cfg +2 -2
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/config/background-music-volume.txt +1 -0
- package/.claude/config/intro-text.txt +1 -0
- package/.claude/config/piper-speech-rate.txt +4 -0
- package/.claude/config/piper-target-speech-rate.txt +1 -0
- package/.claude/config/reverb-level.txt +1 -0
- package/.claude/config/tts-speech-rate.txt +4 -0
- package/.claude/config/tts-target-speech-rate.txt +1 -0
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/README-TTS-QUEUE.md +135 -135
- package/.claude/hooks/audio-cache-utils.sh +246 -246
- package/.claude/hooks/audio-processor.sh +433 -433
- package/.claude/hooks/background-music-manager.sh +404 -404
- package/.claude/hooks/bmad-speak-enhanced.sh +165 -165
- package/.claude/hooks/bmad-speak.sh +269 -269
- package/.claude/hooks/bmad-tts-injector.sh +568 -568
- package/.claude/hooks/bmad-voice-manager.sh +928 -928
- package/.claude/hooks/clawdbot-receiver-SECURE.sh +129 -129
- package/.claude/hooks/clawdbot-receiver.sh +107 -107
- package/.claude/hooks/clean-audio-cache.sh +22 -22
- package/.claude/hooks/cleanup-cache.sh +106 -106
- package/.claude/hooks/configure-rdp-mode.sh +137 -137
- package/.claude/hooks/download-extra-voices.sh +244 -244
- package/.claude/hooks/effects-manager.sh +268 -268
- package/.claude/hooks/github-star-reminder.sh +154 -154
- package/.claude/hooks/language-manager.sh +362 -362
- package/.claude/hooks/learn-manager.sh +492 -492
- package/.claude/hooks/macos-voice-manager.sh +205 -205
- package/.claude/hooks/migrate-background-music.sh +125 -125
- package/.claude/hooks/migrate-to-agentvibes.sh +161 -161
- package/.claude/hooks/optimize-background-music.sh +87 -87
- package/.claude/hooks/path-resolver.sh +60 -60
- package/.claude/hooks/personality-manager.sh +448 -448
- package/.claude/hooks/piper-download-voices.sh +225 -225
- package/.claude/hooks/piper-installer.sh +292 -292
- package/.claude/hooks/piper-multispeaker-registry.sh +171 -171
- package/.claude/hooks/piper-voice-manager.sh +24 -3
- package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +90 -90
- package/.claude/hooks/play-tts-enhanced.sh +105 -105
- package/.claude/hooks/play-tts-macos.sh +368 -368
- package/.claude/hooks/play-tts-piper.sh +679 -679
- package/.claude/hooks/play-tts-soprano.sh +356 -356
- package/.claude/hooks/play-tts-ssh-remote.sh +167 -167
- package/.claude/hooks/play-tts-termux-ssh.sh +169 -169
- package/.claude/hooks/play-tts.sh +301 -301
- package/.claude/hooks/prepare-release.sh +54 -54
- package/.claude/hooks/provider-commands.sh +617 -617
- package/.claude/hooks/provider-manager.sh +399 -399
- package/.claude/hooks/replay-target-audio.sh +95 -95
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/sentiment-manager.sh +201 -201
- package/.claude/hooks/session-start-tts.sh +81 -81
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/speed-manager.sh +291 -291
- package/.claude/hooks/stop-tts.sh +84 -84
- package/.claude/hooks/termux-installer.sh +261 -261
- package/.claude/hooks/translate-manager.sh +341 -341
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks/tts-queue-worker.sh +145 -145
- package/.claude/hooks/tts-queue.sh +165 -165
- package/.claude/hooks/verbosity-manager.sh +178 -178
- package/.claude/hooks/voice-manager.sh +548 -548
- package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
- package/.claude/hooks-windows/background-music-manager.ps1 +348 -0
- package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -0
- package/.claude/hooks-windows/download-extra-voices.ps1 +185 -0
- package/.claude/hooks-windows/effects-manager.ps1 +294 -0
- package/.claude/hooks-windows/language-manager.ps1 +193 -0
- package/.claude/hooks-windows/learn-manager.ps1 +241 -0
- package/.claude/hooks-windows/personality-manager.ps1 +266 -0
- package/.claude/hooks-windows/play-tts-piper.ps1 +209 -0
- package/.claude/hooks-windows/play-tts-sapi.ps1 +108 -0
- package/.claude/hooks-windows/play-tts-soprano.ps1 +159 -158
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +50 -5
- package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
- package/.claude/hooks-windows/play-tts.ps1 +344 -266
- package/.claude/hooks-windows/provider-manager.ps1 +29 -10
- package/.claude/hooks-windows/session-start-tts.ps1 +124 -124
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/hooks-windows/speed-manager.ps1 +166 -0
- package/.claude/hooks-windows/verbosity-manager.ps1 +119 -0
- package/.claude/hooks-windows/voice-manager-windows.ps1 +92 -8
- package/.claude/output-styles/agent-vibes.md +202 -202
- package/.claude/personalities/angry.md +14 -14
- package/.claude/personalities/annoying.md +14 -14
- package/.claude/personalities/crass.md +14 -14
- package/.claude/personalities/dramatic.md +14 -14
- package/.claude/personalities/dry-humor.md +50 -50
- package/.claude/personalities/flirty.md +20 -20
- package/.claude/personalities/funny.md +14 -14
- package/.claude/personalities/grandpa.md +32 -32
- package/.claude/personalities/millennial.md +14 -14
- package/.claude/personalities/moody.md +14 -14
- package/.claude/personalities/normal.md +16 -16
- package/.claude/personalities/pirate.md +14 -14
- package/.claude/personalities/poetic.md +14 -14
- package/.claude/personalities/professional.md +14 -14
- package/.claude/personalities/rapper.md +55 -55
- package/.claude/personalities/robot.md +14 -14
- package/.claude/personalities/sarcastic.md +38 -38
- package/.claude/personalities/sassy.md +14 -14
- package/.claude/personalities/surfer-dude.md +14 -14
- package/.claude/personalities/zen.md +14 -14
- package/.claude/settings.json +15 -15
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/.clawdbot/skill/SKILL.md +241 -241
- package/.mcp.json +12 -0
- package/CLAUDE.md +170 -170
- package/README.md +2029 -2007
- package/RELEASE_NOTES.md +1310 -1203
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +39 -39
- package/bin/agentvibes-voice-browser.js +1840 -1840
- package/bin/agentvibes.js +48 -2
- package/bin/mcp-server.js +121 -121
- package/bin/mcp-server.sh +206 -206
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/WINDOWS_SETUP.md +260 -260
- package/mcp-server/docs/troubleshooting-audio.md +313 -313
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +130 -130
- package/mcp-server/pyproject.toml +52 -52
- package/mcp-server/requirements.txt +2 -2
- package/mcp-server/server.py +1465 -1453
- package/mcp-server/test_server.py +395 -395
- package/mcp-server/test_windows_script_parity.py +336 -0
- package/package.json +110 -110
- package/setup-windows.ps1 +815 -815
- package/src/bmad-detector.js +71 -71
- package/src/cli/list-personalities.js +110 -110
- package/src/cli/list-voices.js +114 -114
- package/src/commands/bmad-voices.js +394 -394
- package/src/commands/install-mcp.js +476 -476
- package/src/console/app.js +824 -824
- package/src/console/audio-env.js +20 -1
- package/src/console/brand-colors.js +13 -13
- package/src/console/constants/personalities.js +44 -44
- package/src/console/footer-config.js +50 -50
- package/src/console/modals/modal-overlay.js +247 -247
- package/src/console/navigation.js +62 -62
- package/src/console/tabs/agents-tab.js +1684 -1516
- package/src/console/tabs/help-tab.js +261 -261
- package/src/console/tabs/install-tab.js +1007 -991
- package/src/console/tabs/music-tab.js +22 -8
- package/src/console/tabs/placeholder-tab.js +53 -53
- package/src/console/tabs/readme-tab.js +267 -267
- package/src/console/tabs/receiver-tab.js +1472 -1212
- package/src/console/tabs/settings-tab.js +208 -84
- package/src/console/tabs/voices-tab.js +100 -21
- package/src/console/widgets/destroy-list.js +25 -25
- package/src/console/widgets/format-utils.js +89 -89
- package/src/console/widgets/notice.js +55 -55
- package/src/console/widgets/personality-picker.js +185 -185
- package/src/console/widgets/reverb-picker.js +94 -94
- package/src/console/widgets/track-picker.js +285 -285
- package/src/installer/music-file-input.js +304 -304
- package/src/installer.js +5895 -5829
- package/src/services/agent-voice-store.js +423 -423
- package/src/services/config-service.js +264 -264
- package/src/services/navigation-service.js +123 -123
- package/src/services/provider-service.js +143 -132
- package/src/services/verbosity-service.js +157 -157
- package/src/utils/audio-duration-validator.js +298 -298
- package/src/utils/audio-format-validator.js +277 -277
- package/src/utils/dependency-checker.js +469 -466
- package/src/utils/file-ownership-verifier.js +358 -358
- package/src/utils/list-formatter.js +194 -194
- package/src/utils/music-file-validator.js +285 -285
- package/src/utils/preview-list-prompt.js +136 -136
- package/src/utils/provider-validator.js +96 -12
- package/src/utils/secure-music-storage.js +412 -412
- package/templates/agentvibes-receiver.sh +482 -482
- package/templates/audio/welcome-music.mp3 +0 -0
- package/voice-assignments.json +8244 -8244
- 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 };
|