agentvibes 2.0.17-beta.2 → 2.0.17-beta.21

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 (339) 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/commands/BMad/agents/analyst.md +88 -0
  77. package/.claude/commands/BMad/agents/architect.md +89 -0
  78. package/.claude/commands/BMad/agents/bmad-master.md +114 -0
  79. package/.claude/commands/BMad/agents/bmad-orchestrator.md +151 -0
  80. package/.claude/commands/BMad/agents/dev.md +85 -0
  81. package/.claude/commands/BMad/agents/pm.md +88 -0
  82. package/.claude/commands/BMad/agents/po.md +83 -0
  83. package/.claude/commands/BMad/agents/qa.md +91 -0
  84. package/.claude/commands/BMad/agents/sm.md +69 -0
  85. package/.claude/commands/BMad/agents/ux-expert.md +73 -0
  86. package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
  87. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
  88. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
  89. package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
  90. package/.claude/commands/BMad/tasks/correct-course.md +76 -0
  91. package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
  92. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
  93. package/.claude/commands/BMad/tasks/create-doc.md +107 -0
  94. package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
  95. package/.claude/commands/BMad/tasks/document-project.md +349 -0
  96. package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
  97. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
  98. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
  99. package/.claude/commands/BMad/tasks/index-docs.md +179 -0
  100. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
  101. package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
  102. package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
  103. package/.claude/commands/BMad/tasks/review-story.md +320 -0
  104. package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
  105. package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
  106. package/.claude/commands/BMad/tasks/test-design.md +180 -0
  107. package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
  108. package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
  109. package/.claude/commands/agent-vibes/add.md +0 -0
  110. package/.claude/commands/agent-vibes/agent-vibes.md +0 -0
  111. package/.claude/commands/agent-vibes/bmad.md +0 -0
  112. package/.claude/commands/agent-vibes/commands.json +24 -0
  113. package/.claude/commands/agent-vibes/get.md +0 -0
  114. package/.claude/commands/agent-vibes/language.md +23 -0
  115. package/.claude/commands/agent-vibes/learn.md +67 -0
  116. package/.claude/commands/agent-vibes/list.md +0 -0
  117. package/.claude/commands/agent-vibes/personality.md +0 -0
  118. package/.claude/commands/agent-vibes/preview.md +0 -0
  119. package/.claude/commands/agent-vibes/replay-target.md +14 -0
  120. package/.claude/commands/agent-vibes/replay.md +0 -0
  121. package/.claude/commands/agent-vibes/sample.md +0 -0
  122. package/.claude/commands/agent-vibes/sentiment.md +0 -0
  123. package/.claude/commands/agent-vibes/set-language.md +0 -0
  124. package/.claude/commands/agent-vibes/set-pretext.md +0 -0
  125. package/.claude/commands/agent-vibes/set-speed.md +41 -0
  126. package/.claude/commands/agent-vibes/switch.md +0 -0
  127. package/.claude/commands/agent-vibes/target-voice.md +26 -0
  128. package/.claude/commands/agent-vibes/target.md +30 -0
  129. package/.claude/commands/agent-vibes/update.md +0 -0
  130. package/.claude/commands/agent-vibes/version.md +0 -0
  131. package/.claude/commands/agent-vibes/whoami.md +0 -0
  132. package/.claude/github-star-reminder.txt +1 -1
  133. package/.claude/hooks/language-manager.sh +167 -13
  134. package/.claude/hooks/learn-manager.sh +443 -0
  135. package/.claude/hooks/play-tts-elevenlabs.sh +52 -8
  136. package/.claude/hooks/play-tts-piper.sh +82 -8
  137. package/.claude/hooks/play-tts.sh +30 -4
  138. package/.claude/hooks/provider-commands.sh +46 -3
  139. package/.claude/hooks/provider-manager.sh +56 -4
  140. package/.claude/hooks/replay-target-audio.sh +64 -0
  141. package/.claude/hooks/speed-manager.sh +226 -0
  142. package/.claude/language-voices.yaml +0 -0
  143. package/.claude/output-styles/agent-vibes.md +0 -0
  144. package/.claude/personalities/angry.md +0 -0
  145. package/.claude/personalities/annoying.md +0 -0
  146. package/.claude/personalities/crass.md +0 -0
  147. package/.claude/personalities/dramatic.md +0 -0
  148. package/.claude/personalities/dry-humor.md +0 -0
  149. package/.claude/personalities/flirty.md +0 -0
  150. package/.claude/personalities/funny.md +0 -0
  151. package/.claude/personalities/grandpa.md +0 -0
  152. package/.claude/personalities/millennial.md +0 -0
  153. package/.claude/personalities/moody.md +0 -0
  154. package/.claude/personalities/normal.md +0 -0
  155. package/.claude/personalities/pirate.md +0 -0
  156. package/.claude/personalities/poetic.md +0 -0
  157. package/.claude/personalities/professional.md +0 -0
  158. package/.claude/personalities/robot.md +0 -0
  159. package/.claude/personalities/sarcastic.md +0 -0
  160. package/.claude/personalities/sassy.md +0 -0
  161. package/.claude/personalities/surfer-dude.md +0 -0
  162. package/.claude/personalities/zen.md +0 -0
  163. package/.claude/piper-voices/en_US-lessac-medium.onnx +0 -0
  164. package/.claude/piper-voices/en_US-lessac-medium.onnx.json +0 -0
  165. package/.claude/piper-voices-dir.txt +0 -0
  166. package/.claude/plugins/bmad-voices-enabled.flag +0 -0
  167. package/.claude/plugins/bmad-voices.md +0 -0
  168. package/.mcp-minimal.json +6 -8
  169. package/AUDIO_TUNNEL_FIX_SUMMARY.md +0 -0
  170. package/INSTALL_MCP_WINDOWS.md +120 -42
  171. package/LICENSE +0 -0
  172. package/NPM_PUBLISH_GUIDE.md +0 -0
  173. package/README.md +19 -6
  174. package/RELEASE_NOTES.md +97 -0
  175. package/RELEASE_NOTES_V2.md +136 -5
  176. package/agentvibes.org/.claude/commands/agent-vibes/add.md +21 -0
  177. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +68 -0
  178. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +53 -0
  179. package/agentvibes.org/.claude/commands/agent-vibes/get.md +9 -0
  180. package/agentvibes.org/.claude/commands/agent-vibes/list.md +13 -0
  181. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +79 -0
  182. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +16 -0
  183. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +54 -0
  184. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +19 -0
  185. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +12 -0
  186. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +52 -0
  187. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +47 -0
  188. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +65 -0
  189. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +53 -0
  190. package/agentvibes.org/.claude/commands/agent-vibes/update.md +20 -0
  191. package/agentvibes.org/.claude/commands/agent-vibes/version.md +10 -0
  192. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +7 -0
  193. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +278 -0
  194. package/agentvibes.org/.claude/hooks/language-manager.sh +190 -0
  195. package/agentvibes.org/.claude/hooks/personality-manager.sh +279 -0
  196. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +133 -0
  197. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +227 -0
  198. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +201 -0
  199. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +175 -0
  200. package/agentvibes.org/.claude/hooks/play-tts.sh +138 -0
  201. package/agentvibes.org/.claude/hooks/provider-commands.sh +374 -0
  202. package/agentvibes.org/.claude/hooks/provider-manager.sh +196 -0
  203. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +163 -0
  204. package/agentvibes.org/.claude/hooks/voice-manager.sh +349 -0
  205. package/agentvibes.org/.claude/hooks/voices-config.sh +33 -0
  206. package/agentvibes.org/.claude/journal/2025-10-07.html +373 -0
  207. package/agentvibes.org/.claude/journal/index.html +91 -0
  208. package/agentvibes.org/.claude/output-styles/agent-vibes.md +203 -0
  209. package/agentvibes.org/.claude/personalities/angry.md +16 -0
  210. package/agentvibes.org/.claude/personalities/annoying.md +16 -0
  211. package/agentvibes.org/.claude/personalities/crass.md +16 -0
  212. package/agentvibes.org/.claude/personalities/dramatic.md +16 -0
  213. package/agentvibes.org/.claude/personalities/dry-humor.md +52 -0
  214. package/agentvibes.org/.claude/personalities/flirty.md +22 -0
  215. package/agentvibes.org/.claude/personalities/funny.md +16 -0
  216. package/agentvibes.org/.claude/personalities/grandpa.md +34 -0
  217. package/agentvibes.org/.claude/personalities/millennial.md +16 -0
  218. package/agentvibes.org/.claude/personalities/moody.md +16 -0
  219. package/agentvibes.org/.claude/personalities/normal.md +18 -0
  220. package/agentvibes.org/.claude/personalities/pirate.md +16 -0
  221. package/agentvibes.org/.claude/personalities/poetic.md +16 -0
  222. package/agentvibes.org/.claude/personalities/professional.md +16 -0
  223. package/agentvibes.org/.claude/personalities/robot.md +16 -0
  224. package/agentvibes.org/.claude/personalities/sarcastic.md +40 -0
  225. package/agentvibes.org/.claude/personalities/sassy.md +16 -0
  226. package/agentvibes.org/.claude/personalities/surfer-dude.md +16 -0
  227. package/agentvibes.org/.claude/personalities/zen.md +16 -0
  228. package/agentvibes.org/.mcp-minimal.json +60 -0
  229. package/agentvibes.org/CHANGELOG.md +56 -0
  230. package/agentvibes.org/README.md +93 -0
  231. package/agentvibes.org/app/(auth)/layout.tsx +15 -0
  232. package/agentvibes.org/app/(auth)/reset-password/page.tsx +45 -0
  233. package/agentvibes.org/app/(auth)/signin/page.tsx +82 -0
  234. package/agentvibes.org/app/(auth)/signup/page.tsx +104 -0
  235. package/agentvibes.org/app/(default)/layout.tsx +31 -0
  236. package/agentvibes.org/app/(default)/page.tsx +20 -0
  237. package/agentvibes.org/app/api/hello/route.ts +3 -0
  238. package/agentvibes.org/app/css/additional-styles/theme.css +82 -0
  239. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +55 -0
  240. package/agentvibes.org/app/css/style.css +100 -0
  241. package/agentvibes.org/app/layout.tsx +63 -0
  242. package/agentvibes.org/components/cta.tsx +58 -0
  243. package/agentvibes.org/components/features.tsx +256 -0
  244. package/agentvibes.org/components/hero-home.tsx +133 -0
  245. package/agentvibes.org/components/modal-video.tsx +137 -0
  246. package/agentvibes.org/components/page-illustration.tsx +55 -0
  247. package/agentvibes.org/components/spotlight.tsx +77 -0
  248. package/agentvibes.org/components/testimonials.tsx +282 -0
  249. package/agentvibes.org/components/ui/footer.tsx +82 -0
  250. package/agentvibes.org/components/ui/header.tsx +53 -0
  251. package/agentvibes.org/components/ui/logo.tsx +10 -0
  252. package/agentvibes.org/components/workflows.tsx +176 -0
  253. package/agentvibes.org/next.config.js +4 -0
  254. package/agentvibes.org/package-lock.json +1974 -0
  255. package/agentvibes.org/package.json +30 -0
  256. package/agentvibes.org/pnpm-lock.yaml +1141 -0
  257. package/agentvibes.org/postcss.config.js +5 -0
  258. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  259. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  260. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  261. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  262. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  263. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  264. package/agentvibes.org/public/favicon.ico +0 -0
  265. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  266. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  267. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  268. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  269. package/agentvibes.org/public/images/blurred-shape-gray.svg +1 -0
  270. package/agentvibes.org/public/images/blurred-shape.svg +1 -0
  271. package/agentvibes.org/public/images/client-logo-01.svg +1 -0
  272. package/agentvibes.org/public/images/client-logo-02.svg +1 -0
  273. package/agentvibes.org/public/images/client-logo-03.svg +1 -0
  274. package/agentvibes.org/public/images/client-logo-04.svg +1 -0
  275. package/agentvibes.org/public/images/client-logo-05.svg +1 -0
  276. package/agentvibes.org/public/images/client-logo-06.svg +1 -0
  277. package/agentvibes.org/public/images/client-logo-07.svg +1 -0
  278. package/agentvibes.org/public/images/client-logo-08.svg +1 -0
  279. package/agentvibes.org/public/images/client-logo-09.svg +1 -0
  280. package/agentvibes.org/public/images/features.png +0 -0
  281. package/agentvibes.org/public/images/footer-illustration.svg +1 -0
  282. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  283. package/agentvibes.org/public/images/logo.svg +1 -0
  284. package/agentvibes.org/public/images/page-illustration.svg +1 -0
  285. package/agentvibes.org/public/images/secondary-illustration.svg +1 -0
  286. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  287. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  288. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  289. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  290. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  291. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  292. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  293. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  294. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  295. package/agentvibes.org/public/images/workflow-01.png +0 -0
  296. package/agentvibes.org/public/images/workflow-02.png +0 -0
  297. package/agentvibes.org/public/images/workflow-03.png +0 -0
  298. package/agentvibes.org/public/videos/video.mp4 +0 -0
  299. package/agentvibes.org/tsconfig.json +28 -0
  300. package/agentvibes.org/utils/useMasonry.tsx +67 -0
  301. package/agentvibes.org/utils/useMousePosition.tsx +27 -0
  302. package/bin/mcp-server.js +122 -0
  303. package/docs/ai-optimized-documentation-standards.md +0 -0
  304. package/docs/architecture/provider-system.md +0 -0
  305. package/docs/remote-audio-setup.md +0 -0
  306. package/docs/voice-mapping-format.md +0 -0
  307. package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
  308. package/mcp-server/QUICK_START.md +0 -0
  309. package/mcp-server/README.md +0 -0
  310. package/mcp-server/examples/claude_desktop_config.json +0 -0
  311. package/mcp-server/examples/claude_desktop_config_piper.json +0 -0
  312. package/mcp-server/examples/custom_instructions.md +0 -0
  313. package/mcp-server/pyproject.toml +0 -0
  314. package/mcp-server/requirements.txt +0 -0
  315. package/mcp-server/server.py +87 -25
  316. package/package.json +2 -2
  317. package/scripts/AUTO-MONITOR-SETUP.md +233 -0
  318. package/scripts/CHANGELOG-2025-10-16.md +268 -0
  319. package/scripts/README.md +114 -0
  320. package/scripts/TROUBLESHOOTING.md +258 -0
  321. package/scripts/audio-tunnel.config +17 -0
  322. package/scripts/audio-tunnel.config.example +18 -0
  323. package/scripts/fix-audio-tunnel-complete.sh +255 -0
  324. package/scripts/fix-audio-tunnel.sh +244 -54
  325. package/scripts/health-check-tunnel.sh +93 -0
  326. package/scripts/piper-voice/README.md +0 -0
  327. package/scripts/setup-auto-monitor.sh +86 -0
  328. package/scripts/setup-windows-audio.ps1 +0 -0
  329. package/src/commands/install-mcp.js +0 -0
  330. package/src/installer.js +18 -0
  331. package/templates/activation-instructions-bmad.md +0 -0
  332. package/templates/output-styles/agent-vibes.md +0 -0
  333. package/test/README.md +0 -0
  334. package/test/helpers/test-helper.bash +0 -0
  335. package/test/test-framework.md +0 -0
  336. package/test/unit/personality-manager.bats +0 -0
  337. package/test/unit/play-tts.bats +0 -0
  338. package/test/unit/voice-manager.bats +0 -0
  339. /package/bin/{mcp-server → mcp-server.sh} +0 -0
