agentvibes 5.2.1 → 5.4.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.
Files changed (222) hide show
  1. package/.agentvibes/LITE-MODE.md +236 -0
  2. package/.agentvibes/README.md +136 -0
  3. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
  4. package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
  5. package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
  6. package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
  7. package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
  8. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
  9. package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
  10. package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
  11. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
  12. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
  13. package/.agentvibes/bmad/bmad-voices.md +69 -69
  14. package/.agentvibes/config/README-personality-defaults.md +162 -0
  15. package/.agentvibes/config/mode.txt +1 -0
  16. package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
  17. package/.agentvibes/config/save-audio.txt +1 -0
  18. package/.agentvibes/config/voice-metadata.json +160 -0
  19. package/.agentvibes/config.json +24 -15
  20. package/.agentvibes/hooks/help.sh +191 -0
  21. package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
  22. package/.agentvibes/hooks/save-audio-manager.sh +162 -0
  23. package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
  24. package/.agentvibes/hooks/session-start-full.sh +142 -0
  25. package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
  26. package/.agentvibes/hooks/session-start-lite.sh +29 -0
  27. package/.agentvibes/hooks/stop-lite.sh +115 -0
  28. package/.agentvibes/hooks/switch-mode.sh +215 -0
  29. package/.agentvibes/output-styles/audio-summary.md +30 -0
  30. package/.claude/activation-instructions +54 -54
  31. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  32. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  33. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  34. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  35. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  36. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  37. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  38. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  39. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  40. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  41. package/.claude/commands/agent-vibes/add.md +21 -21
  42. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  43. package/.claude/commands/agent-vibes/agent.md +79 -79
  44. package/.claude/commands/agent-vibes/background-music.md +111 -111
  45. package/.claude/commands/agent-vibes/bmad.md +198 -198
  46. package/.claude/commands/agent-vibes/clean.md +18 -18
  47. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  48. package/.claude/commands/agent-vibes/commands.json +145 -145
  49. package/.claude/commands/agent-vibes/effects.md +97 -97
  50. package/.claude/commands/agent-vibes/get.md +9 -9
  51. package/.claude/commands/agent-vibes/hide.md +91 -91
  52. package/.claude/commands/agent-vibes/language.md +23 -23
  53. package/.claude/commands/agent-vibes/learn.md +67 -67
  54. package/.claude/commands/agent-vibes/list.md +13 -13
  55. package/.claude/commands/agent-vibes/mute.md +37 -37
  56. package/.claude/commands/agent-vibes/preview.md +17 -17
  57. package/.claude/commands/agent-vibes/provider.md +68 -68
  58. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  59. package/.claude/commands/agent-vibes/sample.md +12 -12
  60. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  61. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  62. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  63. package/.claude/commands/agent-vibes/show.md +84 -84
  64. package/.claude/commands/agent-vibes/switch.md +87 -87
  65. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  66. package/.claude/commands/agent-vibes/target.md +30 -30
  67. package/.claude/commands/agent-vibes/translate.md +68 -68
  68. package/.claude/commands/agent-vibes/unmute.md +45 -45
  69. package/.claude/commands/agent-vibes/whoami.md +7 -7
  70. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  71. package/.claude/commands/agent-vibes-rdp.md +24 -24
  72. package/.claude/config/audio-effects.cfg +4 -11
  73. package/.claude/config/audio-effects.cfg.sample +52 -52
  74. package/.claude/config/background-music-position.txt +27 -0
  75. package/.claude/config/background-music-volume.txt +1 -1
  76. package/.claude/config/background-music.cfg +1 -0
  77. package/.claude/config/background-music.txt +1 -0
  78. package/.claude/config/tts-speech-rate.txt +1 -4
  79. package/.claude/config/tts-verbosity.txt +1 -0
  80. package/.claude/docs/TERMUX_SETUP.md +408 -408
  81. package/.claude/github-star-reminder.txt +1 -1
  82. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  83. package/.claude/hooks/audio-cache-utils.sh +0 -0
  84. package/.claude/hooks/audio-processor.sh +60 -14
  85. package/.claude/hooks/background-music-manager.sh +0 -0
  86. package/.claude/hooks/bmad-party-manager.sh +225 -0
  87. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  88. package/.claude/hooks/bmad-speak.sh +6 -13
  89. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  90. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  91. package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
  92. package/.claude/hooks/clawdbot-receiver.sh +4 -28
  93. package/.claude/hooks/clean-audio-cache.sh +0 -0
  94. package/.claude/hooks/cleanup-cache.sh +0 -0
  95. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  96. package/.claude/hooks/download-extra-voices.sh +0 -0
  97. package/.claude/hooks/effects-manager.sh +0 -0
  98. package/.claude/hooks/github-star-reminder.sh +0 -0
  99. package/.claude/hooks/language-manager.sh +0 -0
  100. package/.claude/hooks/learn-manager.sh +0 -0
  101. package/.claude/hooks/macos-voice-manager.sh +0 -0
  102. package/.claude/hooks/migrate-background-music.sh +0 -0
  103. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  104. package/.claude/hooks/optimize-background-music.sh +0 -0
  105. package/.claude/hooks/personality-manager.sh +0 -0
  106. package/.claude/hooks/piper-download-voices.sh +0 -0
  107. package/.claude/hooks/piper-installer.sh +1 -1
  108. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  109. package/.claude/hooks/piper-voice-manager.sh +0 -0
  110. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  111. package/.claude/hooks/play-tts-macos.sh +6 -12
  112. package/.claude/hooks/play-tts-piper.sh +50 -79
  113. package/.claude/hooks/play-tts-soprano.sh +9 -43
  114. package/.claude/hooks/play-tts-ssh-remote.sh +42 -120
  115. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  116. package/.claude/hooks/play-tts.sh +48 -37
  117. package/.claude/hooks/post-response.sh +41 -0
  118. package/.claude/hooks/prepare-release.sh +0 -0
  119. package/.claude/hooks/provider-commands.sh +0 -0
  120. package/.claude/hooks/provider-manager.sh +0 -0
  121. package/.claude/hooks/replay-target-audio.sh +0 -0
  122. package/.claude/hooks/requirements.txt +6 -6
  123. package/.claude/hooks/sentiment-manager.sh +0 -0
  124. package/.claude/hooks/session-start-tts.sh +56 -39
  125. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  126. package/.claude/hooks/speed-manager.sh +0 -0
  127. package/.claude/hooks/stop.sh +63 -0
  128. package/.claude/hooks/termux-installer.sh +0 -0
  129. package/.claude/hooks/translate-manager.sh +0 -0
  130. package/.claude/hooks/translator.py +237 -237
  131. package/.claude/hooks/tts-queue-worker.sh +0 -0
  132. package/.claude/hooks/tts-queue.sh +0 -0
  133. package/.claude/hooks/verbosity-manager.sh +0 -0
  134. package/.claude/hooks/voice-manager.sh +26 -4
  135. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  136. package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -274
  137. package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
  138. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
  139. package/.claude/hooks-windows/effects-manager.ps1 +294 -294
  140. package/.claude/hooks-windows/language-manager.ps1 +193 -193
  141. package/.claude/hooks-windows/learn-manager.ps1 +241 -241
  142. package/.claude/hooks-windows/personality-manager.ps1 +266 -266
  143. package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
  144. package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
  145. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +164 -0
  146. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
  147. package/.claude/hooks-windows/play-tts.ps1 +104 -481
  148. package/.claude/hooks-windows/provider-manager.ps1 +158 -192
  149. package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
  150. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  151. package/.claude/hooks-windows/speed-manager.ps1 +166 -166
  152. package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
  153. package/.claude/output-styles/agent-vibes.md +202 -202
  154. package/.claude/personalities/angry.md +14 -14
  155. package/.claude/personalities/annoying.md +14 -14
  156. package/.claude/personalities/crass.md +14 -14
  157. package/.claude/personalities/dramatic.md +14 -14
  158. package/.claude/personalities/dry-humor.md +50 -50
  159. package/.claude/personalities/flirty.md +20 -20
  160. package/.claude/personalities/funny.md +14 -14
  161. package/.claude/personalities/grandpa.md +32 -32
  162. package/.claude/personalities/millennial.md +14 -14
  163. package/.claude/personalities/moody.md +14 -14
  164. package/.claude/personalities/normal.md +16 -16
  165. package/.claude/personalities/pirate.md +14 -14
  166. package/.claude/personalities/poetic.md +14 -14
  167. package/.claude/personalities/professional.md +14 -14
  168. package/.claude/personalities/rapper.md +55 -55
  169. package/.claude/personalities/robot.md +14 -14
  170. package/.claude/personalities/sarcastic.md +38 -38
  171. package/.claude/personalities/sassy.md +14 -14
  172. package/.claude/personalities/surfer-dude.md +14 -14
  173. package/.claude/personalities/zen.md +14 -14
  174. package/.claude/piper-voices-dir.txt +1 -0
  175. package/.claude/settings.json +25 -15
  176. package/.claude/verbosity.txt +1 -1
  177. package/.clawdbot/README.md +105 -105
  178. package/.clawdbot/skill/SKILL.md +149 -145
  179. package/.mcp.json +30 -11
  180. package/CLAUDE.md +170 -215
  181. package/README.md +206 -515
  182. package/RELEASE_NOTES.md +1132 -1884
  183. package/WINDOWS-SETUP.md +208 -208
  184. package/bin/agent-vibes +0 -0
  185. package/bin/agentvibes-voice-browser.js +64 -1289
  186. package/bin/agentvibes.js +0 -0
  187. package/bin/ensure-soprano-running.sh +43 -0
  188. package/bin/mcp-server.js +121 -121
  189. package/bin/mcp-server.sh +0 -0
  190. package/bin/test-bmad-pr +78 -78
  191. package/mcp-server/QUICK_START.md +203 -203
  192. package/mcp-server/README.md +345 -345
  193. package/mcp-server/WINDOWS_SETUP.md +260 -260
  194. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  195. package/mcp-server/examples/claude_desktop_config.json +11 -11
  196. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  197. package/mcp-server/examples/custom_instructions.md +169 -169
  198. package/mcp-server/install-deps.js +130 -130
  199. package/mcp-server/pyproject.toml +52 -52
  200. package/mcp-server/requirements.txt +2 -2
  201. package/mcp-server/server.py +1451 -1578
  202. package/mcp-server/test_server.py +395 -395
  203. package/package.json +1 -3
  204. package/setup-windows.ps1 +815 -815
  205. package/src/console/tabs/setup-tab.js +9 -6
  206. package/src/console/tabs/voices-tab.js +9 -3
  207. package/src/installer.js +42 -5
  208. package/src/services/llm-provider-service.js +13 -0
  209. package/templates/agentvibes-receiver.sh +158 -483
  210. package/templates/audio/welcome-music.mp3 +0 -0
  211. package/.agentvibes/bmad-voice-map.json +0 -104
  212. package/.agentvibes/copilot-sessions.log +0 -4
  213. package/.claude/config/audio-effects-bmad.cfg +0 -50
  214. package/.claude/config/background-music-enabled.txt +0 -1
  215. package/.claude/config/intro-text.txt +0 -1
  216. package/.claude/config/personality.txt +0 -1
  217. package/.claude/config/piper-speech-rate.txt +0 -4
  218. package/.claude/config/piper-target-speech-rate.txt +0 -1
  219. package/.claude/config/reverb-level.txt +0 -1
  220. package/.claude/config/tts-target-speech-rate.txt +0 -1
  221. package/voice-assignments.json +0 -8245
  222. /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!**
@@ -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