agentvibes 2.0.23 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/github-star-reminder.txt +1 -1
- package/.claude/output-styles/agent-vibes.md +16 -9
- package/README.md +2 -2
- package/RELEASE_NOTES.md +98 -1980
- package/docs/agents.md +485 -0
- package/fix-vscode-colors.sh +88 -0
- package/fixcolors +88 -0
- package/generate-all-agent-voices.sh +174 -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/package.json +1 -1
- package/regenerate-agent-voices.sh +79 -0
- package/src/installer.js +56 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Script to generate agent intro samples for ALL ElevenLabs and Piper voices
|
|
4
|
+
# This allows users to hear agent intros in any voice they select
|
|
5
|
+
|
|
6
|
+
# Check if ELEVENLABS_API_KEY is set
|
|
7
|
+
if [ -z "$ELEVENLABS_API_KEY" ]; then
|
|
8
|
+
echo "Error: ELEVENLABS_API_KEY environment variable is not set"
|
|
9
|
+
echo "Please set it with: export ELEVENLABS_API_KEY='your-key-here'"
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Output directories
|
|
14
|
+
ELEVENLABS_DIR="agentvibes.org/public/audio/elevenlabs/agents"
|
|
15
|
+
PIPER_DIR="agentvibes.org/public/audio/piper-voices/agents"
|
|
16
|
+
|
|
17
|
+
mkdir -p "$ELEVENLABS_DIR"
|
|
18
|
+
mkdir -p "$PIPER_DIR"
|
|
19
|
+
|
|
20
|
+
# Voice model path for Piper
|
|
21
|
+
VOICE_MODEL_16="mcp-server/voices/16Speakers.onnx"
|
|
22
|
+
|
|
23
|
+
# Agent intro texts
|
|
24
|
+
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."
|
|
25
|
+
|
|
26
|
+
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."
|
|
27
|
+
|
|
28
|
+
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."
|
|
29
|
+
|
|
30
|
+
# ElevenLabs Voice IDs (from voices-config.sh)
|
|
31
|
+
declare -A ELEVENLABS_VOICES=(
|
|
32
|
+
["jessica"]="flHkNRp1BlvT73UL6gyz"
|
|
33
|
+
["drill"]="vfaqCOvlrKi4Zp7C2IAm" # Demon Monster
|
|
34
|
+
["drill-sergeant"]="DGzg6RaUqxGRTHSBjfgF"
|
|
35
|
+
["aria"]="9BWtsMINqrJLrRacOk9x"
|
|
36
|
+
["cowboy"]="KTPVrSVAEUSJRClDzBw7"
|
|
37
|
+
["dr"]="yjJ45q8TVCrtMhEKurxY"
|
|
38
|
+
["grandpa"]="MKlLqCItoCkvdhrxgtLv"
|
|
39
|
+
["michael"]="flq6f7yk4E4fJM5XTYuZ"
|
|
40
|
+
["ms"]="t0jbNlBVZ17f02VDIeMI"
|
|
41
|
+
["pirate"]="PPzYpIqttlTYA83688JI"
|
|
42
|
+
["amy"]="bhJUNIXWQQ94l8eI2VUf"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Piper voices (speaker IDs from 16Speakers model)
|
|
46
|
+
declare -A PIPER_VOICES=(
|
|
47
|
+
["0"]="Cori"
|
|
48
|
+
["1"]="Kara"
|
|
49
|
+
["2"]="Kristin"
|
|
50
|
+
["3"]="Maria"
|
|
51
|
+
["4"]="Mike"
|
|
52
|
+
["5"]="Mark"
|
|
53
|
+
["6"]="Michael"
|
|
54
|
+
["7"]="James"
|
|
55
|
+
["8"]="Rose"
|
|
56
|
+
["9"]="Hazel"
|
|
57
|
+
["10"]="Steve"
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# Function to generate ElevenLabs audio
|
|
61
|
+
generate_elevenlabs_audio() {
|
|
62
|
+
local voice_id=$1
|
|
63
|
+
local voice_slug=$2
|
|
64
|
+
local agent=$3
|
|
65
|
+
local text=$4
|
|
66
|
+
local output_file="${ELEVENLABS_DIR}/${agent}-${voice_slug}.mp3"
|
|
67
|
+
|
|
68
|
+
echo " Generating: ${agent}-${voice_slug}.mp3"
|
|
69
|
+
|
|
70
|
+
curl -s -X POST "https://api.elevenlabs.io/v1/text-to-speech/${voice_id}" \
|
|
71
|
+
-H "xi-api-key: ${ELEVENLABS_API_KEY}" \
|
|
72
|
+
-H "Content-Type: application/json" \
|
|
73
|
+
-d "{
|
|
74
|
+
\"text\": \"${text}\",
|
|
75
|
+
\"model_id\": \"eleven_monolingual_v1\",
|
|
76
|
+
\"voice_settings\": {
|
|
77
|
+
\"stability\": 0.5,
|
|
78
|
+
\"similarity_boost\": 0.75
|
|
79
|
+
}
|
|
80
|
+
}" \
|
|
81
|
+
--output "$output_file"
|
|
82
|
+
|
|
83
|
+
if [ $? -eq 0 ] && [ -s "$output_file" ]; then
|
|
84
|
+
echo " ✓ Generated: ${agent}-${voice_slug}.mp3"
|
|
85
|
+
else
|
|
86
|
+
echo " ✗ Failed: ${agent}-${voice_slug}.mp3"
|
|
87
|
+
return 1
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
sleep 0.5
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# Function to generate Piper audio
|
|
94
|
+
generate_piper_audio() {
|
|
95
|
+
local speaker_id=$1
|
|
96
|
+
local speaker_name=$2
|
|
97
|
+
local agent=$3
|
|
98
|
+
local text=$4
|
|
99
|
+
local output_file="${PIPER_DIR}/${agent}-${speaker_id}.wav"
|
|
100
|
+
|
|
101
|
+
echo " Generating: ${agent}-${speaker_id}.wav (${speaker_name})"
|
|
102
|
+
|
|
103
|
+
if [ ! -f "$VOICE_MODEL_16" ]; then
|
|
104
|
+
echo " ✗ Model not found: $VOICE_MODEL_16"
|
|
105
|
+
return 1
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
echo "$text" | piper --model "$VOICE_MODEL_16" --speaker "$speaker_id" --output_file "$output_file" 2>/dev/null
|
|
109
|
+
|
|
110
|
+
if [ $? -eq 0 ]; then
|
|
111
|
+
echo " ✓ Generated: ${agent}-${speaker_id}.wav"
|
|
112
|
+
else
|
|
113
|
+
echo " ✗ Failed: ${agent}-${speaker_id}.wav"
|
|
114
|
+
return 1
|
|
115
|
+
fi
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
echo "=========================================="
|
|
119
|
+
echo "Generating Agent Voice Samples"
|
|
120
|
+
echo "=========================================="
|
|
121
|
+
echo ""
|
|
122
|
+
|
|
123
|
+
# Generate for each agent
|
|
124
|
+
for agent_slug in "negotiator" "health-coach" "motivator"; do
|
|
125
|
+
# Set agent text
|
|
126
|
+
case $agent_slug in
|
|
127
|
+
"negotiator")
|
|
128
|
+
agent_text="$NEGOTIATOR_TEXT"
|
|
129
|
+
agent_name="Negotiator"
|
|
130
|
+
;;
|
|
131
|
+
"health-coach")
|
|
132
|
+
agent_text="$HEALTH_COACH_TEXT"
|
|
133
|
+
agent_name="Health Coach"
|
|
134
|
+
;;
|
|
135
|
+
"motivator")
|
|
136
|
+
agent_text="$MOTIVATOR_TEXT"
|
|
137
|
+
agent_name="Motivator"
|
|
138
|
+
;;
|
|
139
|
+
esac
|
|
140
|
+
|
|
141
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
142
|
+
echo "Agent: $agent_name"
|
|
143
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
144
|
+
echo ""
|
|
145
|
+
|
|
146
|
+
# Generate ElevenLabs voices
|
|
147
|
+
echo "ElevenLabs Voices:"
|
|
148
|
+
echo "------------------------------------------"
|
|
149
|
+
for voice_slug in "${!ELEVENLABS_VOICES[@]}"; do
|
|
150
|
+
voice_id="${ELEVENLABS_VOICES[$voice_slug]}"
|
|
151
|
+
generate_elevenlabs_audio "$voice_id" "$voice_slug" "$agent_slug" "$agent_text"
|
|
152
|
+
done
|
|
153
|
+
|
|
154
|
+
echo ""
|
|
155
|
+
echo "Piper Voices:"
|
|
156
|
+
echo "------------------------------------------"
|
|
157
|
+
# Generate Piper voices
|
|
158
|
+
for speaker_id in "${!PIPER_VOICES[@]}"; do
|
|
159
|
+
speaker_name="${PIPER_VOICES[$speaker_id]}"
|
|
160
|
+
generate_piper_audio "$speaker_id" "$speaker_name" "$agent_slug" "$agent_text"
|
|
161
|
+
done
|
|
162
|
+
|
|
163
|
+
echo ""
|
|
164
|
+
done
|
|
165
|
+
|
|
166
|
+
echo "=========================================="
|
|
167
|
+
echo "Generation Complete!"
|
|
168
|
+
echo "=========================================="
|
|
169
|
+
echo ""
|
|
170
|
+
echo "ElevenLabs files:"
|
|
171
|
+
ls -lh "${ELEVENLABS_DIR}"/*.mp3 2>/dev/null | wc -l
|
|
172
|
+
echo ""
|
|
173
|
+
echo "Piper files:"
|
|
174
|
+
ls -lh "${PIPER_DIR}"/*.wav 2>/dev/null | wc -l
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Script to generate ElevenLabs voice samples for new voices
|
|
4
|
+
# Voices: Drill Sergeant (DGzg6RaUqxGRTHSBjfgF) and Grandpa Werthers (MKlLqCItoCkvdhrxgtLv)
|
|
5
|
+
|
|
6
|
+
# Check if ELEVENLABS_API_KEY is set
|
|
7
|
+
if [ -z "$ELEVENLABS_API_KEY" ]; then
|
|
8
|
+
echo "Error: ELEVENLABS_API_KEY environment variable is not set"
|
|
9
|
+
echo "Please set it with: export ELEVENLABS_API_KEY='your-key-here'"
|
|
10
|
+
exit 1
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Output directory
|
|
14
|
+
OUTPUT_DIR="agentvibes.org/public/audio/elevenlabs"
|
|
15
|
+
mkdir -p "$OUTPUT_DIR"
|
|
16
|
+
|
|
17
|
+
# Voice configurations
|
|
18
|
+
DRILL_SERGEANT_ID="DGzg6RaUqxGRTHSBjfgF"
|
|
19
|
+
DRILL_SERGEANT_SLUG="drill-sergeant"
|
|
20
|
+
|
|
21
|
+
GRANDPA_WERTHERS_ID="MKlLqCItoCkvdhrxgtLv"
|
|
22
|
+
GRANDPA_WERTHERS_SLUG="grandpa"
|
|
23
|
+
|
|
24
|
+
# Personality texts (from the webpage)
|
|
25
|
+
declare -A PERSONALITY_TEXTS=(
|
|
26
|
+
["sarcastic"]="Oh wonderful! Even more documentation surgery. Because that's exactly what I wanted to do with my evening."
|
|
27
|
+
["angry"]="ARE YOU KIDDING ME?! Another bug in production! This is absolutely UNACCEPTABLE!"
|
|
28
|
+
["flirty"]="Well hello there, gorgeous! I've been waiting for you to ask me that. How about we tackle this together?"
|
|
29
|
+
["pirate"]="Arrr matey! Hoist the colors and prepare to set sail on this here coding adventure!"
|
|
30
|
+
["millennial"]="I literally can't even write now. This cold is giving me anxiety. I need coffee and avocado toast to deal with this. Then we select about it later."
|
|
31
|
+
["sassy"]="Oh honey, please. I've been doing this since before you even knew what a terminal was. Watch and learn."
|
|
32
|
+
["robot"]="Beeep boop. Processing request. Human emotion detected. Initiating task completion protocol. Probability of success: 99.7%."
|
|
33
|
+
["zen"]="Breathe in the bugs. Breathe out the fixes. The code flows like water. We are one with the repository. All errors are merely opportunities for growth."
|
|
34
|
+
["dramatic"]="This is the most important commit of our lives. The fate of the entire application rests upon this single line of code. Behold."
|
|
35
|
+
["surfer_dude"]="This code is totally gnarly, like riding the wave of optimization, bro. Let's catch some sick performance improvements."
|
|
36
|
+
["funny"]="Oh. My. God. Like, this is totally the most important thing ever? I'm literally so excited right now!"
|
|
37
|
+
["professional"]="For our previous discussion, I've completed the code review and identified three actionable items for optimization. Please advise our next steps."
|
|
38
|
+
["poetic"]="The code flows eternal. Each function a verse, each variable a rhyme. We write not mere programs, but digital poetry."
|
|
39
|
+
["moody"]="I guess I'll fix this bug. Not like anyone appreciates my work anyway. Why do I even bother? *Sigh* Fine. Let's get this over with."
|
|
40
|
+
["grandpa"]="Back in my day, we didn't have all these fancy frameworks. We coded uphill both ways in the snow and we liked it."
|
|
41
|
+
["dry_humor"]="Another merge conflict. How thrilling. I can barely contain my excitement. This is exactly what I went to computer science school for."
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
# Function to generate audio using ElevenLabs API
|
|
45
|
+
generate_audio() {
|
|
46
|
+
local voice_id=$1
|
|
47
|
+
local voice_slug=$2
|
|
48
|
+
local personality=$3
|
|
49
|
+
local text=$4
|
|
50
|
+
local output_file="${OUTPUT_DIR}/${voice_slug}-${personality}.mp3"
|
|
51
|
+
|
|
52
|
+
echo "Generating: ${voice_slug}-${personality}.mp3"
|
|
53
|
+
|
|
54
|
+
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/${voice_id}" \
|
|
55
|
+
-H "xi-api-key: ${ELEVENLABS_API_KEY}" \
|
|
56
|
+
-H "Content-Type: application/json" \
|
|
57
|
+
-d "{
|
|
58
|
+
\"text\": \"${text}\",
|
|
59
|
+
\"model_id\": \"eleven_monolingual_v1\",
|
|
60
|
+
\"voice_settings\": {
|
|
61
|
+
\"stability\": 0.5,
|
|
62
|
+
\"similarity_boost\": 0.75
|
|
63
|
+
}
|
|
64
|
+
}" \
|
|
65
|
+
--output "$output_file"
|
|
66
|
+
|
|
67
|
+
if [ $? -eq 0 ]; then
|
|
68
|
+
echo "✓ Successfully generated: $output_file"
|
|
69
|
+
else
|
|
70
|
+
echo "✗ Failed to generate: $output_file"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Small delay to avoid rate limiting
|
|
74
|
+
sleep 1
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
echo "=========================================="
|
|
78
|
+
echo "Generating ElevenLabs Voice Samples"
|
|
79
|
+
echo "=========================================="
|
|
80
|
+
echo ""
|
|
81
|
+
|
|
82
|
+
# Generate all samples for Drill Sergeant
|
|
83
|
+
echo "Voice 1: Drill Sergeant"
|
|
84
|
+
echo "------------------------------------------"
|
|
85
|
+
for personality in "${!PERSONALITY_TEXTS[@]}"; do
|
|
86
|
+
text="${PERSONALITY_TEXTS[$personality]}"
|
|
87
|
+
generate_audio "$DRILL_SERGEANT_ID" "$DRILL_SERGEANT_SLUG" "$personality" "$text"
|
|
88
|
+
done
|
|
89
|
+
|
|
90
|
+
echo ""
|
|
91
|
+
echo "Voice 2: Grandpa Werthers"
|
|
92
|
+
echo "------------------------------------------"
|
|
93
|
+
# Note: Grandpa Werthers keeps the same slug 'grandpa' as before, just new voice ID
|
|
94
|
+
for personality in "${!PERSONALITY_TEXTS[@]}"; do
|
|
95
|
+
text="${PERSONALITY_TEXTS[$personality]}"
|
|
96
|
+
generate_audio "$GRANDPA_WERTHERS_ID" "$GRANDPA_WERTHERS_SLUG" "$personality" "$text"
|
|
97
|
+
done
|
|
98
|
+
|
|
99
|
+
echo ""
|
|
100
|
+
echo "=========================================="
|
|
101
|
+
echo "Generation Complete!"
|
|
102
|
+
echo "=========================================="
|
|
103
|
+
echo ""
|
|
104
|
+
echo "Files created in: $OUTPUT_DIR"
|
|
105
|
+
echo ""
|
|
106
|
+
echo "Total files generated:"
|
|
107
|
+
ls -1 "$OUTPUT_DIR"/*-sergeant-*.mp3 2>/dev/null | wc -l | xargs echo " Drill Sergeant:"
|
|
108
|
+
ls -1 "$OUTPUT_DIR"/grandpa-*.mp3 2>/dev/null | wc -l | xargs echo " Grandpa Werthers:"
|
|
@@ -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
|
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.1.0",
|
|
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": [
|
|
@@ -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
|