agentvibes 5.9.0 → 5.10.1

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 (145) hide show
  1. package/.agentvibes/config.json +3 -12
  2. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  3. package/.claude/commands/agent-vibes-rdp.md +24 -24
  4. package/.claude/config/audio-effects.cfg +4 -5
  5. package/.claude/config/audio-effects.cfg.sample +52 -52
  6. package/.claude/config/background-music-enabled.txt +1 -1
  7. package/.claude/docs/TERMUX_SETUP.md +408 -408
  8. package/.claude/github-star-reminder.txt +1 -1
  9. package/.claude/hooks/audio-cache-utils.sh +0 -0
  10. package/.claude/hooks/audio-processor.sh +0 -0
  11. package/.claude/hooks/background-music-manager.sh +0 -0
  12. package/.claude/hooks/bmad-party-speak.sh +0 -0
  13. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  14. package/.claude/hooks/bmad-speak.sh +0 -0
  15. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  16. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  17. package/.claude/hooks/clawdbot-receiver-SECURE.sh +0 -0
  18. package/.claude/hooks/clawdbot-receiver.sh +0 -0
  19. package/.claude/hooks/clean-audio-cache.sh +0 -0
  20. package/.claude/hooks/cleanup-cache.sh +0 -0
  21. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  22. package/.claude/hooks/download-extra-voices.sh +0 -0
  23. package/.claude/hooks/effects-manager.sh +0 -0
  24. package/.claude/hooks/github-star-reminder.sh +0 -0
  25. package/.claude/hooks/language-manager.sh +0 -0
  26. package/.claude/hooks/learn-manager.sh +0 -0
  27. package/.claude/hooks/macos-voice-manager.sh +0 -0
  28. package/.claude/hooks/migrate-background-music.sh +0 -0
  29. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  30. package/.claude/hooks/optimize-background-music.sh +0 -0
  31. package/.claude/hooks/path-resolver.sh +0 -0
  32. package/.claude/hooks/personality-manager.sh +0 -0
  33. package/.claude/hooks/piper-download-voices.sh +0 -0
  34. package/.claude/hooks/piper-installer.sh +0 -0
  35. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  36. package/.claude/hooks/piper-voice-manager.sh +0 -0
  37. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +0 -0
  38. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  39. package/.claude/hooks/play-tts-macos.sh +0 -0
  40. package/.claude/hooks/play-tts-piper.sh +20 -13
  41. package/.claude/hooks/play-tts-soprano.sh +0 -0
  42. package/.claude/hooks/play-tts-ssh-remote.sh +0 -0
  43. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  44. package/.claude/hooks/play-tts-windows-receiver.sh +0 -0
  45. package/.claude/hooks/play-tts.sh +0 -0
  46. package/.claude/hooks/prepare-release.sh +0 -0
  47. package/.claude/hooks/provider-commands.sh +0 -0
  48. package/.claude/hooks/provider-manager.sh +0 -0
  49. package/.claude/hooks/replay-target-audio.sh +0 -0
  50. package/.claude/hooks/requirements.txt +6 -6
  51. package/.claude/hooks/sentiment-manager.sh +0 -0
  52. package/.claude/hooks/session-start-tts.sh +0 -0
  53. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  54. package/.claude/hooks/speed-manager.sh +0 -0
  55. package/.claude/hooks/stop-tts.sh +0 -0
  56. package/.claude/hooks/termux-installer.sh +0 -0
  57. package/.claude/hooks/translate-manager.sh +0 -0
  58. package/.claude/hooks/translator.py +237 -237
  59. package/.claude/hooks/tts-queue-worker.sh +0 -0
  60. package/.claude/hooks/tts-queue.sh +0 -0
  61. package/.claude/hooks/verbosity-manager.sh +0 -0
  62. package/.claude/hooks/voice-manager.sh +6 -0
  63. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +22 -16
  64. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  65. package/.claude/verbosity.txt +1 -1
  66. package/.clawdbot/README.md +105 -105
  67. package/.mcp.json +19 -6
  68. package/README.md +1 -1
  69. package/WINDOWS-SETUP.md +208 -208
  70. package/bin/agent-vibes +39 -39
  71. package/bin/agentvibes-voice-browser.js +0 -0
  72. package/bin/agentvibes.js +0 -0
  73. package/bin/mcp-server.js +121 -121
  74. package/bin/mcp-server.sh +0 -0
  75. package/bin/test-bmad-pr +78 -78
  76. package/mcp-server/QUICK_START.md +203 -203
  77. package/mcp-server/README.md +345 -345
  78. package/mcp-server/WINDOWS_SETUP.md +0 -0
  79. package/mcp-server/examples/claude_desktop_config.json +11 -11
  80. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  81. package/mcp-server/examples/custom_instructions.md +169 -169
  82. package/mcp-server/install-deps.js +0 -0
  83. package/mcp-server/server.py +1807 -1797
  84. package/mcp-server/test_server.py +0 -0
  85. package/package.json +2 -2
  86. package/src/cli/list-personalities.js +110 -110
  87. package/src/cli/list-voices.js +114 -114
  88. package/src/commands/bmad-voices.js +394 -394
  89. package/src/commands/install-mcp.js +730 -476
  90. package/src/console/app.js +3 -3
  91. package/src/console/brand-colors.js +13 -13
  92. package/src/console/constants/personalities.js +44 -44
  93. package/src/console/tabs/agents-tab.js +6 -6
  94. package/src/console/tabs/help-tab.js +314 -314
  95. package/src/console/tabs/music-tab.js +1 -1
  96. package/src/console/tabs/readme-tab.js +272 -272
  97. package/src/console/tabs/receiver-tab.js +13 -13
  98. package/src/console/tabs/settings-tab.js +2 -2
  99. package/src/console/tabs/setup-tab.js +10 -10
  100. package/src/console/tabs/voices-tab.js +4 -4
  101. package/src/console/widgets/destroy-list.js +25 -25
  102. package/src/console/widgets/notice.js +55 -55
  103. package/src/console/widgets/personality-picker.js +2 -2
  104. package/src/console/widgets/reverb-picker.js +1 -1
  105. package/src/i18n/de.js +202 -202
  106. package/src/i18n/es.js +202 -202
  107. package/src/i18n/fr.js +202 -202
  108. package/src/i18n/hi.js +202 -202
  109. package/src/i18n/ja.js +202 -202
  110. package/src/i18n/ko.js +202 -202
  111. package/src/i18n/pt.js +202 -202
  112. package/src/i18n/strings.js +54 -54
  113. package/src/i18n/zh-CN.js +202 -202
  114. package/src/installer/language-screen.js +31 -31
  115. package/src/installer/music-file-input.js +304 -304
  116. package/src/installer.js +32 -27
  117. package/src/services/config-service.js +264 -264
  118. package/src/services/language-service.js +47 -47
  119. package/src/services/provider-service.js +143 -143
  120. package/src/services/tts-engine-service.js +2 -2
  121. package/src/utils/audio-duration-validator.js +298 -298
  122. package/src/utils/audio-format-validator.js +277 -277
  123. package/src/utils/dependency-checker.js +469 -469
  124. package/src/utils/file-ownership-verifier.js +358 -358
  125. package/src/utils/list-formatter.js +200 -194
  126. package/src/utils/music-file-validator.js +285 -285
  127. package/src/utils/platform-resolver.js +369 -0
  128. package/src/utils/preview-list-prompt.js +136 -136
  129. package/src/utils/provider-validator.js +9 -9
  130. package/src/utils/secure-music-storage.js +412 -412
  131. package/templates/agentvibes-receiver.sh +231 -231
  132. package/templates/audio/welcome-music.mp3 +0 -0
  133. package/.agentvibes/install-manifest.json +0 -330
  134. package/.claude/config/background-music-position.txt +0 -27
  135. package/.claude/config/background-music-volume.txt +0 -1
  136. package/.claude/config/background-music.cfg +0 -1
  137. package/.claude/config/background-music.txt +0 -1
  138. package/.claude/config/language.txt +0 -1
  139. package/.claude/config/reverb-level.txt +0 -1
  140. package/.claude/config/tts-speech-rate.txt +0 -1
  141. package/.claude/config/tts-verbosity.txt +0 -1
  142. package/.claude/hooks/play-tts-agentvibes-receiver.sh +0 -1
  143. package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +0 -119
  144. package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +0 -153
  145. package/.claude/piper-voices-dir.txt +0 -1
