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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -35,11 +35,12 @@ class AgentVibesServer:
35
35
  agentvibes_root = script_dir.parent # AgentVibes/
36
36
  claude_dir = agentvibes_root / ".claude"
37
37
 
38
- # Use project-local .claude if it exists
38
+ # ALWAYS use package .claude for hooks (even in NPX cache)
39
+ # The package ALWAYS has .claude/ with all the hooks
39
40
  if claude_dir.exists() and claude_dir.is_dir():
40
41
  return claude_dir
41
42
 
42
- # Fallback to global ~/.claude
43
+ # Fallback to global ~/.claude (should never happen in properly installed package)
43
44
  return Path.home() / ".claude"
44
45
 
45
46
  async def text_to_speech(
@@ -88,20 +89,15 @@ class AgentVibesServer:
88
89
  env = os.environ.copy()
89
90
 
90
91
  # Determine where to save settings based on context:
91
- # 1. If cwd has .claude/ → Use cwd (real project)
92
- # 2. If cwd == AgentVibes dir → Use global ~/.claude/ (Warp)
93
- # 3. Otherwise Use AgentVibes/.claude/ (development)
92
+ # 1. If cwd has .claude/ → Use cwd (real Claude Code project)
93
+ # 2. Otherwise → Use global ~/.claude/ (Claude Desktop, Warp, etc.)
94
+ # Note: Hooks are ALWAYS from package .claude/ (self.claude_dir)
94
95
  cwd = Path.cwd()
95
96
  if (cwd / ".claude").is_dir() and cwd != self.agentvibes_root:
96
- # Real project with .claude directory
97
+ # Real Claude Code project with .claude directory
97
98
  env["CLAUDE_PROJECT_DIR"] = str(cwd)
98
- elif cwd == self.agentvibes_root:
99
- # Running from AgentVibes itself (Warp) - use global
100
- # Don't set CLAUDE_PROJECT_DIR, let scripts fall back to ~/.claude
101
- pass
102
- else:
103
- # Development context - use AgentVibes directory
104
- env["CLAUDE_PROJECT_DIR"] = str(self.agentvibes_root)
99
+ # else: Don't set CLAUDE_PROJECT_DIR, let scripts fall back to ~/.claude
100
+ # This handles: Claude Desktop (NPX), Warp, and any non-project context
105
101
  # Add common locations for piper to PATH
106
102
  home_dir = Path.home()
107
103
  local_bin = str(home_dir / ".local" / "bin")
@@ -285,6 +281,43 @@ class AgentVibesServer:
285
281
  return result
286
282
  return f"❌ Failed to replay audio: {result}"
287
283
 
284
+ async def set_provider(self, provider: str) -> str:
285
+ """
286
+ Switch TTS provider between ElevenLabs and Piper.
287
+
288
+ Args:
289
+ provider: Provider name ("elevenlabs" or "piper")
290
+
291
+ Returns:
292
+ Success or error message
293
+ """
294
+ provider = provider.lower()
295
+ if provider not in ["elevenlabs", "piper"]:
296
+ return f"❌ Invalid provider: {provider}. Choose 'elevenlabs' or 'piper'"
297
+
298
+ result = await self._run_script("provider-manager.sh", ["switch", provider])
299
+ if result and "✓" in result:
300
+ return result
301
+ return f"❌ Failed to switch provider: {result}"
302
+
303
+ async def set_learn_mode(self, enabled: bool) -> str:
304
+ """
305
+ Enable or disable language learning mode.
306
+
307
+ When enabled, TTS speaks in both your main language and target language.
308
+
309
+ Args:
310
+ enabled: True to enable, False to disable
311
+
312
+ Returns:
313
+ Success or error message
314
+ """
315
+ action = "enable" if enabled else "disable"
316
+ result = await self._run_script("learn-manager.sh", [action])
317
+ if result and "✓" in result:
318
+ return result
319
+ return f"❌ Failed to set learn mode: {result}"
320
+
288
321
  # Helper methods
289
322
  async def _run_script(self, script_name: str, args: list[str]) -> str:
290
323
  """Run a bash script and return output"""
@@ -299,20 +332,15 @@ class AgentVibesServer:
299
332
  env = os.environ.copy()
300
333
 
301
334
  # Determine where to save settings based on context:
302
- # 1. If cwd has .claude/ → Use cwd (real project)
303
- # 2. If cwd == AgentVibes dir → Use global ~/.claude/ (Warp)
304
- # 3. Otherwise Use AgentVibes/.claude/ (development)
335
+ # 1. If cwd has .claude/ → Use cwd (real Claude Code project)
336
+ # 2. Otherwise → Use global ~/.claude/ (Claude Desktop, Warp, etc.)
337
+ # Note: Hooks are ALWAYS from package .claude/ (self.claude_dir)
305
338
  cwd = Path.cwd()
306
339
  if (cwd / ".claude").is_dir() and cwd != self.agentvibes_root:
307
- # Real project with .claude directory
340
+ # Real Claude Code project with .claude directory
308
341
  env["CLAUDE_PROJECT_DIR"] = str(cwd)
309
- elif cwd == self.agentvibes_root:
310
- # Running from AgentVibes itself (Warp) - use global
311
- # Don't set CLAUDE_PROJECT_DIR, let scripts fall back to ~/.claude
312
- pass
313
- else:
314
- # Development context - use AgentVibes directory
315
- env["CLAUDE_PROJECT_DIR"] = str(self.agentvibes_root)
342
+ # else: Don't set CLAUDE_PROJECT_DIR, let scripts fall back to ~/.claude
343
+ # This handles: Claude Desktop (NPX), Warp, and any non-project context
316
344
  # Add common locations for piper to PATH
317
345
  home_dir = Path.home()
318
346
  local_bin = str(home_dir / ".local" / "bin")
@@ -374,7 +402,8 @@ class AgentVibesServer:
374
402
  elif provider == "piper":
375
403
  return "Piper TTS (Free, Offline)"
376
404
  return provider
377
- return "ElevenLabs (Premium AI)"
405
+ # Default to Piper (free, offline) instead of ElevenLabs
406
+ return "Piper TTS (Free, Offline)"
378
407
 
379
408
 
380
409
  # Create the MCP server
@@ -499,6 +528,35 @@ Examples:
499
528
  },
