agentvibes 5.3.0 → 5.5.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/.agentvibes/LITE-MODE.md +236 -0
- package/.agentvibes/README.md +136 -0
- package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
- package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
- package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
- package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
- package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
- package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
- package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
- package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
- package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
- package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
- package/.agentvibes/bmad/bmad-voices.md +69 -69
- package/.agentvibes/config/README-personality-defaults.md +162 -0
- package/.agentvibes/config/mode.txt +1 -0
- package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
- package/.agentvibes/config/save-audio.txt +1 -0
- package/.agentvibes/config/voice-metadata.json +160 -0
- package/.agentvibes/config.json +24 -15
- package/.agentvibes/hooks/help.sh +191 -0
- package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
- package/.agentvibes/hooks/save-audio-manager.sh +162 -0
- package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
- package/.agentvibes/hooks/session-start-full.sh +142 -0
- package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
- package/.agentvibes/hooks/session-start-lite.sh +29 -0
- package/.agentvibes/hooks/stop-lite.sh +115 -0
- package/.agentvibes/hooks/switch-mode.sh +215 -0
- package/.agentvibes/output-styles/audio-summary.md +30 -0
- package/.claude/activation-instructions +54 -54
- package/.claude/audio/voice-samples/piper/alan.wav +0 -0
- package/.claude/audio/voice-samples/piper/amy.wav +0 -0
- package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
- package/.claude/audio/voice-samples/piper/joe.wav +0 -0
- package/.claude/audio/voice-samples/piper/john.wav +0 -0
- package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
- package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
- package/.claude/audio/voice-samples/piper/linda.wav +0 -0
- package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
- package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
- package/.claude/commands/agent-vibes/add.md +21 -21
- package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
- package/.claude/commands/agent-vibes/agent.md +79 -79
- package/.claude/commands/agent-vibes/background-music.md +111 -111
- package/.claude/commands/agent-vibes/bmad.md +198 -198
- package/.claude/commands/agent-vibes/clean.md +18 -18
- package/.claude/commands/agent-vibes/cleanup.md +18 -18
- package/.claude/commands/agent-vibes/commands.json +145 -145
- package/.claude/commands/agent-vibes/effects.md +97 -97
- package/.claude/commands/agent-vibes/get.md +9 -9
- package/.claude/commands/agent-vibes/hide.md +91 -91
- package/.claude/commands/agent-vibes/language.md +23 -23
- package/.claude/commands/agent-vibes/learn.md +67 -67
- package/.claude/commands/agent-vibes/list.md +13 -13
- package/.claude/commands/agent-vibes/mute.md +37 -37
- package/.claude/commands/agent-vibes/preview.md +17 -17
- package/.claude/commands/agent-vibes/provider.md +68 -68
- package/.claude/commands/agent-vibes/replay-target.md +14 -14
- package/.claude/commands/agent-vibes/sample.md +12 -12
- package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
- package/.claude/commands/agent-vibes/set-pretext.md +65 -65
- package/.claude/commands/agent-vibes/set-speed.md +41 -41
- package/.claude/commands/agent-vibes/show.md +84 -84
- package/.claude/commands/agent-vibes/switch.md +87 -87
- package/.claude/commands/agent-vibes/target-voice.md +26 -26
- package/.claude/commands/agent-vibes/target.md +30 -30
- package/.claude/commands/agent-vibes/translate.md +68 -68
- package/.claude/commands/agent-vibes/unmute.md +45 -45
- package/.claude/commands/agent-vibes/whoami.md +7 -7
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/audio-effects.cfg +16 -11
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/config/background-music-position.txt +27 -0
- package/.claude/config/background-music-volume.txt +1 -1
- package/.claude/config/background-music.cfg +1 -0
- package/.claude/config/background-music.txt +1 -0
- package/.claude/config/tts-speech-rate.txt +1 -4
- package/.claude/config/tts-verbosity.txt +1 -0
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/README-TTS-QUEUE.md +135 -135
- package/.claude/hooks/audio-cache-utils.sh +0 -0
- package/.claude/hooks/audio-processor.sh +60 -14
- package/.claude/hooks/background-music-manager.sh +0 -0
- package/.claude/hooks/bmad-party-manager.sh +225 -0
- package/.claude/hooks/bmad-party-speak.sh +0 -0
- package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
- package/.claude/hooks/bmad-speak.sh +12 -15
- package/.claude/hooks/bmad-tts-injector.sh +0 -0
- package/.claude/hooks/bmad-voice-manager.sh +0 -0
- package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
- package/.claude/hooks/clawdbot-receiver.sh +4 -28
- package/.claude/hooks/clean-audio-cache.sh +0 -0
- package/.claude/hooks/cleanup-cache.sh +0 -0
- package/.claude/hooks/configure-rdp-mode.sh +0 -0
- package/.claude/hooks/download-extra-voices.sh +0 -0
- package/.claude/hooks/effects-manager.sh +0 -0
- package/.claude/hooks/github-star-reminder.sh +0 -0
- package/.claude/hooks/language-manager.sh +0 -0
- package/.claude/hooks/learn-manager.sh +0 -0
- package/.claude/hooks/macos-voice-manager.sh +0 -0
- package/.claude/hooks/migrate-background-music.sh +0 -0
- package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
- package/.claude/hooks/optimize-background-music.sh +0 -0
- package/.claude/hooks/personality-manager.sh +0 -0
- package/.claude/hooks/piper-download-voices.sh +0 -0
- package/.claude/hooks/piper-installer.sh +1 -1
- package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
- package/.claude/hooks/piper-voice-manager.sh +0 -0
- package/.claude/hooks/play-tts-enhanced.sh +0 -0
- package/.claude/hooks/play-tts-macos.sh +6 -12
- package/.claude/hooks/play-tts-piper.sh +52 -81
- package/.claude/hooks/play-tts-soprano.sh +9 -43
- package/.claude/hooks/play-tts-ssh-remote.sh +43 -215
- package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
- package/.claude/hooks/play-tts.sh +41 -20
- package/.claude/hooks/post-response.sh +41 -0
- package/.claude/hooks/prepare-release.sh +0 -0
- package/.claude/hooks/provider-commands.sh +0 -0
- package/.claude/hooks/provider-manager.sh +0 -0
- package/.claude/hooks/replay-target-audio.sh +0 -0
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/sentiment-manager.sh +0 -0
- package/.claude/hooks/session-start-tts.sh +56 -39
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/speed-manager.sh +0 -0
- package/.claude/hooks/stop.sh +63 -0
- package/.claude/hooks/termux-installer.sh +0 -0
- package/.claude/hooks/translate-manager.sh +0 -0
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks/tts-queue-worker.sh +0 -0
- package/.claude/hooks/tts-queue.sh +0 -0
- package/.claude/hooks/verbosity-manager.sh +0 -0
- package/.claude/hooks/voice-manager.sh +26 -4
- package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
- package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -278
- package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
- package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
- package/.claude/hooks-windows/effects-manager.ps1 +294 -294
- package/.claude/hooks-windows/language-manager.ps1 +193 -193
- package/.claude/hooks-windows/learn-manager.ps1 +241 -241
- package/.claude/hooks-windows/personality-manager.ps1 +266 -266
- package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
- package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +178 -0
- package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
- package/.claude/hooks-windows/play-tts.ps1 +265 -507
- package/.claude/hooks-windows/provider-manager.ps1 +158 -192
- package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/hooks-windows/speed-manager.ps1 +166 -166
- package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
- package/.claude/output-styles/agent-vibes.md +202 -202
- package/.claude/personalities/angry.md +14 -14
- package/.claude/personalities/annoying.md +14 -14
- package/.claude/personalities/crass.md +14 -14
- package/.claude/personalities/dramatic.md +14 -14
- package/.claude/personalities/dry-humor.md +50 -50
- package/.claude/personalities/flirty.md +20 -20
- package/.claude/personalities/funny.md +14 -14
- package/.claude/personalities/grandpa.md +32 -32
- package/.claude/personalities/millennial.md +14 -14
- package/.claude/personalities/moody.md +14 -14
- package/.claude/personalities/normal.md +16 -16
- package/.claude/personalities/pirate.md +14 -14
- package/.claude/personalities/poetic.md +14 -14
- package/.claude/personalities/professional.md +14 -14
- package/.claude/personalities/rapper.md +55 -55
- package/.claude/personalities/robot.md +14 -14
- package/.claude/personalities/sarcastic.md +38 -38
- package/.claude/personalities/sassy.md +14 -14
- package/.claude/personalities/surfer-dude.md +14 -14
- package/.claude/personalities/zen.md +14 -14
- package/.claude/piper-voices-dir.txt +1 -0
- package/.claude/settings.json +25 -15
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/.clawdbot/skill/SKILL.md +149 -145
- package/.mcp.json +30 -11
- package/CLAUDE.md +170 -215
- package/README.md +207 -521
- package/RELEASE_NOTES.md +1172 -1976
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +0 -0
- package/bin/agentvibes-voice-browser.js +64 -1289
- package/bin/agentvibes.js +28 -0
- package/bin/ensure-soprano-running.sh +43 -0
- package/bin/mcp-server.js +121 -121
- package/bin/mcp-server.sh +0 -0
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/WINDOWS_SETUP.md +260 -260
- package/mcp-server/docs/troubleshooting-audio.md +313 -313
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +130 -130
- package/mcp-server/pyproject.toml +52 -52
- package/mcp-server/requirements.txt +2 -2
- package/mcp-server/server.py +1467 -1578
- package/mcp-server/test_server.py +395 -395
- package/package.json +1 -3
- package/setup-windows.ps1 +815 -815
- package/src/console/tabs/music-tab.js +5 -2
- package/src/console/tabs/voices-tab.js +71 -37
- package/src/installer.js +52 -5
- package/src/services/llm-provider-service.js +1 -1
- package/templates/agentvibes-receiver.sh +158 -483
- package/templates/audio/welcome-music.mp3 +0 -0
- package/.agentvibes/bmad-voice-map.json +0 -104
- package/.agentvibes/copilot-sessions.log +0 -4
- package/.claude/config/audio-effects-bmad.cfg +0 -50
- package/.claude/config/intro-text.txt +0 -1
- package/.claude/config/personality.txt +0 -1
- package/.claude/config/piper-speech-rate.txt +0 -4
- package/.claude/config/piper-target-speech-rate.txt +0 -1
- package/.claude/config/reverb-level.txt +0 -1
- package/.claude/config/tts-target-speech-rate.txt +0 -1
- package/voice-assignments.json +0 -8245
- /package/{.claude → .agentvibes}/config/agentvibes.json +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .agentvibes/hooks/session-start-lite-v2.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes LITE MODE v2 - Minimal Full Mode Architecture
|
|
6
|
+
# Uses working tool-call approach with minimal token overhead
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
# Fix locale warnings
|
|
10
|
+
export LC_ALL=C
|
|
11
|
+
|
|
12
|
+
# Set lite mode environment variable to skip file saving
|
|
13
|
+
export AGENTVIBES_LITE_MODE=true
|
|
14
|
+
|
|
15
|
+
# Output minimal TTS protocol to stdout
|
|
16
|
+
cat <<'EOF'
|
|
17
|
+
|
|
18
|
+
# AgentVibes Lite Mode
|
|
19
|
+
|
|
20
|
+
**At the END of your response, execute ONE TTS call:**
|
|
21
|
+
|
|
22
|
+
`Bash: .claude/hooks/play-tts.sh "[brief summary of what you accomplished]"`
|
|
23
|
+
|
|
24
|
+
**Rules:**
|
|
25
|
+
- Only ONE TTS at completion (no acknowledgment)
|
|
26
|
+
- Keep message under 100 characters
|
|
27
|
+
- Summarize what you did, not how you did it
|
|
28
|
+
- Examples:
|
|
29
|
+
- "Fixed authentication bug in login.js"
|
|
30
|
+
- "Found 12 TODO comments across 5 files"
|
|
31
|
+
- "Created new user registration endpoint"
|
|
32
|
+
- "Updated configuration and restarted service"
|
|
33
|
+
|
|
34
|
+
EOF
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .agentvibes/hooks/session-start-lite.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes LITE MODE SessionStart Hook
|
|
6
|
+
# Minimal token overhead (~50 tokens vs ~500 in full mode)
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
# Fix locale warnings
|
|
10
|
+
export LC_ALL=C
|
|
11
|
+
|
|
12
|
+
# Get script directory
|
|
13
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
14
|
+
|
|
15
|
+
# Check if AgentVibes is installed
|
|
16
|
+
if [[ ! -f "$SCRIPT_DIR/../../.claude/hooks/play-tts.sh" ]]; then
|
|
17
|
+
exit 0
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Minimal protocol - just instruct to use output style marker
|
|
21
|
+
cat <<'EOF'
|
|
22
|
+
# AgentVibes Lite Mode
|
|
23
|
+
|
|
24
|
+
**At the end of EVERY response, add:**
|
|
25
|
+
|
|
26
|
+
**Audio Summary:** [Brief 1-sentence summary of what you accomplished]
|
|
27
|
+
|
|
28
|
+
This will be spoken automatically via TTS.
|
|
29
|
+
EOF
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .agentvibes/hooks/stop-lite.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes LITE MODE Stop Hook
|
|
6
|
+
# Extracts "Audio Summary:" marker from transcript and speaks it via TTS
|
|
7
|
+
# - Smart verbosity (skip for very short responses)
|
|
8
|
+
# - No .wav file saving (direct TTS)
|
|
9
|
+
# - Silent operation (no stdout)
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
# Fix locale warnings
|
|
15
|
+
export LC_ALL=C
|
|
16
|
+
|
|
17
|
+
# Read token thresholds
|
|
18
|
+
MIN_TOKENS=${AGENTVIBES_MIN_TOKENS:-50} # Skip TTS below this
|
|
19
|
+
SHORT_TOKENS=${AGENTVIBES_SHORT_TOKENS:-200} # Simplify to "Done" below this
|
|
20
|
+
|
|
21
|
+
# Function to count approximate tokens (words)
|
|
22
|
+
count_tokens() {
|
|
23
|
+
echo "$1" | wc -w
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
# Function to extract Audio Summary from transcript
|
|
27
|
+
extract_audio_summary() {
|
|
28
|
+
local transcript_path="$1"
|
|
29
|
+
|
|
30
|
+
# Check if transcript exists
|
|
31
|
+
[[ ! -f "$transcript_path" ]] && return 1
|
|
32
|
+
|
|
33
|
+
# Get last assistant message from transcript
|
|
34
|
+
local last_response=$(jq -r '
|
|
35
|
+
[.[] | select(.role == "assistant") | .content[]? | select(.type == "text") | .text] | .[-1] // ""
|
|
36
|
+
' "$transcript_path" 2>/dev/null || echo "")
|
|
37
|
+
|
|
38
|
+
[[ -z "$last_response" ]] && return 1
|
|
39
|
+
|
|
40
|
+
# Look for "**Audio Summary:**" marker (case-insensitive)
|
|
41
|
+
if echo "$last_response" | grep -qi "Audio Summary:"; then
|
|
42
|
+
# Extract text after the marker, trim whitespace
|
|
43
|
+
echo "$last_response" | sed -n 's/.*[Aa]udio [Ss]ummary:[[:space:]]*\(.*\)/\1/p' | head -1 | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'
|
|
44
|
+
return 0
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
return 1
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Function to play TTS (direct, no file saving)
|
|
51
|
+
play_tts() {
|
|
52
|
+
local text="$1"
|
|
53
|
+
|
|
54
|
+
# Get TTS configuration
|
|
55
|
+
local config_dir=".agentvibes/config"
|
|
56
|
+
local provider="piper"
|
|
57
|
+
local voice=""
|
|
58
|
+
|
|
59
|
+
if [[ -f "$config_dir/provider.txt" ]]; then
|
|
60
|
+
provider=$(cat "$config_dir/provider.txt" 2>/dev/null | tr -d '[:space:]')
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
if [[ -f "$config_dir/voice.txt" ]]; then
|
|
64
|
+
voice=$(cat "$config_dir/voice.txt" 2>/dev/null | tr -d '[:space:]')
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# Use AgentVibes play-tts.sh for consistent TTS
|
|
68
|
+
if [[ -f ".claude/hooks/play-tts.sh" ]]; then
|
|
69
|
+
bash .claude/hooks/play-tts.sh "$text" >/dev/null 2>&1 &
|
|
70
|
+
fi
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
# Main logic
|
|
74
|
+
main() {
|
|
75
|
+
# Get transcript path from hook input (passed as JSON on stdin or as argument)
|
|
76
|
+
local transcript_path=""
|
|
77
|
+
|
|
78
|
+
if [[ -n "${1:-}" ]]; then
|
|
79
|
+
# Try to parse as JSON first
|
|
80
|
+
transcript_path=$(echo "$1" | jq -r '.transcript_path // empty' 2>/dev/null || echo "")
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
# If not found, try reading from stdin
|
|
84
|
+
if [[ -z "$transcript_path" ]] && [[ -p /dev/stdin ]]; then
|
|
85
|
+
local input=$(cat)
|
|
86
|
+
transcript_path=$(echo "$input" | jq -r '.transcript_path // empty' 2>/dev/null || echo "")
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# If still no transcript path, exit
|
|
90
|
+
[[ -z "$transcript_path" ]] && exit 0
|
|
91
|
+
|
|
92
|
+
# Extract Audio Summary
|
|
93
|
+
local summary=$(extract_audio_summary "$transcript_path")
|
|
94
|
+
|
|
95
|
+
# If no Audio Summary marker found, exit silently
|
|
96
|
+
[[ -z "$summary" ]] && exit 0
|
|
97
|
+
|
|
98
|
+
# Count tokens in summary
|
|
99
|
+
local token_count=$(count_tokens "$summary")
|
|
100
|
+
|
|
101
|
+
# Skip TTS for very short summaries
|
|
102
|
+
[[ $token_count -lt $MIN_TOKENS ]] && exit 0
|
|
103
|
+
|
|
104
|
+
# For short responses, simplify to "Done"
|
|
105
|
+
if [[ $token_count -lt $SHORT_TOKENS ]]; then
|
|
106
|
+
summary="Done"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Play TTS in background
|
|
110
|
+
play_tts "$summary"
|
|
111
|
+
|
|
112
|
+
exit 0
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
main "$@"
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .agentvibes/hooks/switch-mode.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes Mode Switcher
|
|
6
|
+
# Safely switches between Full Mode and Lite Mode
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
# Fix locale warnings
|
|
12
|
+
export LC_ALL=C
|
|
13
|
+
|
|
14
|
+
# Directories
|
|
15
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
|
+
AGENTVIBES_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
17
|
+
CLAUDE_DIR=".claude"
|
|
18
|
+
CONFIG_DIR="$AGENTVIBES_DIR/config"
|
|
19
|
+
BACKUP_DIR="$AGENTVIBES_DIR/backup"
|
|
20
|
+
|
|
21
|
+
# Files
|
|
22
|
+
MODE_FILE="$CONFIG_DIR/mode.txt"
|
|
23
|
+
SESSION_START_HOOK="$CLAUDE_DIR/hooks/session-start-tts.sh"
|
|
24
|
+
POST_TOOL_USE_HOOK="$CLAUDE_DIR/hooks/post-tool-use.sh"
|
|
25
|
+
|
|
26
|
+
# Colors for output
|
|
27
|
+
RED='\033[0;31m'
|
|
28
|
+
GREEN='\033[0;32m'
|
|
29
|
+
YELLOW='\033[1;33m'
|
|
30
|
+
BLUE='\033[0;34m'
|
|
31
|
+
NC='\033[0m' # No Color
|
|
32
|
+
|
|
33
|
+
# Functions
|
|
34
|
+
print_info() {
|
|
35
|
+
echo -e "${BLUE}ℹ${NC} $1"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
print_success() {
|
|
39
|
+
echo -e "${GREEN}✓${NC} $1"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
print_warning() {
|
|
43
|
+
echo -e "${YELLOW}⚠${NC} $1"
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
print_error() {
|
|
47
|
+
echo -e "${RED}✗${NC} $1"
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Ensure directories exist
|
|
51
|
+
ensure_dirs() {
|
|
52
|
+
mkdir -p "$CONFIG_DIR" "$BACKUP_DIR" "$CLAUDE_DIR/hooks"
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Get current mode
|
|
56
|
+
get_current_mode() {
|
|
57
|
+
if [[ -f "$MODE_FILE" ]]; then
|
|
58
|
+
cat "$MODE_FILE"
|
|
59
|
+
else
|
|
60
|
+
echo "full"
|
|
61
|
+
fi
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Show current mode
|
|
65
|
+
show_mode() {
|
|
66
|
+
local current_mode=$(get_current_mode)
|
|
67
|
+
echo ""
|
|
68
|
+
echo "═══════════════════════════════════════════"
|
|
69
|
+
echo " AgentVibes Current Mode"
|
|
70
|
+
echo "═══════════════════════════════════════════"
|
|
71
|
+
echo ""
|
|
72
|
+
|
|
73
|
+
if [[ "$current_mode" == "lite" ]]; then
|
|
74
|
+
echo -e "${GREEN}●${NC} LITE MODE (Active)"
|
|
75
|
+
echo " - Minimal tokens (~50 vs ~500)"
|
|
76
|
+
echo " - No acknowledgment TTS"
|
|
77
|
+
echo " - Smart completion TTS"
|
|
78
|
+
echo " - No .wav files"
|
|
79
|
+
echo " - Silent operation"
|
|
80
|
+
echo ""
|
|
81
|
+
echo "○ FULL MODE"
|
|
82
|
+
echo " - All features (personalities, learning, effects)"
|
|
83
|
+
else
|
|
84
|
+
echo "○ LITE MODE"
|
|
85
|
+
echo ""
|
|
86
|
+
echo -e "${GREEN}●${NC} FULL MODE (Active)"
|
|
87
|
+
echo " - Full protocol (~500 tokens)"
|
|
88
|
+
echo " - Acknowledgment + completion TTS"
|
|
89
|
+
echo " - Personalities & learning"
|
|
90
|
+
echo " - Audio effects & background music"
|
|
91
|
+
echo " - All features enabled"
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
echo ""
|
|
95
|
+
echo "═══════════════════════════════════════════"
|
|
96
|
+
echo ""
|
|
97
|
+
echo "Switch modes: /agent-vibes mode [lite|full]"
|
|
98
|
+
echo ""
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Switch to lite mode
|
|
102
|
+
switch_to_lite() {
|
|
103
|
+
print_info "Switching to LITE mode..."
|
|
104
|
+
|
|
105
|
+
# No need to copy hooks - they're sourced from .agentvibes/
|
|
106
|
+
# Just update the mode file
|
|
107
|
+
echo "lite" > "$MODE_FILE"
|
|
108
|
+
|
|
109
|
+
echo ""
|
|
110
|
+
echo "═══════════════════════════════════════════"
|
|
111
|
+
print_success "Switched to LITE MODE"
|
|
112
|
+
echo "═══════════════════════════════════════════"
|
|
113
|
+
echo ""
|
|
114
|
+
echo "Features:"
|
|
115
|
+
echo " ✓ Minimal tokens (~50)"
|
|
116
|
+
echo " ✓ No acknowledgment TTS"
|
|
117
|
+
echo " ✓ Smart completion TTS"
|
|
118
|
+
echo " ✓ No .wav files"
|
|
119
|
+
echo " ✓ Silent operation"
|
|
120
|
+
echo ""
|
|
121
|
+
echo "Note: Restart your Claude session for changes to take effect"
|
|
122
|
+
echo ""
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
# Switch to full mode
|
|
126
|
+
switch_to_full() {
|
|
127
|
+
print_info "Switching to FULL mode..."
|
|
128
|
+
|
|
129
|
+
# No need to copy hooks - they're sourced from .agentvibes/
|
|
130
|
+
# Just update the mode file
|
|
131
|
+
echo "full" > "$MODE_FILE"
|
|
132
|
+
|
|
133
|
+
# Prompt user for save-audio preference (GitHub Issue #74)
|
|
134
|
+
echo ""
|
|
135
|
+
echo "═══════════════════════════════════════════"
|
|
136
|
+
echo " Audio File Saving Preference"
|
|
137
|
+
echo "═══════════════════════════════════════════"
|
|
138
|
+
echo ""
|
|
139
|
+
echo "Would you like to save TTS audio files to disk?"
|
|
140
|
+
echo ""
|
|
141
|
+
echo " [y] Yes - Save files to .claude/audio/"
|
|
142
|
+
echo " (useful for debugging, replay, archiving)"
|
|
143
|
+
echo ""
|
|
144
|
+
echo " [N] No - Use temporary files (default)"
|
|
145
|
+
echo " (automatic cleanup, saves disk space)"
|
|
146
|
+
echo ""
|
|
147
|
+
read -p "Your choice [y/N]: " -n 1 -r
|
|
148
|
+
echo ""
|
|
149
|
+
|
|
150
|
+
SAVE_AUDIO_FILE="$CONFIG_DIR/save-audio.txt"
|
|
151
|
+
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
152
|
+
echo "true" > "$SAVE_AUDIO_FILE"
|
|
153
|
+
print_success "Audio file saving ENABLED"
|
|
154
|
+
echo " Files will be saved to .claude/audio/"
|
|
155
|
+
else
|
|
156
|
+
echo "false" > "$SAVE_AUDIO_FILE"
|
|
157
|
+
print_success "Audio file saving DISABLED (default)"
|
|
158
|
+
echo " Temporary files will be used and auto-cleaned"
|
|
159
|
+
fi
|
|
160
|
+
|
|
161
|
+
echo ""
|
|
162
|
+
echo "═══════════════════════════════════════════"
|
|
163
|
+
print_success "Switched to FULL MODE"
|
|
164
|
+
echo "═══════════════════════════════════════════"
|
|
165
|
+
echo ""
|
|
166
|
+
echo "Features:"
|
|
167
|
+
echo " ✓ Full protocol (~500 tokens)"
|
|
168
|
+
echo " ✓ Acknowledgment + completion TTS"
|
|
169
|
+
echo " ✓ Personalities & learning"
|
|
170
|
+
echo " ✓ Audio effects & background music"
|
|
171
|
+
echo " ✓ All features enabled"
|
|
172
|
+
echo ""
|
|
173
|
+
echo "💡 Change audio saving anytime: /agent-vibes:save-audio [on|off]"
|
|
174
|
+
echo ""
|
|
175
|
+
echo "Note: Restart your Claude session for changes to take effect"
|
|
176
|
+
echo ""
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
# Note: check_mode() has been removed in favor of /agent-vibes:help
|
|
180
|
+
# which provides user-friendly diagnostics with actionable suggestions
|
|
181
|
+
|
|
182
|
+
# Main
|
|
183
|
+
main() {
|
|
184
|
+
local command="${1:-}"
|
|
185
|
+
|
|
186
|
+
ensure_dirs
|
|
187
|
+
|
|
188
|
+
case "$command" in
|
|
189
|
+
lite)
|
|
190
|
+
switch_to_lite
|
|
191
|
+
;;
|
|
192
|
+
full)
|
|
193
|
+
switch_to_full
|
|
194
|
+
;;
|
|
195
|
+
"")
|
|
196
|
+
show_mode
|
|
197
|
+
;;
|
|
198
|
+
*)
|
|
199
|
+
print_error "Unknown command: $command"
|
|
200
|
+
echo ""
|
|
201
|
+
echo "Usage: $0 [lite|full]"
|
|
202
|
+
echo ""
|
|
203
|
+
echo "Commands:"
|
|
204
|
+
echo " lite - Switch to Lite Mode (minimal overhead)"
|
|
205
|
+
echo " full - Switch to Full Mode (all features)"
|
|
206
|
+
echo " (none) - Show current mode"
|
|
207
|
+
echo ""
|
|
208
|
+
echo "💡 For status and diagnostics, use: /agent-vibes:help"
|
|
209
|
+
echo ""
|
|
210
|
+
exit 1
|
|
211
|
+
;;
|
|
212
|
+
esac
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
main "$@"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Audio Summary Output Style
|
|
2
|
+
|
|
3
|
+
This output style is used in AgentVibes Lite Mode to provide minimal TTS feedback.
|
|
4
|
+
|
|
5
|
+
## Instructions
|
|
6
|
+
|
|
7
|
+
At the end of EVERY response, add a brief summary in this format:
|
|
8
|
+
|
|
9
|
+
**Audio Summary:** [1-sentence summary of what you accomplished]
|
|
10
|
+
|
|
11
|
+
## Examples
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
**Audio Summary:** Created three new React components for the dashboard.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
**Audio Summary:** Fixed the authentication bug and added test coverage.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
**Audio Summary:** Refactored the API client to use async/await.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Guidelines
|
|
26
|
+
|
|
27
|
+
- Keep it to ONE sentence
|
|
28
|
+
- Focus on WHAT you did, not HOW
|
|
29
|
+
- Be specific but concise
|
|
30
|
+
- This will be spoken via text-to-speech automatically
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# BMAD Agent Activation Instructions
|
|
2
|
-
|
|
3
|
-
When a BMAD agent activates, follow these steps EXACTLY:
|
|
4
|
-
|
|
5
|
-
## STEP 3.5a: Create BMAD Context File (CRITICAL)
|
|
6
|
-
|
|
7
|
-
**IMMEDIATELY after agent identification, create the context file:**
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
echo "$AGENT_ID" > .bmad-agent-context
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Where `$AGENT_ID` is one of:
|
|
14
|
-
- `pm` (Product Manager)
|
|
15
|
-
- `dev` (Developer)
|
|
16
|
-
- `qa` (QA)
|
|
17
|
-
- `architect` (Architect)
|
|
18
|
-
- `po` (Product Owner)
|
|
19
|
-
- `analyst` (Analyst)
|
|
20
|
-
- `sm` (Scrum Master)
|
|
21
|
-
- `ux-expert` (UX Expert)
|
|
22
|
-
- `bmad-master` (BMAD Master)
|
|
23
|
-
- `bmad-orchestrator` (Orchestrator)
|
|
24
|
-
|
|
25
|
-
**Example:**
|
|
26
|
-
```bash
|
|
27
|
-
# For Product Manager agent
|
|
28
|
-
echo "pm" > .bmad-agent-context
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
This file allows AgentVibes to:
|
|
32
|
-
1. Detect which BMAD agent is active
|
|
33
|
-
2. Look up the correct voice mapping
|
|
34
|
-
3. Automatically speak questions using the agent's assigned voice
|
|
35
|
-
|
|
36
|
-
## STEP 10: Clean Up on Exit
|
|
37
|
-
|
|
38
|
-
**Before exiting the agent, remove the context file:**
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
rm -f .bmad-agent-context
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
This ensures voice switching only happens when an agent is active.
|
|
45
|
-
|
|
46
|
-
## Why This Matters
|
|
47
|
-
|
|
48
|
-
Without the `.bmad-agent-context` file:
|
|
49
|
-
- AgentVibes cannot detect which agent is active
|
|
50
|
-
- Questions won't be spoken automatically
|
|
51
|
-
- Voice switching won't work
|
|
52
|
-
- The BMAD voice plugin becomes non-functional
|
|
53
|
-
|
|
54
|
-
**This is MANDATORY for BMAD voice integration to work!**
|
|
1
|
+
# BMAD Agent Activation Instructions
|
|
2
|
+
|
|
3
|
+
When a BMAD agent activates, follow these steps EXACTLY:
|
|
4
|
+
|
|
5
|
+
## STEP 3.5a: Create BMAD Context File (CRITICAL)
|
|
6
|
+
|
|
7
|
+
**IMMEDIATELY after agent identification, create the context file:**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
echo "$AGENT_ID" > .bmad-agent-context
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Where `$AGENT_ID` is one of:
|
|
14
|
+
- `pm` (Product Manager)
|
|
15
|
+
- `dev` (Developer)
|
|
16
|
+
- `qa` (QA)
|
|
17
|
+
- `architect` (Architect)
|
|
18
|
+
- `po` (Product Owner)
|
|
19
|
+
- `analyst` (Analyst)
|
|
20
|
+
- `sm` (Scrum Master)
|
|
21
|
+
- `ux-expert` (UX Expert)
|
|
22
|
+
- `bmad-master` (BMAD Master)
|
|
23
|
+
- `bmad-orchestrator` (Orchestrator)
|
|
24
|
+
|
|
25
|
+
**Example:**
|
|
26
|
+
```bash
|
|
27
|
+
# For Product Manager agent
|
|
28
|
+
echo "pm" > .bmad-agent-context
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This file allows AgentVibes to:
|
|
32
|
+
1. Detect which BMAD agent is active
|
|
33
|
+
2. Look up the correct voice mapping
|
|
34
|
+
3. Automatically speak questions using the agent's assigned voice
|
|
35
|
+
|
|
36
|
+
## STEP 10: Clean Up on Exit
|
|
37
|
+
|
|
38
|
+
**Before exiting the agent, remove the context file:**
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
rm -f .bmad-agent-context
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This ensures voice switching only happens when an agent is active.
|
|
45
|
+
|
|
46
|
+
## Why This Matters
|
|
47
|
+
|
|
48
|
+
Without the `.bmad-agent-context` file:
|
|
49
|
+
- AgentVibes cannot detect which agent is active
|
|
50
|
+
- Questions won't be spoken automatically
|
|
51
|
+
- Voice switching won't work
|
|
52
|
+
- The BMAD voice plugin becomes non-functional
|
|
53
|
+
|
|
54
|
+
**This is MANDATORY for BMAD voice integration to work!**
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Add a new custom Piper TTS TTS voice
|
|
3
|
-
argument-hint: <voice_name> <voice_id>
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Add a new custom Piper TTS 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 Piper TTS account.
|
|
13
|
-
|
|
14
|
-
To find your voice IDs:
|
|
15
|
-
1. Go to https://piper.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
|
+
---
|
|
2
|
+
description: Add a new custom Piper TTS TTS voice
|
|
3
|
+
argument-hint: <voice_name> <voice_id>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Add a new custom Piper TTS 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 Piper TTS account.
|
|
13
|
+
|
|
14
|
+
To find your voice IDs:
|
|
15
|
+
1. Go to https://piper.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
|