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
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Script to generate Piper TTS audio for provider and agent intros
|
|
4
|
+
# Uses multi-speaker Piper voices
|
|
5
|
+
|
|
6
|
+
# Output directories
|
|
7
|
+
PIPER_DIR="agentvibes.org/public/audio/piper-voices"
|
|
8
|
+
AGENTS_DIR="agentvibes.org/public/audio/agents"
|
|
9
|
+
|
|
10
|
+
mkdir -p "$PIPER_DIR"
|
|
11
|
+
mkdir -p "$AGENTS_DIR"
|
|
12
|
+
|
|
13
|
+
# Voice model paths
|
|
14
|
+
VOICE_MODEL_16="mcp-server/voices/16Speakers.onnx"
|
|
15
|
+
VOICE_MODEL_LESSAC=".claude/piper-voices/en_US-lessac-medium.onnx"
|
|
16
|
+
|
|
17
|
+
# Provider explanation texts
|
|
18
|
+
PIPER_TEXT="Hello! I'm Piper TTS, your free, offline text-to-speech provider. I'm a fast neural text-to-speech system that runs entirely on your local machine, which means no API costs, complete privacy, and lightning-fast response times. I offer over fifty high-quality voices in multiple languages, all available without an internet connection. I'm perfect for developers who want professional voice synthesis without subscription fees or usage limits. Best of all, I work seamlessly with AgentVibes right out of the box. Try me out and experience free, high-quality text-to-speech!"
|
|
19
|
+
|
|
20
|
+
# Agent intro texts (updated with disclaimers)
|
|
21
|
+
NEGOTIATOR_TEXT="Hello, I'm your Negotiator agent, inspired by some of the proven methods from Chris Voss, former FBI lead hostage negotiator. I specialize in tactical empathy, calibrated questions, and psychological techniques that help you win negotiations. Whether you're discussing salary, closing a business deal, or navigating a difficult situation, I'll do my best to guide you through strategies from Never Split the Difference. To activate me in AgentVibes, just select the Negotiator agent and I'll help you prepare for any high-stakes conversation. Let's get you the outcome you deserve. Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
22
|
+
|
|
23
|
+
HEALTH_COACH_TEXT="Hey there! I'm your Health Coach, inspired by the Keto Flex approach from Ben Azadi. I focus on sustainable wellness through clean ketogenic nutrition, intermittent fasting, and addressing root causes rather than just symptoms. Whether you want to lose weight, boost your energy, or improve your metabolic flexibility, I'll do my best to guide you with evidence-based protocols. Activate me in AgentVibes by selecting the Health Coach agent, and let's start your transformation. Remember, you're not broken, your metabolism just needs support. Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
24
|
+
|
|
25
|
+
MOTIVATOR_TEXT="LISTEN UP! I'm your Motivator agent, inspired by the most powerful strategies from Tony Robbins, David Goggins, Mel Robbins, and Les Brown to help you TAKE ACTION NOW. You've got five seconds before your brain kills that idea. Five, four, three, two, one, GO! I'll do my best to use state management, the forty percent rule, and the philosophy of massive action to help destroy your limiting beliefs and get you moving. Select the Motivator agent in AgentVibes when you need someone to hold you accountable and push you past your comfort zone. Your life is happening RIGHT NOW. Stop waiting. Let's DO this! Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
26
|
+
|
|
27
|
+
# Function to generate Piper audio
|
|
28
|
+
generate_piper_audio() {
|
|
29
|
+
local text=$1
|
|
30
|
+
local output_file=$2
|
|
31
|
+
local model=$3
|
|
32
|
+
local speaker=${4:-0} # Default to speaker 0
|
|
33
|
+
|
|
34
|
+
echo "Generating: $output_file (speaker $speaker)"
|
|
35
|
+
|
|
36
|
+
# Check if model exists
|
|
37
|
+
if [ ! -f "$model" ]; then
|
|
38
|
+
echo "✗ Model not found: $model"
|
|
39
|
+
return 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Use echo to pipe text to piper
|
|
43
|
+
echo "$text" | piper --model "$model" --speaker "$speaker" --output_file "$output_file"
|
|
44
|
+
|
|
45
|
+
if [ $? -eq 0 ]; then
|
|
46
|
+
echo "✓ Successfully generated: $output_file"
|
|
47
|
+
else
|
|
48
|
+
echo "✗ Failed to generate: $output_file"
|
|
49
|
+
return 1
|
|
50
|
+
fi
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
echo "=========================================="
|
|
54
|
+
echo "Generating Piper Agent Intro Audio"
|
|
55
|
+
echo "=========================================="
|
|
56
|
+
echo ""
|
|
57
|
+
|
|
58
|
+
# Generate Piper provider intro (using Kristin Hughes - speaker 2)
|
|
59
|
+
echo "1. Piper Provider Intro (Kristin Hughes - Speaker 2)"
|
|
60
|
+
echo "------------------------------------------"
|
|
61
|
+
generate_piper_audio "$PIPER_TEXT" "${PIPER_DIR}/provider-intro-piper.wav" "$VOICE_MODEL_16" 2
|
|
62
|
+
|
|
63
|
+
echo ""
|
|
64
|
+
echo "2. Agent Intro: Negotiator (Michael - Speaker 6)"
|
|
65
|
+
echo "------------------------------------------"
|
|
66
|
+
generate_piper_audio "$NEGOTIATOR_TEXT" "${AGENTS_DIR}/piper-negotiator.wav" "$VOICE_MODEL_16" 6
|
|
67
|
+
|
|
68
|
+
echo ""
|
|
69
|
+
echo "3. Agent Intro: Health Coach (Michael - Speaker 6)"
|
|
70
|
+
echo "------------------------------------------"
|
|
71
|
+
generate_piper_audio "$HEALTH_COACH_TEXT" "${AGENTS_DIR}/piper-health-coach.wav" "$VOICE_MODEL_16" 6
|
|
72
|
+
|
|
73
|
+
echo ""
|
|
74
|
+
echo "4. Agent Intro: Motivator (Anthony Malone - Speaker 7)"
|
|
75
|
+
echo "------------------------------------------"
|
|
76
|
+
generate_piper_audio "$MOTIVATOR_TEXT" "${AGENTS_DIR}/piper-motivator.wav" "$VOICE_MODEL_16" 7
|
|
77
|
+
|
|
78
|
+
echo ""
|
|
79
|
+
echo "=========================================="
|
|
80
|
+
echo "Generation Complete!"
|
|
81
|
+
echo "=========================================="
|
|
82
|
+
echo ""
|
|
83
|
+
echo "Generated files:"
|
|
84
|
+
ls -lh "${PIPER_DIR}/provider-intro-piper.wav" 2>/dev/null
|
|
85
|
+
ls -lh "${AGENTS_DIR}"/piper-*.wav 2>/dev/null
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Script to generate provider intro audio and agent intro audio files
|
|
4
|
+
# Uses ElevenLabs API
|
|
5
|
+
|
|
6
|
+
# Check if ELEVENLABS_API_KEY is set in environment
|
|
7
|
+
if [ -z "$ELEVENLABS_API_KEY" ]; then
|
|
8
|
+
echo "Error: ELEVENLABS_API_KEY environment variable is not set"
|
|
9
|
+
echo "Please run: source ~/.zshrc"
|
|
10
|
+
echo "Or set it manually: export ELEVENLABS_API_KEY='your-key-here'"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Output directories
|
|
15
|
+
ELEVENLABS_DIR="agentvibes.org/public/audio/elevenlabs"
|
|
16
|
+
PIPER_DIR="agentvibes.org/public/audio/piper-voices"
|
|
17
|
+
AGENTS_DIR="agentvibes.org/public/audio/agents"
|
|
18
|
+
|
|
19
|
+
mkdir -p "$ELEVENLABS_DIR"
|
|
20
|
+
mkdir -p "$PIPER_DIR"
|
|
21
|
+
mkdir -p "$AGENTS_DIR"
|
|
22
|
+
|
|
23
|
+
# Voice IDs
|
|
24
|
+
MS_WALKER_ID="t0jbNlBVZ17f02VDIeMI" # Ms. Walker for ElevenLabs intro
|
|
25
|
+
MICHAEL_ID="flq6f7yk4E4fJM5XTYuZ" # Michael for Negotiator
|
|
26
|
+
DRILL_SERGEANT_ID="DGzg6RaUqxGRTHSBjfgF" # Drill Sergeant for Health Coach
|
|
27
|
+
ARIA_ID="9BWtsMINqrJLrRacOk9x" # Aria for Motivator
|
|
28
|
+
|
|
29
|
+
# Provider explanation texts
|
|
30
|
+
PIPER_TEXT="Hello! I'm Piper TTS, your free, offline text-to-speech provider. I'm a fast neural text-to-speech system that runs entirely on your local machine, which means no API costs, complete privacy, and lightning-fast response times. I offer over fifty high-quality voices in multiple languages, all available without an internet connection. I'm perfect for developers who want professional voice synthesis without subscription fees or usage limits. Best of all, I work seamlessly with AgentVibes right out of the box. Try me out and experience free, high-quality text-to-speech!"
|
|
31
|
+
|
|
32
|
+
ELEVENLABS_TEXT="Welcome to AgentVibes. AgentVibes offers multi-provider support. By selecting ElevenLabs, you have access to premium AI voices. If you want to create an API key, you can create a subscription from AgentVibes. Click on our affiliate link to create an API key now. If however you would rather use free voices, then we advise you to select Piper. For now however, you can click on the personalities and voices below to hear some samples of ElevenLabs amazing voices."
|
|
33
|
+
|
|
34
|
+
# Agent intro texts (from the webpage)
|
|
35
|
+
NEGOTIATOR_TEXT="Hello, I'm your Negotiator agent, inspired by some of the proven methods from Chris Voss, former FBI lead hostage negotiator. I specialize in tactical empathy, calibrated questions, and psychological techniques that help you win negotiations. Whether you're discussing salary, closing a business deal, or navigating a difficult situation, I'll do my best to guide you through strategies from Never Split the Difference. To activate me in AgentVibes, just select the Negotiator agent and I'll help you prepare for any high-stakes conversation. Let's get you the outcome you deserve. Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
36
|
+
|
|
37
|
+
HEALTH_COACH_TEXT="Hey there! I'm your Health Coach, inspired by the Keto Flex approach from Ben Azadi. I focus on sustainable wellness through clean ketogenic nutrition, intermittent fasting, and addressing root causes rather than just symptoms. Whether you want to lose weight, boost your energy, or improve your metabolic flexibility, I'll do my best to guide you with evidence-based protocols. Activate me in AgentVibes by selecting the Health Coach agent, and let's start your transformation. Remember, you're not broken, your metabolism just needs support. Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
38
|
+
|
|
39
|
+
MOTIVATOR_TEXT="LISTEN UP! I'm your Motivator agent, inspired by the most powerful strategies from Tony Robbins, David Goggins, Mel Robbins, and Les Brown to help you TAKE ACTION NOW. You've got five seconds before your brain kills that idea. Five, four, three, two, one, GO! I'll do my best to use state management, the forty percent rule, and the philosophy of massive action to help destroy your limiting beliefs and get you moving. Select the Motivator agent in AgentVibes when you need someone to hold you accountable and push you past your comfort zone. Your life is happening RIGHT NOW. Stop waiting. Let's DO this! Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
40
|
+
|
|
41
|
+
# Function to generate ElevenLabs audio
|
|
42
|
+
generate_elevenlabs_audio() {
|
|
43
|
+
local voice_id=$1
|
|
44
|
+
local text=$2
|
|
45
|
+
local output_file=$3
|
|
46
|
+
|
|
47
|
+
echo "Generating: $output_file"
|
|
48
|
+
|
|
49
|
+
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/${voice_id}" \
|
|
50
|
+
-H "xi-api-key: ${ELEVENLABS_API_KEY}" \
|
|
51
|
+
-H "Content-Type: application/json" \
|
|
52
|
+
-d "{
|
|
53
|
+
\"text\": \"${text}\",
|
|
54
|
+
\"model_id\": \"eleven_monolingual_v1\",
|
|
55
|
+
\"voice_settings\": {
|
|
56
|
+
\"stability\": 0.5,
|
|
57
|
+
\"similarity_boost\": 0.75
|
|
58
|
+
}
|
|
59
|
+
}" \
|
|
60
|
+
--output "$output_file"
|
|
61
|
+
|
|
62
|
+
if [ $? -eq 0 ]; then
|
|
63
|
+
echo "✓ Successfully generated: $output_file"
|
|
64
|
+
else
|
|
65
|
+
echo "✗ Failed to generate: $output_file"
|
|
66
|
+
return 1
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
sleep 1
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# Function to generate Piper audio
|
|
73
|
+
generate_piper_audio() {
|
|
74
|
+
local text=$1
|
|
75
|
+
local output_file=$2
|
|
76
|
+
local voice_num=${3:-0} # Default to Cori (voice 0)
|
|
77
|
+
|
|
78
|
+
echo "Generating Piper audio: $output_file"
|
|
79
|
+
|
|
80
|
+
# Check if piper is available
|
|
81
|
+
if ! command -v piper &> /dev/null; then
|
|
82
|
+
echo "⚠ Piper not found. Skipping Piper audio generation."
|
|
83
|
+
echo " Install with: pip install piper-tts"
|
|
84
|
+
return 1
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Use echo to pipe text to piper
|
|
88
|
+
echo "$text" | piper --model en_US-lessac-medium --output_file "$output_file"
|
|
89
|
+
|
|
90
|
+
if [ $? -eq 0 ]; then
|
|
91
|
+
echo "✓ Successfully generated: $output_file"
|
|
92
|
+
else
|
|
93
|
+
echo "✗ Failed to generate: $output_file"
|
|
94
|
+
return 1
|
|
95
|
+
fi
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
echo "=========================================="
|
|
99
|
+
echo "Generating Provider & Agent Intro Audio"
|
|
100
|
+
echo "=========================================="
|
|
101
|
+
echo ""
|
|
102
|
+
|
|
103
|
+
# Generate ElevenLabs provider intro
|
|
104
|
+
echo "1. ElevenLabs Provider Intro (Ms. Walker)"
|
|
105
|
+
echo "------------------------------------------"
|
|
106
|
+
generate_elevenlabs_audio "$MS_WALKER_ID" "$ELEVENLABS_TEXT" "${ELEVENLABS_DIR}/provider-intro-elevenlabs.mp3"
|
|
107
|
+
|
|
108
|
+
echo ""
|
|
109
|
+
echo "2. Piper Provider Intro (Cori - will use Piper if installed)"
|
|
110
|
+
echo "------------------------------------------"
|
|
111
|
+
generate_piper_audio "$PIPER_TEXT" "${PIPER_DIR}/provider-intro-piper.wav" 0
|
|
112
|
+
|
|
113
|
+
echo ""
|
|
114
|
+
echo "3. Agent Intro: Negotiator (Michael)"
|
|
115
|
+
echo "------------------------------------------"
|
|
116
|
+
generate_elevenlabs_audio "$MICHAEL_ID" "$NEGOTIATOR_TEXT" "${AGENTS_DIR}/elevenlabs-negotiator.mp3"
|
|
117
|
+
|
|
118
|
+
echo ""
|
|
119
|
+
echo "4. Agent Intro: Health Coach (Drill Sergeant)"
|
|
120
|
+
echo "------------------------------------------"
|
|
121
|
+
generate_elevenlabs_audio "$DRILL_SERGEANT_ID" "$HEALTH_COACH_TEXT" "${AGENTS_DIR}/elevenlabs-health-coach.mp3"
|
|
122
|
+
|
|
123
|
+
echo ""
|
|
124
|
+
echo "5. Agent Intro: Motivator (Aria)"
|
|
125
|
+
echo "------------------------------------------"
|
|
126
|
+
generate_elevenlabs_audio "$ARIA_ID" "$MOTIVATOR_TEXT" "${AGENTS_DIR}/elevenlabs-motivator.mp3"
|
|
127
|
+
|
|
128
|
+
echo ""
|
|
129
|
+
echo "=========================================="
|
|
130
|
+
echo "Generation Complete!"
|
|
131
|
+
echo "=========================================="
|
|
132
|
+
echo ""
|
|
133
|
+
echo "Generated files:"
|
|
134
|
+
ls -lh "${ELEVENLABS_DIR}/provider-intro-elevenlabs.mp3" 2>/dev/null
|
|
135
|
+
ls -lh "${PIPER_DIR}/provider-intro-piper.wav" 2>/dev/null
|
|
136
|
+
ls -lh "${AGENTS_DIR}"/*.mp3 2>/dev/null
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[ZoneTransfer]
|
|
2
|
+
ZoneId=3
|
|
3
|
+
ReferrerUrl=https://www.canva.com/
|
|
4
|
+
HostUrl=https://export-download.canva.com/fRU5Q/DAG2eUfRU5Q/2/0/0001-1153403610714354268.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQYCGKMUH5AO7UJ26%2F20251021%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20251021T024124Z&X-Amz-Expires=87229&X-Amz-Signature=884995a892910b81bf02e2dc6003bbb3ed8a93f52561d45d63298bb53922a21e&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%27Untitled%2520design.png&response-expires=Wed%2C%2022%20Oct%202025%2002%3A55%3A13%20GMT
|
package/logo/logo1.webp
ADDED
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[ZoneTransfer]
|
|
2
|
+
ZoneId=3
|
|
3
|
+
ReferrerUrl=https://sora.chatgpt.com/
|
|
4
|
+
HostUrl=https://videos.openai.com/az/vg-assets/assets%2Ftask_01k84jjqdre4a94gwhrjvxrmcc%2F1761090380_img_1.webp?se=2025-10-27T23%3A47%3A42Z&sp=r&sv=2024-08-04&sr=b&skoid=1af02b11-169c-463d-b441-d2ccfc9f02c8&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-10-21T23%3A38%3A46Z&ske=2025-10-28T23%3A43%3A46Z&sks=b&skv=2024-08-04&sig=YnhyNHHZNTvrxPzGVMR1e%2BXWpRxFJtAmBRHdDFQHv/4%3D&ac=oaivgprodscus
|
package/logo/social.png
ADDED
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[ZoneTransfer]
|
|
2
|
+
ZoneId=3
|
|
3
|
+
ReferrerUrl=https://www.canva.com/
|
|
4
|
+
HostUrl=https://export-download.canva.com/KdRmo/DAG2d2KdRmo/4/0/0001-2945836257450757554.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQYCGKMUH5AO7UJ26%2F20251021%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20251021T225916Z&X-Amz-Expires=8054&X-Amz-Signature=8d0a628517760b995ae1d6f71c8bb1d6cab49f4a61bffebc1d58a6d51829c0ef&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%27npx%2520agentvibes%2520install.png&response-expires=Wed%2C%2022%20Oct%202025%2001%3A13%3A30%20GMT
|
|
File without changes
|
package/mcp-server/server.py
CHANGED
|
@@ -382,24 +382,22 @@ class AgentVibesServer:
|
|
|
382
382
|
args = ["target", speed] if target else [speed]
|
|
383
383
|
result = await self._run_script("speed-manager.sh", args)
|
|
384
384
|
if result and "✓" in result:
|
|
385
|
-
#
|
|
386
|
-
|
|
387
|
-
"
|
|
388
|
-
"
|
|
389
|
-
"
|
|
390
|
-
"
|
|
391
|
-
"
|
|
392
|
-
"Red lorry, yellow lorry, red lorry, yellow lorry",
|
|
393
|
-
"Six slippery snails slid slowly seaward",
|
|
385
|
+
# Simple test messages to demonstrate the new speed
|
|
386
|
+
test_messages = [
|
|
387
|
+
"Testing speed change",
|
|
388
|
+
"Speed test in progress",
|
|
389
|
+
"Checking audio speed",
|
|
390
|
+
"Speed configuration test",
|
|
391
|
+
"Audio speed test",
|
|
394
392
|
]
|
|
395
393
|
|
|
396
|
-
# Pick a random
|
|
397
|
-
|
|
394
|
+
# Pick a random test message and speak it
|
|
395
|
+
test_message = random.choice(test_messages)
|
|
398
396
|
|
|
399
397
|
try:
|
|
400
|
-
# Speak the
|
|
401
|
-
await self.text_to_speech(
|
|
402
|
-
return f"{result}\n🔊 Testing new speed: \"{
|
|
398
|
+
# Speak the test message to demonstrate the new speed
|
|
399
|
+
await self.text_to_speech(test_message)
|
|
400
|
+
return f"{result}\n🔊 Testing new speed: \"{test_message}\""
|
|
403
401
|
except Exception as e:
|
|
404
402
|
# If TTS fails, still return success for the speed change
|
|
405
403
|
return f"{result}\n⚠️ Speed changed but demo failed: {e}"
|
|
@@ -416,6 +414,24 @@ class AgentVibesServer:
|
|
|
416
414
|
result = await self._run_script("speed-manager.sh", ["get"])
|
|
417
415
|
return result if result else "❌ Failed to get speed settings"
|
|
418
416
|
|
|
417
|
+
async def download_extra_voices(self, auto_yes: bool = False) -> str:
|
|
418
|
+
"""
|
|
419
|
+
Download extra high-quality Piper voices from HuggingFace.
|
|
420
|
+
|
|
421
|
+
Downloads custom voices: Kristin, Jenny, and Tracy/16Speakers.
|
|
422
|
+
|
|
423
|
+
Args:
|
|
424
|
+
auto_yes: If True, skips confirmation prompt and downloads automatically
|
|
425
|
+
|
|
426
|
+
Returns:
|
|
427
|
+
Success message with download summary
|
|
428
|
+
"""
|
|
429
|
+
args = ["--yes"] if auto_yes else []
|
|
430
|
+
result = await self._run_script("download-extra-voices.sh", args)
|
|
431
|
+
if result and ("✅" in result or "Successfully downloaded" in result or "already downloaded" in result):
|
|
432
|
+
return result
|
|
433
|
+
return f"❌ Failed to download extra voices: {result}"
|
|
434
|
+
|
|
419
435
|
# Helper methods
|
|
420
436
|
async def _run_script(self, script_name: str, args: list[str]) -> str:
|
|
421
437
|
"""Run a bash script and return output"""
|
|
@@ -679,6 +695,20 @@ Examples:
|
|
|
679
695
|
description="Get current speech speed settings for main and target voices",
|
|
680
696
|
inputSchema={"type": "object", "properties": {}},
|
|
681
697
|
),
|
|
698
|
+
Tool(
|
|
699
|
+
name="download_extra_voices",
|
|
700
|
+
description="Download extra high-quality custom Piper voices from HuggingFace. Includes: Kristin (US female), Jenny (UK female with Irish accent), and Tracy/16Speakers (multi-speaker). Perfect for adding variety to your TTS voices.",
|
|
701
|
+
inputSchema={
|
|
702
|
+
"type": "object",
|
|
703
|
+
"properties": {
|
|
704
|
+
"auto_yes": {
|
|
705
|
+
"type": "boolean",
|
|
706
|
+
"description": "Skip confirmation prompt and download automatically (default: False)",
|
|
707
|
+
"default": False
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
},
|
|
711
|
+
),
|
|
682
712
|
]
|
|
683
713
|
|
|
684
714
|
|
|
@@ -717,6 +747,9 @@ async def call_tool(name: str, arguments: dict) -> list[TextContent]:
|
|
|
717
747
|
result = await agent_vibes.set_speed(arguments["speed"], target)
|
|
718
748
|
elif name == "get_speed":
|
|
719
749
|
result = await agent_vibes.get_speed()
|
|
750
|
+
elif name == "download_extra_voices":
|
|
751
|
+
auto_yes = arguments.get("auto_yes", False)
|
|
752
|
+
result = await agent_vibes.download_extra_voices(auto_yes)
|
|
720
753
|
else:
|
|
721
754
|
result = f"Unknown tool: {name}"
|
|
722
755
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "agentvibes",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.22",
|
|
5
5
|
"description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
|
|
6
6
|
"homepage": "https://agentvibes.org",
|
|
7
7
|
"keywords": [
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"install-local": "node src/installer.js install",
|
|
35
35
|
"postinstall": "node mcp-server/install-deps.js",
|
|
36
36
|
"install-mcp-deps": "node mcp-server/install-deps.js",
|
|
37
|
-
"test": "bats test/unit/*.bats",
|
|
38
|
-
"test:verbose": "bats -t test/unit/*.bats"
|
|
37
|
+
"test": "AGENTVIBES_TEST_MODE=true bats test/unit/*.bats",
|
|
38
|
+
"test:verbose": "AGENTVIBES_TEST_MODE=true bats -t test/unit/*.bats"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"boxen": "^7.0.0",
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Script to regenerate specific agent intros with new voice assignments
|
|
4
|
+
# Health Coach: Drill Sergeant
|
|
5
|
+
# Motivator: Aria
|
|
6
|
+
|
|
7
|
+
# Check if ELEVENLABS_API_KEY is set
|
|
8
|
+
if [ -z "$ELEVENLABS_API_KEY" ]; then
|
|
9
|
+
echo "Error: ELEVENLABS_API_KEY environment variable is not set"
|
|
10
|
+
echo "Please set it with: export ELEVENLABS_API_KEY='your-key-here'"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Output directory
|
|
15
|
+
AGENTS_DIR="agentvibes.org/public/audio/agents"
|
|
16
|
+
mkdir -p "$AGENTS_DIR"
|
|
17
|
+
|
|
18
|
+
# Voice IDs
|
|
19
|
+
DRILL_SERGEANT_ID="DGzg6RaUqxGRTHSBjfgF"
|
|
20
|
+
ARIA_ID="9BWtsMINqrJLrRacOk9x"
|
|
21
|
+
|
|
22
|
+
# Agent intro texts
|
|
23
|
+
HEALTH_COACH_TEXT="Hey there! I'm your Health Coach, inspired by the Keto Flex approach from Ben Azadi. I focus on sustainable wellness through clean ketogenic nutrition, intermittent fasting, and addressing root causes rather than just symptoms. Whether you want to lose weight, boost your energy, or improve your metabolic flexibility, I'll do my best to guide you with evidence-based protocols. Activate me in AgentVibes by selecting the Health Coach agent, and let's start your transformation. Remember, you're not broken, your metabolism just needs support. Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
24
|
+
|
|
25
|
+
MOTIVATOR_TEXT="LISTEN UP! I'm your Motivator agent, inspired by the most powerful strategies from Tony Robbins, David Goggins, Mel Robbins, and Les Brown to help you TAKE ACTION NOW. You've got five seconds before your brain kills that idea. Five, four, three, two, one, GO! I'll do my best to use state management, the forty percent rule, and the philosophy of massive action to help destroy your limiting beliefs and get you moving. Select the Motivator agent in AgentVibes when you need someone to hold you accountable and push you past your comfort zone. Your life is happening RIGHT NOW. Stop waiting. Let's DO this! Please note, this is an experimental feature and it's meant for entertainment purposes only."
|
|
26
|
+
|
|
27
|
+
# Function to generate ElevenLabs audio
|
|
28
|
+
generate_elevenlabs_audio() {
|
|
29
|
+
local voice_id=$1
|
|
30
|
+
local text=$2
|
|
31
|
+
local output_file=$3
|
|
32
|
+
|
|
33
|
+
echo "Generating: $output_file"
|
|
34
|
+
|
|
35
|
+
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/${voice_id}" \
|
|
36
|
+
-H "xi-api-key: ${ELEVENLABS_API_KEY}" \
|
|
37
|
+
-H "Content-Type: application/json" \
|
|
38
|
+
-d "{
|
|
39
|
+
\"text\": \"${text}\",
|
|
40
|
+
\"model_id\": \"eleven_monolingual_v1\",
|
|
41
|
+
\"voice_settings\": {
|
|
42
|
+
\"stability\": 0.5,
|
|
43
|
+
\"similarity_boost\": 0.75
|
|
44
|
+
}
|
|
45
|
+
}" \
|
|
46
|
+
--output "$output_file"
|
|
47
|
+
|
|
48
|
+
if [ $? -eq 0 ]; then
|
|
49
|
+
echo "✓ Successfully generated: $output_file"
|
|
50
|
+
else
|
|
51
|
+
echo "✗ Failed to generate: $output_file"
|
|
52
|
+
return 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
sleep 1
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
echo "=========================================="
|
|
59
|
+
echo "Regenerating Agent Voices"
|
|
60
|
+
echo "=========================================="
|
|
61
|
+
echo ""
|
|
62
|
+
|
|
63
|
+
echo "1. Health Coach (Drill Sergeant)"
|
|
64
|
+
echo "------------------------------------------"
|
|
65
|
+
generate_elevenlabs_audio "$DRILL_SERGEANT_ID" "$HEALTH_COACH_TEXT" "${AGENTS_DIR}/elevenlabs-health-coach.mp3"
|
|
66
|
+
|
|
67
|
+
echo ""
|
|
68
|
+
echo "2. Motivator (Aria)"
|
|
69
|
+
echo "------------------------------------------"
|
|
70
|
+
generate_elevenlabs_audio "$ARIA_ID" "$MOTIVATOR_TEXT" "${AGENTS_DIR}/elevenlabs-motivator.mp3"
|
|
71
|
+
|
|
72
|
+
echo ""
|
|
73
|
+
echo "=========================================="
|
|
74
|
+
echo "Generation Complete!"
|
|
75
|
+
echo "=========================================="
|
|
76
|
+
echo ""
|
|
77
|
+
echo "Generated files:"
|
|
78
|
+
ls -lh "${AGENTS_DIR}/elevenlabs-health-coach.mp3" 2>/dev/null
|
|
79
|
+
ls -lh "${AGENTS_DIR}/elevenlabs-motivator.mp3" 2>/dev/null
|
|
@@ -114,10 +114,10 @@ teardown() {
|
|
|
114
114
|
run "$PROVIDER_MANAGER" switch "piper"
|
|
115
115
|
|
|
116
116
|
[ "$status" -eq 0 ]
|
|
117
|
-
assert_output_contains "voice
|
|
117
|
+
assert_output_contains "voice set to:"
|
|
118
118
|
|
|
119
|
-
# Voice file should
|
|
120
|
-
[[
|
|
119
|
+
# Voice file should exist with new default voice
|
|
120
|
+
[[ -f "$VOICE_FILE" ]]
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
@test "provider-manager switching providers removes voice file" {
|
|
@@ -127,8 +127,11 @@ teardown() {
|
|
|
127
127
|
|
|
128
128
|
"$PROVIDER_MANAGER" switch "elevenlabs"
|
|
129
129
|
|
|
130
|
-
# Voice file should
|
|
131
|
-
[[
|
|
130
|
+
# Voice file should exist with new default voice for provider
|
|
131
|
+
[[ -f "$VOICE_FILE" ]]
|
|
132
|
+
|
|
133
|
+
# Should contain the new provider's default voice
|
|
134
|
+
assert_file_contains "$VOICE_FILE" "Amy"
|
|
132
135
|
}
|
|
133
136
|
|
|
134
137
|
# ============================================================================
|
|
@@ -257,15 +257,15 @@ teardown() {
|
|
|
257
257
|
[ "$status" -eq 0 ]
|
|
258
258
|
assert_output_contains "Testing new speed with:"
|
|
259
259
|
|
|
260
|
-
# Should contain one of the
|
|
261
|
-
[[ "$output" =~ "
|
|
260
|
+
# Should contain one of the test messages
|
|
261
|
+
[[ "$output" =~ "Testing speed"|"Speed test"|"Checking audio"|"Speed configuration"|"Audio speed" ]]
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
@test "speed-manager shows
|
|
264
|
+
@test "speed-manager shows test message text before playing" {
|
|
265
265
|
run "$SPEED_MANAGER" "1x"
|
|
266
266
|
|
|
267
267
|
[ "$status" -eq 0 ]
|
|
268
|
-
# Should show the actual
|
|
268
|
+
# Should show the actual test message being played
|
|
269
269
|
assert_output_contains "Testing new speed with:"
|
|
270
270
|
}
|
|
271
271
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Add a new custom ElevenLabs TTS voice
|
|
3
|
-
argument-hint: <voice_name> <voice_id>
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Add a new custom ElevenLabs TTS voice to your voice library.
|
|
7
|
-
|
|
8
|
-
Usage:
|
|
9
|
-
- `/agent-vibes:add "My Custom Voice" abc123xyz456789`
|
|
10
|
-
- `/agent-vibes:add Narrator KTPVrSVAEUSJRClDzBw7`
|
|
11
|
-
|
|
12
|
-
The voice ID should be a 15-30 character alphanumeric string from your ElevenLabs account.
|
|
13
|
-
|
|
14
|
-
To find your voice IDs:
|
|
15
|
-
1. Go to https://elevenlabs.io/app/voice-library
|
|
16
|
-
2. Click on a voice
|
|
17
|
-
3. Copy the voice ID from the URL or settings
|
|
18
|
-
|
|
19
|
-
After adding, you can switch to it with `/agent-vibes:switch "Voice Name"`
|
|
20
|
-
|
|
21
|
-
!bash .claude/hooks/voice-manager.sh add $ARGUMENTS
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: ElevenLabs TTS voice management commands
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# 🎤 ElevenLabs Voice Management
|
|
6
|
-
|
|
7
|
-
Manage your ElevenLabs text-to-speech voices with these commands:
|
|
8
|
-
|
|
9
|
-
## Available Commands
|
|
10
|
-
|
|
11
|
-
### `/agent-vibes:list [first|last] [N]`
|
|
12
|
-
List all available voices, with optional filtering
|
|
13
|
-
- `/agent-vibes:list` - Show all voices
|
|
14
|
-
- `/agent-vibes:list first 5` - Show first 5 voices
|
|
15
|
-
- `/agent-vibes:list last 3` - Show last 3 voices
|
|
16
|
-
|
|
17
|
-
### `/agent-vibes:preview [first|last] [N]`
|
|
18
|
-
Preview voices by playing audio samples
|
|
19
|
-
- `/agent-vibes:preview` - Preview first 3 voices
|
|
20
|
-
- `/agent-vibes:preview 5` - Preview first 5 voices
|
|
21
|
-
- `/agent-vibes:preview last 5` - Preview last 5 voices
|
|
22
|
-
|
|
23
|
-
### `/agent-vibes:switch <voice_name>`
|
|
24
|
-
Switch to a different default voice
|
|
25
|
-
- `/agent-vibes:switch Northern Terry`
|
|
26
|
-
- `/agent-vibes:switch "Cowboy Bob"`
|
|
27
|
-
|
|
28
|
-
### `/agent-vibes:get`
|
|
29
|
-
Display the currently selected voice
|
|
30
|
-
|
|
31
|
-
### `/agent-vibes:add <name> <voice_id>`
|
|
32
|
-
Add a new custom voice from your ElevenLabs account
|
|
33
|
-
- `/agent-vibes:add "My Voice" abc123xyz456`
|
|
34
|
-
|
|
35
|
-
### `/agent-vibes:replay [N]`
|
|
36
|
-
Replay recently played TTS audio
|
|
37
|
-
- `/agent-vibes:replay` - Replay last audio
|
|
38
|
-
- `/agent-vibes:replay 1` - Replay most recent
|
|
39
|
-
- `/agent-vibes:replay 2` - Replay second-to-last
|
|
40
|
-
- `/agent-vibes:replay 3` - Replay third-to-last
|
|
41
|
-
|
|
42
|
-
Keeps last 10 audio files in history.
|
|
43
|
-
|
|
44
|
-
### `/agent-vibes:set-pretext <word>`
|
|
45
|
-
Set a prefix word/phrase for all TTS messages
|
|
46
|
-
- `/agent-vibes:set-pretext AgentVibes` - All TTS starts with "AgentVibes:"
|
|
47
|
-
- `/agent-vibes:set-pretext "Project Alpha"` - Custom phrase
|
|
48
|
-
- `/agent-vibes:set-pretext ""` - Clear pretext
|
|
49
|
-
|
|
50
|
-
Saved locally in `.claude/config/agentvibes.json`
|
|
51
|
-
|
|
52
|
-
## Getting Voice IDs
|
|
53
|
-
|
|
54
|
-
To add your own custom voices:
|
|
55
|
-
1. Go to https://elevenlabs.io/app/voice-library
|
|
56
|
-
2. Select or create a voice
|
|
57
|
-
3. Copy the voice ID (15-30 character alphanumeric string)
|
|
58
|
-
4. Use `/agent-vibes:add` to add it
|
|
59
|
-
|
|
60
|
-
## Default Voices
|
|
61
|
-
|
|
62
|
-
The system comes with these Character Voices from ElevenLabs:
|
|
63
|
-
- Northern Terry, Grandpa Spuds Oxley, Ms. Walker
|
|
64
|
-
- Ralf Eisend, Amy, Michael, Jessica Anne Bogart
|
|
65
|
-
- Aria, Lutz Laugh, Dr. Von Fusion, Matthew Schmitz
|
|
66
|
-
- Demon Monster, Cowboy Bob, Drill Sergeant
|
|
67
|
-
|
|
68
|
-
Enjoy your TTS experience! 🎵
|