@@ -15,7 +15,7 @@ import os from 'node:os'; // For os.homedir() to prevent HOME injection attacks
15
15
  */
16
16
  function commandExistsInPath(command) {
17
17
  // SECURITY: Use spawnSync instead of execSync+shell to prevent command injection (#126)
18
- const result = spawnSync('which', [command], {
18
+ const result = spawnSync('which', [command], { // NOSONAR
19
19
  encoding: 'utf8',
20
20
  stdio: ['pipe', 'pipe', 'pipe']
21
21
  });
@@ -176,7 +176,7 @@ export async function validateMacOSProvider() {
176
176
 
177
177
  try {
178
178
  // SECURITY: Use spawnSync instead of execSync+shell to prevent command injection (#126)
179
- const result = spawnSync('which', ['say'], {
179
+ const result = spawnSync('which', ['say'], { // NOSONAR
180
180
  encoding: 'utf8',
181
181
  stdio: ['pipe', 'pipe', 'pipe']
182
182
  });
@@ -272,7 +272,7 @@ export async function testProviderRuntime(providerName) {
272
272
  async function testSopranoRuntime() {
273
273
  try {
274
274
  // Try a quick soprano import check
275
- const result = spawnSync('python3', ['-c', 'import soprano; print("OK")'], {
275
+ const result = spawnSync('python3', ['-c', 'import soprano; print("OK")'], { // NOSONAR
276
276
  timeout: 5000,
277
277
  encoding: 'utf8'
278
278
  });
@@ -298,7 +298,7 @@ async function testSopranoRuntime() {
298
298
  */
299
299
  async function testPiperRuntime() {
300
300
  try {
301
- const result = spawnSync('piper', ['--help'], {
301
+ const result = spawnSync('piper', ['--help'], { // NOSONAR
302
302
  encoding: 'utf8',
303
303
  stdio: ['pipe', 'pipe', 'pipe'],
304
304
  timeout: 5000
@@ -323,7 +323,7 @@ async function testPiperRuntime() {
323
323
  */
324
324
  async function testMacOSRuntime() {
325
325
  try {
326
- const result = spawnSync('say', ['-f', '/dev/null'], {
326
+ const result = spawnSync('say', ['-f', '/dev/null'], { // NOSONAR
327
327
  encoding: 'utf8',
328
328
  timeout: 5000,
329
329
  stdio: ['pipe', 'pipe', 'pipe']
@@ -394,7 +394,7 @@ export async function attemptProviderInstallation(providerName) {
394
394
  // Strategy 1: Try regular pip install (using spawnSync for correct API usage)
395
395
  try {
396
396
  console.log(` Attempting: pip install ${pkgName}...`);
397
- const result = spawnSync('pip', ['install', pkgName], {
397
+ const result = spawnSync('pip', ['install', pkgName], { // NOSONAR
398
398
  stdio: 'inherit',
399
399
  timeout: 60000
400
400
  });
@@ -421,7 +421,7 @@ export async function attemptProviderInstallation(providerName) {
421
421
  // Strategy 2: Try pipx install (recommended for PEP 668 protection)
422
422
  try {
423
423
  console.log(` Attempting: pipx install ${pkgName}...`);
424
- const result = spawnSync('pipx', ['install', pkgName], {
424
+ const result = spawnSync('pipx', ['install', pkgName], { // NOSONAR
425
425
  stdio: 'inherit',
426
426
  timeout: 60000
427
427
  });
@@ -449,7 +449,7 @@ export async function attemptProviderInstallation(providerName) {
449
449
  if (isWindows) {
450
450
  try {
451
451
  console.log(` Attempting: py -m pip install ${pkgName}...`);
452
- const result = spawnSync('py', ['-m', 'pip', 'install', pkgName], {
452
+ const result = spawnSync('py', ['-m', 'pip', 'install', pkgName], { // NOSONAR
453
453
  stdio: 'inherit',
454
454
  timeout: 60000
455
455
  });
@@ -487,7 +487,7 @@ export async function attemptProviderInstallation(providerName) {
487
487
  function getPackageInfo(pkgName) {
488
488
  try {
489
489
  // Use spawnSync with array args (security: correct API usage per CLAUDE.md)
490
- const result = spawnSync('pip', ['show', pkgName], {
490
+ const result = spawnSync('pip', ['show', pkgName], { // NOSONAR
491
491
  encoding: 'utf8',
492
492
  timeout: 10000,
493
493
  stdio: ['pipe', 'pipe', 'pipe']