agentvibes 2.0.20 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/.claude/agents/health-coach.md +154 -0
  2. package/.claude/agents/motivator.md +171 -0
  3. package/.claude/agents/negotiator.md +97 -0
  4. package/.claude/commands/agent-vibes/agent-health-coach.md +15 -0
  5. package/.claude/commands/agent-vibes/agent-motivator.md +15 -0
  6. package/.claude/commands/agent-vibes/agent-negotiator.md +15 -0
  7. package/.claude/commands/agent-vibes/agent.md +79 -0
  8. package/.claude/commands/agent-vibes/commands.json +4 -0
  9. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -0
  10. package/.claude/github-star-reminder.txt +1 -1
  11. package/.claude/hooks/download-extra-voices.sh +244 -0
  12. package/.claude/hooks/personality-manager.sh +81 -0
  13. package/.claude/hooks/piper-download-voices.sh +3 -93
  14. package/.claude/hooks/piper-multispeaker-registry.sh +165 -0
  15. package/.claude/hooks/play-tts-elevenlabs.sh +5 -3
  16. package/.claude/hooks/play-tts-piper.sh +27 -44
  17. package/.claude/hooks/provider-manager.sh +24 -5
  18. package/.claude/hooks/speed-manager.sh +10 -12
  19. package/.claude/hooks/voice-manager.sh +94 -56
  20. package/README.md +0 -3
  21. package/RELEASE_NOTES.md +40 -247
  22. package/docs/agents.md +485 -0
  23. package/docs/commands.md +1 -21
  24. package/docs/extra-voices-implementation-summary.md +235 -0
  25. package/docs/voice-registration-fix.md +254 -0
  26. package/fix-vscode-colors.sh +88 -0
  27. package/fixcolors +88 -0
  28. package/generate-all-agent-voices.sh +174 -0
  29. package/generate-missing-elevenlabs-complete.sh +236 -0
  30. package/generate-missing-elevenlabs.sh +110 -0
  31. package/generate-new-voices.sh +108 -0
  32. package/generate-piper-agent-intros.sh +85 -0
  33. package/generate-provider-and-agent-intros.sh +136 -0
  34. package/logo/fav_icon_128x128.png +0 -0
  35. package/logo/fav_icon_128x128.png:Zone.Identifier +4 -0
  36. package/logo/logo1.webp +0 -0
  37. package/logo/logo1.webp:Zone.Identifier +4 -0
  38. package/logo/social.png +0 -0
  39. package/logo/social.png:Zone.Identifier +4 -0
  40. package/mcp-server/agentvibes.db +0 -0
  41. package/mcp-server/server.py +47 -14
  42. package/package.json +3 -3
  43. package/regenerate-agent-voices.sh +79 -0
  44. package/test/unit/provider-manager.bats +8 -5
  45. package/test/unit/speed-manager.bats +4 -4
  46. package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
  47. package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
  48. package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
  49. package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
  50. package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
  51. package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
  52. package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
  53. package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
  54. package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
  55. package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
  56. package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
  57. package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
  58. package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
  59. package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
  60. package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
  61. package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
  62. package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
  63. package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
  64. package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
  65. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
  66. package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +0 -196
  67. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -77
  68. package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
  69. package/agentvibes.org/.claude/commands/agent-vibes/language.md +0 -23
  70. package/agentvibes.org/.claude/commands/agent-vibes/learn.md +0 -67
  71. package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
  72. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
  73. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -17
  74. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
  75. package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +0 -14
  76. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
  77. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
  78. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
  79. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
  80. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
  81. package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +0 -41
  82. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
  83. package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +0 -26
  84. package/agentvibes.org/.claude/commands/agent-vibes/target.md +0 -30
  85. package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
  86. package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
  87. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
  88. package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +0 -386
  89. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -375
  90. package/agentvibes.org/.claude/hooks/check-output-style.sh +0 -60
  91. package/agentvibes.org/.claude/hooks/github-star-reminder.sh +0 -94
  92. package/agentvibes.org/.claude/hooks/language-manager.sh +0 -360
  93. package/agentvibes.org/.claude/hooks/learn-manager.sh +0 -443
  94. package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -324
  95. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
  96. package/agentvibes.org/.claude/hooks/piper-installer.sh +0 -144
  97. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
  98. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -376
  99. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -281
  100. package/agentvibes.org/.claude/hooks/play-tts.sh +0 -69
  101. package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -505
  102. package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -248
  103. package/agentvibes.org/.claude/hooks/replay-target-audio.sh +0 -64
  104. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
  105. package/agentvibes.org/.claude/hooks/speed-manager.sh +0 -259
  106. package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -477
  107. package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
  108. package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
  109. package/agentvibes.org/.claude/journal/index.html +0 -91
  110. package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
  111. package/agentvibes.org/.claude/personalities/angry.md +0 -17
  112. package/agentvibes.org/.claude/personalities/annoying.md +0 -17
  113. package/agentvibes.org/.claude/personalities/crass.md +0 -17
  114. package/agentvibes.org/.claude/personalities/dramatic.md +0 -17
  115. package/agentvibes.org/.claude/personalities/dry-humor.md +0 -53
  116. package/agentvibes.org/.claude/personalities/flirty.md +0 -23
  117. package/agentvibes.org/.claude/personalities/funny.md +0 -17
  118. package/agentvibes.org/.claude/personalities/grandpa.md +0 -35
  119. package/agentvibes.org/.claude/personalities/millennial.md +0 -17
  120. package/agentvibes.org/.claude/personalities/moody.md +0 -17
  121. package/agentvibes.org/.claude/personalities/normal.md +0 -19
  122. package/agentvibes.org/.claude/personalities/pirate.md +0 -17
  123. package/agentvibes.org/.claude/personalities/poetic.md +0 -17
  124. package/agentvibes.org/.claude/personalities/professional.md +0 -17
  125. package/agentvibes.org/.claude/personalities/robot.md +0 -17
  126. package/agentvibes.org/.claude/personalities/sarcastic.md +0 -41
  127. package/agentvibes.org/.claude/personalities/sassy.md +0 -17
  128. package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -17
  129. package/agentvibes.org/.claude/personalities/zen.md +0 -17
  130. package/agentvibes.org/.claude/piper-voices-dir.txt +0 -1
  131. package/agentvibes.org/.claude/plugins/bmad-voices.md +0 -42
  132. package/agentvibes.org/.claude/tts-provider.txt +0 -1
  133. package/agentvibes.org/.mcp-minimal.json +0 -60
  134. package/agentvibes.org/CHANGELOG.md +0 -56
  135. package/agentvibes.org/README.md +0 -93
  136. package/agentvibes.org/app/(auth)/layout.tsx +0 -15
  137. package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
  138. package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
  139. package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
  140. package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +0 -128
  141. package/agentvibes.org/app/(default)/blog/page.tsx +0 -95
  142. package/agentvibes.org/app/(default)/layout.tsx +0 -31
  143. package/agentvibes.org/app/(default)/page.tsx +0 -20
  144. package/agentvibes.org/app/api/hello/route.ts +0 -3
  145. package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
  146. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
  147. package/agentvibes.org/app/css/style.css +0 -100
  148. package/agentvibes.org/app/layout.tsx +0 -63
  149. package/agentvibes.org/components/code-block.tsx +0 -27
  150. package/agentvibes.org/components/cta.tsx +0 -58
  151. package/agentvibes.org/components/features.tsx +0 -256
  152. package/agentvibes.org/components/hero-home.tsx +0 -133
  153. package/agentvibes.org/components/mdx-components.tsx +0 -128
  154. package/agentvibes.org/components/modal-video.tsx +0 -137
  155. package/agentvibes.org/components/page-illustration.tsx +0 -55
  156. package/agentvibes.org/components/spotlight.tsx +0 -77
  157. package/agentvibes.org/components/testimonials.tsx +0 -282
  158. package/agentvibes.org/components/ui/footer.tsx +0 -82
  159. package/agentvibes.org/components/ui/header.tsx +0 -68
  160. package/agentvibes.org/components/ui/logo.tsx +0 -10
  161. package/agentvibes.org/components/workflows.tsx +0 -176
  162. package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +0 -253
  163. package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +0 -228
  164. package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +0 -250
  165. package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +0 -142
  166. package/agentvibes.org/content/blog/voice-personalities-guide.mdx +0 -119
  167. package/agentvibes.org/lib/blog.ts +0 -73
  168. package/agentvibes.org/next.config.js +0 -6
  169. package/agentvibes.org/package-lock.json +0 -4285
  170. package/agentvibes.org/package.json +0 -40
  171. package/agentvibes.org/pnpm-lock.yaml +0 -1141
  172. package/agentvibes.org/postcss.config.js +0 -5
  173. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  174. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  175. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  176. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  177. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  178. package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
  179. package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
  180. package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
  181. package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
  182. package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
  183. package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
  184. package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
  185. package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
  186. package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
  187. package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
  188. package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
  189. package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
  190. package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
  191. package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
  192. package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
  193. package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
  194. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  195. package/agentvibes.org/public/favicon.ico +0 -0
  196. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  197. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  198. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  199. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  200. package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
  201. package/agentvibes.org/public/images/blurred-shape.svg +0 -1
  202. package/agentvibes.org/public/images/client-logo-01.svg +0 -1
  203. package/agentvibes.org/public/images/client-logo-02.svg +0 -1
  204. package/agentvibes.org/public/images/client-logo-03.svg +0 -1
  205. package/agentvibes.org/public/images/client-logo-04.svg +0 -1
  206. package/agentvibes.org/public/images/client-logo-05.svg +0 -1
  207. package/agentvibes.org/public/images/client-logo-06.svg +0 -1
  208. package/agentvibes.org/public/images/client-logo-07.svg +0 -1
  209. package/agentvibes.org/public/images/client-logo-08.svg +0 -1
  210. package/agentvibes.org/public/images/client-logo-09.svg +0 -1
  211. package/agentvibes.org/public/images/features.png +0 -0
  212. package/agentvibes.org/public/images/footer-illustration.svg +0 -1
  213. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  214. package/agentvibes.org/public/images/logo.svg +0 -1
  215. package/agentvibes.org/public/images/page-illustration.svg +0 -1
  216. package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
  217. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  218. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  219. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  220. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  221. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  222. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  223. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  224. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  225. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  226. package/agentvibes.org/public/images/workflow-01.png +0 -0
  227. package/agentvibes.org/public/images/workflow-02.png +0 -0
  228. package/agentvibes.org/public/images/workflow-03.png +0 -0
  229. package/agentvibes.org/public/videos/video.mp4 +0 -0
  230. package/agentvibes.org/tsconfig.json +0 -28
  231. package/agentvibes.org/utils/useMasonry.tsx +0 -67
  232. package/agentvibes.org/utils/useMousePosition.tsx +0 -27
  233. package/docs/bryce-beattie-voice-licensing.md +0 -131
