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,6 +1,38 @@
1
1
  #!/bin/bash
2
- # Language Learning Mode Manager for AgentVibes
3
- # Handles dual-language TTS for language learning
2
+ #
3
+ # File: .claude/hooks/learn-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 Language Learning Mode Manager - Enables dual-language TTS for immersive learning
30
+ # @context Speaks responses in both main language (English) and target language (Spanish, French, etc.) for language practice
31
+ # @architecture Manages main/target language pairs with voice mappings, auto-configures recommended voices per language
32
+ # @dependencies play-tts.sh (dual invocation), language-manager.sh (voice recommendations), .claude/tts-*.txt state files
33
+ # @entrypoints Called by /agent-vibes:learn commands to enable/disable learning mode
34
+ # @patterns Dual-voice orchestration, auto-configuration, greeting on activation, provider-aware voice selection
35
+ # @related language-manager.sh, play-tts.sh, .claude/tts-learn-mode.txt, .claude/tts-target-language.txt
4
36
 
5
37
  set -e
6
38
 
@@ -1,5 +1,38 @@
1
1
  #!/bin/bash
2
- # Personality manager for AgentVibes - adds character to TTS messages
2
+ #
3
+ # File: .claude/hooks/personality-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 Personality Manager - Adds character and emotional style to TTS voices
30
+ # @context Enables voices to have distinct personalities (flirty, sarcastic, pirate, etc.) with provider-aware voice assignment
31
+ # @architecture Markdown-based personality templates with provider-specific voice mappings (ElevenLabs vs Piper)
32
+ # @dependencies .claude/personalities/*.md files, voice-manager.sh, play-tts.sh, provider-manager.sh
33
+ # @entrypoints Called by /agent-vibes:personality slash commands
34
+ # @patterns Template-based configuration, provider abstraction, random personality support
35
+ # @related .claude/personalities/*.md, voice-manager.sh, .claude/tts-personality.txt
3
36
 
4
37
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
38
  PERSONALITIES_DIR="$SCRIPT_DIR/../personalities"
@@ -1,11 +1,43 @@
1
1
  #!/bin/bash
2
2
  #
3
- # @fileoverview Piper Voice Model Downloader
4
- # @context Downloads Piper TTS voice models from HuggingFace
5
- # @purpose Batch download popular voices after installation
6
- # @dependencies piper-voice-manager.sh, piper binary
7
- # @usage ./piper-download-voices.sh [--yes|-y]
8
- # --yes|-y: Skip confirmation prompt (auto-download)
3
+ # File: .claude/hooks/piper-download-voices.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 Piper Voice Model Downloader - Batch downloads popular Piper TTS voices from HuggingFace
35
+ # @context Post-installation utility to download commonly used voices (~25MB each)
36
+ # @architecture Wrapper around piper-voice-manager.sh download functions with progress tracking
37
+ # @dependencies piper-voice-manager.sh (download logic), piper binary (for validation)
38
+ # @entrypoints Called by piper-installer.sh or manually via ./piper-download-voices.sh [--yes|-y]
39
+ # @patterns Batch operations, skip-existing logic, auto-yes flag for non-interactive use
40
+ # @related piper-voice-manager.sh, piper-installer.sh
9
41
  #
10
42
 
11
43
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -17,7 +49,7 @@ if [[ "$1" == "--yes" ]] || [[ "$1" == "-y" ]]; then
17
49
  AUTO_YES=true
18
50
  fi
19
51
 