@@ -88,7 +88,8 @@ provider_switch() {
88
88
  fi
89
89
 
90
90
  # Auto-enable force mode if running non-interactively (e.g., from MCP)
91
- if [[ ! -t 0 ]]; then
91
+ # Check multiple conditions for MCP/non-interactive context
92
+ if [[ ! -t 0 ]] || [[ -n "$CLAUDE_PROJECT_DIR" ]] || [[ -n "$MCP_SERVER" ]]; then
92
93
  force_mode=true
93
94
  fi
94
95
 
@@ -156,13 +157,14 @@ provider_switch() {
156
157
  echo " 2. Switch language to English"
157
158
  echo " 3. Cancel provider switch"
158
159
  echo ""
159
- read -p "Choose option [1-3]: " -n 1 -r
160
- echo
161
160
 
162
161
  # Skip prompt in force mode
163
162
  if [[ "$force_mode" == true ]]; then
164
163
  echo "⏩ Force mode: Continuing with fallback to English..."
165
164
  else
165
+ read -p "Choose option [1-3]: " -n 1 -r
166
+ echo
167
+
166
168
  case $REPLY in
167
169
  1)
168
170
  echo "⏩ Continuing with fallback to English..."
@@ -209,6 +211,47 @@ provider_switch() {
209
211
  # Perform switch
210
212
  set_active_provider "$new_provider"
211
213
 
214
+ # Update target voice if language learning mode is active
215
+ local target_lang_file=""
216
+ local target_voice_file=""
217
+
218
+ # Check project-local first, then global
219
+ if [[ -d "$SCRIPT_DIR/../.." ]]; then
220
+ local project_dir="$SCRIPT_DIR/../.."
221
+ if [[ -f "$project_dir/.claude/tts-target-language.txt" ]]; then
222
+ target_lang_file="$project_dir/.claude/tts-target-language.txt"
223
+ target_voice_file="$project_dir/.claude/tts-target-voice.txt"
224
+ fi
225
+ fi
226
+
227
+ # Fallback to global
228
+ if [[ -z "$target_lang_file" ]]; then
229
+ if [[ -f "$HOME/.claude/tts-target-language.txt" ]]; then
230
+ target_lang_file="$HOME/.claude/tts-target-language.txt"
231
+ target_voice_file="$HOME/.claude/tts-target-voice.txt"
232
+ fi
233
+ fi
234
+
235
+ # If target language is set, update voice for new provider
236
+ if [[ -n "$target_lang_file" ]] && [[ -f "$target_lang_file" ]]; then
237
+ local target_lang
238
+ target_lang=$(cat "$target_lang_file")
239
+
240
+ if [[ -n "$target_lang" ]]; then
241
+ # Get the recommended voice for this language with new provider
242
+ local new_target_voice
243
+ new_target_voice=$(get_voice_for_language "$target_lang" "$new_provider")
244
+
245
+ if [[ -n "$new_target_voice" ]]; then
246
+ echo "$new_target_voice" > "$target_voice_file"
247
+ echo ""
248
+ echo "🔄 Updated target language voice:"
249
+ echo " Language: $target_lang"
250
+ echo " Voice: $new_target_voice (for $new_provider)"
251
+ fi
252
+ fi
253
+ fi
254
+
212
255
  # Test new provider
213
256
  echo ""
214
257
  echo "🔊 Testing provider..."
@@ -53,7 +53,7 @@ get_active_provider() {
53
53
  local provider_file
54
54
  provider_file=$(get_provider_config_path)
55
55
 
56
- # Read provider from file, default to elevenlabs if not found
56
+ # Read provider from file, default to piper if not found
57
57
  if [[ -f "$provider_file" ]]; then
58
58
  local provider
59
59
  provider=$(cat "$provider_file" | tr -d '[:space:]')
@@ -63,8 +63,8 @@ get_active_provider() {
63
63
  fi
64
64
  fi
65
65
 
66
- # Default to elevenlabs
67
- echo "elevenlabs"
66
+ # Default to piper (free, offline)
67
+ echo "piper"
68
68
  }
69
69
 
70
70
  # @function set_active_provider
@@ -101,7 +101,21 @@ set_active_provider() {
101
101
  # Write provider to file
102
102
  echo "$provider" > "$provider_file"
103
103
 
104
- echo "✓ Active provider set to: $provider"
104
+ # Reset voice when switching providers to avoid incompatible voices
105
+ # (e.g., ElevenLabs "Demon Monster" doesn't exist in Piper)
106
+ local voice_file
107
+ if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
108
+ voice_file="$CLAUDE_PROJECT_DIR/.claude/tts-voice.txt"
109
+ else
110
+ voice_file="$HOME/.claude/tts-voice.txt"
111
+ fi
112
+
113
+ # Remove voice file to force default voice for new provider
114
+ if [[ -f "$voice_file" ]]; then
115
+ rm -f "$voice_file"
116
+ fi
117
+
118
+ echo "✓ Active provider set to: $provider (voice reset to default)"
105
119
  }
106
120
 
107
121
  # @function list_providers
@@ -194,3 +208,41 @@ get_provider_script_path() {
194
208
  # AI NOTE: This file provides the core abstraction layer for multi-provider TTS.
195
209
  # All provider state is managed through simple text files for simplicity and reliability.
196
210
  # Project-local configuration takes precedence over global to support per-project providers.
211
+
212
+ # Command-line interface (when script is executed, not sourced)
213
+ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
214
+ case "${1:-}" in
215
+ get)
216
+ get_active_provider
217
+ ;;
218
+ switch|set)
219
+ if [[ -z "${2:-}" ]]; then
220
+ echo "❌ Error: Provider name required"
221
+ echo "Usage: $0 switch <provider>"
222
+ exit 1
223
+ fi
224
+ set_active_provider "$2"
225
+ ;;
226
+ list)
227
+ list_providers
228
+ ;;
229
+ validate)
230
+ if [[ -z "${2:-}" ]]; then
231
+ echo "❌ Error: Provider name required"
232
+ echo "Usage: $0 validate <provider>"
233
+ exit 1
234
+ fi
235
+ validate_provider "$2"
236
+ ;;
237
+ *)
238
+ echo "Usage: $0 {get|switch|list|validate} [provider]"
239
+ echo ""
240
+ echo "Commands:"
241
+ echo " get - Show active provider"
242
+ echo " switch <name> - Switch to provider"
243
+ echo " list - List available providers"
244
+ echo " validate <name> - Check if provider exists"
245
+ exit 1
246
+ ;;
247
+ esac
248
+ fi
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ #
3
+ # @fileoverview Replay Last Target Language Audio
4
+ # @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
7
+ # @entrypoints Called by /agent-vibes:replay-target slash command
8
+ # @patterns Sequential audio playback with lock file
9
+ # @related play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
10
+ #
11
+
12
+ # Fix locale warnings
13
+ export LC_ALL=C
14
+
15
+ TARGET_AUDIO_FILE="${CLAUDE_PROJECT_DIR:-.}/.claude/last-target-audio.txt"
16
+
17
+ # Check if target audio tracking file exists
18
+ if [ ! -f "$TARGET_AUDIO_FILE" ]; then
19
+ echo "❌ No target language audio found."
20
+ echo " Language learning mode may not be active."
21
+ echo " Activate with: /agent-vibes:learn"
22
+ exit 1
23
+ fi
24
+
25
+ # Read last target audio file path
26
+ LAST_AUDIO=$(cat "$TARGET_AUDIO_FILE")
27
+
28
+ # Verify audio file exists
29
+ if [ ! -f "$LAST_AUDIO" ]; then
30
+ echo "❌ Audio file not found: $LAST_AUDIO"
31
+ echo " The file may have been deleted or moved."
32
+ exit 1
33
+ fi
34
+
35
+ echo "🔁 Replaying target language audio..."
36
+
37
+ # Use lock file for sequential playback
38
+ LOCK_FILE="/tmp/agentvibes-audio.lock"
39
+
40
+ # Wait for any current audio to finish (max 30 seconds)
41
+ for i in {1..60}; do
42
+ if [ ! -f "$LOCK_FILE" ]; then
43
+ break
44
+ fi
45
+ sleep 0.5
46
+ done
47
+
48
+ # Create lock
49
+ touch "$LOCK_FILE"
50
+
51
+ # Get audio duration for proper lock timing
52
+ DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$LAST_AUDIO" 2>/dev/null)
53
+ DURATION=${DURATION%.*} # Round to integer
54
+ DURATION=${DURATION:-1} # Default to 1 second if detection fails
55
+
56
+ # Play audio
57
+ (paplay "$LAST_AUDIO" || aplay "$LAST_AUDIO" || mpg123 "$LAST_AUDIO" || mpv "$LAST_AUDIO") >/dev/null 2>&1 &
58
+ PLAYER_PID=$!
59
+
60
+ # Wait for audio to finish, then release lock
61
+ (sleep $DURATION; rm -f "$LOCK_FILE") &
62
+ disown
63
+
64
+ echo "✅ Replay complete: $(basename "$LAST_AUDIO")"
@@ -0,0 +1,226 @@
1
+ #!/bin/bash
2
+ #
3
+ # @fileoverview Speech Speed Manager for Piper TTS
4
+ # @context Manage speech rate for main and target language voices
5
+ # @architecture Simple config file manager for Piper length-scale parameter
6
+ #
7
+
8
+ # Get script directory
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
+
11
+ # Determine config directory (project-local first, then global)
12
+ if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
13
+ CONFIG_DIR="$CLAUDE_PROJECT_DIR/.claude/config"
14
+ else
15
+ # Try to find .claude in current path
16
+ CURRENT_DIR="$PWD"
17
+ while [[ "$CURRENT_DIR" != "/" ]]; do
18
+ if [[ -d "$CURRENT_DIR/.claude" ]]; then
19
+ CONFIG_DIR="$CURRENT_DIR/.claude/config"
20
+ break
21
+ fi
22
+ CURRENT_DIR=$(dirname "$CURRENT_DIR")
23
+ done
24
+ # Fallback to global
25
+ if [[ -z "$CONFIG_DIR" ]]; then
26
+ CONFIG_DIR="$HOME/.claude/config"
27
+ fi
28
+ fi
29
+
30
+ mkdir -p "$CONFIG_DIR"
31
+
32
+ MAIN_SPEED_FILE="$CONFIG_DIR/piper-speech-rate.txt"
33
+ TARGET_SPEED_FILE="$CONFIG_DIR/piper-target-speech-rate.txt"
34
+
35
+ # @function parse_speed_value
36
+ # @intent Convert user-friendly speed notation to Piper length-scale value
37
+ # @param $1 Speed string (e.g., "2x", "+2x", "-2x", "0.5x", "normal")
38
+ # @returns Numeric length-scale value
39
+ parse_speed_value() {
40
+ local input="$1"
41
+
42
+ # Handle special cases
43
+ case "$input" in
44
+ normal|1x|1.0)
45
+ echo "1.0"
46
+ return
47
+ ;;
48
+ fast|-2x|0.5x)
49
+ echo "0.5"
50
+ return
51
+ ;;
52
+ slow|+2x|2x|2.0)
53
+ echo "2.0"
54
+ return
55
+ ;;
56
+ slower|+3x|3x|3.0)
57
+ echo "3.0"
58
+ return
59
+ ;;
60
+ esac
61
+
62
+ # Strip leading '+' if present
63
+ input="${input#+}"
64
+
65
+ # Strip trailing 'x' if present
66
+ input="${input%x}"
67
+
68
+ # Validate it's a number
69
+ if [[ "$input" =~ ^[0-9]+\.?[0-9]*$ ]]; then
70
+ echo "$input"
71
+ else
72
+ echo "ERROR"
73
+ fi
74
+ }
75
+
76
+ # @function set_speed
77
+ # @intent Set speech speed for main or target voice
78
+ # @param $1 Target ("target" or empty for main)
79
+ # @param $2 Speed value
80
+ set_speed() {
81
+ local is_target=false
82
+ local speed_input=""
83
+
84
+ # Parse arguments
85
+ if [[ "$1" == "target" ]]; then
86
+ is_target=true
87
+ speed_input="$2"
88
+ else
89
+ speed_input="$1"
90
+ fi
91
+
92
+ if [[ -z "$speed_input" ]]; then
93
+ echo "❌ Error: Speed value required"
94
+ echo "Usage: /agent-vibes:set-speed [target] <speed>"
95
+ echo "Examples: 2x, 0.5x, normal, +3x"
96
+ return 1
97
+ fi
98
+
99
+ # Parse speed value
100
+ local speed_value
101
+ speed_value=$(parse_speed_value "$speed_input")
102
+
103
+ if [[ "$speed_value" == "ERROR" ]]; then
104
+ echo "❌ Invalid speed value: $speed_input"
105
+ echo "Valid values: normal, 0.5x, 1x, 2x, 3x, +2x, -2x"
106
+ return 1
107
+ fi
108
+
109
+ # Determine which file to write to
110
+ local config_file
111
+ local voice_type
112
+ if [[ "$is_target" == true ]]; then
113
+ config_file="$TARGET_SPEED_FILE"
114
+ voice_type="target language"
115
+ else
116
+ config_file="$MAIN_SPEED_FILE"
117
+ voice_type="main voice"
118
+ fi
119
+
120
+ # Write speed value
121
+ echo "$speed_value" > "$config_file"
122
+
123
+ # Show confirmation
124
+ echo "✓ Speech speed set for $voice_type"
125
+ echo ""
126
+ echo "Speed: ${speed_value}x"
127
+
128
+ case "$speed_value" in
129
+ 0.5)
130
+ echo "Effect: 2x faster (half duration)"
131
+ ;;
132
+ 1.0)
133
+ echo "Effect: Normal speed"
134
+ ;;
135
+ 2.0)
136
+ echo "Effect: 2x slower (great for language learning)"
137
+ ;;
138
+ 3.0)
139
+ echo "Effect: 3x slower (very slow, detailed learning)"
140
+ ;;
141
+ *)
142
+ if (( $(echo "$speed_value > 1.0" | bc -l) )); then
143
+ echo "Effect: Slower speech"
144
+ else
145
+ echo "Effect: Faster speech"
146
+ fi
147
+ ;;
148
+ esac
149
+
150
+ echo ""
151
+ echo "Note: Speed control only works with Piper TTS voices"
152
+
153
+ # Test the new speed
154
+ if command -v bc &> /dev/null; then
155
+ local test_msg
156
+ if [[ "$is_target" == true ]]; then
157
+ test_msg="Velocidad de voz ajustada para aprender mejor"
158
+ else
159
+ test_msg="Speech speed adjusted successfully"
160
+ fi
161
+
162
+ echo ""
163
+ echo "🔊 Testing new speed..."
164
+ "$SCRIPT_DIR/play-tts.sh" "$test_msg" &
165
+ fi
166
+ }
167
+
168
+ # @function get_speed
169
+ # @intent Display current speech speed settings
170
+ get_speed() {
171
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
172
+ echo " Current Speech Speed Settings"
173
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
174
+ echo ""
175
+
176
+ # Main voice speed
177
+ if [[ -f "$MAIN_SPEED_FILE" ]]; then
178
+ local main_speed=$(grep -v '^#' "$MAIN_SPEED_FILE" 2>/dev/null | grep -v '^$' | tail -1)
179
+ echo "Main voice: ${main_speed}x"
180
+ else
181
+ echo "Main voice: 1.0x (default, normal speed)"
182
+ fi
183
+
184
+ # Target voice speed
185
+ if [[ -f "$TARGET_SPEED_FILE" ]]; then
186
+ local target_speed=$(cat "$TARGET_SPEED_FILE" 2>/dev/null)
187
+ echo "Target language: ${target_speed}x"
188
+ else
189
+ echo "Target language: 2.0x (default, 2x slower for learning)"
190
+ fi
191
+
192
+ echo ""
193
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
194
+ }
195
+
196
+ # Main command handler
197
+ case "${1:-}" in
198
+ target)
199
+ set_speed "target" "$2"
200
+ ;;
201
+ get|status)
202
+ get_speed
203
+ ;;
204
+ normal|fast|slow|slower|*x|*.*|+*|-*)
205
+ set_speed "$1"
206
+ ;;
207
+ *)
208
+ echo "Speech Speed Manager"
209
+ echo ""
210
+ echo "Usage:"
211
+ echo " /agent-vibes:set-speed <speed> Set main voice speed"
212
+ echo " /agent-vibes:set-speed target <speed> Set target language speed"
213
+ echo " /agent-vibes:set-speed get Show current speeds"
214
+ echo ""
215
+ echo "Speed values:"
216
+ echo " 0.5x or -2x = 2x faster"
217
+ echo " 1x or normal = Normal speed"
218
+ echo " 2x or +2x = 2x slower (great for learning)"
219
+ echo " 3x or +3x = 3x slower"
220
+ echo ""
221
+ echo "Examples:"
222
+ echo " /agent-vibes:set-speed target 2x"
223
+ echo " /agent-vibes:set-speed 0.5x"
224
+ echo " /agent-vibes:set-speed normal"
225
+ ;;
226
+ esac
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/.mcp-minimal.json CHANGED
@@ -65,14 +65,12 @@
65
65
  "SPACESHIP_API_SECRET": "${SPACESHIP_API_SECRET}"
66
66
  }
67
67
  },
68
- "agentvibes": {
69
- "command": "python3",
70
- "args": [
71
- "/home/fire/claude/AgentVibes/mcp-server/server.py"
72
- ],
73
- "env": {
74
- "ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}"
75
- }
68
+ "agentvibes": {
69
+ "command": "npx",
70
+ "args": ["-y", "-p", "agentvibes@beta", "agentvibes-mcp-server"],
71
+ "env": {
72
+ "ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}"
73
+ }
76
74
  }
77
75
  }
78
76
  }
File without changes