agentvibes 2.0.17 → 2.0.20

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 (341) hide show
  1. package/.bmad-core/agent-teams/team-all.yaml +15 -0
  2. package/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
  3. package/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  4. package/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
  5. package/.bmad-core/agents/analyst.md +84 -0
  6. package/.bmad-core/agents/architect.md +85 -0
  7. package/.bmad-core/agents/bmad-master.md +110 -0
  8. package/.bmad-core/agents/bmad-orchestrator.md +147 -0
  9. package/.bmad-core/agents/dev.md +81 -0
  10. package/.bmad-core/agents/pm.md +84 -0
  11. package/.bmad-core/agents/po.md +79 -0
  12. package/.bmad-core/agents/qa.md +87 -0
  13. package/.bmad-core/agents/sm.md +65 -0
  14. package/.bmad-core/agents/ux-expert.md +69 -0
  15. package/.bmad-core/checklists/architect-checklist.md +440 -0
  16. package/.bmad-core/checklists/change-checklist.md +184 -0
  17. package/.bmad-core/checklists/pm-checklist.md +372 -0
  18. package/.bmad-core/checklists/po-master-checklist.md +434 -0
  19. package/.bmad-core/checklists/story-dod-checklist.md +96 -0
  20. package/.bmad-core/checklists/story-draft-checklist.md +155 -0
  21. package/.bmad-core/core-config.yaml +22 -0
  22. package/.bmad-core/data/bmad-kb.md +809 -0
  23. package/.bmad-core/data/brainstorming-techniques.md +38 -0
  24. package/.bmad-core/data/elicitation-methods.md +156 -0
  25. package/.bmad-core/data/technical-preferences.md +5 -0
  26. package/.bmad-core/data/test-levels-framework.md +148 -0
  27. package/.bmad-core/data/test-priorities-matrix.md +174 -0
  28. package/.bmad-core/enhanced-ide-development-workflow.md +248 -0
  29. package/.bmad-core/install-manifest.yaml +230 -0
  30. package/.bmad-core/tasks/advanced-elicitation.md +119 -0
  31. package/.bmad-core/tasks/apply-qa-fixes.md +150 -0
  32. package/.bmad-core/tasks/brownfield-create-epic.md +162 -0
  33. package/.bmad-core/tasks/brownfield-create-story.md +149 -0
  34. package/.bmad-core/tasks/correct-course.md +72 -0
  35. package/.bmad-core/tasks/create-brownfield-story.md +314 -0
  36. package/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
  37. package/.bmad-core/tasks/create-doc.md +103 -0
  38. package/.bmad-core/tasks/create-next-story.md +114 -0
  39. package/.bmad-core/tasks/document-project.md +345 -0
  40. package/.bmad-core/tasks/execute-checklist.md +88 -0
  41. package/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  42. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  43. package/.bmad-core/tasks/index-docs.md +175 -0
  44. package/.bmad-core/tasks/kb-mode-interaction.md +77 -0
  45. package/.bmad-core/tasks/nfr-assess.md +345 -0
  46. package/.bmad-core/tasks/qa-gate.md +163 -0
  47. package/.bmad-core/tasks/review-story.md +316 -0
  48. package/.bmad-core/tasks/risk-profile.md +355 -0
  49. package/.bmad-core/tasks/shard-doc.md +187 -0
  50. package/.bmad-core/tasks/test-design.md +176 -0
  51. package/.bmad-core/tasks/trace-requirements.md +266 -0
  52. package/.bmad-core/tasks/validate-next-story.md +136 -0
  53. package/.bmad-core/templates/architecture-tmpl.yaml +651 -0
  54. package/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  55. package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
  56. package/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  57. package/.bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
  58. package/.bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
  59. package/.bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
  60. package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
  61. package/.bmad-core/templates/market-research-tmpl.yaml +253 -0
  62. package/.bmad-core/templates/prd-tmpl.yaml +203 -0
  63. package/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
  64. package/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  65. package/.bmad-core/templates/story-tmpl.yaml +138 -0
  66. package/.bmad-core/user-guide.md +577 -0
  67. package/.bmad-core/utils/bmad-doc-template.md +327 -0
  68. package/.bmad-core/utils/workflow-management.md +71 -0
  69. package/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  70. package/.bmad-core/workflows/brownfield-service.yaml +188 -0
  71. package/.bmad-core/workflows/brownfield-ui.yaml +198 -0
  72. package/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  73. package/.bmad-core/workflows/greenfield-service.yaml +207 -0
  74. package/.bmad-core/workflows/greenfield-ui.yaml +236 -0
  75. package/.bmad-core/working-in-the-brownfield.md +606 -0
  76. package/.claude/activation-instructions +54 -0
  77. package/.claude/commands/BMad/agents/analyst.md +88 -0
  78. package/.claude/commands/BMad/agents/architect.md +89 -0
  79. package/.claude/commands/BMad/agents/bmad-master.md +114 -0
  80. package/.claude/commands/BMad/agents/bmad-orchestrator.md +151 -0
  81. package/.claude/commands/BMad/agents/dev.md +85 -0
  82. package/.claude/commands/BMad/agents/pm.md +88 -0
  83. package/.claude/commands/BMad/agents/po.md +83 -0
  84. package/.claude/commands/BMad/agents/qa.md +91 -0
  85. package/.claude/commands/BMad/agents/sm.md +69 -0
  86. package/.claude/commands/BMad/agents/ux-expert.md +73 -0
  87. package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
  88. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
  89. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
  90. package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
  91. package/.claude/commands/BMad/tasks/correct-course.md +76 -0
  92. package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
  93. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
  94. package/.claude/commands/BMad/tasks/create-doc.md +107 -0
  95. package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
  96. package/.claude/commands/BMad/tasks/document-project.md +349 -0
  97. package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
  98. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
  99. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
  100. package/.claude/commands/BMad/tasks/index-docs.md +179 -0
  101. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
  102. package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
  103. package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
  104. package/.claude/commands/BMad/tasks/review-story.md +320 -0
  105. package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
  106. package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
  107. package/.claude/commands/BMad/tasks/test-design.md +180 -0
  108. package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
  109. package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
  110. package/.claude/github-star-reminder.txt +1 -1
  111. package/.claude/hooks/bmad-tts-injector.sh +33 -4
  112. package/.claude/hooks/bmad-voice-manager.sh +146 -10
  113. package/.claude/hooks/check-output-style.sh +60 -8
  114. package/.claude/hooks/github-star-reminder.sh +67 -7
  115. package/.claude/hooks/language-manager.sh +34 -2
  116. package/.claude/hooks/learn-manager.sh +34 -2
  117. package/.claude/hooks/personality-manager.sh +34 -1
  118. package/.claude/hooks/piper-download-voices.sh +131 -9
  119. package/.claude/hooks/piper-installer.sh +38 -4
  120. package/.claude/hooks/piper-voice-manager.sh +102 -36
  121. package/.claude/hooks/play-tts-elevenlabs.sh +32 -6
  122. package/.claude/hooks/play-tts-piper.sh +79 -18
  123. package/.claude/hooks/play-tts.sh +34 -3
  124. package/.claude/hooks/provider-commands.sh +36 -1
  125. package/.claude/hooks/provider-manager.sh +32 -1
  126. package/.claude/hooks/replay-target-audio.sh +34 -3
  127. package/.claude/hooks/sentiment-manager.sh +39 -1
  128. package/.claude/hooks/speed-manager.sh +36 -2
  129. package/.claude/hooks/voice-manager.sh +85 -6
  130. package/.claude/hooks/voices-config.sh +39 -2
  131. package/README.md +77 -137
  132. package/RELEASE_NOTES.md +269 -0
  133. package/RELEASE_NOTES_v2.0.17_DRAFT.md +650 -0
  134. package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
  135. package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
  136. package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
  137. package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
  138. package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
  139. package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
  140. package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
  141. package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
  142. package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
  143. package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
  144. package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
  145. package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
  146. package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
  147. package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
  148. package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
  149. package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
  150. package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
  151. package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
  152. package/agentvibes.org/.claude/commands/agent-vibes/add.md +21 -0
  153. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +68 -0
  154. package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +196 -0
  155. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +77 -0
  156. package/agentvibes.org/.claude/commands/agent-vibes/get.md +9 -0
  157. package/agentvibes.org/.claude/commands/agent-vibes/language.md +23 -0
  158. package/agentvibes.org/.claude/commands/agent-vibes/learn.md +67 -0
  159. package/agentvibes.org/.claude/commands/agent-vibes/list.md +13 -0
  160. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +79 -0
  161. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +17 -0
  162. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +54 -0
  163. package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +14 -0
  164. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +19 -0
  165. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +12 -0
  166. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +52 -0
  167. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +47 -0
  168. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +65 -0
  169. package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +41 -0
  170. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +53 -0
  171. package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +26 -0
  172. package/agentvibes.org/.claude/commands/agent-vibes/target.md +30 -0
  173. package/agentvibes.org/.claude/commands/agent-vibes/update.md +20 -0
  174. package/agentvibes.org/.claude/commands/agent-vibes/version.md +10 -0
  175. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +7 -0
  176. package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +386 -0
  177. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +375 -0
  178. package/agentvibes.org/.claude/hooks/check-output-style.sh +60 -0
  179. package/agentvibes.org/.claude/hooks/github-star-reminder.sh +94 -0
  180. package/agentvibes.org/.claude/hooks/language-manager.sh +360 -0
  181. package/agentvibes.org/.claude/hooks/learn-manager.sh +443 -0
  182. package/agentvibes.org/.claude/hooks/personality-manager.sh +324 -0
  183. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +133 -0
  184. package/agentvibes.org/.claude/hooks/piper-installer.sh +144 -0
  185. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +227 -0
  186. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +376 -0
  187. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +281 -0
  188. package/agentvibes.org/.claude/hooks/play-tts.sh +69 -0
  189. package/agentvibes.org/.claude/hooks/provider-commands.sh +505 -0
  190. package/agentvibes.org/.claude/hooks/provider-manager.sh +248 -0
  191. package/agentvibes.org/.claude/hooks/replay-target-audio.sh +64 -0
  192. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +163 -0
  193. package/agentvibes.org/.claude/hooks/speed-manager.sh +259 -0
  194. package/agentvibes.org/.claude/hooks/voice-manager.sh +477 -0
  195. package/agentvibes.org/.claude/hooks/voices-config.sh +33 -0
  196. package/agentvibes.org/.claude/journal/2025-10-07.html +373 -0
  197. package/agentvibes.org/.claude/journal/index.html +91 -0
  198. package/agentvibes.org/.claude/output-styles/agent-vibes.md +203 -0
  199. package/agentvibes.org/.claude/personalities/angry.md +17 -0
  200. package/agentvibes.org/.claude/personalities/annoying.md +17 -0
  201. package/agentvibes.org/.claude/personalities/crass.md +17 -0
  202. package/agentvibes.org/.claude/personalities/dramatic.md +17 -0
  203. package/agentvibes.org/.claude/personalities/dry-humor.md +53 -0
  204. package/agentvibes.org/.claude/personalities/flirty.md +23 -0
  205. package/agentvibes.org/.claude/personalities/funny.md +17 -0
  206. package/agentvibes.org/.claude/personalities/grandpa.md +35 -0
  207. package/agentvibes.org/.claude/personalities/millennial.md +17 -0
  208. package/agentvibes.org/.claude/personalities/moody.md +17 -0
  209. package/agentvibes.org/.claude/personalities/normal.md +19 -0
  210. package/agentvibes.org/.claude/personalities/pirate.md +17 -0
  211. package/agentvibes.org/.claude/personalities/poetic.md +17 -0
  212. package/agentvibes.org/.claude/personalities/professional.md +17 -0
  213. package/agentvibes.org/.claude/personalities/robot.md +17 -0
  214. package/agentvibes.org/.claude/personalities/sarcastic.md +41 -0
  215. package/agentvibes.org/.claude/personalities/sassy.md +17 -0
  216. package/agentvibes.org/.claude/personalities/surfer-dude.md +17 -0
  217. package/agentvibes.org/.claude/personalities/zen.md +17 -0
  218. package/agentvibes.org/.claude/piper-voices-dir.txt +1 -0
  219. package/agentvibes.org/.claude/plugins/bmad-voices.md +42 -0
  220. package/agentvibes.org/.claude/tts-provider.txt +1 -0
  221. package/agentvibes.org/.mcp-minimal.json +60 -0
  222. package/agentvibes.org/CHANGELOG.md +56 -0
  223. package/agentvibes.org/README.md +93 -0
  224. package/agentvibes.org/app/(auth)/layout.tsx +15 -0
  225. package/agentvibes.org/app/(auth)/reset-password/page.tsx +45 -0
  226. package/agentvibes.org/app/(auth)/signin/page.tsx +82 -0
  227. package/agentvibes.org/app/(auth)/signup/page.tsx +104 -0
  228. package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +128 -0
  229. package/agentvibes.org/app/(default)/blog/page.tsx +95 -0
  230. package/agentvibes.org/app/(default)/layout.tsx +31 -0
  231. package/agentvibes.org/app/(default)/page.tsx +20 -0
  232. package/agentvibes.org/app/api/hello/route.ts +3 -0
  233. package/agentvibes.org/app/css/additional-styles/theme.css +82 -0
  234. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +55 -0
  235. package/agentvibes.org/app/css/style.css +100 -0
  236. package/agentvibes.org/app/layout.tsx +63 -0
  237. package/agentvibes.org/components/code-block.tsx +27 -0
  238. package/agentvibes.org/components/cta.tsx +58 -0
  239. package/agentvibes.org/components/features.tsx +256 -0
  240. package/agentvibes.org/components/hero-home.tsx +133 -0
  241. package/agentvibes.org/components/mdx-components.tsx +128 -0
  242. package/agentvibes.org/components/modal-video.tsx +137 -0
  243. package/agentvibes.org/components/page-illustration.tsx +55 -0
  244. package/agentvibes.org/components/spotlight.tsx +77 -0
  245. package/agentvibes.org/components/testimonials.tsx +282 -0
  246. package/agentvibes.org/components/ui/footer.tsx +82 -0
  247. package/agentvibes.org/components/ui/header.tsx +68 -0
  248. package/agentvibes.org/components/ui/logo.tsx +10 -0
  249. package/agentvibes.org/components/workflows.tsx +176 -0
  250. package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +253 -0
  251. package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +228 -0
  252. package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +250 -0
  253. package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +142 -0
  254. package/agentvibes.org/content/blog/voice-personalities-guide.mdx +119 -0
  255. package/agentvibes.org/lib/blog.ts +73 -0
  256. package/agentvibes.org/next.config.js +6 -0
  257. package/agentvibes.org/package-lock.json +4285 -0
  258. package/agentvibes.org/package.json +40 -0
  259. package/agentvibes.org/pnpm-lock.yaml +1141 -0
  260. package/agentvibes.org/postcss.config.js +5 -0
  261. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  262. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  263. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  264. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  265. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  266. package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
  267. package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
  268. package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
  269. package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
  270. package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
  271. package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
  272. package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
  273. package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
  274. package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
  275. package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
  276. package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
  277. package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
  278. package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
  279. package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
  280. package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
  281. package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
  282. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  283. package/agentvibes.org/public/favicon.ico +0 -0
  284. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  285. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  286. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  287. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  288. package/agentvibes.org/public/images/blurred-shape-gray.svg +1 -0
  289. package/agentvibes.org/public/images/blurred-shape.svg +1 -0
  290. package/agentvibes.org/public/images/client-logo-01.svg +1 -0
  291. package/agentvibes.org/public/images/client-logo-02.svg +1 -0
  292. package/agentvibes.org/public/images/client-logo-03.svg +1 -0
  293. package/agentvibes.org/public/images/client-logo-04.svg +1 -0
  294. package/agentvibes.org/public/images/client-logo-05.svg +1 -0
  295. package/agentvibes.org/public/images/client-logo-06.svg +1 -0
  296. package/agentvibes.org/public/images/client-logo-07.svg +1 -0
  297. package/agentvibes.org/public/images/client-logo-08.svg +1 -0
  298. package/agentvibes.org/public/images/client-logo-09.svg +1 -0
  299. package/agentvibes.org/public/images/features.png +0 -0
  300. package/agentvibes.org/public/images/footer-illustration.svg +1 -0
  301. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  302. package/agentvibes.org/public/images/logo.svg +1 -0
  303. package/agentvibes.org/public/images/page-illustration.svg +1 -0
  304. package/agentvibes.org/public/images/secondary-illustration.svg +1 -0
  305. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  306. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  307. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  308. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  309. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  310. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  311. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  312. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  313. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  314. package/agentvibes.org/public/images/workflow-01.png +0 -0
  315. package/agentvibes.org/public/images/workflow-02.png +0 -0
  316. package/agentvibes.org/public/images/workflow-03.png +0 -0
  317. package/agentvibes.org/public/videos/video.mp4 +0 -0
  318. package/agentvibes.org/tsconfig.json +28 -0
  319. package/agentvibes.org/utils/useMasonry.tsx +67 -0
  320. package/agentvibes.org/utils/useMousePosition.tsx +27 -0
  321. package/docs/ai-optimized-documentation-standards.md +78 -4
  322. package/docs/bryce-beattie-voice-licensing.md +131 -0
  323. package/docs/commands.md +21 -1
  324. package/docs/mcp-setup.md +1 -6
  325. package/github-star-reminder.txt +1 -0
  326. package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
  327. package/mcp-server/WINDOWS_SETUP.md +182 -199
  328. package/mcp-server/docs/elevenlabs-setup.md +213 -0
  329. package/mcp-server/docs/troubleshooting-audio.md +316 -0
  330. package/mcp-server/server.py +38 -4
  331. package/mcp-server/test_server.py +38 -3
  332. package/package.json +1 -1
  333. package/scripts/audio-tunnel.config +17 -0
  334. package/test/helpers/test-helper.bash +31 -4
  335. package/test/unit/personality-manager.bats +22 -6
  336. package/test/unit/play-tts.bats +21 -3
  337. package/test/unit/provider-manager.bats +508 -0
  338. package/test/unit/speed-manager.bats +436 -0
  339. package/test/unit/voice-manager.bats +4 -1
  340. package/.claude/piper-voices/en_US-lessac-medium.onnx +0 -0
  341. package/.claude/piper-voices/en_US-lessac-medium.onnx.json +0 -493
