agentvibes 4.2.0 → 4.4.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.
- package/.agentvibes/bmad/bmad-voices.md +69 -69
- package/.agentvibes/config.json +12 -0
- package/.claude/activation-instructions +54 -54
- package/.claude/audio/tracks/README.md +52 -52
- package/.claude/commands/agent-vibes/add.md +21 -21
- package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
- package/.claude/commands/agent-vibes/agent.md +79 -79
- package/.claude/commands/agent-vibes/background-music.md +111 -111
- package/.claude/commands/agent-vibes/bmad.md +198 -198
- package/.claude/commands/agent-vibes/clean.md +18 -18
- package/.claude/commands/agent-vibes/cleanup.md +18 -18
- package/.claude/commands/agent-vibes/commands.json +145 -145
- package/.claude/commands/agent-vibes/effects.md +97 -97
- package/.claude/commands/agent-vibes/get.md +9 -9
- package/.claude/commands/agent-vibes/hide.md +91 -91
- package/.claude/commands/agent-vibes/language.md +23 -23
- package/.claude/commands/agent-vibes/learn.md +67 -67
- package/.claude/commands/agent-vibes/list.md +13 -13
- package/.claude/commands/agent-vibes/mute.md +37 -37
- package/.claude/commands/agent-vibes/preview.md +17 -17
- package/.claude/commands/agent-vibes/provider.md +68 -68
- package/.claude/commands/agent-vibes/replay-target.md +14 -14
- package/.claude/commands/agent-vibes/sample.md +12 -12
- package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
- package/.claude/commands/agent-vibes/set-pretext.md +65 -65
- package/.claude/commands/agent-vibes/set-speed.md +41 -41
- package/.claude/commands/agent-vibes/show.md +84 -84
- package/.claude/commands/agent-vibes/switch.md +87 -87
- package/.claude/commands/agent-vibes/target-voice.md +26 -26
- package/.claude/commands/agent-vibes/target.md +30 -30
- package/.claude/commands/agent-vibes/translate.md +68 -68
- package/.claude/commands/agent-vibes/unmute.md +45 -45
- package/.claude/commands/agent-vibes/verbosity.md +89 -89
- package/.claude/commands/agent-vibes/whoami.md +7 -7
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/agentvibes.json +1 -0
- package/.claude/config/audio-effects.cfg +2 -2
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/config/background-music-volume.txt +1 -0
- package/.claude/config/intro-text.txt +1 -0
- package/.claude/config/piper-speech-rate.txt +4 -0
- package/.claude/config/piper-target-speech-rate.txt +1 -0
- package/.claude/config/reverb-level.txt +1 -0
- package/.claude/config/tts-speech-rate.txt +4 -0
- package/.claude/config/tts-target-speech-rate.txt +1 -0
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/README-TTS-QUEUE.md +135 -135
- package/.claude/hooks/audio-cache-utils.sh +246 -246
- package/.claude/hooks/audio-processor.sh +433 -433
- package/.claude/hooks/background-music-manager.sh +404 -404
- package/.claude/hooks/bmad-speak-enhanced.sh +165 -165
- package/.claude/hooks/bmad-speak.sh +269 -269
- package/.claude/hooks/bmad-tts-injector.sh +568 -568
- package/.claude/hooks/bmad-voice-manager.sh +928 -928
- package/.claude/hooks/clawdbot-receiver-SECURE.sh +129 -129
- package/.claude/hooks/clawdbot-receiver.sh +107 -107
- package/.claude/hooks/clean-audio-cache.sh +22 -22
- package/.claude/hooks/cleanup-cache.sh +106 -106
- package/.claude/hooks/configure-rdp-mode.sh +137 -137
- package/.claude/hooks/download-extra-voices.sh +244 -244
- package/.claude/hooks/effects-manager.sh +268 -268
- package/.claude/hooks/github-star-reminder.sh +154 -154
- package/.claude/hooks/language-manager.sh +362 -362
- package/.claude/hooks/learn-manager.sh +492 -492
- package/.claude/hooks/macos-voice-manager.sh +205 -205
- package/.claude/hooks/migrate-background-music.sh +125 -125
- package/.claude/hooks/migrate-to-agentvibes.sh +161 -161
- package/.claude/hooks/optimize-background-music.sh +87 -87
- package/.claude/hooks/path-resolver.sh +60 -60
- package/.claude/hooks/personality-manager.sh +448 -448
- package/.claude/hooks/piper-download-voices.sh +225 -225
- package/.claude/hooks/piper-installer.sh +292 -292
- package/.claude/hooks/piper-multispeaker-registry.sh +171 -171
- package/.claude/hooks/piper-voice-manager.sh +24 -3
- package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +90 -90
- package/.claude/hooks/play-tts-enhanced.sh +105 -105
- package/.claude/hooks/play-tts-macos.sh +368 -368
- package/.claude/hooks/play-tts-piper.sh +679 -679
- package/.claude/hooks/play-tts-soprano.sh +356 -356
- package/.claude/hooks/play-tts-ssh-remote.sh +167 -167
- package/.claude/hooks/play-tts-termux-ssh.sh +169 -169
- package/.claude/hooks/play-tts.sh +301 -301
- package/.claude/hooks/prepare-release.sh +54 -54
- package/.claude/hooks/provider-commands.sh +617 -617
- package/.claude/hooks/provider-manager.sh +399 -399
- package/.claude/hooks/replay-target-audio.sh +95 -95
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/sentiment-manager.sh +201 -201
- package/.claude/hooks/session-start-tts.sh +81 -81
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/speed-manager.sh +291 -291
- package/.claude/hooks/stop-tts.sh +84 -84
- package/.claude/hooks/termux-installer.sh +261 -261
- package/.claude/hooks/translate-manager.sh +341 -341
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks/tts-queue-worker.sh +145 -145
- package/.claude/hooks/tts-queue.sh +165 -165
- package/.claude/hooks/verbosity-manager.sh +178 -178
- package/.claude/hooks/voice-manager.sh +548 -548
- package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
- package/.claude/hooks-windows/background-music-manager.ps1 +348 -0
- package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -0
- package/.claude/hooks-windows/download-extra-voices.ps1 +185 -0
- package/.claude/hooks-windows/effects-manager.ps1 +294 -0
- package/.claude/hooks-windows/language-manager.ps1 +193 -0
- package/.claude/hooks-windows/learn-manager.ps1 +241 -0
- package/.claude/hooks-windows/personality-manager.ps1 +266 -0
- package/.claude/hooks-windows/play-tts-piper.ps1 +209 -0
- package/.claude/hooks-windows/play-tts-sapi.ps1 +108 -0
- package/.claude/hooks-windows/play-tts-soprano.ps1 +159 -158
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +50 -5
- package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
- package/.claude/hooks-windows/play-tts.ps1 +344 -266
- package/.claude/hooks-windows/provider-manager.ps1 +29 -10
- package/.claude/hooks-windows/session-start-tts.ps1 +124 -124
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/hooks-windows/speed-manager.ps1 +166 -0
- package/.claude/hooks-windows/verbosity-manager.ps1 +119 -0
- package/.claude/hooks-windows/voice-manager-windows.ps1 +92 -8
- package/.claude/output-styles/agent-vibes.md +202 -202
- package/.claude/personalities/angry.md +14 -14
- package/.claude/personalities/annoying.md +14 -14
- package/.claude/personalities/crass.md +14 -14
- package/.claude/personalities/dramatic.md +14 -14
- package/.claude/personalities/dry-humor.md +50 -50
- package/.claude/personalities/flirty.md +20 -20
- package/.claude/personalities/funny.md +14 -14
- package/.claude/personalities/grandpa.md +32 -32
- package/.claude/personalities/millennial.md +14 -14
- package/.claude/personalities/moody.md +14 -14
- package/.claude/personalities/normal.md +16 -16
- package/.claude/personalities/pirate.md +14 -14
- package/.claude/personalities/poetic.md +14 -14
- package/.claude/personalities/professional.md +14 -14
- package/.claude/personalities/rapper.md +55 -55
- package/.claude/personalities/robot.md +14 -14
- package/.claude/personalities/sarcastic.md +38 -38
- package/.claude/personalities/sassy.md +14 -14
- package/.claude/personalities/surfer-dude.md +14 -14
- package/.claude/personalities/zen.md +14 -14
- package/.claude/settings.json +15 -15
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/.clawdbot/skill/SKILL.md +241 -241
- package/.mcp.json +12 -0
- package/CLAUDE.md +170 -170
- package/README.md +2029 -2007
- package/RELEASE_NOTES.md +1310 -1203
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +39 -39
- package/bin/agentvibes-voice-browser.js +1840 -1840
- package/bin/agentvibes.js +48 -2
- package/bin/mcp-server.js +121 -121
- package/bin/mcp-server.sh +206 -206
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/WINDOWS_SETUP.md +260 -260
- package/mcp-server/docs/troubleshooting-audio.md +313 -313
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +130 -130
- package/mcp-server/pyproject.toml +52 -52
- package/mcp-server/requirements.txt +2 -2
- package/mcp-server/server.py +1465 -1453
- package/mcp-server/test_server.py +395 -395
- package/mcp-server/test_windows_script_parity.py +336 -0
- package/package.json +110 -110
- package/setup-windows.ps1 +815 -815
- package/src/bmad-detector.js +71 -71
- package/src/cli/list-personalities.js +110 -110
- package/src/cli/list-voices.js +114 -114
- package/src/commands/bmad-voices.js +394 -394
- package/src/commands/install-mcp.js +476 -476
- package/src/console/app.js +824 -824
- package/src/console/audio-env.js +20 -1
- package/src/console/brand-colors.js +13 -13
- package/src/console/constants/personalities.js +44 -44
- package/src/console/footer-config.js +50 -50
- package/src/console/modals/modal-overlay.js +247 -247
- package/src/console/navigation.js +62 -62
- package/src/console/tabs/agents-tab.js +1684 -1516
- package/src/console/tabs/help-tab.js +261 -261
- package/src/console/tabs/install-tab.js +1007 -991
- package/src/console/tabs/music-tab.js +22 -8
- package/src/console/tabs/placeholder-tab.js +53 -53
- package/src/console/tabs/readme-tab.js +267 -267
- package/src/console/tabs/receiver-tab.js +1472 -1212
- package/src/console/tabs/settings-tab.js +208 -84
- package/src/console/tabs/voices-tab.js +100 -21
- package/src/console/widgets/destroy-list.js +25 -25
- package/src/console/widgets/format-utils.js +89 -89
- package/src/console/widgets/notice.js +55 -55
- package/src/console/widgets/personality-picker.js +185 -185
- package/src/console/widgets/reverb-picker.js +94 -94
- package/src/console/widgets/track-picker.js +285 -285
- package/src/installer/music-file-input.js +304 -304
- package/src/installer.js +5895 -5829
- package/src/services/agent-voice-store.js +423 -423
- package/src/services/config-service.js +264 -264
- package/src/services/navigation-service.js +123 -123
- package/src/services/provider-service.js +143 -132
- package/src/services/verbosity-service.js +157 -157
- package/src/utils/audio-duration-validator.js +298 -298
- package/src/utils/audio-format-validator.js +277 -277
- package/src/utils/dependency-checker.js +469 -466
- package/src/utils/file-ownership-verifier.js +358 -358
- package/src/utils/list-formatter.js +194 -194
- package/src/utils/music-file-validator.js +285 -285
- package/src/utils/preview-list-prompt.js +136 -136
- package/src/utils/provider-validator.js +96 -12
- package/src/utils/secure-music-storage.js +412 -412
- package/templates/agentvibes-receiver.sh +482 -482
- package/templates/audio/welcome-music.mp3 +0 -0
- package/voice-assignments.json +8244 -8244
- package/.claude/config/background-music-position.txt +0 -1
|
@@ -33,14 +33,14 @@ const COLORS = {
|
|
|
33
33
|
activeFg: '#69f0ae', // Green — active/playing track
|
|
34
34
|
favoriteFg: '#ffff00', // Yellow — favorite star
|
|
35
35
|
btnDefault: '#880e4f', // Dark magenta — Music tab buttons
|
|
36
|
-
btnFocus: '#
|
|
37
|
-
btnFocusFg: '#
|
|
36
|
+
btnFocus: '#2e7d32', // Green — focused/selected
|
|
37
|
+
btnFocusFg: '#ffffff',
|
|
38
38
|
btnPress: '#ff00ff',
|
|
39
39
|
borderFg: '#f06292', // Light magenta — border
|
|
40
40
|
footerBg: '#880e4f', // Dark magenta — Music tab footer
|
|
41
41
|
noticeFg: '#90a4ae',
|
|
42
42
|
dimFg: '#455a64',
|
|
43
|
-
playingFg: '
|
|
43
|
+
playingFg: 'bright-cyan', // Cyan — currently previewing track indicator
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
const FOOTER_TEXT = '[↑↓/jk] Navigate [Space] Preview [Enter] Select [M] Toggle [*] Favorite [F] Filter [Q] Quit';
|
|
@@ -490,8 +490,18 @@ export function createMusicTab(screen, services) {
|
|
|
490
490
|
// Kill the entire process group so child audio processes (ffplay, play, mpg123) all die
|
|
491
491
|
function _killPlayingProcess() {
|
|
492
492
|
if (_playingProcess) {
|
|
493
|
-
|
|
494
|
-
|
|
493
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
494
|
+
try {
|
|
495
|
+
if (_isWin) {
|
|
496
|
+
// Windows: kill the process tree via taskkill (process group kill doesn't work)
|
|
497
|
+
spawn('taskkill', ['/F', '/T', '/PID', String(_playingProcess.pid)], {
|
|
498
|
+
stdio: 'ignore', windowsHide: true,
|
|
499
|
+
});
|
|
500
|
+
} else {
|
|
501
|
+
process.kill(-_playingProcess.pid, 'SIGTERM');
|
|
502
|
+
}
|
|
503
|
+
} catch (e) {
|
|
504
|
+
if (e.code !== 'ESRCH') { /* ignore */ }
|
|
495
505
|
}
|
|
496
506
|
_playingProcess = null;
|
|
497
507
|
}
|
|
@@ -530,15 +540,19 @@ export function createMusicTab(screen, services) {
|
|
|
530
540
|
_playingTrackId = null;
|
|
531
541
|
|
|
532
542
|
if (!_detectedPlayer) {
|
|
533
|
-
|
|
543
|
+
const installHint = process.platform === 'win32'
|
|
544
|
+
? 'No MP3 player found. Install ffmpeg: winget install ffmpeg'
|
|
545
|
+
: 'No MP3 player found. Install ffmpeg: sudo apt install ffmpeg';
|
|
546
|
+
previewLine.setContent(`{red-fg}${installHint}{/red-fg}`);
|
|
534
547
|
screen.render();
|
|
535
548
|
setTimeout(() => { previewLine.setContent(_listFocused ? HINT_TEXT : ''); screen.render(); }, 5000);
|
|
536
549
|
return;
|
|
537
550
|
}
|
|
538
551
|
|
|
552
|
+
const _isWin = process.platform === 'win32' && !process.env.WSL_DISTRO_NAME;
|
|
539
553
|
// Spawn the detected player directly (no sh -c chain — avoids VLC/cvlc stderr issues)
|
|
540
554
|
_playingProcess = spawn(_detectedPlayer.bin, _detectedPlayer.args(trackPath), {
|
|
541
|
-
stdio: 'ignore', detached: true, env: _spawnEnv,
|
|
555
|
+
stdio: 'ignore', detached: !_isWin, windowsHide: true, env: _spawnEnv,
|
|
542
556
|
});
|
|
543
557
|
_playingTrackId = trackId;
|
|
544
558
|
|
|
@@ -734,7 +748,7 @@ export function createMusicTab(screen, services) {
|
|
|
734
748
|
const okLocalBtn = _makeBtn('Save Locally', COLORS.btnDefault, 2, 5, () => {
|
|
735
749
|
_saveLocally();
|
|
736
750
|
});
|
|
737
|
-
const okGlobalBtn = _makeBtn('Save Globally & Locally', '#
|
|
751
|
+
const okGlobalBtn = _makeBtn('Save Globally & Locally', '#1565c0', 18, 5, () => {
|
|
738
752
|
_saveLocally();
|
|
739
753
|
_saveGlobally();
|
|
740
754
|
});
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentVibes TUI Console — Placeholder Tab Component
|
|
3
|
-
* Story 6.2: Tab Bar & Global Keyboard Navigation
|
|
4
|
-
*
|
|
5
|
-
* Creates a stub content box for each tab ID.
|
|
6
|
-
* These are replaced by real tab implementations in Epics 7-11.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import blessed from 'blessed';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Create a hidden placeholder box for a tab, appended into the content area.
|
|
13
|
-
*
|
|
14
|
-
* @param {object} contentArea - Blessed box to append into (this.contentArea from app.js)
|
|
15
|
-
* @param {string} label - Human-readable tab name for display (e.g. 'Settings')
|
|
16
|
-
* @returns {object} The created Blessed box widget
|
|
17
|
-
*/
|
|
18
|
-
export function createPlaceholderTab(contentArea, label) {
|
|
19
|
-
const box = blessed.box({
|
|
20
|
-
parent: contentArea,
|
|
21
|
-
top: 0,
|
|
22
|
-
left: 0,
|
|
23
|
-
width: '100%',
|
|
24
|
-
height: '100%',
|
|
25
|
-
content: `{center}{bold}${label}{/bold}{/center}\n\n{center}Coming in a future story...{/center}`,
|
|
26
|
-
tags: true,
|
|
27
|
-
hidden: true,
|
|
28
|
-
style: {
|
|
29
|
-
fg: '#90a4ae',
|
|
30
|
-
bg: '#0a0e1a',
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
return box;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** Map of tabId → display label for all tabs */
|
|
38
|
-
export const TAB_DISPLAY_LABELS = {
|
|
39
|
-
settings: 'Settings',
|
|
40
|
-
voices: 'Voices',
|
|
41
|
-
music: 'Music',
|
|
42
|
-
agents: 'BMad',
|
|
43
|
-
receiver: 'Receiver',
|
|
44
|
-
readme: 'Readme',
|
|
45
|
-
help: 'Help',
|
|
46
|
-
install: 'Install',
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
/** Override shortcut key for tabs where first letter conflicts */
|
|
50
|
-
export const TAB_SHORTCUT_KEYS = {
|
|
51
|
-
agents: 'B',
|
|
52
|
-
receiver: 'X',
|
|
53
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* AgentVibes TUI Console — Placeholder Tab Component
|
|
3
|
+
* Story 6.2: Tab Bar & Global Keyboard Navigation
|
|
4
|
+
*
|
|
5
|
+
* Creates a stub content box for each tab ID.
|
|
6
|
+
* These are replaced by real tab implementations in Epics 7-11.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import blessed from 'blessed';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Create a hidden placeholder box for a tab, appended into the content area.
|
|
13
|
+
*
|
|
14
|
+
* @param {object} contentArea - Blessed box to append into (this.contentArea from app.js)
|
|
15
|
+
* @param {string} label - Human-readable tab name for display (e.g. 'Settings')
|
|
16
|
+
* @returns {object} The created Blessed box widget
|
|
17
|
+
*/
|
|
18
|
+
export function createPlaceholderTab(contentArea, label) {
|
|
19
|
+
const box = blessed.box({
|
|
20
|
+
parent: contentArea,
|
|
21
|
+
top: 0,
|
|
22
|
+
left: 0,
|
|
23
|
+
width: '100%',
|
|
24
|
+
height: '100%',
|
|
25
|
+
content: `{center}{bold}${label}{/bold}{/center}\n\n{center}Coming in a future story...{/center}`,
|
|
26
|
+
tags: true,
|
|
27
|
+
hidden: true,
|
|
28
|
+
style: {
|
|
29
|
+
fg: '#90a4ae',
|
|
30
|
+
bg: '#0a0e1a',
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return box;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Map of tabId → display label for all tabs */
|
|
38
|
+
export const TAB_DISPLAY_LABELS = {
|
|
39
|
+
settings: 'Settings',
|
|
40
|
+
voices: 'Voices',
|
|
41
|
+
music: 'Music',
|
|
42
|
+
agents: 'BMad',
|
|
43
|
+
receiver: 'Receiver',
|
|
44
|
+
readme: 'Readme',
|
|
45
|
+
help: 'Help',
|
|
46
|
+
install: 'Install',
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/** Override shortcut key for tabs where first letter conflicts */
|
|
50
|
+
export const TAB_SHORTCUT_KEYS = {
|
|
51
|
+
agents: 'B',
|
|
52
|
+
receiver: 'X',
|
|
53
|
+
};
|