500
529
  },
501
530
  ),
531
+ Tool(
532
+ name="set_provider",
533
+ description="Switch between ElevenLabs (premium) and Piper (free, offline) TTS providers",
534
+ inputSchema={
535
+ "type": "object",
536
+ "properties": {
537
+ "provider": {
538
+ "type": "string",
539
+ "description": "Provider name: 'elevenlabs' or 'piper'",
540
+ "enum": ["elevenlabs", "piper"]
541
+ }
542
+ },
543
+ "required": ["provider"],
544
+ },
545
+ ),
546
+ Tool(
547
+ name="set_learn_mode",
548
+ description="Enable or disable language learning mode. When ON, TTS speaks in both your main language and target language for bilingual learning.",
549
+ inputSchema={
550
+ "type": "object",
551
+ "properties": {
552
+ "enabled": {
553
+ "type": "boolean",
554
+ "description": "True to enable learning mode, False to disable"
555
+ }
556
+ },
557
+ "required": ["enabled"],
558
+ },
559
+ ),
502
560
  ]
503
561
 
504
562
 
@@ -528,6 +586,10 @@ async def call_tool(name: str, arguments: dict) -> list[TextContent]:
528
586
  elif name == "replay_audio":
529
587
  n = arguments.get("n", 1)
530
588
  result = await agent_vibes.replay_audio(n)
589
+ elif name == "set_provider":
590
+ result = await agent_vibes.set_provider(arguments["provider"])
591
+ elif name == "set_learn_mode":
592
+ result = await agent_vibes.set_learn_mode(arguments["enabled"])
531
593
  else:
532
594
  result = f"Unknown tool: {name}"
533
595
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "agentvibes",
4
- "version": "2.0.17-beta.2",
4
+ "version": "2.0.17-beta.21",
5
5
  "description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
6
6
  "homepage": "https://agentvibes.org",