@@ -1,12 +1,38 @@
1
1
  #!/bin/bash
2
2
  #
3
- # @fileoverview Piper TTS Provider Implementation
4
- # @context Free, offline neural TTS for WSL/Linux
5
- # @architecture Implements provider contract for Piper binary
6
- # @dependencies piper (pipx), piper-voice-manager.sh, mpv/aplay
7
- # @entrypoints Called by play-tts.sh router
8
- # @patterns Provider contract: text/voice → audio file path
9
- # @related play-tts.sh, piper-voice-manager.sh, GitHub Issue #25
3
+ # File: .claude/hooks/play-tts-piper.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied. Use at your own risk. See the Apache License for details.
26
+ #
27
+ # ---
28
+ #
29
+ # @fileoverview Piper TTS Provider Implementation - Free, offline neural TTS
30
+ # @context Provides local, privacy-first TTS alternative to cloud services for WSL/Linux
31
+ # @architecture Implements provider interface contract for Piper binary integration
32
+ # @dependencies piper (pipx), piper-voice-manager.sh, mpv/aplay, ffmpeg (optional padding)
33
+ # @entrypoints Called by play-tts.sh router when provider=piper
34
+ # @patterns Provider contract: text/voice → audio file path, voice auto-download, language-aware synthesis
35
+ # @related play-tts.sh, piper-voice-manager.sh, language-manager.sh, GitHub Issue #25
10
36
  #