20
- # Common voice models to download
52
+ # Common voice models to download from HuggingFace (official Piper voices)
21
53
  COMMON_VOICES=(
22
54
  "en_US-lessac-medium" # Default, clear male
23
55
  "en_US-amy-medium" # Warm female
@@ -26,6 +58,16 @@ COMMON_VOICES=(
26
58
  "en_US-libritts-high" # Premium quality
27
59
  )
28
60
 
61
+ # Custom high-quality voices from AgentVibes HuggingFace repository
62
+ # Original voices by Bryce Beattie (https://brycebeattie.com/files/tts/)
63
+ # Repository: https://huggingface.co/agentvibes/piper-custom-voices
64
+ # Licensed: Public Domain (Kristin, 16Speakers) / CC BY attribution (Jenny)
65
+ CUSTOM_VOICES=(
66
+ "kristin:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/kristin.onnx:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/kristin.onnx.json" # US English female (Public Domain)
67
+ "jenny:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/jenny.onnx:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/jenny.onnx.json" # UK English female, Irish (CC BY attribution required)
68
+ "16Speakers:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/16Speakers.onnx:https://huggingface.co/agentvibes/piper-custom-voices/resolve/main/16Speakers.onnx.json" # Multi-speaker: 16 voices (Public Domain)
69
+ )
70
+
29
71
  echo "🎙️ Piper Voice Model Downloader"
30
72
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
31
73
  echo ""
@@ -118,16 +160,96 @@ done
118
160
 
119
161
  echo ""
120
162
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
121
- echo "📊 Download Summary:"
163
+ echo "📊 Download Summary (Standard Voices):"
122
164
  echo " ✅ Successfully downloaded: $DOWNLOADED"
123
165
  echo " ❌ Failed: $FAILED"
124
166
  echo " 📦 Total voices available: $((ALREADY_DOWNLOADED + DOWNLOADED))"
125
167
  echo ""
126
168
 
127
- if [[ $DOWNLOADED -gt 0 ]]; then
169
+ # Now offer to download custom high-quality voices from Bryce Beattie
170
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
171
+ echo "🎨 Custom High-Quality Voices Available"
172
+ echo ""
173
+ echo "Additional premium voices from AgentVibes:"
174
+ echo " • Kristin - US English female (Public Domain)"
175
+ echo " • Jenny - UK English female, Irish accent (CC BY)"
176
+ echo " • 16Speakers - Multi-speaker: 16 different voices (Public Domain)"
177
+ echo ""
178
+ echo "Repository: https://huggingface.co/agentvibes/piper-custom-voices"
179
+ echo "Original voices by: Bryce Beattie (https://brycebeattie.com/files/tts/)"
180
+ echo ""
181
+
182
+ if [[ "$AUTO_YES" == "false" ]]; then
183
+ read -p "Download custom voices (Kristin + Jenny + 16Speakers)? [Y/n]: " -n 1 -r
184
+ echo
185
+
186
+ if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then
187
+ DOWNLOAD_CUSTOM=true
188
+ else
189
+ DOWNLOAD_CUSTOM=false
190
+ fi
191
+ else
192
+ DOWNLOAD_CUSTOM=true
193
+ fi
194
+
195
+ if [[ "$DOWNLOAD_CUSTOM" == "true" ]]; then
196
+ echo ""
197
+ echo "📥 Downloading custom voices..."
198
+
199
+ CUSTOM_DOWNLOADED=0
200
+ CUSTOM_FAILED=0
201
+
202
+ for voice_entry in "${CUSTOM_VOICES[@]}"; do
203
+ IFS=':' read -r voice_name onnx_url json_url <<< "$voice_entry"
204
+
205
+ echo ""
206
+ echo "📥 Downloading: $voice_name..."
207
+
208
+ # Create filename from voice name
209
+ onnx_file="$VOICE_DIR/${voice_name}.onnx"
210
+ json_file="$VOICE_DIR/${voice_name}.onnx.json"
211
+
212
+ # Download .onnx file
213
+ if curl -L "$onnx_url" -o "$onnx_file" 2>/dev/null; then
214
+ # Download .json config file
215
+ if curl -L "$json_url" -o "$json_file" 2>/dev/null; then
216
+ ((CUSTOM_DOWNLOADED++))
217
+ echo "✅ Downloaded: $voice_name"
218
+ else
219
+ ((CUSTOM_FAILED++))
220
+ echo "❌ Failed to download config: $voice_name"
221
+ rm -f "$onnx_file" # Clean up partial download
222
+ fi
223
+ else
224
+ ((CUSTOM_FAILED++))
225
+ echo "❌ Failed to download model: $voice_name"
226
+ fi
227
+ done
228
+
229
+ echo ""
230
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
231
+ echo "📊 Custom Voices Summary:"
232
+ echo " ✅ Successfully downloaded: $CUSTOM_DOWNLOADED"
233
+ echo " ❌ Failed: $CUSTOM_FAILED"
234
+ echo ""
235
+ fi
236
+
237
+ TOTAL_DOWNLOADED=$((DOWNLOADED + ${CUSTOM_DOWNLOADED:-0}))
238
+
239
+ if [[ $TOTAL_DOWNLOADED -gt 0 ]]; then
128
240
  echo "✨ Ready to use Piper TTS with downloaded voices!"
129
241
  echo ""
130
242
  echo "Try it:"
131
243
  echo " /agent-vibes:provider switch piper"
132
244
  echo " /agent-vibes:preview"
245
+ echo ""
246
+ echo "Attribution:"
247
+ echo " • Original voices by Bryce Beattie - https://brycebeattie.com/files/tts/"
248
+ echo " • Hosted by AgentVibes - https://huggingface.co/agentvibes/piper-custom-voices"
249
+ echo " • Jenny voice requires attribution (CC BY license)"
250
+ echo ""
251
+ echo "Using 16Speakers multi-voice:"
252
+ echo " • Switch to specific speaker: /agent-vibes:switch 16Speakers#0"
253
+ echo " • Speakers 0-15 available (Cori, Kara, Kristin, Maria, Mike, etc.)"
254
+ echo " • View all speakers: /agent-vibes:list"
133
255
  fi
@@ -1,9 +1,43 @@
1
1
  #!/bin/bash
2
2
  #
3
- # @fileoverview Piper TTS Installer
4
- # @context Installs Piper TTS and downloads initial voice models
5
- # @architecture Helper script for AgentVibes installer and manual installation
6
- # @why Piper TTS requires separate installation from pipx/pip
3
+ # File: .claude/hooks/piper-installer.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 Piper TTS Installer - Installs Piper TTS via pipx and downloads initial voice models
35
+ # @context Automated installation script for free offline Piper TTS on WSL/Linux systems
36
+ # @architecture Helper script for AgentVibes installer, invoked manually or from provider switcher
37
+ # @dependencies pipx (Python package installer), apt-get/brew/dnf/pacman (for pipx installation)
38
+ # @entrypoints Called by src/installer.js or manually by users during setup
39
+ # @patterns Platform detection (WSL/Linux only), package manager abstraction, guided voice download
40
+ # @related piper-download-voices.sh, provider-manager.sh, src/installer.js
7
41
  #
8
42
 
9
43
  set -e # Exit on error
@@ -1,23 +1,66 @@
1
1
  #!/bin/bash
2
2
  #
3
- # @fileoverview Piper Voice Model Management
4
- # @context Manages downloading, caching, and validating Piper ONNX voice models
5
- # @architecture Voice model lifecycle management for Piper provider
6
- # @dependencies curl, piper binary
7
- # @entrypoints Sourced by play-tts-piper.sh and provider management commands
8
- # @patterns HuggingFace model repository integration, file-based caching
9
- # @related play-tts-piper.sh, provider-manager.sh, GitHub Issue #25
3
+ # File: .claude/hooks/piper-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, 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 Piper Voice Model Management - Downloads, caches, and validates Piper ONNX voice models
35
+ # @context Voice model lifecycle management for free offline Piper TTS provider
36
+ # @architecture HuggingFace repository integration with local caching, global storage for voice models
37
+ # @dependencies curl (downloads), piper binary (TTS synthesis)
38
+ # @entrypoints Sourced by play-tts-piper.sh, piper-download-voices.sh, and provider management commands
39
+ # @patterns HuggingFace model repository integration, file-based caching (~25MB per voice), global storage
40
+ # @related play-tts-piper.sh, piper-download-voices.sh, provider-manager.sh, GitHub Issue #25
10
41
  #
11
42
 
12
43
  # Base URL for Piper voice models on HuggingFace
13
44
  PIPER_VOICES_BASE_URL="https://huggingface.co/rhasspy/piper-voices/resolve/main"
14
45
 
46
+ # AI NOTE: Voice storage precedence order:
47
+ # 1. PIPER_VOICES_DIR environment variable (highest priority)
48
+ # 2. Project-local .claude/piper-voices-dir.txt
49
+ # 3. Directory tree search for .claude/piper-voices-dir.txt
50
+ # 4. Global ~/.claude/piper-voices-dir.txt
51
+ # 5. Default ~/.claude/piper-voices (fallback)
52
+ # This allows per-project voice isolation while defaulting to shared global storage.
53
+
15
54
  # @function get_voice_storage_dir
16
- # @intent Determine directory for storing Piper voice models
17
- # @why Voice models are large (~25MB each) and should be shared globally across all projects
18
- # @returns Echoes path to voice storage directory (~/.claude/piper-voices)
55
+ # @intent Determine directory for storing Piper voice models with precedence chain
56
+ # @why Voice models are large (~25MB each) and should be shared globally by default, but allow per-project overrides
57
+ # @param None
58
+ # @returns Echoes path to voice storage directory
59
+ # @exitcode Always 0
19
60
  # @sideeffects Creates directory if it doesn't exist
20
- # @architecture Supports custom path via PIPER_VOICES_DIR env var, defaults to global storage
61
+ # @edgecases Searches up directory tree for .claude/ folder, supports custom paths via env var or config files
62
+ # @calledby All voice management functions (verify_voice, get_voice_path, download_voice, list_downloaded_voices)
63
+ # @calls mkdir, cat, dirname
21
64
  get_voice_storage_dir() {
22
65
  local voice_dir
23
66
 
@@ -61,12 +104,15 @@ get_voice_storage_dir() {
61
104
  }
62
105
 
63
106
  # @function verify_voice
64
- # @intent Check if voice model files exist locally
65
- # @why Avoid redundant downloads, detect missing models
107
+ # @intent Check if voice model files exist locally (both .onnx and .onnx.json)
108
+ # @why Avoid redundant downloads, detect missing models, ensure model integrity
66
109
  # @param $1 {string} voice_name - Voice model name (e.g., en_US-lessac-medium)
67
110
  # @returns None
68
- # @exitcode 0=voice exists, 1=voice missing
69
- # @sideeffects None
111
+ # @exitcode 0=voice exists and complete, 1=voice missing or incomplete
112
+ # @sideeffects None (read-only check)
113
+ # @edgecases Requires both ONNX model and JSON config to return success
114
+ # @calledby download_voice, piper-download-voices.sh
115
+ # @calls get_voice_storage_dir
70
116
  verify_voice() {
71
117
  local voice_name="$1"
72
118
  local voice_dir
@@ -79,12 +125,15 @@ verify_voice() {
79
125
  }
80
126
 
81
127
  # @function get_voice_path
82
- # @intent Get absolute path to voice model ONNX file
83
- # @why Piper binary requires full path to model file
128
+ # @intent Get absolute path to voice model ONNX file for Piper binary
129
+ # @why Piper binary requires full absolute path to model file, not just voice name
84
130
  # @param $1 {string} voice_name - Voice model name
85
- # @returns Echoes path to .onnx file
131
+ # @returns Echoes absolute path to .onnx file to stdout
86
132
  # @exitcode 0=success, 1=voice not found
87
- # @sideeffects None
133
+ # @sideeffects Writes error message to stderr if voice not found
134
+ # @edgecases Returns error if voice not downloaded yet
135
+ # @calledby play-tts-piper.sh for TTS synthesis
136
+ # @calls get_voice_storage_dir
88
137
  get_voice_path() {
89
138
  local voice_name="$1"
90
139
  local voice_dir
@@ -100,13 +149,24 @@ get_voice_path() {
100
149
  echo "$onnx_file"
101
150
  }
102
151
 
152
+ # AI NOTE: Voice name format is: lang_LOCALE-speaker-quality
153
+ # Example: en_US-lessac-medium
154
+ # - lang: en (language code)
155
+ # - LOCALE: US (locale/country code)
156
+ # - speaker: lessac (speaker/voice name)
157
+ # - quality: medium (model quality: low/medium/high)
158
+ # HuggingFace repository structure: {lang}/{lang}_{LOCALE}/{speaker}/{quality}/
159
+
103
160
  # @function parse_voice_components
104
- # @intent Extract language, locale, speaker, quality from voice name
105
- # @why HuggingFace uses directory structure: lang/locale/speaker/quality
161
+ # @intent Extract language, locale, speaker, quality components from voice name
162
+ # @why HuggingFace uses structured directory paths based on these components
106
163
  # @param $1 {string} voice_name - Voice name (e.g., en_US-lessac-medium)
107
- # @returns Sets global variables: LANG, LOCALE, SPEAKER, QUALITY
108
- # @sideeffects Sets global variables
109
- # AI NOTE: Voice name format is: lang_LOCALE-speaker-quality
164
+ # @returns None (sets global variables)
165
+ # @exitcode Always 0
166
+ # @sideeffects Sets global variables: LANG, LOCALE, SPEAKER, QUALITY
167
+ # @edgecases Expects specific format: lang_LOCALE-speaker-quality
168
+ # @calledby download_voice
169
+ # @calls None (pure string manipulation)
110
170
  parse_voice_components() {
111
171
  local voice_name="$1"
112
172
 
@@ -124,14 +184,16 @@ parse_voice_components() {
124
184
  }
125
185
 
126
186
  # @function download_voice
127
- # @intent Download Piper voice model from HuggingFace
128
- # @why Provide free offline TTS voices
129
- # @param $1 {string} voice_name - Voice model name
130
- # @param $2 {string} lang_code - Language code (optional, inferred from voice_name)
187
+ # @intent Download Piper voice model from HuggingFace repository
188
+ # @why Provide free offline TTS voices without requiring API keys
189
+ # @param $1 {string} voice_name - Voice model name (e.g., en_US-lessac-medium)
190
+ # @param $2 {string} lang_code - Language code (optional, inferred from voice_name, unused)
131
191
  # @returns None
132
- # @exitcode 0=success, 1=download failed
133
- # @sideeffects Downloads .onnx and .onnx.json files
134
- # @edgecases Handles network failures, validates file integrity
192
+ # @exitcode 0=success (already downloaded or newly downloaded), 1=download failed
193
+ # @sideeffects Downloads .onnx and .onnx.json files (~25MB total), removes partial downloads on failure
194
+ # @edgecases Handles network failures, validates file integrity (non-zero size), skips if already downloaded
195
+ # @calledby piper-download-voices.sh, manual voice download commands
196
+ # @calls parse_voice_components, verify_voice, get_voice_storage_dir, curl, rm
135
197
  download_voice() {
136
198
  local voice_name="$1"
137
199
  local lang_code="${2:-}"
@@ -187,11 +249,15 @@ download_voice() {
187
249
  }
188
250
 
189
251
  # @function list_downloaded_voices
190
- # @intent Show all locally cached voice models
191
- # @why Help users see what voices they have available
192
- # @returns Echoes voice names (one per line)
193
- # @exitcode 0=success
194
- # @sideeffects None
252
+ # @intent Display all locally cached voice models with file sizes
253
+ # @why Help users see what voices they have available and storage usage
254
+ # @param None
255
+ # @returns None
256
+ # @exitcode Always 0
257
+ # @sideeffects Writes formatted list to stdout
258
+ # @edgecases Handles empty voice directory gracefully, uses nullglob to avoid literal *.onnx
259
+ # @calledby Voice management commands, /agent-vibes:list
260
+ # @calls get_voice_storage_dir, basename, du
195
261
  list_downloaded_voices() {
196
262
  local voice_dir
197
263
  voice_dir=$(get_voice_storage_dir)
@@ -1,12 +1,38 @@
1
1
  #!/bin/bash
2
2
  #
3
- # @fileoverview ElevenLabs TTS Provider Implementation
4
- # @context Provider-specific implementation for ElevenLabs API integration
5
- # @architecture Part of multi-provider TTS system - implements provider interface
3
+ # File: .claude/hooks/play-tts-elevenlabs.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 ElevenLabs TTS Provider Implementation - Premium cloud-based TTS
30
+ # @context Provider-specific implementation for ElevenLabs API integration with multilingual support
31
+ # @architecture Part of multi-provider TTS system - implements provider interface contract
6
32
  # @dependencies Requires ELEVENLABS_API_KEY, curl, ffmpeg, paplay/aplay/mpg123, jq
7
- # @entrypoints Called by play-tts.sh router with ($1=text, $2=voice_name)
8
- # @patterns Follows provider contract: accept text/voice, output audio file path
9
- # @related play-tts.sh, provider-manager.sh, GitHub Issue #25
33
+ # @entrypoints Called by play-tts.sh router with ($1=text, $2=voice_name) when provider=elevenlabs
34
+ # @patterns Follows provider contract: accept text/voice, output audio file path, API error handling, SSH audio optimization
35
+ # @related play-tts.sh, provider-manager.sh, voices-config.sh, language-manager.sh, GitHub Issue #25
10
36
  #
11
37
 
12
38
  # Fix locale warnings