7
7
  "keywords": [
@@ -28,7 +28,7 @@
28
28
  "bin": {
29
29
  "agentvibes": "./bin/agent-vibes",
30
30
  "agent-vibes": "./bin/agent-vibes",
31
- "agentvibes-mcp-server": "./bin/mcp-server"
31
+ "agentvibes-mcp-server": "./bin/mcp-server.js"
32
32
  },
33
33
  "scripts": {
34
34
  "install-local": "node src/installer.js install",
@@ -0,0 +1,233 @@
1
+ # Automatic Audio Tunnel Monitoring Setup
2
+
3
+ This guide shows you how to set up automatic monitoring for your audio tunnel so it fixes itself when issues occur.
4
+
5
+ ## Quick Setup
6
+
7
+ ### 1. Create Your Configuration
8
+
9
+ ```bash
10
+ cd scripts/
11
+ cp audio-tunnel.config.example audio-tunnel.config
12
+ nano audio-tunnel.config # Edit with your settings
13
+ ```
14
+
15
+ **Configure these values:**
16
+ - `REMOTE_HOST`: Your SSH host name (from `~/.ssh/config`)
17
+ - `TUNNEL_PORT`: The port number (default: 14713)
18
+ - `PULSE_SOCKET`: Path to PulseAudio socket (usually `/mnt/wslg/PulseServer`)
19
+ - `CHECK_INTERVAL`: How often to check in minutes (default: 5)
20
+
21
+ ### 2. Install Automatic Monitoring
22
+
23
+ ```bash
24
+ ./setup-auto-monitor.sh
25
+ ```
26
+
27
+ This will:
28
+ - ✅ Validate your configuration
29
+ - ✅ Install a cron job that runs every 5 minutes (or your chosen interval)
30
+ - ✅ Log all actions to `/tmp/audio-tunnel-autofix.log`
31
+
32
+ ## What It Does
33
+
34
+ The monitoring system automatically:
35
+
36
+ 1. **Checks socat bridge** - Verifies it's running on WSL
37
+ 2. **Checks SSH tunnel** - Verifies connection to remote server
38
+ 3. **Auto-fixes issues** - Runs `fix-audio-tunnel.sh` if problems detected
39
+ 4. **Logs everything** - Records all checks and fixes
40
+
41
+ ## Viewing Logs
42
+
43
+ Watch live monitoring:
44
+ ```bash
45
+ tail -f /tmp/audio-tunnel-autofix.log
46
+ ```
47
+
48
+ Recent activity:
49
+ ```bash
50
+ tail -20 /tmp/audio-tunnel-autofix.log
51
+ ```
52
+
53
+ ## Testing
54
+
55
+ Test the health check manually:
56
+ ```bash
57
+ ./health-check-tunnel.sh
58
+ ```
59
+
60
+ This runs the same check that cron will run automatically.
61
+
62
+ ## Disabling
63
+
64
+ To stop automatic monitoring:
65
+ ```bash
66
+ crontab -e
67
+ # Remove the line containing: health-check-tunnel.sh
68
+ ```
69
+
70
+ Or just comment it out with `#` if you want to easily re-enable later.
71
+
72
+ ## Changing Check Interval
73
+
74
+ Edit your config file:
75
+ ```bash
76
+ nano audio-tunnel.config
77
+ # Change CHECK_INTERVAL="5" to whatever you want
78
+ ```
79
+
80
+ Then run setup again:
81
+ ```bash
82
+ ./setup-auto-monitor.sh
83
+ ```
84
+
85
+ ## Log Format
86
+
87
+ Logs look like this:
88
+ ```
89
+ [2025-10-16 10:00:00] OK: Audio tunnel is healthy
90
+ [2025-10-16 10:05:00] ALERT: socat bridge not running on port 14713
91
+ [2025-10-16 10:05:00] Running automatic fix...
92
+ [2025-10-16 10:05:05] SUCCESS: Audio tunnel restored automatically
93
+ [2025-10-16 10:10:00] OK: Audio tunnel is healthy
94
+ ```
95
+
96
+ ## Troubleshooting
97
+
98
+ ### "Configuration file not found"
99
+ ```bash
100
+ cp audio-tunnel.config.example audio-tunnel.config
101
+ nano audio-tunnel.config
102
+ ```
103
+
104
+ ### "REMOTE_HOST not configured"
105
+ Edit `audio-tunnel.config` and set your actual remote host name.
106
+
107
+ ### "Automatic fix failed"
108
+ Check the logs:
109
+ ```bash
110
+ tail -50 /tmp/audio-tunnel-autofix.log
111
+ ```
112
+
113
+ Try running the fix manually:
114
+ ```bash
115
+ ./fix-audio-tunnel.sh
116
+ ```
117
+
118
+ ### Cron not running
119
+ Verify cron service is running:
120
+ ```bash
121
+ # Check if cron is active
122
+ service cron status
123
+
124
+ # Or on systemd systems
125
+ systemctl status cron
126
+ ```
127
+
128
+ List your cron jobs:
129
+ ```bash
130
+ crontab -l
131
+ ```
132
+
133
+ ## Manual Cron Setup
134
+
135
+ If `setup-auto-monitor.sh` doesn't work, add manually:
136
+
137
+ ```bash
138
+ crontab -e
139
+ ```
140
+
141
+ Add this line (adjust path to your actual script location):
142
+ ```
143
+ */5 * * * * /full/path/to/scripts/health-check-tunnel.sh >/dev/null 2>&1
144
+ ```
145
+
146
+ ## Architecture
147
+
148
+ ```
149
+ ┌─────────────────────────────────────────────────────────┐
150
+ │ Cron (every 5 minutes) │
151
+ └────────────────────┬────────────────────────────────────┘
152
+
153
+
154
+ ┌─────────────────────────────────────────────────────────┐
155
+ │ health-check-tunnel.sh │
156
+ │ • Reads audio-tunnel.config │
157
+ │ • Checks socat bridge │
158
+ │ • Checks SSH tunnel │
159
+ └────────────────────┬────────────────────────────────────┘
160
+
161
+ ┌───────────┴───────────┐
162
+ │ │
163
+ Issues Found? All Good?
164
+ │ │
165
+ ▼ ▼
166
+ ┌──────────────────┐ ┌──────────────────┐
167
+ │ fix-audio- │ │ Log: OK │
168
+ │ tunnel.sh │ └──────────────────┘
169
+ │ • Kill stale │
170
+ │ processes │
171
+ │ • Restart socat │
172
+ │ • Create tunnel │
173
+ │ • Verify fix │
174
+ └────┬─────────────┘
175
+
176
+
177
+ ┌──────────────────┐
178
+ │ Log: SUCCESS or │
179
+ │ ERROR │
180
+ └──────────────────┘
181
+ ```
182
+
183
+ ## Why This Approach?
184
+
185
+ **Benefits:**
186
+ - ✅ **Automatic recovery** - Fixes issues without manual intervention
187
+ - ✅ **Logged diagnostics** - Track when issues occur and how they're fixed
188
+ - ✅ **Configurable** - Adjust check frequency as needed
189
+ - ✅ **Non-intrusive** - Only acts when there's a problem
190
+ - ✅ **Portable** - Config file makes it work on any system
191
+
192
+ **Alternative approaches considered:**
193
+ - ❌ Systemd service - More complex, requires root
194
+ - ❌ Background daemon - Uses resources continuously
195
+ - ❌ Git hooks - Only runs during git operations
196
+ - ✅ Cron job - Simple, reliable, widely available
197
+
198
+ ## Security Considerations
199
+
200
+ The health check script:
201
+ - ✅ Doesn't store passwords or keys
202
+ - ✅ Uses existing SSH config and keys
203
+ - ✅ Only reads config file (not world-writable)
204
+ - ✅ Logs to local temp directory
205
+ - ✅ Runs with user permissions (no sudo needed for checks)
206
+
207
+ The fix script requires sudo only for:
208
+ - Killing processes on remote server (via `sudo fuser -k`)
209
+ - This uses your existing SSH sudo access
210
+
211
+ ## Integration with AgentVibes
212
+
213
+ Once monitoring is active, AgentVibes TTS will have maximum uptime:
214
+ - Audio tunnel issues are detected within 5 minutes
215
+ - Automatic fix runs immediately
216
+ - Your TTS narration continues with minimal interruption
217
+
218
+ ## Next Steps
219
+
220
+ After setup:
221
+ 1. Monitor logs for the first hour to ensure it's working
222
+ 2. Adjust `CHECK_INTERVAL` if needed
223
+ 3. Test by manually breaking the tunnel and watching it recover
224
+
225
+ **To test recovery:**
226
+ ```bash
227
+ # Break the tunnel
228
+ pkill socat
229
+
230
+ # Wait up to 5 minutes
231
+ # Check logs to see automatic recovery
232
+ tail -f /tmp/audio-tunnel-autofix.log
233
+ ```