11
37
 
12
38
  # Fix locale warnings
@@ -49,8 +75,8 @@ else
49
75
 
50
76
  if [[ -n "$VOICE_FILE" ]]; then
51
77
  FILE_VOICE=$(cat "$VOICE_FILE" 2>/dev/null)
52
- # Check if it's a Piper model name (contains underscore and dash)
53
- if [[ "$FILE_VOICE" == *"_"*"-"* ]]; then
78
+ # Check if it's a Piper model name (contains underscore and dash, or speaker ID with #)
79
+ if [[ "$FILE_VOICE" == *"_"*"-"* ]] || [[ "$FILE_VOICE" == *"#"* ]]; then
54
80
  VOICE_MODEL="$FILE_VOICE"
55
81
  fi
56
82
  fi
@@ -92,7 +118,21 @@ fi
92
118
  # @param Uses global: $VOICE_MODEL
93
119
  # @sideeffects Downloads voice model files
94
120
  # @edgecases Prompts user for consent before downloading
95
- if ! verify_voice "$VOICE_MODEL"; then
121
+
122
+ # Strip speaker ID for verification/download (speaker ID is after #)
123
+ VOICE_MODEL_BASE="$VOICE_MODEL"
124
+ if [[ "$VOICE_MODEL" == *"#"* ]]; then
125
+ VOICE_MODEL_BASE="${VOICE_MODEL%%#*}"
126
+ fi
127
+
128
+ # Check if custom voice exists (bypass verification for custom voices)
129
+ CUSTOM_VOICE_PATH="$HOME/.local/share/piper/voices/$VOICE_MODEL_BASE.onnx"
130
+ IS_CUSTOM_VOICE=false
131
+ if [[ -f "$CUSTOM_VOICE_PATH" ]]; then
132
+ IS_CUSTOM_VOICE=true
133
+ fi
134
+
135
+ if [[ "$IS_CUSTOM_VOICE" == "false" ]] && ! verify_voice "$VOICE_MODEL_BASE"; then
96
136
  echo "📥 Voice model not found: $VOICE_MODEL"
