agentvibes 5.3.0 → 5.4.0

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 (219) hide show
  1. package/.agentvibes/LITE-MODE.md +236 -0
  2. package/.agentvibes/README.md +136 -0
  3. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
  4. package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
  5. package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
  6. package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
  7. package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
  8. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
  9. package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
  10. package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
  11. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
  12. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
  13. package/.agentvibes/bmad/bmad-voices.md +69 -69
  14. package/.agentvibes/config/README-personality-defaults.md +162 -0
  15. package/.agentvibes/config/mode.txt +1 -0
  16. package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
  17. package/.agentvibes/config/save-audio.txt +1 -0
  18. package/.agentvibes/config/voice-metadata.json +160 -0
  19. package/.agentvibes/config.json +24 -15
  20. package/.agentvibes/hooks/help.sh +191 -0
  21. package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
  22. package/.agentvibes/hooks/save-audio-manager.sh +162 -0
  23. package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
  24. package/.agentvibes/hooks/session-start-full.sh +142 -0
  25. package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
  26. package/.agentvibes/hooks/session-start-lite.sh +29 -0
  27. package/.agentvibes/hooks/stop-lite.sh +115 -0
  28. package/.agentvibes/hooks/switch-mode.sh +215 -0
  29. package/.agentvibes/output-styles/audio-summary.md +30 -0
  30. package/.claude/activation-instructions +54 -54
  31. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  32. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  33. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  34. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  35. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  36. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  37. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  38. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  39. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  40. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  41. package/.claude/commands/agent-vibes/add.md +21 -21
  42. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  43. package/.claude/commands/agent-vibes/agent.md +79 -79
  44. package/.claude/commands/agent-vibes/background-music.md +111 -111
  45. package/.claude/commands/agent-vibes/bmad.md +198 -198
  46. package/.claude/commands/agent-vibes/clean.md +18 -18
  47. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  48. package/.claude/commands/agent-vibes/commands.json +145 -145
  49. package/.claude/commands/agent-vibes/effects.md +97 -97
  50. package/.claude/commands/agent-vibes/get.md +9 -9
  51. package/.claude/commands/agent-vibes/hide.md +91 -91
  52. package/.claude/commands/agent-vibes/language.md +23 -23
  53. package/.claude/commands/agent-vibes/learn.md +67 -67
  54. package/.claude/commands/agent-vibes/list.md +13 -13
  55. package/.claude/commands/agent-vibes/mute.md +37 -37
  56. package/.claude/commands/agent-vibes/preview.md +17 -17
  57. package/.claude/commands/agent-vibes/provider.md +68 -68
  58. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  59. package/.claude/commands/agent-vibes/sample.md +12 -12
  60. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  61. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  62. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  63. package/.claude/commands/agent-vibes/show.md +84 -84
  64. package/.claude/commands/agent-vibes/switch.md +87 -87
  65. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  66. package/.claude/commands/agent-vibes/target.md +30 -30
  67. package/.claude/commands/agent-vibes/translate.md +68 -68
  68. package/.claude/commands/agent-vibes/unmute.md +45 -45
  69. package/.claude/commands/agent-vibes/whoami.md +7 -7
  70. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  71. package/.claude/commands/agent-vibes-rdp.md +24 -24
  72. package/.claude/config/audio-effects.cfg +4 -11
  73. package/.claude/config/audio-effects.cfg.sample +52 -52
  74. package/.claude/config/background-music-position.txt +27 -0
  75. package/.claude/config/background-music-volume.txt +1 -1
  76. package/.claude/config/background-music.cfg +1 -0
  77. package/.claude/config/background-music.txt +1 -0
  78. package/.claude/config/tts-speech-rate.txt +1 -4
  79. package/.claude/config/tts-verbosity.txt +1 -0
  80. package/.claude/docs/TERMUX_SETUP.md +408 -408
  81. package/.claude/github-star-reminder.txt +1 -1
  82. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  83. package/.claude/hooks/audio-cache-utils.sh +0 -0
  84. package/.claude/hooks/audio-processor.sh +60 -14
  85. package/.claude/hooks/background-music-manager.sh +0 -0
  86. package/.claude/hooks/bmad-party-manager.sh +225 -0
  87. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  88. package/.claude/hooks/bmad-speak.sh +6 -13
  89. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  90. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  91. package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
  92. package/.claude/hooks/clawdbot-receiver.sh +4 -28
  93. package/.claude/hooks/clean-audio-cache.sh +0 -0
  94. package/.claude/hooks/cleanup-cache.sh +0 -0
  95. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  96. package/.claude/hooks/download-extra-voices.sh +0 -0
  97. package/.claude/hooks/effects-manager.sh +0 -0
  98. package/.claude/hooks/github-star-reminder.sh +0 -0
  99. package/.claude/hooks/language-manager.sh +0 -0
  100. package/.claude/hooks/learn-manager.sh +0 -0
  101. package/.claude/hooks/macos-voice-manager.sh +0 -0
  102. package/.claude/hooks/migrate-background-music.sh +0 -0
  103. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  104. package/.claude/hooks/optimize-background-music.sh +0 -0
  105. package/.claude/hooks/personality-manager.sh +0 -0
  106. package/.claude/hooks/piper-download-voices.sh +0 -0
  107. package/.claude/hooks/piper-installer.sh +1 -1
  108. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  109. package/.claude/hooks/piper-voice-manager.sh +0 -0
  110. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  111. package/.claude/hooks/play-tts-macos.sh +6 -12
  112. package/.claude/hooks/play-tts-piper.sh +50 -79
  113. package/.claude/hooks/play-tts-soprano.sh +9 -43
  114. package/.claude/hooks/play-tts-ssh-remote.sh +43 -215
  115. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  116. package/.claude/hooks/play-tts.sh +31 -31
  117. package/.claude/hooks/post-response.sh +41 -0
  118. package/.claude/hooks/prepare-release.sh +0 -0
  119. package/.claude/hooks/provider-commands.sh +0 -0
  120. package/.claude/hooks/provider-manager.sh +0 -0
  121. package/.claude/hooks/replay-target-audio.sh +0 -0
  122. package/.claude/hooks/requirements.txt +6 -6
  123. package/.claude/hooks/sentiment-manager.sh +0 -0
  124. package/.claude/hooks/session-start-tts.sh +56 -39
  125. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  126. package/.claude/hooks/speed-manager.sh +0 -0
  127. package/.claude/hooks/stop.sh +63 -0
  128. package/.claude/hooks/termux-installer.sh +0 -0
  129. package/.claude/hooks/translate-manager.sh +0 -0
  130. package/.claude/hooks/translator.py +237 -237
  131. package/.claude/hooks/tts-queue-worker.sh +0 -0
  132. package/.claude/hooks/tts-queue.sh +0 -0
  133. package/.claude/hooks/verbosity-manager.sh +0 -0
  134. package/.claude/hooks/voice-manager.sh +26 -4
  135. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  136. package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -278
  137. package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
  138. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
  139. package/.claude/hooks-windows/effects-manager.ps1 +294 -294
  140. package/.claude/hooks-windows/language-manager.ps1 +193 -193
  141. package/.claude/hooks-windows/learn-manager.ps1 +241 -241
  142. package/.claude/hooks-windows/personality-manager.ps1 +266 -266
  143. package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
  144. package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
  145. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +164 -0
  146. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
  147. package/.claude/hooks-windows/play-tts.ps1 +104 -513
  148. package/.claude/hooks-windows/provider-manager.ps1 +158 -192
  149. package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
  150. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  151. package/.claude/hooks-windows/speed-manager.ps1 +166 -166
  152. package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
  153. package/.claude/output-styles/agent-vibes.md +202 -202
  154. package/.claude/personalities/angry.md +14 -14
  155. package/.claude/personalities/annoying.md +14 -14
  156. package/.claude/personalities/crass.md +14 -14
  157. package/.claude/personalities/dramatic.md +14 -14
  158. package/.claude/personalities/dry-humor.md +50 -50
  159. package/.claude/personalities/flirty.md +20 -20
  160. package/.claude/personalities/funny.md +14 -14
  161. package/.claude/personalities/grandpa.md +32 -32
  162. package/.claude/personalities/millennial.md +14 -14
  163. package/.claude/personalities/moody.md +14 -14
  164. package/.claude/personalities/normal.md +16 -16
  165. package/.claude/personalities/pirate.md +14 -14
  166. package/.claude/personalities/poetic.md +14 -14
  167. package/.claude/personalities/professional.md +14 -14
  168. package/.claude/personalities/rapper.md +55 -55
  169. package/.claude/personalities/robot.md +14 -14
  170. package/.claude/personalities/sarcastic.md +38 -38
  171. package/.claude/personalities/sassy.md +14 -14
  172. package/.claude/personalities/surfer-dude.md +14 -14
  173. package/.claude/personalities/zen.md +14 -14
  174. package/.claude/piper-voices-dir.txt +1 -0
  175. package/.claude/settings.json +25 -15
  176. package/.claude/verbosity.txt +1 -1
  177. package/.clawdbot/README.md +105 -105
  178. package/.clawdbot/skill/SKILL.md +149 -145
  179. package/.mcp.json +30 -11
  180. package/CLAUDE.md +170 -215
  181. package/README.md +206 -525
  182. package/RELEASE_NOTES.md +1132 -1976
  183. package/WINDOWS-SETUP.md +208 -208
  184. package/bin/agent-vibes +0 -0
  185. package/bin/agentvibes-voice-browser.js +64 -1289
  186. package/bin/agentvibes.js +0 -0
  187. package/bin/ensure-soprano-running.sh +43 -0
  188. package/bin/mcp-server.js +121 -121
  189. package/bin/mcp-server.sh +0 -0
  190. package/bin/test-bmad-pr +78 -78
  191. package/mcp-server/QUICK_START.md +203 -203
  192. package/mcp-server/README.md +345 -345
  193. package/mcp-server/WINDOWS_SETUP.md +260 -260
  194. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  195. package/mcp-server/examples/claude_desktop_config.json +11 -11
  196. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  197. package/mcp-server/examples/custom_instructions.md +169 -169
  198. package/mcp-server/install-deps.js +130 -130
  199. package/mcp-server/pyproject.toml +52 -52
  200. package/mcp-server/requirements.txt +2 -2
  201. package/mcp-server/server.py +1451 -1578
  202. package/mcp-server/test_server.py +395 -395
  203. package/package.json +1 -3
  204. package/setup-windows.ps1 +815 -815
  205. package/src/installer.js +42 -5
  206. package/templates/agentvibes-receiver.sh +158 -483
  207. package/templates/audio/welcome-music.mp3 +0 -0
  208. package/.agentvibes/bmad-voice-map.json +0 -104
  209. package/.agentvibes/copilot-sessions.log +0 -4
  210. package/.claude/config/audio-effects-bmad.cfg +0 -50
  211. package/.claude/config/background-music-enabled.txt +0 -1
  212. package/.claude/config/intro-text.txt +0 -1
  213. package/.claude/config/personality.txt +0 -1
  214. package/.claude/config/piper-speech-rate.txt +0 -4
  215. package/.claude/config/piper-target-speech-rate.txt +0 -1
  216. package/.claude/config/reverb-level.txt +0 -1
  217. package/.claude/config/tts-target-speech-rate.txt +0 -1
  218. package/voice-assignments.json +0 -8245
  219. /package/{.claude → .agentvibes}/config/agentvibes.json +0 -0
