agentvibes 4.6.7 → 5.0.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.
- package/.agentvibes/bmad-voice-map.json +104 -0
- package/.agentvibes/config.json +13 -12
- package/.agentvibes/copilot-sessions.log +4 -0
- package/.claude/audio/tracks/README.md +51 -52
- package/.claude/config/audio-effects-bmad.cfg +50 -0
- package/.claude/config/audio-effects.cfg +4 -4
- package/.claude/config/background-music-enabled.txt +1 -0
- package/.claude/config/personality.txt +1 -0
- package/.claude/hooks/play-tts-piper.sh +3 -1
- package/.claude/hooks/play-tts.sh +373 -301
- package/.claude/hooks/session-start-tts.sh +81 -81
- package/.claude/hooks-windows/audio-processor.ps1 +181 -0
- package/.claude/hooks-windows/play-tts-piper.ps1 +259 -245
- package/.claude/hooks-windows/play-tts.ps1 +101 -9
- package/.claude/hooks-windows/session-start-tts.ps1 +114 -114
- package/README.md +107 -7
- package/RELEASE_NOTES.md +54 -0
- package/bin/bmad-speak.js +16 -8
- package/mcp-server/server.py +15 -8
- package/package.json +1 -1
- package/src/console/app.js +899 -897
- package/src/console/footer-config.js +50 -50
- package/src/console/navigation.js +65 -65
- package/src/console/tabs/agents-tab.js +1896 -1886
- package/src/console/tabs/music-tab.js +1046 -1039
- package/src/console/tabs/placeholder-tab.js +81 -80
- package/src/console/tabs/settings-tab.js +939 -3988
- package/src/console/tabs/setup-tab.js +1811 -0
- package/src/console/tabs/voices-tab.js +1720 -1713
- package/src/installer.js +6147 -6092
- package/src/services/llm-provider-service.js +407 -0
- package/src/services/navigation-service.js +123 -123
- package/src/services/tts-engine-service.js +69 -0
- package/.claude/audio/tracks/dreamy_house_loop.mp3 +0 -0
- package/src/console/tabs/install-tab.js +0 -1081
|
@@ -1,80 +1,81 @@
|
|
|
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
|
-
import { t } from '../../i18n/strings.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Create a hidden placeholder box for a tab, appended into the content area.
|
|
14
|
-
*
|
|
15
|
-
* @param {object} contentArea - Blessed box to append into (this.contentArea from app.js)
|
|
16
|
-
* @param {string} label - Human-readable tab name for display (e.g. 'Settings')
|
|
17
|
-
* @returns {object} The created Blessed box widget
|
|
18
|
-
*/
|
|
19
|
-
export function createPlaceholderTab(contentArea, label) {
|
|
20
|
-
const box = blessed.box({
|
|
21
|
-
parent: contentArea,
|
|
22
|
-
top: 0,
|
|
23
|
-
left: 0,
|
|
24
|
-
width: '100%',
|
|
25
|
-
height: '100%',
|
|
26
|
-
content: `{center}{bold}${label}{/bold}{/center}\n\n{center}Coming in a future story...{/center}`,
|
|
27
|
-
tags: true,
|
|
28
|
-
hidden: true,
|
|
29
|
-
style: {
|
|
30
|
-
fg: '#90a4ae',
|
|
31
|
-
bg: '#0a0e1a',
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
return box;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Map of tabId → display label for all tabs */
|
|
39
|
-
export const TAB_DISPLAY_LABELS = {
|
|
40
|
-
settings:
|
|
41
|
-
voices:
|
|
42
|
-
music:
|
|
43
|
-
agents:
|
|
44
|
-
receiver:
|
|
45
|
-
readme:
|
|
46
|
-
help:
|
|
47
|
-
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/** Override shortcut key for tabs where first letter conflicts */
|
|
51
|
-
export const TAB_SHORTCUT_KEYS = {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* @param {string}
|
|
62
|
-
* @
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
+
import { t } from '../../i18n/strings.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Create a hidden placeholder box for a tab, appended into the content area.
|
|
14
|
+
*
|
|
15
|
+
* @param {object} contentArea - Blessed box to append into (this.contentArea from app.js)
|
|
16
|
+
* @param {string} label - Human-readable tab name for display (e.g. 'Settings')
|
|
17
|
+
* @returns {object} The created Blessed box widget
|
|
18
|
+
*/
|
|
19
|
+
export function createPlaceholderTab(contentArea, label) {
|
|
20
|
+
const box = blessed.box({
|
|
21
|
+
parent: contentArea,
|
|
22
|
+
top: 0,
|
|
23
|
+
left: 0,
|
|
24
|
+
width: '100%',
|
|
25
|
+
height: '100%',
|
|
26
|
+
content: `{center}{bold}${label}{/bold}{/center}\n\n{center}Coming in a future story...{/center}`,
|
|
27
|
+
tags: true,
|
|
28
|
+
hidden: true,
|
|
29
|
+
style: {
|
|
30
|
+
fg: '#90a4ae',
|
|
31
|
+
bg: '#0a0e1a',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return box;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Map of tabId → display label for all tabs */
|
|
39
|
+
export const TAB_DISPLAY_LABELS = {
|
|
40
|
+
settings: 'Settings',
|
|
41
|
+
voices: 'Voices',
|
|
42
|
+
music: 'Music',
|
|
43
|
+
agents: 'BMad',
|
|
44
|
+
receiver: 'Receiver',
|
|
45
|
+
readme: 'Readme',
|
|
46
|
+
help: 'Help',
|
|
47
|
+
setup: 'Setup',
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/** Override shortcut key for tabs where first letter conflicts */
|
|
51
|
+
export const TAB_SHORTCUT_KEYS = {
|
|
52
|
+
setup: 'I',
|
|
53
|
+
agents: 'B',
|
|
54
|
+
receiver: 'X',
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Return the translated display label for a tab.
|
|
59
|
+
* Falls back to TAB_DISPLAY_LABELS[id] if no i18n key is found.
|
|
60
|
+
*
|
|
61
|
+
* @param {string} id - Tab identifier (e.g. 'settings', 'voices')
|
|
62
|
+
* @param {string} lang - BCP-47 language code (e.g. 'es', 'zh-CN')
|
|
63
|
+
* @returns {string}
|
|
64
|
+
*/
|
|
65
|
+
export function getTabLabel(id, lang = 'en') {
|
|
66
|
+
const keyMap = {
|
|
67
|
+
setup: 'tabSetup',
|
|
68
|
+
settings: 'tabSettings',
|
|
69
|
+
voices: 'tabVoices',
|
|
70
|
+
music: 'tabMusic',
|
|
71
|
+
agents: 'tabBmad',
|
|
72
|
+
receiver: 'tabReceiver',
|
|
73
|
+
readme: 'tabReadme',
|
|
74
|
+
help: 'tabHelp',
|
|
75
|
+
};
|
|
76
|
+
const key = keyMap[id];
|
|
77
|
+
if (!key) return TAB_DISPLAY_LABELS[id] ?? id;
|
|
78
|
+
const translated = t(lang, key);
|
|
79
|
+
// t() returns the key itself when missing — fall back to English display label
|
|
80
|
+
return (translated && translated !== key) ? translated : (TAB_DISPLAY_LABELS[id] ?? id);
|
|
81
|
+
}
|