97
137
  echo " File size: ~25MB"
98
138
  echo " Preview: https://huggingface.co/rhasspy/piper-voices"
@@ -101,7 +141,7 @@ if ! verify_voice "$VOICE_MODEL"; then
101
141
  echo
102
142
 
103
143
  if [[ $REPLY =~ ^[Yy]$ ]]; then
104
- if ! download_voice "$VOICE_MODEL"; then
144
+ if ! download_voice "$VOICE_MODEL_BASE"; then
105
145
  echo "❌ Failed to download voice model"
106
146
  echo "Fix: Download manually or choose different voice"
107
147
  exit 3
@@ -112,11 +152,19 @@ if ! verify_voice "$VOICE_MODEL"; then
112
152
  fi
113
153
  fi
114
154
 
115
- # Get voice model path
116
- VOICE_PATH=$(get_voice_path "$VOICE_MODEL")
155
+ # Get voice model path (use base model without speaker ID)
156
+ # Suppress stderr from get_voice_path since we have custom voice fallback
157
+ VOICE_PATH=$(get_voice_path "$VOICE_MODEL_BASE" 2>/dev/null)
117
158
  if [[ $? -ne 0 ]]; then
118
- echo "❌ Voice model path not found: $VOICE_MODEL"
119
- exit 3
159
+ # Try custom voice in piper voices directory
160
+ CUSTOM_PATH="$HOME/.local/share/piper/voices/$VOICE_MODEL_BASE.onnx"
161
+ if [[ -f "$CUSTOM_PATH" ]]; then
162
+ VOICE_PATH="$CUSTOM_PATH"
163
+ echo "🎤 Using custom voice: $VOICE_MODEL_BASE"
164
+ else
165
+ echo "❌ Voice model path not found: $VOICE_MODEL"
166
+ exit 3
167
+ fi
120
168
  fi