package/bin/agentvibes.js CHANGED
File without changes
@@ -0,0 +1,43 @@
1
+ #!/bin/bash
2
+ # Helper script to start Soprano TTS server if available
3
+ # Fails gracefully if Soprano is not installed
4
+
5
+ set -euo pipefail
6
+
7
+ # Check if Soprano is installed via pipx
8
+ if ! command -v soprano &> /dev/null; then
9
+ # Soprano not in PATH, exit silently
10
+ exit 0
11
+ fi
12
+
13
+ # Check if server is already running
14
+ if curl -s -m 1 http://127.0.0.1:7860/openapi.json &> /dev/null; then
15
+ # Already running
16
+ exit 0
17
+ fi
18
+
19
+ # Try to start Soprano server
20
+ VENV_PATH="${HOME}/.local/share/pipx/venvs/soprano-tts"
21
+
22
+ if [ ! -d "$VENV_PATH" ]; then
23
+ # Soprano not installed via pipx, exit silently
24
+ exit 0
25
+ fi
26
+
27
+ # Start server in background
28
+ cd /tmp
29
+ nohup "${VENV_PATH}/bin/python" -m uvicorn soprano.server:app \
30
+ --host 127.0.0.1 \
31
+ --port 7860 \
32
+ > "${HOME}/.soprano-tts.log" 2>&1 &
33
+
34
+ # Wait a moment to see if it starts
35
+ sleep 2
36
+
37
+ # Check if it started successfully
38
+ if curl -s -m 1 http://127.0.0.1:7860/openapi.json &> /dev/null; then
39
+ exit 0
40
+ else
41
+ # Failed to start, but exit gracefully
42
+ exit 0
43
+ fi
package/bin/mcp-server.js CHANGED
@@ -1,122 +1,122 @@
1
1
  #!/usr/bin/env node
