agentvibes 5.1.3 β 5.2.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/config.json +23 -13
- package/.claude/commands/agent-vibes/verbosity.md +98 -89
- package/.claude/config/audio-effects.cfg +6 -1
- package/.claude/hooks/bmad-speak.sh +2 -2
- package/.claude/hooks/piper-download-voices.sh +233 -225
- package/.claude/hooks/piper-installer.sh +1 -1
- package/.claude/hooks/piper-voice-manager.sh +125 -0
- package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +97 -90
- package/.claude/hooks/play-tts-enhanced.sh +1 -1
- package/.claude/hooks/play-tts-piper.sh +16 -5
- package/.claude/hooks/play-tts-ssh-remote.sh +168 -167
- package/.claude/hooks/play-tts.sh +31 -9
- package/.claude/hooks/session-start-tts.sh +4 -1
- package/.claude/hooks/stop-tts.sh +1 -1
- package/.claude/hooks/verbosity-manager.sh +185 -178
- package/.claude/hooks-windows/download-extra-voices.ps1 +243 -185
- package/.claude/hooks-windows/play-tts-piper.ps1 +7 -2
- package/.claude/hooks-windows/play-tts.ps1 +219 -65
- package/.claude/hooks-windows/session-start-tts.ps1 +2 -1
- package/.claude/hooks-windows/verbosity-manager.ps1 +126 -119
- package/README.md +24 -1
- package/RELEASE_NOTES.md +113 -0
- package/bin/agentvibes-voice-browser.js +1939 -1840
- package/mcp-server/server.py +75 -25
- package/package.json +1 -1
- package/src/console/tabs/receiver-tab.js +1527 -1483
- package/src/console/tabs/settings-tab.js +2 -2
- package/src/console/tabs/setup-tab.js +122 -20
- package/src/console/tabs/voices-tab.js +130 -13
- package/src/i18n/en.js +202 -202
- package/src/installer.js +29 -25
- package/src/services/llm-provider-service.js +114 -11
- package/src/services/verbosity-service.js +159 -157
- package/templates/agentvibes-receiver.sh +3 -2
package/src/i18n/en.js
CHANGED
|
@@ -1,203 +1,203 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
languageSelectTitle: "π Select Language / Seleccionar Idioma / Choisir la langue / Sprache wΓ€hlen / Selecionar Idioma / θ¨θͺγιΈζ / ΰ€ΰ€Ύΰ€·ΰ€Ύ ΰ€ΰ₯ΰ€¨ΰ₯ΰ€ / ιζ©θ―θ¨ / μΈμ΄ μ ν",
|
|
3
|
-
languageApplied: "Language applied",
|
|
4
|
-
welcomeTitle: "Welcome to AgentVibes!",
|
|
5
|
-
installDetails: "Installation Details",
|
|
6
|
-
installLocation: "Install location",
|
|
7
|
-
packageVersion: "Package version",
|
|
8
|
-
readyToConfigure: "Ready to configure AgentVibes?",
|
|
9
|
-
installationCancelled: "Installation cancelled.",
|
|
10
|
-
startInstall: "Start Install",
|
|
11
|
-
installationCancelledMsg: "Installation was cancelled by the user.",
|
|
12
|
-
installedSuccess: "AgentVibes installed successfully!",
|
|
13
|
-
installComplete: "Installation Complete",
|
|
14
|
-
installationFailed: "Installation Failed",
|
|
15
|
-
installing: "Installing AgentVibes...",
|
|
16
|
-
providerLabel: "Provider",
|
|
17
|
-
voiceLabel: "Voice",
|
|
18
|
-
locationLabel: "Location",
|
|
19
|
-
versionLabel: "Version",
|
|
20
|
-
configurationSetup: "Configuration Setup",
|
|
21
|
-
configurationIntro: "Please configure your AgentVibes installation.",
|
|
22
|
-
navigationHint: "Use arrow keys to navigate between pages.",
|
|
23
|
-
nonInteractiveDetected: "Non-interactive mode detected",
|
|
24
|
-
installError: "Installation failed",
|
|
25
|
-
continuePrompt: "Continue",
|
|
26
|
-
cancelPrompt: "Cancel",
|
|
27
|
-
setupWizard: "Setup Wizard",
|
|
28
|
-
setupWizardSubtitle: "TTS for AI assistants with personality.",
|
|
29
|
-
dependencyCheck: "Dependency Check",
|
|
30
|
-
checkingDependencies: "Checking dependencies...",
|
|
31
|
-
depColumn: "Dependency",
|
|
32
|
-
statusColumn: "Status",
|
|
33
|
-
installed: "Installed",
|
|
34
|
-
notFound: "Not found",
|
|
35
|
-
ffmpegMissing: "Not found (needed for background music)",
|
|
36
|
-
ttsDetected: "TTS Providers Detected",
|
|
37
|
-
noTtsFound: "No TTS provider found. Install Piper or Soprano first.",
|
|
38
|
-
providerSelection: "Provider Selection",
|
|
39
|
-
availableProviders: "Available TTS providers:",
|
|
40
|
-
providerAndVoice: "Provider & Voice",
|
|
41
|
-
voiceChangeHint: "(after installation, you can change in Settings)",
|
|
42
|
-
introText: "Intro Text",
|
|
43
|
-
introTextLabel: "Intro text",
|
|
44
|
-
none: "none",
|
|
45
|
-
example: "Example",
|
|
46
|
-
screen1Hint: "Screen 1/5: Welcome | [β/β] Navigate | [Enter] Begin | [Esc] Exit",
|
|
47
|
-
screen2Hint: "Screen 2/5: Dependencies | [β] Back | [Enter] Next",
|
|
48
|
-
screen3Hint: "Screen 3/5: Provider | [β] Back | [ββ] Choose | [Enter/β] Confirm & Continue",
|
|
49
|
-
screen4Hint: "Screen 4/5: Config | [Esc] Back | [E] Edit | [β] Accept & Install",
|
|
50
|
-
screen5HintDone: "Screen 5/5: Complete | [Enter] OK β Done",
|
|
51
|
-
screen5HintWait: "Screen 5/5: Installing... | Please wait",
|
|
52
|
-
languageSettings: "Language",
|
|
53
|
-
languageSettingsSubtitle: "Select interface language",
|
|
54
|
-
currentLanguage: "Current language",
|
|
55
|
-
changeLanguage: "Change language",
|
|
56
|
-
beginBtn: "βΆ Begin",
|
|
57
|
-
exitBtn: "β Exit",
|
|
58
|
-
footerText: "[Enter] Continue/Finish [Esc] Back/Exit [C] Open Console [S/V/M/A/R] Tab [Q] Quit",
|
|
59
|
-
customizationTool: "Customization Tool",
|
|
60
|
-
quitLabel: "[Q] Quit",
|
|
61
|
-
tabInstall: "Install",
|
|
62
|
-
tabSettings: "Settings",
|
|
63
|
-
tabVoices: "Voices",
|
|
64
|
-
tabMusic: "Music",
|
|
65
|
-
tabBmad: "BMad",
|
|
66
|
-
tabReceiver: "Receiver",
|
|
67
|
-
tabReadme: "Readme",
|
|
68
|
-
tabHelp: "Help",
|
|
69
|
-
subTabVoice: " [V] Voice ",
|
|
70
|
-
subTabEffects: " [E] Effects ",
|
|
71
|
-
subTabPersonality: " [P] Personality ",
|
|
72
|
-
subTabOutput: " [O] Output ",
|
|
73
|
-
subTabLanguage: " [L] Language ",
|
|
74
|
-
sectionProviderVoice: " π€ Provider & Voice ",
|
|
75
|
-
sectionAudioEffects: " β‘ Audio Effects ",
|
|
76
|
-
sectionBgMusic: " πΈ Background Music ",
|
|
77
|
-
sectionStyle: " π Style ",
|
|
78
|
-
sectionIntroText: " βοΈ Intro Text ",
|
|
79
|
-
sectionAudioDest: " π‘ Audio Destination ",
|
|
80
|
-
sectionConfigStorage: " πΎ Config Storage ",
|
|
81
|
-
sectionLanguage: " π Language ",
|
|
82
|
-
providerRowLabel: "Provider:",
|
|
83
|
-
currentVoiceLabel: "Current Voice:",
|
|
84
|
-
reverbLabel: "Reverb:",
|
|
85
|
-
trackLabel: "Track:",
|
|
86
|
-
volumeLabel: "Volume:",
|
|
87
|
-
verbosityLabel: "Verbosity:",
|
|
88
|
-
personalityLabel: "Personality:",
|
|
89
|
-
introTextRowLabel: "Intro Text:",
|
|
90
|
-
destinationLabel: "Destination:",
|
|
91
|
-
sshAliasLabel: "SSH Alias:",
|
|
92
|
-
globalLabel: "Global:",
|
|
93
|
-
localLabel: "Local:",
|
|
94
|
-
languageLabel: "Language:",
|
|
95
|
-
switchBtn: "Switch",
|
|
96
|
-
changeBtn: "Change",
|
|
97
|
-
playBtn: "βΆ Play",
|
|
98
|
-
stopBtn: "β Stop",
|
|
99
|
-
previewBtn: "βΆ Preview",
|
|
100
|
-
fullPreviewBtn: "βΆ Full Preview",
|
|
101
|
-
saveGloballyBtn: "Save Globally",
|
|
102
|
-
saveLocallyBtn: "Save Locally",
|
|
103
|
-
cancelChangesBtn: "Cancel Changes",
|
|
104
|
-
editBtn: "Edit",
|
|
105
|
-
clearBtn: "Clear",
|
|
106
|
-
applyLanguageBtn: "β Apply Language",
|
|
107
|
-
enabledBtn: "Enabled",
|
|
108
|
-
disabledBtn: "Disabled",
|
|
109
|
-
okSaveBtn: "OK β Save",
|
|
110
|
-
enableBtn: "Enable",
|
|
111
|
-
streamingTextBtn: "Streaming Text Only β",
|
|
112
|
-
streamingPulseBtn: "Streaming Pulse Audio",
|
|
113
|
-
continueArrowBtn: "Continue β",
|
|
114
|
-
acceptInstallBtn: "β Accept & Install",
|
|
115
|
-
okDoneBtn: "β OK β Done",
|
|
116
|
-
doneCustomizeBtn: "β Done - Customize More",
|
|
117
|
-
doneQuitBtn: "β Done - Quit",
|
|
118
|
-
editInstallBtn: "Edit",
|
|
119
|
-
musicDisabledMsg: "Music is disabled. Enable it now?",
|
|
120
|
-
settingsFooter: "[ββ] Group [ββ] Sibling/Sub-tab [Enter/Space] Activate [Tab] Switch Tab [Q] Quit",
|
|
121
|
-
voicesFooter: "[ββ/jk] Navigate [Space] Preview [Enter] Select/Install [F] Favorite [/] Search",
|
|
122
|
-
musicFooter: "[ββ/jk] Navigate [Space] Preview [Enter] Select [M] Toggle [*] Favorite [F] Filter [Q] Quit",
|
|
123
|
-
helpFooter: "[ββ/jk] Scroll [/] Search [PgUp/PgDn] Page [S/V/M/A/R] Tab [Q] Quit",
|
|
124
|
-
readmeFooter: "[ββ/jk] Scroll [PgUp/PgDn] Page [/] Search [S/V/M/A/R] Tab [Q] Quit",
|
|
125
|
-
receiverFooter: "SSH Receiver [Q] Quit",
|
|
126
|
-
searchLabel: "Search:",
|
|
127
|
-
settingsSavedMsg: "Settings Saved",
|
|
128
|
-
changesRevertedMsg: "Changes reverted",
|
|
129
|
-
musicBuiltInHeader: "ββ Built-in Tracks ",
|
|
130
|
-
musicStatusHeader: "ββ Music Status ",
|
|
131
|
-
musicStatusLabel: "Music:",
|
|
132
|
-
musicActiveTrack: "Active Track:",
|
|
133
|
-
musicFilterLabel: "Filter:",
|
|
134
|
-
musicFilterAll: "All",
|
|
135
|
-
musicFilterFavs: "Favorites",
|
|
136
|
-
musicToggleBtn: "[Toggle Music]",
|
|
137
|
-
musicAddCustomBtn: "[Add Custom Track]",
|
|
138
|
-
voicesHeader: "ββ Voices ",
|
|
139
|
-
voicesColName: "Name",
|
|
140
|
-
voicesColGender: "Gender",
|
|
141
|
-
voicesColProvider: "Provider",
|
|
142
|
-
voicesInfoHeader: "ββ Voice Info ",
|
|
143
|
-
voicesSwitchBtn: "[Switch Voice]",
|
|
144
|
-
voicesFavoriteBtn: "[
|
|
145
|
-
voicesDownloadBtn: "[Download Voice]",
|
|
146
|
-
voicesRowHintInstalled: "[Space] Preview [Enter] Select [
|
|
147
|
-
voicesRowHintUninstalled: "[Enter] Download & Install",
|
|
148
|
-
musicRowHint: "[Space] Play [Enter] Select [
|
|
149
|
-
musicHintText: "[Space] preview [Enter] set as background track [
|
|
150
|
-
genderFemale: "Female",
|
|
151
|
-
genderMale: "Male",
|
|
152
|
-
voiceInfoVoice: "Voice:",
|
|
153
|
-
voiceInfoGender: "Gender:",
|
|
154
|
-
voiceInfoLanguage: "Language:",
|
|
155
|
-
voiceInfoQuality: "Quality:",
|
|
156
|
-
voiceInfoProvider: "Provider:",
|
|
157
|
-
voiceInfoId: "ID:",
|
|
158
|
-
voiceInfoSpeaker: "Speaker:",
|
|
159
|
-
voiceInfoModel: "Model:",
|
|
160
|
-
voiceInfoSpeakerId: "Speaker ID:",
|
|
161
|
-
voiceInfoDownload: "β¬ Press [Enter] to download and install",
|
|
162
|
-
voicePlaying: "(playing)",
|
|
163
|
-
bmadTitle: "π§ BMAD Agents",
|
|
164
|
-
bmadWhatIsHeader: "What is BMAD?",
|
|
165
|
-
bmadDesc: "The BMad Method (Build More Architect Dreams) is an AI-driven development\nframework module within the BMad Method Ecosystem that helps you build\nsoftware through the whole process from ideation and planning all the way\nthrough agentic implementation. It provides specialized AI agents, guided\nworkflows, and intelligent planning that adapts to your project's\ncomplexity, whether you're fixing a bug or building an enterprise platform.\n\nIf you're comfortable working with AI coding assistants like Claude,\nCursor, or GitHub Copilot, you're ready to get started.",
|
|
166
|
-
bmadInstallHeader: "Install BMAD in your project:",
|
|
167
|
-
bmadLearnMoreHeader: "Learn more:",
|
|
168
|
-
bmadInstalledNote: "Once BMAD is installed, this tab will show all your agents and let you\ncustomize each agent's voice, pretext, reverb, personality, and background\nmusic independently.",
|
|
169
|
-
receiverWhatIsTitle: "What is SSH Receiver?",
|
|
170
|
-
receiverDesc: "SSH Receiver lets your remote servers speak through this machine.\nWhen an AI assistant on a remote server (VPS, cloud, dev box) needs\nto play TTS audio, it sends the text over SSH to this machine, which\ngenerates and plays the audio through your speakers locally.\n\nRemote AI ββ[SSH]βββΊ This Machine ββ[piper+sox+ffmpeg]βββΊ Your Speakers",
|
|
171
|
-
helpSectionGlobal: "Global Shortcuts",
|
|
172
|
-
helpSectionNavigation: "Navigation Shortcuts",
|
|
173
|
-
helpSectionColors: "Tab Color Guide",
|
|
174
|
-
helpQuit: "Quit the console",
|
|
175
|
-
helpForceQuit: "Force quit",
|
|
176
|
-
helpSwitchSettings: "Switch to Settings tab",
|
|
177
|
-
helpSwitchVoices: "Switch to Voices tab",
|
|
178
|
-
helpSwitchMusic: "Switch to Music tab",
|
|
179
|
-
helpSwitchReadme: "Switch to Readme tab",
|
|
180
|
-
helpSwitchHelp: "Switch to Help tab",
|
|
181
|
-
helpSwitchInstall: "Switch to Install tab",
|
|
182
|
-
helpCloseModal: "Close modal / go back",
|
|
183
|
-
helpNavigateLists: "Navigate lists",
|
|
184
|
-
helpSelectActivate: "Select / activate",
|
|
185
|
-
helpTogglePreview: "Toggle / preview",
|
|
186
|
-
helpNextButton: "Next button",
|
|
187
|
-
helpPrevButton: "Previous button",
|
|
188
|
-
helpOpenSearch: "Open search/filter",
|
|
189
|
-
helpToggleFavFilter: "Toggle favorites filter (Voices/Music)",
|
|
190
|
-
helpToggleFav: "Toggle favorite (Music tab)",
|
|
191
|
-
helpToggleMusic: "Toggle music on/off (Music tab)",
|
|
192
|
-
helpColorSettings: "Settings tab footer",
|
|
193
|
-
helpColorVoices: "Voices tab footer",
|
|
194
|
-
helpColorMusic: "Music tab footer",
|
|
195
|
-
helpColorReadme: "Readme tab footer",
|
|
196
|
-
helpColorHelp: "Help tab footer",
|
|
197
|
-
helpColorInstall: "Install tab footer",
|
|
198
|
-
helpSearchLabel: "Search:",
|
|
199
|
-
readmeScrollMore: "β Scroll for more content β",
|
|
200
|
-
readmeNotFound: "*(No README.md found in current directory)*",
|
|
201
|
-
bmadFooterNobmad: "[Tab] Switch Tab [Q] Quit",
|
|
202
|
-
bmadFooterBmad: "[ββ/jk] Navigate [Space] Preview [Enter] Configure [A] Auto-assign [B] Bulk [X] Reset [Q] Quit",
|
|
1
|
+
export default {
|
|
2
|
+
languageSelectTitle: "π Select Language / Seleccionar Idioma / Choisir la langue / Sprache wΓ€hlen / Selecionar Idioma / θ¨θͺγιΈζ / ΰ€ΰ€Ύΰ€·ΰ€Ύ ΰ€ΰ₯ΰ€¨ΰ₯ΰ€ / ιζ©θ―θ¨ / μΈμ΄ μ ν",
|
|
3
|
+
languageApplied: "Language applied",
|
|
4
|
+
welcomeTitle: "Welcome to AgentVibes!",
|
|
5
|
+
installDetails: "Installation Details",
|
|
6
|
+
installLocation: "Install location",
|
|
7
|
+
packageVersion: "Package version",
|
|
8
|
+
readyToConfigure: "Ready to configure AgentVibes?",
|
|
9
|
+
installationCancelled: "Installation cancelled.",
|
|
10
|
+
startInstall: "Start Install",
|
|
11
|
+
installationCancelledMsg: "Installation was cancelled by the user.",
|
|
12
|
+
installedSuccess: "AgentVibes installed successfully!",
|
|
13
|
+
installComplete: "Installation Complete",
|
|
14
|
+
installationFailed: "Installation Failed",
|
|
15
|
+
installing: "Installing AgentVibes...",
|
|
16
|
+
providerLabel: "Provider",
|
|
17
|
+
voiceLabel: "Voice",
|
|
18
|
+
locationLabel: "Location",
|
|
19
|
+
versionLabel: "Version",
|
|
20
|
+
configurationSetup: "Configuration Setup",
|
|
21
|
+
configurationIntro: "Please configure your AgentVibes installation.",
|
|
22
|
+
navigationHint: "Use arrow keys to navigate between pages.",
|
|
23
|
+
nonInteractiveDetected: "Non-interactive mode detected",
|
|
24
|
+
installError: "Installation failed",
|
|
25
|
+
continuePrompt: "Continue",
|
|
26
|
+
cancelPrompt: "Cancel",
|
|
27
|
+
setupWizard: "Setup Wizard",
|
|
28
|
+
setupWizardSubtitle: "TTS for AI assistants with personality.",
|
|
29
|
+
dependencyCheck: "Dependency Check",
|
|
30
|
+
checkingDependencies: "Checking dependencies...",
|
|
31
|
+
depColumn: "Dependency",
|
|
32
|
+
statusColumn: "Status",
|
|
33
|
+
installed: "Installed",
|
|
34
|
+
notFound: "Not found",
|
|
35
|
+
ffmpegMissing: "Not found (needed for background music)",
|
|
36
|
+
ttsDetected: "TTS Providers Detected",
|
|
37
|
+
noTtsFound: "No TTS provider found. Install Piper or Soprano first.",
|
|
38
|
+
providerSelection: "Provider Selection",
|
|
39
|
+
availableProviders: "Available TTS providers:",
|
|
40
|
+
providerAndVoice: "Provider & Voice",
|
|
41
|
+
voiceChangeHint: "(after installation, you can change in Settings)",
|
|
42
|
+
introText: "Intro Text",
|
|
43
|
+
introTextLabel: "Intro text",
|
|
44
|
+
none: "none",
|
|
45
|
+
example: "Example",
|
|
46
|
+
screen1Hint: "Screen 1/5: Welcome | [β/β] Navigate | [Enter] Begin | [Esc] Exit",
|
|
47
|
+
screen2Hint: "Screen 2/5: Dependencies | [β] Back | [Enter] Next",
|
|
48
|
+
screen3Hint: "Screen 3/5: Provider | [β] Back | [ββ] Choose | [Enter/β] Confirm & Continue",
|
|
49
|
+
screen4Hint: "Screen 4/5: Config | [Esc] Back | [E] Edit | [β] Accept & Install",
|
|
50
|
+
screen5HintDone: "Screen 5/5: Complete | [Enter] OK β Done",
|
|
51
|
+
screen5HintWait: "Screen 5/5: Installing... | Please wait",
|
|
52
|
+
languageSettings: "Language",
|
|
53
|
+
languageSettingsSubtitle: "Select interface language",
|
|
54
|
+
currentLanguage: "Current language",
|
|
55
|
+
changeLanguage: "Change language",
|
|
56
|
+
beginBtn: "βΆ Begin",
|
|
57
|
+
exitBtn: "β Exit",
|
|
58
|
+
footerText: "[Enter] Continue/Finish [Esc] Back/Exit [C] Open Console [S/V/M/A/R] Tab [Q] Quit",
|
|
59
|
+
customizationTool: "Customization Tool",
|
|
60
|
+
quitLabel: "[Q] Quit",
|
|
61
|
+
tabInstall: "Install",
|
|
62
|
+
tabSettings: "Settings",
|
|
63
|
+
tabVoices: "Voices",
|
|
64
|
+
tabMusic: "Music",
|
|
65
|
+
tabBmad: "BMad",
|
|
66
|
+
tabReceiver: "Receiver",
|
|
67
|
+
tabReadme: "Readme",
|
|
68
|
+
tabHelp: "Help",
|
|
69
|
+
subTabVoice: " [V] Voice ",
|
|
70
|
+
subTabEffects: " [E] Effects ",
|
|
71
|
+
subTabPersonality: " [P] Personality ",
|
|
72
|
+
subTabOutput: " [O] Output ",
|
|
73
|
+
subTabLanguage: " [L] Language ",
|
|
74
|
+
sectionProviderVoice: " π€ Provider & Voice ",
|
|
75
|
+
sectionAudioEffects: " β‘ Audio Effects ",
|
|
76
|
+
sectionBgMusic: " πΈ Background Music ",
|
|
77
|
+
sectionStyle: " π Style ",
|
|
78
|
+
sectionIntroText: " βοΈ Intro Text ",
|
|
79
|
+
sectionAudioDest: " π‘ Audio Destination ",
|
|
80
|
+
sectionConfigStorage: " πΎ Config Storage ",
|
|
81
|
+
sectionLanguage: " π Language ",
|
|
82
|
+
providerRowLabel: "Provider:",
|
|
83
|
+
currentVoiceLabel: "Current Voice:",
|
|
84
|
+
reverbLabel: "Reverb:",
|
|
85
|
+
trackLabel: "Track:",
|
|
86
|
+
volumeLabel: "Volume:",
|
|
87
|
+
verbosityLabel: "Verbosity:",
|
|
88
|
+
personalityLabel: "Personality:",
|
|
89
|
+
introTextRowLabel: "Intro Text:",
|
|
90
|
+
destinationLabel: "Destination:",
|
|
91
|
+
sshAliasLabel: "SSH Alias:",
|
|
92
|
+
globalLabel: "Global:",
|
|
93
|
+
localLabel: "Local:",
|
|
94
|
+
languageLabel: "Language:",
|
|
95
|
+
switchBtn: "Switch",
|
|
96
|
+
changeBtn: "Change",
|
|
97
|
+
playBtn: "βΆ Play",
|
|
98
|
+
stopBtn: "β Stop",
|
|
99
|
+
previewBtn: "βΆ Preview",
|
|
100
|
+
fullPreviewBtn: "βΆ Full Preview",
|
|
101
|
+
saveGloballyBtn: "Save Globally",
|
|
102
|
+
saveLocallyBtn: "Save Locally",
|
|
103
|
+
cancelChangesBtn: "Cancel Changes",
|
|
104
|
+
editBtn: "Edit",
|
|
105
|
+
clearBtn: "Clear",
|
|
106
|
+
applyLanguageBtn: "β Apply Language",
|
|
107
|
+
enabledBtn: "Enabled",
|
|
108
|
+
disabledBtn: "Disabled",
|
|
109
|
+
okSaveBtn: "OK β Save",
|
|
110
|
+
enableBtn: "Enable",
|
|
111
|
+
streamingTextBtn: "Streaming Text Only β",
|
|
112
|
+
streamingPulseBtn: "Streaming Pulse Audio",
|
|
113
|
+
continueArrowBtn: "Continue β",
|
|
114
|
+
acceptInstallBtn: "β Accept & Install",
|
|
115
|
+
okDoneBtn: "β OK β Done",
|
|
116
|
+
doneCustomizeBtn: "β Done - Customize More",
|
|
117
|
+
doneQuitBtn: "β Done - Quit",
|
|
118
|
+
editInstallBtn: "Edit",
|
|
119
|
+
musicDisabledMsg: "Music is disabled. Enable it now?",
|
|
120
|
+
settingsFooter: "[ββ] Group [ββ] Sibling/Sub-tab [Enter/Space] Activate [Tab] Switch Tab [Q] Quit",
|
|
121
|
+
voicesFooter: "[ββ/jk] Navigate [Space] Preview [Enter] Select/Install [F] Favorite [/] Search",
|
|
122
|
+
musicFooter: "[ββ/jk] Navigate [Space] Preview [Enter] Select [M] Toggle [*] Favorite [F] Filter [Q] Quit",
|
|
123
|
+
helpFooter: "[ββ/jk] Scroll [/] Search [PgUp/PgDn] Page [S/V/M/A/R] Tab [Q] Quit",
|
|
124
|
+
readmeFooter: "[ββ/jk] Scroll [PgUp/PgDn] Page [/] Search [S/V/M/A/R] Tab [Q] Quit",
|
|
125
|
+
receiverFooter: "SSH Receiver [Q] Quit",
|
|
126
|
+
searchLabel: "Search:",
|
|
127
|
+
settingsSavedMsg: "Settings Saved",
|
|
128
|
+
changesRevertedMsg: "Changes reverted",
|
|
129
|
+
musicBuiltInHeader: "ββ Built-in Tracks ",
|
|
130
|
+
musicStatusHeader: "ββ Music Status ",
|
|
131
|
+
musicStatusLabel: "Music:",
|
|
132
|
+
musicActiveTrack: "Active Track:",
|
|
133
|
+
musicFilterLabel: "Filter:",
|
|
134
|
+
musicFilterAll: "All",
|
|
135
|
+
musicFilterFavs: "Favorites",
|
|
136
|
+
musicToggleBtn: "[Toggle Music]",
|
|
137
|
+
musicAddCustomBtn: "[Add Custom Track]",
|
|
138
|
+
voicesHeader: "ββ Voices ",
|
|
139
|
+
voicesColName: "Name",
|
|
140
|
+
voicesColGender: "Gender",
|
|
141
|
+
voicesColProvider: "Provider",
|
|
142
|
+
voicesInfoHeader: "ββ Voice Info ",
|
|
143
|
+
voicesSwitchBtn: "[Switch Voice]",
|
|
144
|
+
voicesFavoriteBtn: "[+ Thumbs Up]",
|
|
145
|
+
voicesDownloadBtn: "[Download Voice]",
|
|
146
|
+
voicesRowHintInstalled: "[Space] Preview [Enter] Select [+/*] Up [-] Down",
|
|
147
|
+
voicesRowHintUninstalled: "[Enter] Download & Install",
|
|
148
|
+
musicRowHint: "[Space] Play [Enter] Select [+/*] Favorite",
|
|
149
|
+
musicHintText: "[Space] preview [Enter] set as background track [+/*] favorite",
|
|
150
|
+
genderFemale: "Female",
|
|
151
|
+
genderMale: "Male",
|
|
152
|
+
voiceInfoVoice: "Voice:",
|
|
153
|
+
voiceInfoGender: "Gender:",
|
|
154
|
+
voiceInfoLanguage: "Language:",
|
|
155
|
+
voiceInfoQuality: "Quality:",
|
|
156
|
+
voiceInfoProvider: "Provider:",
|
|
157
|
+
voiceInfoId: "ID:",
|
|
158
|
+
voiceInfoSpeaker: "Speaker:",
|
|
159
|
+
voiceInfoModel: "Model:",
|
|
160
|
+
voiceInfoSpeakerId: "Speaker ID:",
|
|
161
|
+
voiceInfoDownload: "β¬ Press [Enter] to download and install",
|
|
162
|
+
voicePlaying: "(playing)",
|
|
163
|
+
bmadTitle: "π§ BMAD Agents",
|
|
164
|
+
bmadWhatIsHeader: "What is BMAD?",
|
|
165
|
+
bmadDesc: "The BMad Method (Build More Architect Dreams) is an AI-driven development\nframework module within the BMad Method Ecosystem that helps you build\nsoftware through the whole process from ideation and planning all the way\nthrough agentic implementation. It provides specialized AI agents, guided\nworkflows, and intelligent planning that adapts to your project's\ncomplexity, whether you're fixing a bug or building an enterprise platform.\n\nIf you're comfortable working with AI coding assistants like Claude,\nCursor, or GitHub Copilot, you're ready to get started.",
|
|
166
|
+
bmadInstallHeader: "Install BMAD in your project:",
|
|
167
|
+
bmadLearnMoreHeader: "Learn more:",
|
|
168
|
+
bmadInstalledNote: "Once BMAD is installed, this tab will show all your agents and let you\ncustomize each agent's voice, pretext, reverb, personality, and background\nmusic independently.",
|
|
169
|
+
receiverWhatIsTitle: "What is SSH Receiver?",
|
|
170
|
+
receiverDesc: "SSH Receiver lets your remote servers speak through this machine.\nWhen an AI assistant on a remote server (VPS, cloud, dev box) needs\nto play TTS audio, it sends the text over SSH to this machine, which\ngenerates and plays the audio through your speakers locally.\n\nRemote AI ββ[SSH]βββΊ This Machine ββ[piper+sox+ffmpeg]βββΊ Your Speakers",
|
|
171
|
+
helpSectionGlobal: "Global Shortcuts",
|
|
172
|
+
helpSectionNavigation: "Navigation Shortcuts",
|
|
173
|
+
helpSectionColors: "Tab Color Guide",
|
|
174
|
+
helpQuit: "Quit the console",
|
|
175
|
+
helpForceQuit: "Force quit",
|
|
176
|
+
helpSwitchSettings: "Switch to Settings tab",
|
|
177
|
+
helpSwitchVoices: "Switch to Voices tab",
|
|
178
|
+
helpSwitchMusic: "Switch to Music tab",
|
|
179
|
+
helpSwitchReadme: "Switch to Readme tab",
|
|
180
|
+
helpSwitchHelp: "Switch to Help tab",
|
|
181
|
+
helpSwitchInstall: "Switch to Install tab",
|
|
182
|
+
helpCloseModal: "Close modal / go back",
|
|
183
|
+
helpNavigateLists: "Navigate lists",
|
|
184
|
+
helpSelectActivate: "Select / activate",
|
|
185
|
+
helpTogglePreview: "Toggle / preview",
|
|
186
|
+
helpNextButton: "Next button",
|
|
187
|
+
helpPrevButton: "Previous button",
|
|
188
|
+
helpOpenSearch: "Open search/filter",
|
|
189
|
+
helpToggleFavFilter: "Toggle favorites filter (Voices/Music)",
|
|
190
|
+
helpToggleFav: "Toggle favorite (Music tab)",
|
|
191
|
+
helpToggleMusic: "Toggle music on/off (Music tab)",
|
|
192
|
+
helpColorSettings: "Settings tab footer",
|
|
193
|
+
helpColorVoices: "Voices tab footer",
|
|
194
|
+
helpColorMusic: "Music tab footer",
|
|
195
|
+
helpColorReadme: "Readme tab footer",
|
|
196
|
+
helpColorHelp: "Help tab footer",
|
|
197
|
+
helpColorInstall: "Install tab footer",
|
|
198
|
+
helpSearchLabel: "Search:",
|
|
199
|
+
readmeScrollMore: "β Scroll for more content β",
|
|
200
|
+
readmeNotFound: "*(No README.md found in current directory)*",
|
|
201
|
+
bmadFooterNobmad: "[Tab] Switch Tab [Q] Quit",
|
|
202
|
+
bmadFooterBmad: "[ββ/jk] Navigate [Space] Preview [Enter] Configure [A] Auto-assign [B] Bulk [X] Reset [Q] Quit",
|
|
203
203
|
};
|
package/src/installer.js
CHANGED
|
@@ -4298,14 +4298,17 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4298
4298
|
const mcpConfigPath = path.join(targetDir, '.mcp.json');
|
|
4299
4299
|
|
|
4300
4300
|
// MCP server configuration for AgentVibes.
|
|
4301
|
-
//
|
|
4302
|
-
//
|
|
4301
|
+
//
|
|
4302
|
+
// No `env.AGENTVIBES_LLM` block: GitHub Copilot CLI also reads project
|
|
4303
|
+
// `.mcp.json` with precedence over its own `~/.copilot/mcp-config.json`,
|
|
4304
|
+
// so setting `claude-code` here would mis-route Copilot CLI too.
|
|
4305
|
+
// Instead, the MCP server auto-detects Claude Code via the `CLAUDECODE=1`
|
|
4306
|
+
// env var that Claude Code sets on every subprocess it spawns.
|
|
4303
4307
|
const mcpConfig = {
|
|
4304
4308
|
mcpServers: {
|
|
4305
4309
|
agentvibes: {
|
|
4306
4310
|
command: 'npx',
|
|
4307
|
-
args: ['-y', '--package=agentvibes', 'agentvibes-mcp-server']
|
|
4308
|
-
env: { AGENTVIBES_LLM: 'claude-code' }
|
|
4311
|
+
args: ['-y', '--package=agentvibes', 'agentvibes-mcp-server']
|
|
4309
4312
|
}
|
|
4310
4313
|
}
|
|
4311
4314
|
};
|
|
@@ -4320,10 +4323,13 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4320
4323
|
}
|
|
4321
4324
|
|
|
4322
4325
|
if (mcpExists) {
|
|
4323
|
-
// Existing config:
|
|
4324
|
-
//
|
|
4325
|
-
//
|
|
4326
|
-
//
|
|
4326
|
+
// Existing config: upgrade it in-place. Two jobs:
|
|
4327
|
+
// 1. Ensure the agentvibes server entry exists.
|
|
4328
|
+
// 2. STRIP any stale `env.AGENTVIBES_LLM` from earlier versions
|
|
4329
|
+
// (v5.1.2..v5.1.4) β setting it in `.mcp.json` broke Copilot CLI
|
|
4330
|
+
// routing because Copilot CLI also reads `.mcp.json` and would
|
|
4331
|
+
// adopt claude-code's env. Claude Code is now auto-detected
|
|
4332
|
+
// downstream via the CLAUDECODE=1 env var.
|
|
4327
4333
|
let migrated = false;
|
|
4328
4334
|
let migrationError = null;
|
|
4329
4335
|
try {
|
|
@@ -4334,20 +4340,21 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4334
4340
|
existingCfg.mcpServers = {};
|
|
4335
4341
|
}
|
|
4336
4342
|
const current = existingCfg.mcpServers.agentvibes;
|
|
4337
|
-
const
|
|
4338
|
-
|
|
4339
|
-
// is missing OR its env doesn't include the AGENTVIBES_LLM key.
|
|
4340
|
-
const needsWrite =
|
|
4341
|
-
!current ||
|
|
4342
|
-
!current.env ||
|
|
4343
|
-
current.env.AGENTVIBES_LLM !== 'claude-code';
|
|
4343
|
+
const hasStaleEnv = current?.env?.AGENTVIBES_LLM !== undefined;
|
|
4344
|
+
const needsWrite = !current || hasStaleEnv;
|
|
4344
4345
|
if (needsWrite) {
|
|
4345
|
-
|
|
4346
|
+
// Preserve any OTHER env keys the user added manually (rare) but
|
|
4347
|
+
// drop AGENTVIBES_LLM so Copilot CLI doesn't mis-route.
|
|
4348
|
+
const cleanEnv = { ...(current?.env ?? {}) };
|
|
4349
|
+
delete cleanEnv.AGENTVIBES_LLM;
|
|
4350
|
+
const newEntry = {
|
|
4346
4351
|
command: 'npx',
|
|
4347
4352
|
args: ['-y', '--package=agentvibes', 'agentvibes-mcp-server'],
|
|
4348
|
-
// Preserve any other env keys the user added manually.
|
|
4349
|
-
env: { ...(current?.env ?? {}), ...wantEnv },
|
|
4350
4353
|
};
|
|
4354
|
+
if (Object.keys(cleanEnv).length > 0) {
|
|
4355
|
+
newEntry.env = cleanEnv;
|
|
4356
|
+
}
|
|
4357
|
+
existingCfg.mcpServers.agentvibes = newEntry;
|
|
4351
4358
|
await fs.writeFile(mcpConfigPath, JSON.stringify(existingCfg, null, 2) + '\n');
|
|
4352
4359
|
migrated = true;
|
|
4353
4360
|
}
|
|
@@ -4360,9 +4367,8 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4360
4367
|
console.log(
|
|
4361
4368
|
boxen(
|
|
4362
4369
|
chalk.green.bold('β
MCP Configuration Updated\n\n') +
|
|
4363
|
-
chalk.white('Your existing ') + chalk.cyan('.mcp.json') + chalk.white(' has been updated
|
|
4364
|
-
chalk.white('
|
|
4365
|
-
chalk.cyan('AGENTVIBES_LLM=claude-code') + chalk.white(' env var for per-LLM routing.'),
|
|
4370
|
+
chalk.white('Your existing ') + chalk.cyan('.mcp.json') + chalk.white(' has been updated.\n') +
|
|
4371
|
+
chalk.white('Claude Code is auto-detected via ') + chalk.cyan('CLAUDECODE=1') + chalk.white(' at runtime.'),
|
|
4366
4372
|
{
|
|
4367
4373
|
padding: 1,
|
|
4368
4374
|
margin: { top: 1, bottom: 1, left: 0, right: 0 },
|
|
@@ -4397,8 +4403,7 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4397
4403
|
console.log(
|
|
4398
4404
|
'\n"agentvibes": {\n' +
|
|
4399
4405
|
' "command": "npx",\n' +
|
|
4400
|
-
' "args": ["-y", "--package=agentvibes", "agentvibes-mcp-server"]
|
|
4401
|
-
' "env": { "AGENTVIBES_LLM": "claude-code" }\n' +
|
|
4406
|
+
' "args": ["-y", "--package=agentvibes", "agentvibes-mcp-server"]\n' +
|
|
4402
4407
|
'}\n'
|
|
4403
4408
|
);
|
|
4404
4409
|
|
|
@@ -4503,8 +4508,7 @@ async function handleMcpConfiguration(targetDir, options) {
|
|
|
4503
4508
|
' "mcpServers": {\n' +
|
|
4504
4509
|
' "agentvibes": {\n' +
|
|
4505
4510
|
' "command": "npx",\n' +
|
|
4506
|
-
' "args": ["-y", "--package=agentvibes", "agentvibes-mcp-server"]
|
|
4507
|
-
' "env": { "AGENTVIBES_LLM": "claude-code" }\n' +
|
|
4511
|
+
' "args": ["-y", "--package=agentvibes", "agentvibes-mcp-server"]\n' +
|
|
4508
4512
|
' }\n' +
|
|
4509
4513
|
' }\n' +
|
|
4510
4514
|
'}\n'
|