121
169
 
122
170
  # @function determine_audio_directory
@@ -206,12 +254,25 @@ SPEECH_RATE=$(get_speech_rate)
206
254
  # @function synthesize_with_piper
207
255
  # @intent Generate speech using Piper TTS
208
256
  # @why Provides free, offline TTS alternative
209
- # @param Uses globals: $TEXT, $VOICE_PATH, $SPEECH_RATE
257
+ # @param Uses globals: $TEXT, $VOICE_PATH, $SPEECH_RATE, $VOICE_MODEL
210
258
  # @returns Creates WAV file at $TEMP_FILE
211
259
  # @exitcode 0=success, 4=synthesis error
212
260
  # @sideeffects Creates audio file
213
- # @edgecases Handles piper errors, invalid models
214
- echo "$TEXT" | piper --model "$VOICE_PATH" --length-scale "$SPEECH_RATE" --output_file "$TEMP_FILE" 2>/dev/null
261
+ # @edgecases Handles piper errors, invalid models, speaker IDs
262
+
263
+ # Check if voice model includes speaker ID (format: modelname#speakerID)
264
+ SPEAKER_ID=""
265
+ if [[ "$VOICE_MODEL" == *"#"* ]]; then
266
+ SPEAKER_ID="${VOICE_MODEL##*#}"
267
+ VOICE_MODEL="${VOICE_MODEL%%#*}"
268
+ fi
269
+
270
+ # Build piper command with optional speaker parameter
271
+ if [[ -n "$SPEAKER_ID" ]]; then
272
+ echo "$TEXT" | piper --model "$VOICE_PATH" --speaker "$SPEAKER_ID" --length-scale "$SPEECH_RATE" --output_file "$TEMP_FILE" 2>/dev/null
273
+ else
274
+ echo "$TEXT" | piper --model "$VOICE_PATH" --length-scale "$SPEECH_RATE" --output_file "$TEMP_FILE" 2>/dev/null
275
+ fi
215
276
 