2
-
3
- /**
4
- * AgentVibes MCP Server Launcher (Cross-Platform)
5
- *
6
- * This Node.js script replaces the bash wrapper to work on Windows, macOS, and Linux.
7
- * It auto-installs Python dependencies and launches the Python MCP server.
8
- */
9
-
10
- import { spawn } from 'child_process';
11
- import { fileURLToPath } from 'url';
12
- import { dirname, join } from 'path';
13
- import { existsSync } from 'fs';
14
- import { platform } from 'os';
15
-
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = dirname(__filename);
18
-
19
- // Package root is one level up from bin/
20
- const PACKAGE_ROOT = join(__dirname, '..');
21
- const MCP_SERVER = join(PACKAGE_ROOT, 'mcp-server', 'server.py');
22
- const INSTALL_DEPS = join(PACKAGE_ROOT, 'mcp-server', 'install-deps.js');
23
-
24
- // Check if Python MCP server exists
25
- if (!existsSync(MCP_SERVER)) {
26
- console.error(`❌ Error: MCP server not found at ${MCP_SERVER}`);
27
- process.exit(1);
28
- }
29
-
30
- // Function to find available Python command
31
- async function findPythonCommand() {
32
- const commands = platform() === 'win32' ? ['python', 'py', 'python3'] : ['python3', 'python'];
33
-
34
- for (const cmd of commands) {
35
- try {
36
- const checkCmd = platform() === 'win32' ? 'where' : 'which';
37
- const proc = spawn(checkCmd, [cmd], { stdio: 'ignore' });
38
- const exists = await new Promise((resolve) => {
39
- proc.on('close', (code) => resolve(code === 0));
40
- });
41
-
42
- if (exists) {
43
- return cmd;
44
- }
45
- } catch (err) {
46
- // Try next command
47
- }
48
- }
49
-
50
- return null;
51
- }
52
-
53
- // Function to check if Python module is installed
54
- function checkPythonModule(pythonCmd, moduleName) {
55
- return new Promise((resolve) => {
56
- const proc = spawn(pythonCmd, ['-c', `import ${moduleName}`], { stdio: 'ignore' });
57
- proc.on('close', (code) => resolve(code === 0));
58
- });
59
- }
60
-
61
- // Main setup and launch function
62
- async function main() {
63
- // Silent mode - no output to avoid breaking MCP JSON protocol
64
-
65
- // Find Python command
66
- const pythonCmd = await findPythonCommand();
67
- if (!pythonCmd) {
68
- console.error('ERROR: Python 3 not found. Install from https://python.org and restart Claude Desktop.');
69
- process.exit(1);
70
- }
71
-
72
- // Check if MCP Python package is installed
73
- const hasMCP = await checkPythonModule(pythonCmd, 'mcp');
74
- if (!hasMCP) {
75
- // Try to install MCP package directly
76
- try {
77
- const installCmd = `${pythonCmd} -m pip install --user mcp`;
78
- const installProc = spawn(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], {
79
- stdio: 'pipe',
80
- shell: false
81
- });
82
-
83
- await new Promise((resolve, reject) => {
84
- installProc.on('close', (code) => {
85
- if (code === 0) {
86
- resolve();
87
- } else {
88
- console.error('ERROR: Failed to install Python mcp package. Run: pip install mcp');
89
- reject(new Error('Dependency installation failed'));
90
- }
91
- });
92
- });
93
- } catch (err) {
94
- console.error('ERROR: Failed to install Python mcp package. Run: pip install mcp');
95
- process.exit(1);
96
- }
97
- }
98
-
99
- // Launch the Python MCP server
100
- const serverProc = spawn(pythonCmd, [MCP_SERVER], {
101
- stdio: 'inherit',
102
- env: process.env
103
- });
104
-
105
- serverProc.on('error', (err) => {
106
- console.error('❌ Failed to start MCP server:', err.message);
107
- process.exit(1);
108
- });
109
-
110
- serverProc.on('close', (code) => {
111
- process.exit(code || 0);
112
- });
113
-
114
- // Handle termination signals
115
- process.on('SIGINT', () => serverProc.kill('SIGINT'));
116
- process.on('SIGTERM', () => serverProc.kill('SIGTERM'));
117
- }
118
-
119
- main().catch((err) => {
120
- console.error('❌ Error:', err.message);
121
- process.exit(1);
122
- });
2
+
3
+ /**
4
+ * AgentVibes MCP Server Launcher (Cross-Platform)
5
+ *
6
+ * This Node.js script replaces the bash wrapper to work on Windows, macOS, and Linux.
7
+ * It auto-installs Python dependencies and launches the Python MCP server.
8
+ */
9
+
10
+ import { spawn } from 'child_process';
11
+ import { fileURLToPath } from 'url';
12
+ import { dirname, join } from 'path';
13
+ import { existsSync } from 'fs';
14
+ import { platform } from 'os';
15
+
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+
19
+ // Package root is one level up from bin/
20
+ const PACKAGE_ROOT = join(__dirname, '..');
21
+ const MCP_SERVER = join(PACKAGE_ROOT, 'mcp-server', 'server.py');
22
+ const INSTALL_DEPS = join(PACKAGE_ROOT, 'mcp-server', 'install-deps.js');
23
+
24
+ // Check if Python MCP server exists
25
+ if (!existsSync(MCP_SERVER)) {
26
+ console.error(`❌ Error: MCP server not found at ${MCP_SERVER}`);
27
+ process.exit(1);
28
+ }
29
+
30
+ // Function to find available Python command
31
+ async function findPythonCommand() {
32
+ const commands = platform() === 'win32' ? ['python', 'py', 'python3'] : ['python3', 'python'];
33
+
34
+ for (const cmd of commands) {
35
+ try {
36
+ const checkCmd = platform() === 'win32' ? 'where' : 'which';
37
+ const proc = spawn(checkCmd, [cmd], { stdio: 'ignore' });
38
+ const exists = await new Promise((resolve) => {
39
+ proc.on('close', (code) => resolve(code === 0));
40
+ });
41
+
42
+ if (exists) {
43
+ return cmd;
44
+ }
45
+ } catch (err) {
46
+ // Try next command
47
+ }
48
+ }
49
+
50
+ return null;
51
+ }
52
+
53
+ // Function to check if Python module is installed
54
+ function checkPythonModule(pythonCmd, moduleName) {
55
+ return new Promise((resolve) => {
56
+ const proc = spawn(pythonCmd, ['-c', `import ${moduleName}`], { stdio: 'ignore' });
57
+ proc.on('close', (code) => resolve(code === 0));
58
+ });
59
+ }
60
+
61
+ // Main setup and launch function
62
+ async function main() {
63
+ // Silent mode - no output to avoid breaking MCP JSON protocol
64
+
65
+ // Find Python command
66
+ const pythonCmd = await findPythonCommand();
67
+ if (!pythonCmd) {
68
+ console.error('ERROR: Python 3 not found. Install from https://python.org and restart Claude Desktop.');
69
+ process.exit(1);
70
+ }
71
+
72
+ // Check if MCP Python package is installed
73
+ const hasMCP = await checkPythonModule(pythonCmd, 'mcp');
74
+ if (!hasMCP) {
75
+ // Try to install MCP package directly
76
+ try {
77
+ const installCmd = `${pythonCmd} -m pip install --user mcp`;
78
+ const installProc = spawn(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], {
79
+ stdio: 'pipe',
80
+ shell: false
81
+ });
82
+
83
+ await new Promise((resolve, reject) => {
84
+ installProc.on('close', (code) => {
85
+ if (code === 0) {
86
+ resolve();
87
+ } else {
88
+ console.error('ERROR: Failed to install Python mcp package. Run: pip install mcp');
89
+ reject(new Error('Dependency installation failed'));
90
+ }
91
+ });
92
+ });
93
+ } catch (err) {
94
+ console.error('ERROR: Failed to install Python mcp package. Run: pip install mcp');
95
+ process.exit(1);
96
+ }
97
+ }
98
+
99
+ // Launch the Python MCP server
100
+ const serverProc = spawn(pythonCmd, [MCP_SERVER], {
101
+ stdio: 'inherit',
102
+ env: process.env
103
+ });
104
+
105
+ serverProc.on('error', (err) => {
106
+ console.error('❌ Failed to start MCP server:', err.message);
107
+ process.exit(1);
108
+ });
109
+
110
+ serverProc.on('close', (code) => {
111
+ process.exit(code || 0);
112
+ });
113
+
114
+ // Handle termination signals
115
+ process.on('SIGINT', () => serverProc.kill('SIGINT'));
116
+ process.on('SIGTERM', () => serverProc.kill('SIGTERM'));
117
+ }
118
+
119
+ main().catch((err) => {
120
+ console.error('❌ Error:', err.message);
121
+ process.exit(1);
122
+ });
package/bin/mcp-server.sh CHANGED
File without changes
package/bin/test-bmad-pr CHANGED
@@ -1,79 +1,79 @@
1
1
  #!/usr/bin/env bash
