agentvibes 2.0.20 → 2.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/health-coach.md +154 -0
- package/.claude/agents/motivator.md +171 -0
- package/.claude/agents/negotiator.md +97 -0
- package/.claude/commands/agent-vibes/agent-health-coach.md +15 -0
- package/.claude/commands/agent-vibes/agent-motivator.md +15 -0
- package/.claude/commands/agent-vibes/agent-negotiator.md +15 -0
- package/.claude/commands/agent-vibes/agent.md +79 -0
- package/.claude/commands/agent-vibes/commands.json +4 -0
- package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -0
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/download-extra-voices.sh +244 -0
- package/.claude/hooks/personality-manager.sh +81 -0
- package/.claude/hooks/piper-download-voices.sh +3 -93
- package/.claude/hooks/piper-multispeaker-registry.sh +165 -0
- package/.claude/hooks/play-tts-elevenlabs.sh +5 -3
- package/.claude/hooks/play-tts-piper.sh +27 -44
- package/.claude/hooks/provider-manager.sh +24 -5
- package/.claude/hooks/speed-manager.sh +10 -12
- package/.claude/hooks/voice-manager.sh +94 -56
- package/README.md +0 -3
- package/RELEASE_NOTES.md +40 -247
- package/docs/agents.md +485 -0
- package/docs/commands.md +1 -21
- package/docs/extra-voices-implementation-summary.md +235 -0
- package/docs/voice-registration-fix.md +254 -0
- package/fix-vscode-colors.sh +88 -0
- package/fixcolors +88 -0
- package/generate-all-agent-voices.sh +174 -0
- package/generate-missing-elevenlabs-complete.sh +236 -0
- package/generate-missing-elevenlabs.sh +110 -0
- package/generate-new-voices.sh +108 -0
- package/generate-piper-agent-intros.sh +85 -0
- package/generate-provider-and-agent-intros.sh +136 -0
- package/logo/fav_icon_128x128.png +0 -0
- package/logo/fav_icon_128x128.png:Zone.Identifier +4 -0
- package/logo/logo1.webp +0 -0
- package/logo/logo1.webp:Zone.Identifier +4 -0
- package/logo/social.png +0 -0
- package/logo/social.png:Zone.Identifier +4 -0
- package/mcp-server/agentvibes.db +0 -0
- package/mcp-server/server.py +47 -14
- package/package.json +3 -3
- package/regenerate-agent-voices.sh +79 -0
- package/test/unit/provider-manager.bats +8 -5
- package/test/unit/speed-manager.bats +4 -4
- package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
- package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
- package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
- package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +0 -196
- package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -77
- package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
- package/agentvibes.org/.claude/commands/agent-vibes/language.md +0 -23
- package/agentvibes.org/.claude/commands/agent-vibes/learn.md +0 -67
- package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
- package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
- package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -17
- package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
- package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +0 -14
- package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
- package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
- package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
- package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
- package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
- package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +0 -41
- package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
- package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +0 -26
- package/agentvibes.org/.claude/commands/agent-vibes/target.md +0 -30
- package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
- package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
- package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
- package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +0 -386
- package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -375
- package/agentvibes.org/.claude/hooks/check-output-style.sh +0 -60
- package/agentvibes.org/.claude/hooks/github-star-reminder.sh +0 -94
- package/agentvibes.org/.claude/hooks/language-manager.sh +0 -360
- package/agentvibes.org/.claude/hooks/learn-manager.sh +0 -443
- package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -324
- package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
- package/agentvibes.org/.claude/hooks/piper-installer.sh +0 -144
- package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
- package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -376
- package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -281
- package/agentvibes.org/.claude/hooks/play-tts.sh +0 -69
- package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -505
- package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -248
- package/agentvibes.org/.claude/hooks/replay-target-audio.sh +0 -64
- package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
- package/agentvibes.org/.claude/hooks/speed-manager.sh +0 -259
- package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -477
- package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
- package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
- package/agentvibes.org/.claude/journal/index.html +0 -91
- package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
- package/agentvibes.org/.claude/personalities/angry.md +0 -17
- package/agentvibes.org/.claude/personalities/annoying.md +0 -17
- package/agentvibes.org/.claude/personalities/crass.md +0 -17
- package/agentvibes.org/.claude/personalities/dramatic.md +0 -17
- package/agentvibes.org/.claude/personalities/dry-humor.md +0 -53
- package/agentvibes.org/.claude/personalities/flirty.md +0 -23
- package/agentvibes.org/.claude/personalities/funny.md +0 -17
- package/agentvibes.org/.claude/personalities/grandpa.md +0 -35
- package/agentvibes.org/.claude/personalities/millennial.md +0 -17
- package/agentvibes.org/.claude/personalities/moody.md +0 -17
- package/agentvibes.org/.claude/personalities/normal.md +0 -19
- package/agentvibes.org/.claude/personalities/pirate.md +0 -17
- package/agentvibes.org/.claude/personalities/poetic.md +0 -17
- package/agentvibes.org/.claude/personalities/professional.md +0 -17
- package/agentvibes.org/.claude/personalities/robot.md +0 -17
- package/agentvibes.org/.claude/personalities/sarcastic.md +0 -41
- package/agentvibes.org/.claude/personalities/sassy.md +0 -17
- package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -17
- package/agentvibes.org/.claude/personalities/zen.md +0 -17
- package/agentvibes.org/.claude/piper-voices-dir.txt +0 -1
- package/agentvibes.org/.claude/plugins/bmad-voices.md +0 -42
- package/agentvibes.org/.claude/tts-provider.txt +0 -1
- package/agentvibes.org/.mcp-minimal.json +0 -60
- package/agentvibes.org/CHANGELOG.md +0 -56
- package/agentvibes.org/README.md +0 -93
- package/agentvibes.org/app/(auth)/layout.tsx +0 -15
- package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
- package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
- package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
- package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +0 -128
- package/agentvibes.org/app/(default)/blog/page.tsx +0 -95
- package/agentvibes.org/app/(default)/layout.tsx +0 -31
- package/agentvibes.org/app/(default)/page.tsx +0 -20
- package/agentvibes.org/app/api/hello/route.ts +0 -3
- package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
- package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
- package/agentvibes.org/app/css/style.css +0 -100
- package/agentvibes.org/app/layout.tsx +0 -63
- package/agentvibes.org/components/code-block.tsx +0 -27
- package/agentvibes.org/components/cta.tsx +0 -58
- package/agentvibes.org/components/features.tsx +0 -256
- package/agentvibes.org/components/hero-home.tsx +0 -133
- package/agentvibes.org/components/mdx-components.tsx +0 -128
- package/agentvibes.org/components/modal-video.tsx +0 -137
- package/agentvibes.org/components/page-illustration.tsx +0 -55
- package/agentvibes.org/components/spotlight.tsx +0 -77
- package/agentvibes.org/components/testimonials.tsx +0 -282
- package/agentvibes.org/components/ui/footer.tsx +0 -82
- package/agentvibes.org/components/ui/header.tsx +0 -68
- package/agentvibes.org/components/ui/logo.tsx +0 -10
- package/agentvibes.org/components/workflows.tsx +0 -176
- package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +0 -253
- package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +0 -228
- package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +0 -250
- package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +0 -142
- package/agentvibes.org/content/blog/voice-personalities-guide.mdx +0 -119
- package/agentvibes.org/lib/blog.ts +0 -73
- package/agentvibes.org/next.config.js +0 -6
- package/agentvibes.org/package-lock.json +0 -4285
- package/agentvibes.org/package.json +0 -40
- package/agentvibes.org/pnpm-lock.yaml +0 -1141
- package/agentvibes.org/postcss.config.js +0 -5
- package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
- package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
- package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
- package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
- package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
- package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
- package/agentvibes.org/public/favicon.ico +0 -0
- package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
- package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
- package/agentvibes.org/public/images/blurred-shape.svg +0 -1
- package/agentvibes.org/public/images/client-logo-01.svg +0 -1
- package/agentvibes.org/public/images/client-logo-02.svg +0 -1
- package/agentvibes.org/public/images/client-logo-03.svg +0 -1
- package/agentvibes.org/public/images/client-logo-04.svg +0 -1
- package/agentvibes.org/public/images/client-logo-05.svg +0 -1
- package/agentvibes.org/public/images/client-logo-06.svg +0 -1
- package/agentvibes.org/public/images/client-logo-07.svg +0 -1
- package/agentvibes.org/public/images/client-logo-08.svg +0 -1
- package/agentvibes.org/public/images/client-logo-09.svg +0 -1
- package/agentvibes.org/public/images/features.png +0 -0
- package/agentvibes.org/public/images/footer-illustration.svg +0 -1
- package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
- package/agentvibes.org/public/images/logo.svg +0 -1
- package/agentvibes.org/public/images/page-illustration.svg +0 -1
- package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
- package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
- package/agentvibes.org/public/images/workflow-01.png +0 -0
- package/agentvibes.org/public/images/workflow-02.png +0 -0
- package/agentvibes.org/public/images/workflow-03.png +0 -0
- package/agentvibes.org/public/videos/video.mp4 +0 -0
- package/agentvibes.org/tsconfig.json +0 -28
- package/agentvibes.org/utils/useMasonry.tsx +0 -67
- package/agentvibes.org/utils/useMousePosition.tsx +0 -27
- package/docs/bryce-beattie-voice-licensing.md +0 -131
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set a pretext word/phrase that prefixes all TTS announcements
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Set TTS Pretext
|
|
6
|
-
|
|
7
|
-
Configure a word or phrase that will be spoken before every TTS message.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
/agent-vibes:set-pretext <word>
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Examples
|
|
16
|
-
|
|
17
|
-
Set "AgentVibes" as the pretext:
|
|
18
|
-
```bash
|
|
19
|
-
/agent-vibes:set-pretext AgentVibes
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Set a phrase:
|
|
23
|
-
```bash
|
|
24
|
-
/agent-vibes:set-pretext "Project Alpha"
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Clear the pretext:
|
|
28
|
-
```bash
|
|
29
|
-
/agent-vibes:set-pretext ""
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## What It Does
|
|
33
|
-
|
|
34
|
-
When a pretext is set:
|
|
35
|
-
- **Without pretext**: "I'll do the task"
|
|
36
|
-
- **With pretext**: "AgentVibes: I'll do the task"
|
|
37
|
-
|
|
38
|
-
The pretext is saved locally in `.claude/config/agentvibes.json` and persists across sessions.
|
|
39
|
-
|
|
40
|
-
!bash
|
|
41
|
-
CONFIG_DIR="${CLAUDE_PROJECT_DIR:-.}/.claude/config"
|
|
42
|
-
CONFIG_FILE="$CONFIG_DIR/agentvibes.json"
|
|
43
|
-
|
|
44
|
-
# Get the pretext from arguments
|
|
45
|
-
PRETEXT="$ARGUMENTS"
|
|
46
|
-
|
|
47
|
-
# Create config directory if it doesn't exist
|
|
48
|
-
mkdir -p "$CONFIG_DIR"
|
|
49
|
-
|
|
50
|
-
# Initialize config file if it doesn't exist
|
|
51
|
-
if [ ! -f "$CONFIG_FILE" ]; then
|
|
52
|
-
echo '{}' > "$CONFIG_FILE"
|
|
53
|
-
fi
|
|
54
|
-
|
|
55
|
-
# Update or clear the pretext
|
|
56
|
-
if [ -z "$PRETEXT" ]; then
|
|
57
|
-
# Clear pretext
|
|
58
|
-
jq 'del(.pretext)' "$CONFIG_FILE" > "${CONFIG_FILE}.tmp" && mv "${CONFIG_FILE}.tmp" "$CONFIG_FILE"
|
|
59
|
-
echo "✅ Pretext cleared"
|
|
60
|
-
else
|
|
61
|
-
# Set pretext
|
|
62
|
-
jq --arg pretext "$PRETEXT" '.pretext = $pretext' "$CONFIG_FILE" > "${CONFIG_FILE}.tmp" && mv "${CONFIG_FILE}.tmp" "$CONFIG_FILE"
|
|
63
|
-
echo "✅ Pretext set to: $PRETEXT"
|
|
64
|
-
echo "📢 All TTS messages will now start with: \"$PRETEXT:\""
|
|
65
|
-
fi
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set TTS speech speed for Piper voices
|
|
3
|
-
argument-hint: [target] <speed>
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Set Speech Speed
|
|
7
|
-
|
|
8
|
-
Control the speech rate for Piper TTS voices (ElevenLabs doesn't support speed control).
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/agent-vibes:set-speed 2x # Set main voice to 2x slower
|
|
14
|
-
/agent-vibes:set-speed target 2x # Set target language to 2x slower
|
|
15
|
-
/agent-vibes:set-speed 0.5x # Set main voice to 2x faster
|
|
16
|
-
/agent-vibes:set-speed target 3x # Set target language to 3x slower
|
|
17
|
-
/agent-vibes:set-speed normal # Reset to normal speed (1.0)
|
|
18
|
-
/agent-vibes:set-speed target normal # Reset target to normal speed
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Speed Values
|
|
22
|
-
|
|
23
|
-
- `0.5x` or `-2x` = 2x faster (half duration)
|
|
24
|
-
- `1x` or `normal` = Normal speed
|
|
25
|
-
- `2x` or `+2x` = 2x slower (double duration, great for learning)
|
|
26
|
-
- `3x` or `+3x` = 3x slower (triple duration, very slow)
|
|
27
|
-
|
|
28
|
-
## Examples
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Make Spanish 2x slower for learning
|
|
32
|
-
/agent-vibes:set-speed target 2x
|
|
33
|
-
|
|
34
|
-
# Make main voice faster
|
|
35
|
-
/agent-vibes:set-speed 0.5x
|
|
36
|
-
|
|
37
|
-
# Reset target language to normal speed
|
|
38
|
-
/agent-vibes:set-speed target normal
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
!bash .claude/hooks/speed-manager.sh $ARGUMENTS
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Switch to a different ElevenLabs TTS voice
|
|
3
|
-
argument-hint: [voice_name_or_number] [--sentiment personality_name]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Voice Selection
|
|
7
|
-
|
|
8
|
-
If no arguments provided, display this list:
|
|
9
|
-
|
|
10
|
-
## 🎤 Available ElevenLabs Voices
|
|
11
|
-
|
|
12
|
-
1. **Amy** - Young and friendly
|
|
13
|
-
2. **Aria** - Clear professional
|
|
14
|
-
3. **Cowboy Bob** - Western charm
|
|
15
|
-
4. **Demon Monster** - Deep and spooky
|
|
16
|
-
5. **Dr. Von Fusion** - Eccentric scientist
|
|
17
|
-
6. **Drill Sergeant** - Military authority
|
|
18
|
-
7. **Grandpa Spuds Oxley** - Wise elder
|
|
19
|
-
8. **Jessica Anne Bogart** - Wickedly eloquent
|
|
20
|
-
9. **Lutz Laugh** - Jovial and giggly
|
|
21
|
-
10. **Matthew Schmitz** - Deep baritone
|
|
22
|
-
11. **Michael** - British urban
|
|
23
|
-
12. **Ms. Walker** - Warm teacher
|
|
24
|
-
13. **Northern Terry** - Eccentric British
|
|
25
|
-
14. **Ralf Eisend** - International speaker
|
|
26
|
-
|
|
27
|
-
Then check current voice with: !bash .claude/hooks/voice-manager.sh get
|
|
28
|
-
|
|
29
|
-
And inform user: "To switch voices, use `/agent-vibes:switch <number>` or `/agent-vibes:switch <name>`"
|
|
30
|
-
|
|
31
|
-
If arguments ARE provided:
|
|
32
|
-
|
|
33
|
-
1. Parse arguments for --sentiment flag
|
|
34
|
-
2. If --sentiment is present:
|
|
35
|
-
- Extract voice name/number (everything before --sentiment)
|
|
36
|
-
- Extract sentiment name (after --sentiment)
|
|
37
|
-
- Execute: !bash .claude/hooks/voice-manager.sh switch <voice>
|
|
38
|
-
- Then execute: !bash .claude/hooks/sentiment-manager.sh set <sentiment>
|
|
39
|
-
3. If no --sentiment flag:
|
|
40
|
-
- Execute: !bash .claude/hooks/voice-manager.sh switch $ARGUMENTS
|
|
41
|
-
|
|
42
|
-
## Examples
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
# Switch voice only
|
|
46
|
-
/agent-vibes:switch Jessica Anne Bogart
|
|
47
|
-
|
|
48
|
-
# Switch voice and set sentiment
|
|
49
|
-
/agent-vibes:switch Aria --sentiment sarcastic
|
|
50
|
-
|
|
51
|
-
# Switch by number with sentiment
|
|
52
|
-
/agent-vibes:switch 5 --sentiment flirty
|
|
53
|
-
```
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set the voice for your target language
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Set which voice to use when speaking your target language. This should typically be a multilingual voice that supports your target language.
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
```
|
|
9
|
-
/agent-vibes:target-voice Antoni
|
|
10
|
-
/agent-vibes:target-voice Rachel
|
|
11
|
-
/agent-vibes:target-voice Domi
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Recommended multilingual voices:
|
|
15
|
-
- **Antoni** - Best for Spanish, Portuguese
|
|
16
|
-
- **Rachel** - Best for French, English
|
|
17
|
-
- **Domi** - Best for German, European languages
|
|
18
|
-
- **Bella** - Best for Italian, Romance languages
|
|
19
|
-
- **Charlotte** - European languages
|
|
20
|
-
- **Matilda** - Latin languages
|
|
21
|
-
|
|
22
|
-
These voices support 30+ languages using ElevenLabs' Multilingual v2 model.
|
|
23
|
-
|
|
24
|
-
After setting your target voice:
|
|
25
|
-
- Enable learning mode with `/agent-vibes:learn`
|
|
26
|
-
- Check your setup with `/agent-vibes:learn status`
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Set the language you want to learn
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Set the target language you want to learn. When learning mode is enabled, TTS will speak in your main language FIRST, then speak the translation in your target language.
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
```
|
|
9
|
-
/agent-vibes:target spanish
|
|
10
|
-
/agent-vibes:target french
|
|
11
|
-
/agent-vibes:target german
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Recommended voices by target language:
|
|
15
|
-
- Spanish → Antoni (ElevenLabs) / es_ES-davefx-medium (Piper)
|
|
16
|
-
- French → Rachel (ElevenLabs) / fr_FR-siwis-medium (Piper)
|
|
17
|
-
- German → Domi (ElevenLabs) / de_DE-thorsten-medium (Piper)
|
|
18
|
-
- Italian → Bella (ElevenLabs) / it_IT-riccardo-x_low (Piper)
|
|
19
|
-
- Portuguese → Matilda (ElevenLabs) / pt_BR-faber-medium (Piper)
|
|
20
|
-
- Chinese → Amy (ElevenLabs) / zh_CN-huayan-medium (Piper)
|
|
21
|
-
- Japanese → Antoni (ElevenLabs) / ja_JP-hikari-medium (Piper)
|
|
22
|
-
- Other languages → Antoni (ElevenLabs) / check available Piper voices
|
|
23
|
-
|
|
24
|
-
**Note:** The system will automatically suggest the correct voice based on your active TTS provider. After setting your target language, the suggestion will match whether you're using ElevenLabs or Piper.
|
|
25
|
-
|
|
26
|
-
After setting your target language:
|
|
27
|
-
1. Set the voice for target language with `/agent-vibes:target-voice <voice>`
|
|
28
|
-
2. Enable learning mode with `/agent-vibes:learn`
|
|
29
|
-
|
|
30
|
-
Supported languages: spanish, french, german, italian, portuguese, chinese, japanese, korean, hindi, arabic, polish, dutch, turkish, swedish, russian, and 15+ more.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Update AgentVibes to the latest version
|
|
3
|
-
argument-hint: [--yes]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Updates AgentVibes to the latest version from the npm registry.
|
|
7
|
-
|
|
8
|
-
This will update:
|
|
9
|
-
- All slash commands
|
|
10
|
-
- TTS scripts and hooks
|
|
11
|
-
- Personality templates (new ones added, existing ones updated)
|
|
12
|
-
- Output styles
|
|
13
|
-
|
|
14
|
-
Your custom settings and voice configurations will be preserved.
|
|
15
|
-
|
|
16
|
-
Usage examples:
|
|
17
|
-
- `/agent-vibes:update` - Update with confirmation prompt
|
|
18
|
-
- `/agent-vibes:update --yes` - Update without confirmation
|
|
19
|
-
|
|
20
|
-
!bash npx agent-vibes update $ARGUMENTS
|
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# @fileoverview BMAD TTS Injection Manager
|
|
4
|
-
# @context Automatically patches BMAD agent files to include AgentVibes TTS hooks
|
|
5
|
-
# @architecture Modifies agent YAML activation-instructions to call play-tts.sh
|
|
6
|
-
# @why Enables BMAD agents to speak their greetings and questions via TTS
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
set -e # Exit on error
|
|
10
|
-
|
|
11
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
|
-
CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
|
|
13
|
-
|
|
14
|
-
# Colors for output
|
|
15
|
-
GREEN='\033[0;32m'
|
|
16
|
-
YELLOW='\033[1;33m'
|
|
17
|
-
RED='\033[0;31m'
|
|
18
|
-
CYAN='\033[0;36m'
|
|
19
|
-
GRAY='\033[0;90m'
|
|
20
|
-
NC='\033[0m' # No Color
|
|
21
|
-
|
|
22
|
-
# Detect BMAD installation
|
|
23
|
-
detect_bmad() {
|
|
24
|
-
local bmad_core_dir=""
|
|
25
|
-
|
|
26
|
-
# Check current directory first
|
|
27
|
-
if [[ -d ".bmad-core" ]]; then
|
|
28
|
-
bmad_core_dir=".bmad-core"
|
|
29
|
-
# Check parent directory
|
|
30
|
-
elif [[ -d "../.bmad-core" ]]; then
|
|
31
|
-
bmad_core_dir="../.bmad-core"
|
|
32
|
-
# Check for bmad-core (without dot prefix)
|
|
33
|
-
elif [[ -d "bmad-core" ]]; then
|
|
34
|
-
bmad_core_dir="bmad-core"
|
|
35
|
-
elif [[ -d "../bmad-core" ]]; then
|
|
36
|
-
bmad_core_dir="../bmad-core"
|
|
37
|
-
else
|
|
38
|
-
echo -e "${RED}❌ BMAD installation not found${NC}" >&2
|
|
39
|
-
echo -e "${GRAY} Looked for .bmad-core or bmad-core directory${NC}" >&2
|
|
40
|
-
return 1
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
echo "$bmad_core_dir"
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
# Find all BMAD agents
|
|
47
|
-
find_agents() {
|
|
48
|
-
local bmad_core="$1"
|
|
49
|
-
local agents_dir="$bmad_core/agents"
|
|
50
|
-
|
|
51
|
-
if [[ ! -d "$agents_dir" ]]; then
|
|
52
|
-
echo -e "${RED}❌ Agents directory not found: $agents_dir${NC}"
|
|
53
|
-
return 1
|
|
54
|
-
fi
|
|
55
|
-
|
|
56
|
-
find "$agents_dir" -name "*.md" -type f
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
# Check if agent has TTS injection
|
|
60
|
-
has_tts_injection() {
|
|
61
|
-
local agent_file="$1"
|
|
62
|
-
|
|
63
|
-
if grep -q "# AGENTVIBES-TTS-INJECTION" "$agent_file" 2>/dev/null; then
|
|
64
|
-
return 0
|
|
65
|
-
fi
|
|
66
|
-
return 1
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
# Extract agent ID from file
|
|
70
|
-
get_agent_id() {
|
|
71
|
-
local agent_file="$1"
|
|
72
|
-
|
|
73
|
-
# Look for "id: <agent-id>" in YAML block
|
|
74
|
-
local agent_id=$(grep -E "^ id:" "$agent_file" | head -1 | awk '{print $2}' | tr -d '"' | tr -d "'")
|
|
75
|
-
|
|
76
|
-
if [[ -z "$agent_id" ]]; then
|
|
77
|
-
# Fallback: use filename without extension
|
|
78
|
-
agent_id=$(basename "$agent_file" .md)
|
|
79
|
-
fi
|
|
80
|
-
|
|
81
|
-
echo "$agent_id"
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
# Get voice for agent from BMAD voice mapping
|
|
85
|
-
get_agent_voice() {
|
|
86
|
-
local agent_id="$1"
|
|
87
|
-
|
|
88
|
-
# Use bmad-voice-manager.sh to get voice
|
|
89
|
-
if [[ -f "$SCRIPT_DIR/bmad-voice-manager.sh" ]]; then
|
|
90
|
-
local voice=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-voice "$agent_id" 2>/dev/null || echo "")
|
|
91
|
-
echo "$voice"
|
|
92
|
-
fi
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
# Map ElevenLabs voice to Piper equivalent
|
|
96
|
-
map_voice_to_provider() {
|
|
97
|
-
local elevenlabs_voice="$1"
|
|
98
|
-
local provider="$2"
|
|
99
|
-
|
|
100
|
-
# If provider is elevenlabs or empty, return as-is
|
|
101
|
-
if [[ "$provider" != "piper" ]]; then
|
|
102
|
-
echo "$elevenlabs_voice"
|
|
103
|
-
return
|
|
104
|
-
fi
|
|
105
|
-
|
|
106
|
-
# Map ElevenLabs voices to Piper equivalents
|
|
107
|
-
case "$elevenlabs_voice" in
|
|
108
|
-
"Jessica Anne Bogart"|"Aria")
|
|
109
|
-
echo "en_US-lessac-medium"
|
|
110
|
-
;;
|
|
111
|
-
"Matthew Schmitz"|"Archer"|"Michael")
|
|
112
|
-
echo "en_US-danny-low"
|
|
113
|
-
;;
|
|
114
|
-
"Burt Reynolds"|"Cowboy Bob")
|
|
115
|
-
echo "en_US-joe-medium"
|
|
116
|
-
;;
|
|
117
|
-
"Tiffany"|"Ms. Walker")
|
|
118
|
-
echo "en_US-amy-medium"
|
|
119
|
-
;;
|
|
120
|
-
"Ralf Eisend"|"Tom")
|
|
121
|
-
echo "en_US-libritts-high"
|
|
122
|
-
;;
|
|
123
|
-
*)
|
|
124
|
-
# Default to amy for unknown voices
|
|
125
|
-
echo "en_US-amy-medium"
|
|
126
|
-
;;
|
|
127
|
-
esac
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
# Get current TTS provider
|
|
131
|
-
get_current_provider() {
|
|
132
|
-
# Check project-local first, then global
|
|
133
|
-
if [[ -f ".claude/tts-provider.txt" ]]; then
|
|
134
|
-
cat ".claude/tts-provider.txt" 2>/dev/null || echo "elevenlabs"
|
|
135
|
-
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
136
|
-
cat "$HOME/.claude/tts-provider.txt" 2>/dev/null || echo "elevenlabs"
|
|
137
|
-
else
|
|
138
|
-
echo "elevenlabs"
|
|
139
|
-
fi
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
# Inject TTS hook into agent activation instructions
|
|
143
|
-
inject_tts() {
|
|
144
|
-
local agent_file="$1"
|
|
145
|
-
local agent_id=$(get_agent_id "$agent_file")
|
|
146
|
-
local elevenlabs_voice=$(get_agent_voice "$agent_id")
|
|
147
|
-
local current_provider=$(get_current_provider)
|
|
148
|
-
local agent_voice=$(map_voice_to_provider "$elevenlabs_voice" "$current_provider")
|
|
149
|
-
|
|
150
|
-
# Check if already injected
|
|
151
|
-
if has_tts_injection "$agent_file"; then
|
|
152
|
-
echo -e "${YELLOW}⚠️ TTS already injected in: $(basename "$agent_file")${NC}"
|
|
153
|
-
return 0
|
|
154
|
-
fi
|
|
155
|
-
|
|
156
|
-
# Create backup
|
|
157
|
-
cp "$agent_file" "$agent_file.backup-pre-tts"
|
|
158
|
-
|
|
159
|
-
# Find the activation-instructions section
|
|
160
|
-
if ! grep -q "activation-instructions:" "$agent_file"; then
|
|
161
|
-
echo -e "${RED}❌ No activation-instructions found in: $(basename "$agent_file")${NC}"
|
|
162
|
-
return 1
|
|
163
|
-
fi
|
|
164
|
-
|
|
165
|
-
# Create TTS injection script for activation
|
|
166
|
-
local activation_injection=""
|
|
167
|
-
local persona_injection=""
|
|
168
|
-
|
|
169
|
-
if [[ -n "$agent_voice" ]]; then
|
|
170
|
-
activation_injection=" - # AGENTVIBES-TTS-INJECTION: STEP 3.5 - Announce activation with TTS and set context
|
|
171
|
-
- STEP 3.5a: Use Bash tool to create context file: echo \"${agent_id}\" > .bmad-agent-context
|
|
172
|
-
- STEP 3.5b: Use Bash tool to speak: .claude/hooks/play-tts.sh \"Agent ${agent_id} activated and ready\" \"${agent_voice}\"
|
|
173
|
-
- AGENTVIBES-TTS-INJECTION: MANDATORY RESPONSE PROTOCOL - Before showing ANY response to user, execute this workflow:
|
|
174
|
-
- AGENTVIBES-TTS-STEP 1: Draft your complete response text
|
|
175
|
-
- AGENTVIBES-TTS-STEP 2: Scan response for questions (lines with ? or numbered lists or phrases like What/Should/Would)
|
|
176
|
-
- AGENTVIBES-TTS-STEP 3: If questions found, use Bash tool to speak them: .claude/hooks/play-tts.sh \"question text\" \"${agent_voice}\"
|
|
177
|
-
- AGENTVIBES-TTS-STEP 4: Show the response text to user
|
|
178
|
-
- AGENTVIBES-TTS-INJECTION: On exit command (*exit), use Bash tool FIRST to cleanup: rm -f .bmad-agent-context"
|
|
179
|
-
persona_injection=" - AGENTVIBES-TTS-INJECTION: Before every response, scan for questions and speak them using Bash tool"
|
|
180
|
-
else
|
|
181
|
-
activation_injection=" - # AGENTVIBES-TTS-INJECTION: STEP 3.5 - Announce activation with TTS and set context
|
|
182
|
-
- STEP 3.5a: Use Bash tool to create context file: echo \"${agent_id}\" > .bmad-agent-context
|
|
183
|
-
- STEP 3.5b: Use Bash tool to speak: .claude/hooks/play-tts.sh \"Agent ${agent_id} activated and ready\"
|
|
184
|
-
- AGENTVIBES-TTS-INJECTION: MANDATORY RESPONSE PROTOCOL - Before showing ANY response to user, execute this workflow:
|
|
185
|
-
- AGENTVIBES-TTS-STEP 1: Draft your complete response text
|
|
186
|
-
- AGENTVIBES-TTS-STEP 2: Scan response for questions (lines with ? or numbered lists or phrases like What/Should/Would)
|
|
187
|
-
- AGENTVIBES-TTS-STEP 3: If questions found, use Bash tool to speak them: .claude/hooks/play-tts.sh \"question text\"
|
|
188
|
-
- AGENTVIBES-TTS-STEP 4: Show the response text to user
|
|
189
|
-
- AGENTVIBES-TTS-INJECTION: On exit command (*exit), use Bash tool FIRST to cleanup: rm -f .bmad-agent-context"
|
|
190
|
-
persona_injection=" - AGENTVIBES-TTS-INJECTION: Before every response, scan for questions and speak them using Bash tool"
|
|
191
|
-
fi
|
|
192
|
-
|
|
193
|
-
# Insert activation TTS call after "STEP 4: Greet user" line
|
|
194
|
-
# Insert persona TTS instruction in core_principles section
|
|
195
|
-
awk -v activation="$activation_injection" -v persona="$persona_injection" '
|
|
196
|
-
/STEP 4:.*[Gg]reet/ {
|
|
197
|
-
print
|
|
198
|
-
print activation
|
|
199
|
-
next
|
|
200
|
-
}
|
|
201
|
-
/^ core_principles:/ {
|
|
202
|
-
print
|
|
203
|
-
print persona
|
|
204
|
-
next
|
|
205
|
-
}
|
|
206
|
-
{ print }
|
|
207
|
-
' "$agent_file" > "$agent_file.tmp"
|
|
208
|
-
|
|
209
|
-
mv "$agent_file.tmp" "$agent_file"
|
|
210
|
-
|
|
211
|
-
if [[ "$current_provider" == "piper" ]] && [[ -n "$elevenlabs_voice" ]]; then
|
|
212
|
-
echo -e "${GREEN}✅ Injected TTS into: $(basename "$agent_file") → Voice: ${agent_voice:-default} (${current_provider}: ${elevenlabs_voice} → ${agent_voice})${NC}"
|
|
213
|
-
else
|
|
214
|
-
echo -e "${GREEN}✅ Injected TTS into: $(basename "$agent_file") → Voice: ${agent_voice:-default}${NC}"
|
|
215
|
-
fi
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
# Remove TTS injection from agent
|
|
219
|
-
remove_tts() {
|
|
220
|
-
local agent_file="$1"
|
|
221
|
-
|
|
222
|
-
# Check if has injection
|
|
223
|
-
if ! has_tts_injection "$agent_file"; then
|
|
224
|
-
echo -e "${GRAY} No TTS in: $(basename "$agent_file")${NC}"
|
|
225
|
-
return 0
|
|
226
|
-
fi
|
|
227
|
-
|
|
228
|
-
# Create backup
|
|
229
|
-
cp "$agent_file" "$agent_file.backup-tts-removal"
|
|
230
|
-
|
|
231
|
-
# Remove TTS injection lines
|
|
232
|
-
sed -i.bak '/# AGENTVIBES-TTS-INJECTION/,+1d' "$agent_file"
|
|
233
|
-
rm -f "$agent_file.bak"
|
|
234
|
-
|
|
235
|
-
echo -e "${GREEN}✅ Removed TTS from: $(basename "$agent_file")${NC}"
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
# Show status of TTS injections
|
|
239
|
-
show_status() {
|
|
240
|
-
local bmad_core=$(detect_bmad)
|
|
241
|
-
if [[ -z "$bmad_core" ]]; then
|
|
242
|
-
return 1
|
|
243
|
-
fi
|
|
244
|
-
|
|
245
|
-
echo -e "${CYAN}📊 BMAD TTS Injection Status:${NC}"
|
|
246
|
-
echo ""
|
|
247
|
-
|
|
248
|
-
local agents=$(find_agents "$bmad_core")
|
|
249
|
-
local enabled_count=0
|
|
250
|
-
local disabled_count=0
|
|
251
|
-
|
|
252
|
-
while IFS= read -r agent_file; do
|
|
253
|
-
local agent_id=$(get_agent_id "$agent_file")
|
|
254
|
-
local agent_name=$(basename "$agent_file" .md)
|
|
255
|
-
|
|
256
|
-
if has_tts_injection "$agent_file"; then
|
|
257
|
-
local voice=$(get_agent_voice "$agent_id")
|
|
258
|
-
echo -e " ${GREEN}✅${NC} $agent_name (${agent_id}) → Voice: ${voice:-default}"
|
|
259
|
-
((enabled_count++))
|
|
260
|
-
else
|
|
261
|
-
echo -e " ${GRAY}❌ $agent_name (${agent_id})${NC}"
|
|
262
|
-
((disabled_count++))
|
|
263
|
-
fi
|
|
264
|
-
done <<< "$agents"
|
|
265
|
-
|
|
266
|
-
echo ""
|
|
267
|
-
echo -e "${CYAN}Summary:${NC} $enabled_count enabled, $disabled_count disabled"
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
# Enable TTS for all agents
|
|
271
|
-
enable_all() {
|
|
272
|
-
local bmad_core=$(detect_bmad)
|
|
273
|
-
if [[ -z "$bmad_core" ]]; then
|
|
274
|
-
return 1
|
|
275
|
-
fi
|
|
276
|
-
|
|
277
|
-
echo -e "${CYAN}🎤 Enabling TTS for all BMAD agents...${NC}"
|
|
278
|
-
echo ""
|
|
279
|
-
|
|
280
|
-
local agents=$(find_agents "$bmad_core")
|
|
281
|
-
local success_count=0
|
|
282
|
-
local skip_count=0
|
|
283
|
-
|
|
284
|
-
while IFS= read -r agent_file; do
|
|
285
|
-
if has_tts_injection "$agent_file"; then
|
|
286
|
-
((skip_count++))
|
|
287
|
-
continue
|
|
288
|
-
fi
|
|
289
|
-
|
|
290
|
-
if inject_tts "$agent_file"; then
|
|
291
|
-
((success_count++))
|
|
292
|
-
fi
|
|
293
|
-
done <<< "$agents"
|
|
294
|
-
|
|
295
|
-
echo ""
|
|
296
|
-
echo -e "${GREEN}🎉 TTS enabled for $success_count agents${NC}"
|
|
297
|
-
[[ $skip_count -gt 0 ]] && echo -e "${YELLOW} Skipped $skip_count agents (already enabled)${NC}"
|
|
298
|
-
echo ""
|
|
299
|
-
echo -e "${CYAN}💡 BMAD agents will now speak when activated!${NC}"
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
# Disable TTS for all agents
|
|
303
|
-
disable_all() {
|
|
304
|
-
local bmad_core=$(detect_bmad)
|
|
305
|
-
if [[ -z "$bmad_core" ]]; then
|
|
306
|
-
return 1
|
|
307
|
-
fi
|
|
308
|
-
|
|
309
|
-
echo -e "${CYAN}🔇 Disabling TTS for all BMAD agents...${NC}"
|
|
310
|
-
echo ""
|
|
311
|
-
|
|
312
|
-
local agents=$(find_agents "$bmad_core")
|
|
313
|
-
local success_count=0
|
|
314
|
-
|
|
315
|
-
while IFS= read -r agent_file; do
|
|
316
|
-
if remove_tts "$agent_file"; then
|
|
317
|
-
((success_count++))
|
|
318
|
-
fi
|
|
319
|
-
done <<< "$agents"
|
|
320
|
-
|
|
321
|
-
echo ""
|
|
322
|
-
echo -e "${GREEN}✅ TTS disabled for $success_count agents${NC}"
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
# Restore from backup
|
|
326
|
-
restore_backup() {
|
|
327
|
-
local bmad_core=$(detect_bmad)
|
|
328
|
-
if [[ -z "$bmad_core" ]]; then
|
|
329
|
-
return 1
|
|
330
|
-
fi
|
|
331
|
-
|
|
332
|
-
echo -e "${CYAN}🔄 Restoring agents from backup...${NC}"
|
|
333
|
-
echo ""
|
|
334
|
-
|
|
335
|
-
local agents_dir="$bmad_core/agents"
|
|
336
|
-
local backup_count=0
|
|
337
|
-
|
|
338
|
-
for backup_file in "$agents_dir"/*.backup-pre-tts; do
|
|
339
|
-
if [[ -f "$backup_file" ]]; then
|
|
340
|
-
local original_file="${backup_file%.backup-pre-tts}"
|
|
341
|
-
cp "$backup_file" "$original_file"
|
|
342
|
-
echo -e "${GREEN}✅ Restored: $(basename "$original_file")${NC}"
|
|
343
|
-
((backup_count++))
|
|
344
|
-
fi
|
|
345
|
-
done
|
|
346
|
-
|
|
347
|
-
if [[ $backup_count -eq 0 ]]; then
|
|
348
|
-
echo -e "${YELLOW}⚠️ No backups found${NC}"
|
|
349
|
-
else
|
|
350
|
-
echo ""
|
|
351
|
-
echo -e "${GREEN}✅ Restored $backup_count agents from backup${NC}"
|
|
352
|
-
fi
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
# Main command dispatcher
|
|
356
|
-
case "${1:-help}" in
|
|
357
|
-
enable)
|
|
358
|
-
enable_all
|
|
359
|
-
;;
|
|
360
|
-
disable)
|
|
361
|
-
disable_all
|
|
362
|
-
;;
|
|
363
|
-
status)
|
|
364
|
-
show_status
|
|
365
|
-
;;
|
|
366
|
-
restore)
|
|
367
|
-
restore_backup
|
|
368
|
-
;;
|
|
369
|
-
help|*)
|
|
370
|
-
echo -e "${CYAN}AgentVibes BMAD TTS Injection Manager${NC}"
|
|
371
|
-
echo ""
|
|
372
|
-
echo "Usage: bmad-tts-injector.sh {enable|disable|status|restore}"
|
|
373
|
-
echo ""
|
|
374
|
-
echo "Commands:"
|
|
375
|
-
echo " enable Inject TTS hooks into all BMAD agents"
|
|
376
|
-
echo " disable Remove TTS hooks from all BMAD agents"
|
|
377
|
-
echo " status Show TTS injection status for all agents"
|
|
378
|
-
echo " restore Restore agents from backup (undo changes)"
|
|
379
|
-
echo ""
|
|
380
|
-
echo "What it does:"
|
|
381
|
-
echo " • Automatically patches BMAD agent activation instructions"
|
|
382
|
-
echo " • Adds TTS calls when agents greet users"
|
|
383
|
-
echo " • Uses voice mapping from AgentVibes BMAD plugin"
|
|
384
|
-
echo " • Creates backups before modifying files"
|
|
385
|
-
;;
|
|
386
|
-
esac
|