216
277
  if [[ ! -f "$TEMP_FILE" ]] || [[ ! -s "$TEMP_FILE" ]]; then
217
278
  echo "❌ Failed to synthesize speech with Piper"
@@ -1,11 +1,42 @@
1
1
  #!/bin/bash
2
2
  #
3
+ # File: .claude/hooks/play-tts.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
3
34
  # @fileoverview TTS Provider Router with Language Learning Support
4
35
  # @context Routes TTS requests to active provider (ElevenLabs or Piper)
5
36
  # @architecture Provider abstraction layer - single entry point for all TTS
6
- # @dependencies provider-manager.sh, play-tts-elevenlabs.sh, play-tts-piper.sh, learn-manager.sh
7
- # @entrypoints Called by hooks, slash commands, and personality-manager.sh
8
- # @patterns Provider pattern - delegates to provider-specific implementations
37
+ # @dependencies provider-manager.sh, play-tts-elevenlabs.sh, play-tts-piper.sh, github-star-reminder.sh
38
+ # @entrypoints Called by hooks, slash commands, personality-manager.sh, and all TTS features
39
+ # @patterns Provider pattern - delegates to provider-specific implementations, auto-detects provider from voice name
9
40
  # @related provider-manager.sh, play-tts-elevenlabs.sh, play-tts-piper.sh, learn-manager.sh
10
41
  #
11
42
 
@@ -1,8 +1,43 @@
1
1
  #!/bin/bash
2
2
  #
3
+ # File: .claude/hooks/provider-commands.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
3
34
  # @fileoverview Provider management slash commands
4
35
  # @context User-facing commands for switching and managing TTS providers
5
- # @architecture Part of /agent-vibes:* command system
36
+ # @architecture Part of /agent-vibes:* command system with language compatibility checking
37
+ # @dependencies provider-manager.sh, language-manager.sh, voice-manager.sh, piper-voice-manager.sh
38
+ # @entrypoints Called by /agent-vibes:provider slash commands (list, switch, info, test, get, preview)
39
+ # @patterns Interactive confirmations, platform detection, language compatibility validation
40
+ # @related provider-manager.sh, play-tts.sh, voice-manager.sh, piper-voice-manager.sh
6
41
  #
7
42
 
8
43
  # Get script directory
@@ -1,12 +1,43 @@
1
1
  #!/bin/bash
2
2
  #
3
+ # File: .claude/hooks/provider-manager.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
3
34
  # @fileoverview TTS Provider Management Functions