2
- #
3
- # AgentVibes BMAD PR Testing Command
4
- # Quick command to test BMAD PRs with AgentVibes integration
5
- #
6
- # Usage:
7
- # npx agentvibes test-bmad-pr [PR_NUMBER]
8
- # npx agentvibes test-bmad-pr 934
9
- #
10
-
11
- set -e
12
-
13
- # Colors
14
- GREEN='\033[0;32m'
15
- BLUE='\033[0;34m'
16
- YELLOW='\033[1;33m'
17
- CYAN='\033[0;36m'
18
- NC='\033[0m' # No Color
19
-
20
- # Default PR number
21
- PR_NUMBER="${1:-934}"
22
-
23
- clear
24
-
25
- echo ""
26
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
27
- echo -e "${CYAN}🎙️ AgentVibes BMAD PR Testing Tool${NC}"
28
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
29
- echo ""
30
- echo -e "${BLUE}Testing PR #${PR_NUMBER}${NC}"
31
- echo ""
32
- echo -e "${YELLOW}This will download and run the automated test script for${NC}"
33
- echo -e "${YELLOW}BMAD's AgentVibes integration with multi-agent party mode.${NC}"
34
- echo ""
35
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
36
- echo ""
37
-
38
- # Create temp directory for the script
39
- TEMP_DIR=$(mktemp -d)
40
- SCRIPT_PATH="$TEMP_DIR/test-bmad-pr.sh"
41
-
42
- echo -e "${BLUE}📥 Downloading test script...${NC}"
43
-
44
- # Download the test script from the PR branch
45
- SCRIPT_URL="https://raw.githubusercontent.com/paulpreibisch/BMAD-METHOD/feature/agentvibes-tts-integration/test-bmad-pr.sh"
46
-
47
- if curl -fsSL "$SCRIPT_URL" -o "$SCRIPT_PATH"; then
48
- chmod +x "$SCRIPT_PATH"
49
- echo -e "${GREEN}✓ Test script downloaded${NC}"
50
- echo ""
51
-
52
- # Run the test script
53
- exec "$SCRIPT_PATH"
54
- else
55
- echo -e "${YELLOW}⚠ Could not download test script from PR branch${NC}"
56
- echo ""
57
- echo "Trying alternative: Official BMAD repository..."
58
- echo ""
59
-
60
- # Fallback to official repo
61
- SCRIPT_URL="https://raw.githubusercontent.com/bmad-code-org/BMAD-METHOD/refs/pull/${PR_NUMBER}/merge/test-bmad-pr.sh"
62
-
63
- if curl -fsSL "$SCRIPT_URL" -o "$SCRIPT_PATH"; then
64
- chmod +x "$SCRIPT_PATH"
65
- echo -e "${GREEN}✓ Test script downloaded${NC}"
66
- echo ""
67
- exec "$SCRIPT_PATH"
68
- else
69
- echo -e "${YELLOW}⚠ Could not download test script${NC}"
70
- echo ""
71
- echo "Please try manual testing:"
72
- echo -e "${GREEN}git clone https://github.com/bmad-code-org/BMAD-METHOD.git${NC}"
73
- echo -e "${GREEN}cd BMAD-METHOD${NC}"
74
- echo -e "${GREEN}git fetch origin pull/${PR_NUMBER}/head:test-pr-${PR_NUMBER}${NC}"
75
- echo -e "${GREEN}git checkout test-pr-${PR_NUMBER}${NC}"
76
- echo ""
77
- exit 1
78
- fi
79
- fi
2
+ #
3
+ # AgentVibes BMAD PR Testing Command
4
+ # Quick command to test BMAD PRs with AgentVibes integration
5
+ #
6
+ # Usage:
7
+ # npx agentvibes test-bmad-pr [PR_NUMBER]
8
+ # npx agentvibes test-bmad-pr 934
9
+ #
10
+
11
+ set -e
12
+
13
+ # Colors
14
+ GREEN='\033[0;32m'
15
+ BLUE='\033[0;34m'
16
+ YELLOW='\033[1;33m'
17
+ CYAN='\033[0;36m'
18
+ NC='\033[0m' # No Color
19
+
20
+ # Default PR number
21
+ PR_NUMBER="${1:-934}"
22
+
23
+ clear
24
+
25
+ echo ""
26
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
27
+ echo -e "${CYAN}🎙️ AgentVibes BMAD PR Testing Tool${NC}"
28
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
29
+ echo ""
30
+ echo -e "${BLUE}Testing PR #${PR_NUMBER}${NC}"
31
+ echo ""
32
+ echo -e "${YELLOW}This will download and run the automated test script for${NC}"
33
+ echo -e "${YELLOW}BMAD's AgentVibes integration with multi-agent party mode.${NC}"
34
+ echo ""
35
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
36
+ echo ""
37
+
38
+ # Create temp directory for the script
39
+ TEMP_DIR=$(mktemp -d)
40
+ SCRIPT_PATH="$TEMP_DIR/test-bmad-pr.sh"
41
+
42
+ echo -e "${BLUE}📥 Downloading test script...${NC}"
43
+
44
+ # Download the test script from the PR branch
45
+ SCRIPT_URL="https://raw.githubusercontent.com/paulpreibisch/BMAD-METHOD/feature/agentvibes-tts-integration/test-bmad-pr.sh"
46
+
47
+ if curl -fsSL "$SCRIPT_URL" -o "$SCRIPT_PATH"; then
48
+ chmod +x "$SCRIPT_PATH"
49
+ echo -e "${GREEN}✓ Test script downloaded${NC}"
50
+ echo ""
51
+
52
+ # Run the test script
53
+ exec "$SCRIPT_PATH"
54
+ else
55
+ echo -e "${YELLOW}⚠ Could not download test script from PR branch${NC}"
56
+ echo ""
57
+ echo "Trying alternative: Official BMAD repository..."
58
+ echo ""
59
+
60
+ # Fallback to official repo
61
+ SCRIPT_URL="https://raw.githubusercontent.com/bmad-code-org/BMAD-METHOD/refs/pull/${PR_NUMBER}/merge/test-bmad-pr.sh"
62
+
63
+ if curl -fsSL "$SCRIPT_URL" -o "$SCRIPT_PATH"; then
64
+ chmod +x "$SCRIPT_PATH"
65
+ echo -e "${GREEN}✓ Test script downloaded${NC}"
66
+ echo ""
67
+ exec "$SCRIPT_PATH"
68
+ else
69
+ echo -e "${YELLOW}⚠ Could not download test script${NC}"
70
+ echo ""
71
+ echo "Please try manual testing:"
72
+ echo -e "${GREEN}git clone https://github.com/bmad-code-org/BMAD-METHOD.git${NC}"
73
+ echo -e "${GREEN}cd BMAD-METHOD${NC}"
74
+ echo -e "${GREEN}git fetch origin pull/${PR_NUMBER}/head:test-pr-${PR_NUMBER}${NC}"
75
+ echo -e "${GREEN}git checkout test-pr-${PR_NUMBER}${NC}"
76
+ echo ""
77
+ exit 1
78
+ fi
79
+ fi