@@ -1,375 +0,0 @@
1
- #!/bin/bash
2
-
3
- PLUGIN_DIR=".claude/plugins"
4
- PLUGIN_FILE="$PLUGIN_DIR/bmad-voices.md"
5
- ENABLED_FLAG="$PLUGIN_DIR/bmad-voices-enabled.flag"
6
-
7
- # Auto-enable plugin if BMAD is detected
8
- auto_enable_if_bmad_detected() {
9
- # Check if BMAD is installed
10
- if [[ -f ".bmad-core/install-manifest.yaml" ]] && [[ ! -f "$ENABLED_FLAG" ]]; then
11
- # BMAD detected but plugin not enabled - enable it silently
12
- mkdir -p "$PLUGIN_DIR"
13
- touch "$ENABLED_FLAG"
14
- return 0
15
- fi
16
- return 1
17
- }
18
-
19
- # Parse markdown table to get voice mapping
20
- get_agent_voice() {
21
- local agent_id="$1"
22
-
23
- # Auto-enable if BMAD is detected
24
- auto_enable_if_bmad_detected
25
-
26
- if [[ ! -f "$ENABLED_FLAG" ]]; then
27
- echo "" # Plugin disabled
28
- return
29
- fi
30
-
31
- if [[ ! -f "$PLUGIN_FILE" ]]; then
32
- echo "" # Plugin file missing
33
- return
34
- fi
35
-
36
- # Extract voice from markdown table
37
- local voice=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
38
- awk -F'|' '{print $4}' | \
39
- sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
40
-
41
- echo "$voice"
42
- }
43
-
44
- # Get personality for agent
45
- get_agent_personality() {
46
- local agent_id="$1"
47
-
48
- if [[ ! -f "$PLUGIN_FILE" ]]; then
49
- echo ""
50
- return
51
- fi
52
-
53
- local personality=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
54
- awk -F'|' '{print $5}' | \
55
- sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
56
-
57
- echo "$personality"
58
- }
59
-
60
- # Check if plugin is enabled
61
- is_plugin_enabled() {
62
- [[ -f "$ENABLED_FLAG" ]] && echo "true" || echo "false"
63
- }
64
-
65
- # Enable plugin
66
- enable_plugin() {
67
- mkdir -p "$PLUGIN_DIR"
68
-
69
- # Save current settings before enabling
70
- BACKUP_FILE="$PLUGIN_DIR/.bmad-previous-settings"
71
-
72
- # Save current voice
73
- if [[ -f ".claude/tts-voice.txt" ]]; then
74
- CURRENT_VOICE=$(cat .claude/tts-voice.txt 2>/dev/null)
75
- elif [[ -f "$HOME/.claude/tts-voice.txt" ]]; then
76
- CURRENT_VOICE=$(cat "$HOME/.claude/tts-voice.txt" 2>/dev/null)
77
- else
78
- CURRENT_VOICE="Aria"
79
- fi
80
-
81
- # Save current personality
82
- if [[ -f ".claude/tts-personality.txt" ]]; then
83
- CURRENT_PERSONALITY=$(cat .claude/tts-personality.txt 2>/dev/null)
84
- elif [[ -f "$HOME/.claude/tts-personality.txt" ]]; then
85
- CURRENT_PERSONALITY=$(cat "$HOME/.claude/tts-personality.txt" 2>/dev/null)
86
- else
87
- CURRENT_PERSONALITY="normal"
88
- fi
89
-
90
- # Save current sentiment
91
- if [[ -f ".claude/tts-sentiment.txt" ]]; then
92
- CURRENT_SENTIMENT=$(cat .claude/tts-sentiment.txt 2>/dev/null)
93
- elif [[ -f "$HOME/.claude/tts-sentiment.txt" ]]; then
94
- CURRENT_SENTIMENT=$(cat "$HOME/.claude/tts-sentiment.txt" 2>/dev/null)
95
- else
96
- CURRENT_SENTIMENT=""
97
- fi
98
-
99
- # Write backup
100
- cat > "$BACKUP_FILE" <<EOF
101
- VOICE=$CURRENT_VOICE
102
- PERSONALITY=$CURRENT_PERSONALITY
103
- SENTIMENT=$CURRENT_SENTIMENT
104
- EOF
105
-
106
- touch "$ENABLED_FLAG"
107
-
108
- # Create activation-instructions file for BMAD agents
109
- ACTIVATION_FILE=".claude/activation-instructions"
110
- if [[ ! -f "$ACTIVATION_FILE" ]]; then
111
- cat > "$ACTIVATION_FILE" <<'ACTIVATION_EOF'
112
- # BMAD Agent Activation Instructions
113
-
114
- When a BMAD agent activates, follow these steps EXACTLY:
115
-
116
- ## STEP 3.5a: Create BMAD Context File (CRITICAL)
117
-
118
- **IMMEDIATELY after agent identification, create the context file:**
119
-
120
- ```bash
121
- echo "$AGENT_ID" > .bmad-agent-context
122
- ```
123
-
124
- Where `$AGENT_ID` is one of:
125
- - `pm` (Product Manager)
126
- - `dev` (Developer)
127
- - `qa` (QA)
128
- - `architect` (Architect)
129
- - `po` (Product Owner)
130
- - `analyst` (Analyst)
131
- - `sm` (Scrum Master)
132
- - `ux-expert` (UX Expert)
133
- - `bmad-master` (BMAD Master)
134
- - `bmad-orchestrator` (Orchestrator)
135
-
136
- **Example:**
137
- ```bash
138
- # For Product Manager agent
139
- echo "pm" > .bmad-agent-context
140
- ```
141
-
142
- This file allows AgentVibes to:
143
- 1. Detect which BMAD agent is active
144
- 2. Look up the correct voice mapping
145
- 3. Automatically speak questions using the agent's assigned voice
146
-
147
- ## STEP 10: Clean Up on Exit
148
-
149
- **Before exiting the agent, remove the context file:**
150
-
151
- ```bash
152
- rm -f .bmad-agent-context
153
- ```
154
-
155
- This ensures voice switching only happens when an agent is active.
156
-
157
- ## Why This Matters
158
-
159
- Without the `.bmad-agent-context` file:
160
- - AgentVibes cannot detect which agent is active
161
- - Questions won't be spoken automatically
162
- - Voice switching won't work
163
- - The BMAD voice plugin becomes non-functional
164
-
165
- **This is MANDATORY for BMAD voice integration to work!**
166
- ACTIVATION_EOF
167
- echo "📝 Created activation instructions: $ACTIVATION_FILE"
168
- fi
169
-
170
- echo "✅ BMAD voice plugin enabled"
171
- echo "💾 Previous settings backed up:"
172
- echo " Voice: $CURRENT_VOICE"
173
- echo " Personality: $CURRENT_PERSONALITY"
174
- [[ -n "$CURRENT_SENTIMENT" ]] && echo " Sentiment: $CURRENT_SENTIMENT"
175
- echo ""
176
- list_mappings
177
-
178
- # Automatically inject TTS into BMAD agents
179
- echo ""
180
- echo "🎤 Automatically enabling TTS for BMAD agents..."
181
- echo ""
182
-
183
- # Get the directory where this script is located
184
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
185
-
186
- # Check if bmad-tts-injector.sh exists
187
- if [[ -f "$SCRIPT_DIR/bmad-tts-injector.sh" ]]; then
188
- # Run the TTS injector
189
- "$SCRIPT_DIR/bmad-tts-injector.sh" enable
190
- else
191
- echo "⚠️ TTS injector not found at: $SCRIPT_DIR/bmad-tts-injector.sh"
192
- echo " You can manually enable TTS with: /agent-vibes:bmad-tts enable"
193
- fi
194
- }
195
-
196
- # Disable plugin
197
- disable_plugin() {
198
- BACKUP_FILE="$PLUGIN_DIR/.bmad-previous-settings"
199
-
200
- # Check if we have a backup to restore
201
- if [[ -f "$BACKUP_FILE" ]]; then
202
- source "$BACKUP_FILE"
203
-
204
- echo "❌ BMAD voice plugin disabled"
205
- echo "🔄 Restoring previous settings:"
206
- echo " Voice: $VOICE"
207
- echo " Personality: $PERSONALITY"
208
- [[ -n "$SENTIMENT" ]] && echo " Sentiment: $SENTIMENT"
209
-
210
- # Restore voice
211
- if [[ -n "$VOICE" ]]; then
212
- echo "$VOICE" > .claude/tts-voice.txt 2>/dev/null || echo "$VOICE" > "$HOME/.claude/tts-voice.txt"
213
- fi
214
-
215
- # Restore personality
216
- if [[ -n "$PERSONALITY" ]] && [[ "$PERSONALITY" != "normal" ]]; then
217
- echo "$PERSONALITY" > .claude/tts-personality.txt 2>/dev/null || echo "$PERSONALITY" > "$HOME/.claude/tts-personality.txt"
218
- fi
219
-
220
- # Restore sentiment
221
- if [[ -n "$SENTIMENT" ]]; then
222
- echo "$SENTIMENT" > .claude/tts-sentiment.txt 2>/dev/null || echo "$SENTIMENT" > "$HOME/.claude/tts-sentiment.txt"
223
- fi
224
-
225
- # Clean up backup
226
- rm -f "$BACKUP_FILE"
227
- else
228
- echo "❌ BMAD voice plugin disabled"
229
- echo "⚠️ No previous settings found to restore"
230
- echo "AgentVibes will use current voice/personality settings"
231
- fi
232
-
233
- rm -f "$ENABLED_FLAG"
234
-
235
- # Automatically remove TTS from BMAD agents
236
- echo ""
237
- echo "🔇 Automatically disabling TTS for BMAD agents..."
238
- echo ""
239
-
240
- # Get the directory where this script is located
241
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
242
-
243
- # Check if bmad-tts-injector.sh exists
244
- if [[ -f "$SCRIPT_DIR/bmad-tts-injector.sh" ]]; then
245
- # Run the TTS injector disable
246
- "$SCRIPT_DIR/bmad-tts-injector.sh" disable
247
- else
248
- echo "⚠️ TTS injector not found"
249
- echo " You can manually disable TTS with: /agent-vibes:bmad-tts disable"
250
- fi
251
- }
252
-
253
- # List all mappings
254
- list_mappings() {
255
- if [[ ! -f "$PLUGIN_FILE" ]]; then
256
- echo "❌ Plugin file not found: $PLUGIN_FILE"
257
- return 1
258
- fi
259
-
260
- echo "📊 BMAD Agent Voice Mappings:"
261
- echo ""
262
-
263
- grep "^| " "$PLUGIN_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
264
- while IFS='|' read -r _ agent_id name voice personality _; do
265
- agent_id=$(echo "$agent_id" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
266
- name=$(echo "$name" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
267
- voice=$(echo "$voice" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
268
- personality=$(echo "$personality" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
269
-
270
- [[ -n "$agent_id" ]] && echo " $agent_id → $voice [$personality]"
271
- done
272
- }
273
-
274
- # Set voice for agent
275
- set_agent_voice() {
276
- local agent_id="$1"
277
- local voice="$2"
278
- local personality="${3:-normal}"
279
-
280
- if [[ ! -f "$PLUGIN_FILE" ]]; then
281
- echo "❌ Plugin file not found: $PLUGIN_FILE"
282
- return 1
283
- fi
284
-
285
- # Check if agent exists
286
- if ! grep -q "^| $agent_id " "$PLUGIN_FILE"; then
287
- echo "❌ Agent '$agent_id' not found in plugin"
288
- return 1
289
- fi
290
-
291
- # Update the voice and personality in the table
292
- sed -i.bak "s/^| $agent_id |.*| .* | .* |$/| $agent_id | $(grep "^| $agent_id " "$PLUGIN_FILE" | awk -F'|' '{print $3}') | $voice | $personality |/" "$PLUGIN_FILE"
293
-
294
- echo "✅ Updated $agent_id → $voice [$personality]"
295
- }
296
-
297
- # Show status
298
- show_status() {
299
- # Check for BMAD installation
300
- local bmad_installed="false"
301
- if [[ -f ".bmad-core/install-manifest.yaml" ]]; then
302
- bmad_installed="true"
303
- fi
304
-
305
- if [[ $(is_plugin_enabled) == "true" ]]; then
306
- echo "✅ BMAD voice plugin: ENABLED"
307
- if [[ "$bmad_installed" == "true" ]]; then
308
- echo "🔍 BMAD detected: Auto-enabled"
309
- fi
310
- else
311
- echo "❌ BMAD voice plugin: DISABLED"
312
- if [[ "$bmad_installed" == "true" ]]; then
313
- echo "⚠️ BMAD detected but plugin disabled (enable with: /agent-vibes-bmad enable)"
314
- fi
315
- fi
316
- echo ""
317
- list_mappings
318
- }
319
-
320
- # Edit plugin file
321
- edit_plugin() {
322
- if [[ ! -f "$PLUGIN_FILE" ]]; then
323
- echo "❌ Plugin file not found: $PLUGIN_FILE"
324
- return 1
325
- fi
326
-
327
- echo "Opening $PLUGIN_FILE for editing..."
328
- echo "Edit the markdown table to change voice mappings"
329
- }
330
-
331
- # Main command dispatcher
332
- case "${1:-help}" in
333
- enable)
334
- enable_plugin
335
- ;;
336
- disable)
337
- disable_plugin
338
- ;;
339
- status)
340
- show_status
341
- ;;
342
- list)
343
- list_mappings
344
- ;;
345
- set)
346
- if [[ -z "$2" ]] || [[ -z "$3" ]]; then
347
- echo "Usage: bmad-voice-manager.sh set <agent-id> <voice> [personality]"
348
- exit 1
349
- fi
350
- set_agent_voice "$2" "$3" "$4"
351
- ;;
352
- get-voice)
353
- get_agent_voice "$2"
354
- ;;
355
- get-personality)
356
- get_agent_personality "$2"
357
- ;;
358
- edit)
359
- edit_plugin
360
- ;;
361
- *)
362
- echo "Usage: bmad-voice-manager.sh {enable|disable|status|list|set|get-voice|get-personality|edit}"
363
- echo ""
364
- echo "Commands:"
365
- echo " enable Enable BMAD voice plugin"
366
- echo " disable Disable BMAD voice plugin"
367
- echo " status Show plugin status and mappings"
368
- echo " list List all agent voice mappings"
369
- echo " set <id> <voice> Set voice for agent"
370
- echo " get-voice <id> Get voice for agent"
371
- echo " get-personality <id> Get personality for agent"
372
- echo " edit Edit plugin configuration"
373
- exit 1
374
- ;;
375
- esac
@@ -1,60 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # @fileoverview Output Style Detection for AgentVibes
4
- # @context Detects if agent-vibes output style is active
5
- # @architecture Helper for slash commands to warn users
6
- # @why Voice commands won't work without agent-vibes output style
7
- #
8
-
9
- # Check if we're in a Claude Code session with agent-vibes output style
10
- # This is a heuristic check - we can't directly detect the output style,
11
- # but we can check if TTS commands would work
12
-
13
- check_output_style() {
14
- # Strategy: Check if this script is being called from within a Claude response
15
- # If CLAUDECODE env var is set, we're in Claude Code
16
- # If not, we're running standalone (not in a Claude Code session)
17
-
18
- if [[ -z "$CLAUDECODE" ]]; then
19
- # Not in Claude Code at all
20
- return 1
21
- fi
22
-
23
- # We're in Claude Code, but we can't directly detect output style
24
- # The agent-vibes output style calls our TTS hooks automatically
25
- # So if this function is called, it means a slash command was invoked
26
-
27
- # Check if we have the necessary TTS setup
28
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
29
-
30
- # Check if agent-vibes output style is installed
31
- if [[ ! -f "$SCRIPT_DIR/../output-styles/agent-vibes.md" ]]; then
32
- return 1
33
- fi
34
-
35
- # All checks passed - likely using agent-vibes output style
36
- return 0
37
- }
38
-
39
- # Show warning if output style is not agent-vibes
40
- show_output_style_warning() {
41
- echo ""
42
- echo "⚠️ Voice commands require the Agent Vibes output style"
43
- echo ""
44
- echo "To enable voice narration, run:"
45
- echo " /output-style Agent Vibes"
46
- echo ""
47
- echo "This will make Claude speak with TTS for all responses."
48
- echo "You can still use voice commands manually with agent-vibes disabled,"
49
- echo "but you won't hear automatic TTS narration."
50
- echo ""
51
- }
52
-
53
- # Main execution when called directly
54
- if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
55
- if ! check_output_style; then
56
- show_output_style_warning
57
- exit 1
58
- fi
59
- exit 0
60
- fi
@@ -1,94 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # @fileoverview GitHub Star Reminder System
4
- # @context Shows a gentle reminder once per day to star the repo
5
- # @architecture Tracks last reminder date in a timestamp file
6
- # @why Encourage users to support the project without being annoying
7
- #
8
-
9
- # Determine config directory (project-local or global)
10
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
- CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
12
-
13
- # Check if we have a project-local .claude directory
14
- if [[ -d "$CLAUDE_DIR" ]] && [[ "$CLAUDE_DIR" != "$HOME/.claude" ]]; then
15
- REMINDER_FILE="$CLAUDE_DIR/github-star-reminder.txt"
16
- else
17
- REMINDER_FILE="$HOME/.claude/github-star-reminder.txt"
18
- mkdir -p "$HOME/.claude"
19
- fi
20
-
21
- GITHUB_REPO="https://github.com/paulpreibisch/AgentVibes"
22
-
23
- # Check if reminders are disabled
24
- is_reminder_disabled() {
25
- # Check for disable flag file
26
- local disable_file_local="$CLAUDE_DIR/github-star-reminder-disabled.flag"
27
- local disable_file_global="$HOME/.claude/github-star-reminder-disabled.flag"
28
-
29
- if [[ -f "$disable_file_local" ]] || [[ -f "$disable_file_global" ]]; then
30
- return 0 # Disabled
31
- fi
32
-
33
- # Check if reminder file contains "disabled"
34
- if [[ -f "$REMINDER_FILE" ]]; then
35
- local content=$(cat "$REMINDER_FILE" 2>/dev/null)
36
- if [[ "$content" == "disabled" ]]; then
37
- return 0 # Disabled
38
- fi
39
- fi
40
-
41
- return 1 # Not disabled
42
- }
43
-
44
- # Check if we should show the reminder
45
- should_show_reminder() {
46
- # Check if disabled first
47
- if is_reminder_disabled; then
48
- return 1
49
- fi
50
-
51
- # If no reminder file exists, show it
52
- if [[ ! -f "$REMINDER_FILE" ]]; then
53
- return 0
54
- fi
55
-
56
- # Read last reminder date
57
- LAST_REMINDER=$(cat "$REMINDER_FILE" 2>/dev/null || echo "0")
58
- CURRENT_DATE=$(date +%Y%m%d)
59
-
60
- # Show reminder if it's a new day
61
- if [[ "$LAST_REMINDER" != "$CURRENT_DATE" ]]; then
62
- return 0
63
- fi
64
-
65
- return 1
66
- }
67
-
68
- # Show the reminder
69
- show_reminder() {
70
- echo ""
71
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
72
- echo "⭐ Enjoying AgentVibes?"
73
- echo ""
74
- echo " If you find this project helpful, please consider giving us"
75
- echo " a star on GitHub! It helps others discover AgentVibes and"
76
- echo " motivates us to keep improving it."
77
- echo ""
78
- echo " 👉 $GITHUB_REPO"
79
- echo ""
80
- echo " Thank you for your support! 🙏"
81
- echo ""
82
- echo " 💡 To disable these reminders, run:"
83
- echo " echo \"disabled\" > $REMINDER_FILE"
84
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
85
- echo ""
86
-
87
- # Update the reminder file with today's date
88
- date +%Y%m%d > "$REMINDER_FILE"
89
- }
90
-
91
- # Main execution
92
- if should_show_reminder; then
93
- show_reminder
94
- fi