4
35
  # @context Core provider abstraction layer for multi-provider TTS system
5
36
  # @architecture Provides functions to get/set/list/validate TTS providers
6
37
  # @dependencies None - pure bash implementation
7
38
  # @entrypoints Sourced by play-tts.sh and provider management commands
8
39
  # @patterns File-based state management with project-local and global fallback
9
- # @related play-tts.sh, play-tts-elevenlabs.sh, GitHub Issue #25
40
+ # @related play-tts.sh, play-tts-elevenlabs.sh, play-tts-piper.sh, provider-commands.sh
10
41
  #
11
42
 
12
43
  # @function get_provider_config_path
@@ -1,11 +1,42 @@
1
1
  #!/bin/bash
2
2
  #
3
+ # File: .claude/hooks/replay-target-audio.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
3
34
  # @fileoverview Replay Last Target Language Audio
4
35
  # @context Replays the most recent target language TTS for language learning
5
- # @architecture Simple audio replay with lock mechanism
6
- # @dependencies ffprobe, paplay/aplay/mpg123
36
+ # @architecture Simple audio replay with lock mechanism for sequential playback
37
+ # @dependencies ffprobe, paplay/aplay/mpg123/mpv, .claude/last-target-audio.txt
7
38
  # @entrypoints Called by /agent-vibes:replay-target slash command
8
- # @patterns Sequential audio playback with lock file
39
+ # @patterns Sequential audio playback with lock file, duration-based lock release
9
40
  # @related play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
10
41
  #
11
42
 
@@ -1,5 +1,43 @@
1
1
  #!/bin/bash
2
- # Sentiment manager for AgentVibes - applies personality to current voice
2
+ #
3
+ # File: .claude/hooks/sentiment-manager.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
34
+ # @fileoverview Sentiment Manager - Applies personality styles to current voice without changing the voice itself
35
+ # @context Allows adding emotional/tonal layers (flirty, sarcastic, etc.) to any voice while preserving voice identity
36
+ # @architecture Reuses personality markdown files, stores sentiment separately from personality
37
+ # @dependencies .claude/personalities/*.md files, play-tts.sh for acknowledgment
38
+ # @entrypoints Called by /agent-vibes:sentiment slash command
39
+ # @patterns Personality/sentiment separation, state file management, random example selection
40
+ # @related personality-manager.sh, .claude/personalities/*.md, .claude/tts-sentiment.txt
3
41
 
4
42
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
43
  PERSONALITIES_DIR="$SCRIPT_DIR/../personalities"
@@ -1,9 +1,43 @@
1
1
  #!/bin/bash
2
2
  #
3
+ # File: .claude/hooks/speed-manager.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
3
34
  # @fileoverview Speech Speed Manager for Multi-Provider TTS
4
35
  # @context Manage speech rate for main and target language voices
5
- # @architecture Simple config file manager supporting both Piper and ElevenLabs
6
- # @providers Piper (length-scale), ElevenLabs (speed API parameter)
36
+ # @architecture Simple config file manager supporting both Piper (length-scale) and ElevenLabs (speed API parameter)
37
+ # @dependencies .claude/config/tts-speech-rate.txt, .claude/config/tts-target-speech-rate.txt
38
+ # @entrypoints Called by /agent-vibes:set-speed slash command
39
+ # @patterns Provider-agnostic speed config, legacy file migration, random tongue twisters for testing
40
+ # @related play-tts.sh, play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
7
41
  #
8
42
 
9
43
  # Get script directory
@@ -1,6 +1,38 @@
1
1
  #!/bin/bash
2
- # Voice Manager - Handle voice switching and listing
3
- # Usage: voice-manager.sh [list|switch|get] [voice_name]
2
+ #
3
+ # File: .claude/hooks/voice-manager.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied. Use at your own risk. See the Apache License for details.
26
+ #
27
+ # ---
28
+ #
29
+ # @fileoverview Voice Manager - Unified voice management for both ElevenLabs and Piper providers
30
+ # @context Central interface for listing, switching, previewing, and replaying TTS voices across providers
31
+ # @architecture Provider-aware operations with dynamic voice listing based on active provider
32
+ # @dependencies voices-config.sh (ElevenLabs mappings), piper-voice-manager.sh (Piper voices), provider-manager.sh
33
+ # @entrypoints Called by /agent-vibes:switch, /agent-vibes:list, /agent-vibes:whoami, /agent-vibes:replay commands
34
+ # @patterns Provider abstraction, numbered selection UI, silent mode for programmatic switching
35
+ # @related voices-config.sh, piper-voice-manager.sh, .claude/tts-voice.txt, .claude/audio/ (replay)
4
36
 
5
37
  # Get script directory (physical path for sourcing files)
6
38
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
@@ -55,17 +87,64 @@ case "$1" in
55
87
  source "$SCRIPT_DIR/piper-voice-manager.sh"
56
88
  VOICE_DIR=$(get_voice_storage_dir)
57
89
  VOICE_COUNT=0
90
+
91
+ # Extract base voice name and speaker ID from current voice if it has # format
92
+ CURRENT_BASE_VOICE="$CURRENT_VOICE"
93
+ CURRENT_SPEAKER_ID=""
94
+ if [[ "$CURRENT_VOICE" == *"#"* ]]; then
95
+ CURRENT_BASE_VOICE="${CURRENT_VOICE%%#*}"
96
+ CURRENT_SPEAKER_ID="${CURRENT_VOICE##*#}"
97
+ fi
98
+
58
99
  for onnx_file in "$VOICE_DIR"/*.onnx; do
59
100
  if [[ -f "$onnx_file" ]]; then
60
101
  voice=$(basename "$onnx_file" .onnx)
61
- if [ "$voice" = "$CURRENT_VOICE" ]; then
62
- echo " ▶ $voice (current)"
102
+ json_file="${onnx_file}.json"
103
+
104
+ # Check if this is a multi-speaker voice
105
+ if [[ -f "$json_file" ]] && command -v jq &> /dev/null; then
106
+ NUM_SPEAKERS=$(jq -r '.num_speakers // 1' "$json_file" 2>/dev/null)
107
+
108
+ if [[ "$NUM_SPEAKERS" -gt 1 ]]; then
109
+ # Multi-speaker voice - list all speakers
110
+ echo ""
111
+ echo " 📢 $voice (Multi-speaker: $NUM_SPEAKERS voices)"
112
+
113
+ # Read speaker names from JSON
114
+ jq -r '.speaker_id_map | to_entries[] | " \(.value)️. \(.key) → \(.value|tostring)#\(.value)"' "$json_file" 2>/dev/null | while read -r speaker_line; do
115
+ # Extract speaker ID from the line
116
+ speaker_id=$(echo "$speaker_line" | sed -E 's/.*→ ([0-9]+)#[0-9]+$/\1/')
117
+
118
+ # Check if this speaker is current
119
+ if [[ "$voice" == "$CURRENT_BASE_VOICE" ]] && [[ "$speaker_id" == "$CURRENT_SPEAKER_ID" ]]; then
120
+ # Remove the → ID#ID suffix and add current marker
121
+ speaker_display=$(echo "$speaker_line" | sed -E 's/ → [0-9]+#[0-9]+$//')
122
+ echo " ▶ $speaker_display (current)"
123
+ else
124
+ # Remove the → ID#ID suffix
125
+ speaker_display=$(echo "$speaker_line" | sed -E 's/ → [0-9]+#[0-9]+$//')
126
+ echo " $speaker_display"
127
+ fi
128
+ done
129
+ else
130
+ # Single-speaker voice
131
+ if [ "$voice" = "$CURRENT_VOICE" ] || [ "$voice" = "$CURRENT_BASE_VOICE" ]; then
132
+ echo " ▶ $voice (current)"
133
+ else
134
+ echo " $voice"
135
+ fi
136
+ fi
63
137
  else
64
- echo " $voice"
138
+ # No JSON file or jq not available - show as single voice
139
+ if [ "$voice" = "$CURRENT_VOICE" ] || [ "$voice" = "$CURRENT_BASE_VOICE" ]; then
140
+ echo " ▶ $voice (current)"
141
+ else
142
+ echo " $voice"
143
+ fi
65
144
  fi
66
145
  ((VOICE_COUNT++))
67
146
  fi
68
- done | sort
147
+ done
69
148
 
70
149
  if [[ $VOICE_COUNT -eq 0 ]]; then
71
150
  echo " (No Piper voices downloaded yet)"
@@ -1,6 +1,43 @@
1
1
  #!/bin/bash
2
- # Single source of truth for ElevenLabs voice IDs
3
- # This file is sourced by both voice-manager.sh and play-tts.sh
2
+ #
3
+ # File: .claude/hooks/voices-config.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
34
+ # @fileoverview ElevenLabs Voice Configuration - Single source of truth for voice ID mappings
35
+ # @context Maps human-readable voice names to ElevenLabs API voice IDs for consistency
36
+ # @architecture Associative array (bash hash map) sourced by multiple scripts
37
+ # @dependencies None (pure data structure)
38
+ # @entrypoints Sourced by voice-manager.sh, play-tts-elevenlabs.sh, and personality managers
39
+ # @patterns Centralized configuration, DRY principle for voice mappings
40
+ # @related voice-manager.sh, play-tts-elevenlabs.sh, personality/*.md files
4
41
 
5
42
  declare -A VOICES=(
6
43
  ["Amy"]="bhJUNIXWQQ94l8eI2VUf"