agentvibes 5.7.6 → 5.9.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 (137) hide show
  1. package/.agentvibes/config.json +12 -5
  2. package/.agentvibes/install-manifest.json +188 -300
  3. package/.claude/audio/tracks/celestial_velvet.mp3 +0 -0
  4. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  5. package/.claude/commands/agent-vibes-rdp.md +24 -24
  6. package/.claude/config/audio-effects.cfg +3 -2
  7. package/.claude/config/audio-effects.cfg.sample +52 -52
  8. package/.claude/config/background-music-enabled.txt +1 -0
  9. package/.claude/config/background-music-position.txt +1 -1
  10. package/.claude/config/language.txt +1 -0
  11. package/.claude/docs/TERMUX_SETUP.md +408 -408
  12. package/.claude/hooks/audio-cache-utils.sh +0 -0
  13. package/.claude/hooks/audio-processor.sh +0 -0
  14. package/.claude/hooks/background-music-manager.sh +0 -0
  15. package/.claude/hooks/bmad-party-speak.sh +27 -6
  16. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  17. package/.claude/hooks/bmad-speak.sh +0 -0
  18. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  19. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  20. package/.claude/hooks/clawdbot-receiver-SECURE.sh +0 -0
  21. package/.claude/hooks/clawdbot-receiver.sh +0 -0
  22. package/.claude/hooks/clean-audio-cache.sh +0 -0
  23. package/.claude/hooks/cleanup-cache.sh +0 -0
  24. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  25. package/.claude/hooks/download-extra-voices.sh +0 -0
  26. package/.claude/hooks/effects-manager.sh +0 -0
  27. package/.claude/hooks/github-star-reminder.sh +0 -0
  28. package/.claude/hooks/language-manager.sh +0 -0
  29. package/.claude/hooks/learn-manager.sh +0 -0
  30. package/.claude/hooks/macos-voice-manager.sh +0 -0
  31. package/.claude/hooks/migrate-background-music.sh +0 -0
  32. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  33. package/.claude/hooks/optimize-background-music.sh +0 -0
  34. package/.claude/hooks/path-resolver.sh +0 -0
  35. package/.claude/hooks/personality-manager.sh +0 -0
  36. package/.claude/hooks/piper-download-voices.sh +0 -0
  37. package/.claude/hooks/piper-installer.sh +0 -0
  38. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  39. package/.claude/hooks/piper-voice-manager.sh +0 -0
  40. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +0 -0
  41. package/.claude/hooks/play-tts-agentvibes-receiver.sh +1 -0
  42. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  43. package/.claude/hooks/play-tts-macos.sh +0 -0
  44. package/.claude/hooks/play-tts-piper.sh +0 -0
  45. package/.claude/hooks/play-tts-soprano.sh +0 -0
  46. package/.claude/hooks/play-tts-ssh-remote.sh +11 -8
  47. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  48. package/.claude/hooks/play-tts-windows-receiver.sh +0 -0
  49. package/.claude/hooks/play-tts.sh +0 -0
  50. package/.claude/hooks/prepare-release.sh +0 -0
  51. package/.claude/hooks/provider-commands.sh +0 -0
  52. package/.claude/hooks/provider-manager.sh +0 -0
  53. package/.claude/hooks/replay-target-audio.sh +0 -0
  54. package/.claude/hooks/requirements.txt +6 -6
  55. package/.claude/hooks/sentiment-manager.sh +0 -0
  56. package/.claude/hooks/session-start-tts.sh +0 -0
  57. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  58. package/.claude/hooks/speed-manager.sh +0 -0
  59. package/.claude/hooks/stop-tts.sh +0 -0
  60. package/.claude/hooks/termux-installer.sh +0 -0
  61. package/.claude/hooks/translate-manager.sh +0 -0
  62. package/.claude/hooks/translator.py +237 -237
  63. package/.claude/hooks/tts-queue-worker.sh +0 -0
  64. package/.claude/hooks/tts-queue.sh +0 -0
  65. package/.claude/hooks/verbosity-manager.sh +0 -0
  66. package/.claude/hooks/voice-manager.sh +0 -0
  67. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  68. package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +119 -0
  69. package/.claude/hooks-windows/bmad-speak.ps1 +9 -38
  70. package/.claude/hooks-windows/play-tts-soprano.ps1 +13 -2
  71. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  72. package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +153 -0
  73. package/.claude/piper-voices-dir.txt +1 -1
  74. package/.claude/verbosity.txt +1 -1
  75. package/.clawdbot/README.md +105 -105
  76. package/.mcp.json +5 -14
  77. package/README.md +43 -2
  78. package/RELEASE_NOTES.md +110 -0
  79. package/WINDOWS-SETUP.md +208 -208
  80. package/bin/agent-vibes +39 -39
  81. package/bin/agentvibes-voice-browser.js +0 -0
  82. package/bin/agentvibes.js +0 -0
  83. package/bin/mcp-server.js +121 -121
  84. package/bin/mcp-server.sh +0 -0
  85. package/bin/test-bmad-pr +78 -78
  86. package/mcp-server/QUICK_START.md +203 -203
  87. package/mcp-server/README.md +345 -345
  88. package/mcp-server/WINDOWS_SETUP.md +0 -0
  89. package/mcp-server/examples/claude_desktop_config.json +11 -11
  90. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  91. package/mcp-server/examples/custom_instructions.md +169 -169
  92. package/mcp-server/install-deps.js +0 -0
  93. package/mcp-server/server.py +1797 -1797
  94. package/mcp-server/test_server.py +0 -0
  95. package/package.json +1 -1
  96. package/src/cli/list-personalities.js +110 -110
  97. package/src/cli/list-voices.js +114 -114
  98. package/src/commands/bmad-voices.js +394 -394
  99. package/src/commands/install-mcp.js +476 -476
  100. package/src/console/audio-env.js +4 -1
  101. package/src/console/brand-colors.js +13 -13
  102. package/src/console/constants/personalities.js +44 -44
  103. package/src/console/tabs/agents-tab.js +85 -62
  104. package/src/console/tabs/help-tab.js +314 -314
  105. package/src/console/tabs/music-tab.js +3 -0
  106. package/src/console/tabs/readme-tab.js +272 -272
  107. package/src/console/tabs/setup-tab.js +285 -41
  108. package/src/console/tabs/voices-tab.js +14 -2
  109. package/src/console/widgets/destroy-list.js +25 -25
  110. package/src/console/widgets/notice.js +55 -55
  111. package/src/i18n/de.js +202 -202
  112. package/src/i18n/es.js +202 -202
  113. package/src/i18n/fr.js +202 -202
  114. package/src/i18n/hi.js +202 -202
  115. package/src/i18n/ja.js +202 -202
  116. package/src/i18n/ko.js +202 -202
  117. package/src/i18n/pt.js +202 -202
  118. package/src/i18n/strings.js +54 -54
  119. package/src/i18n/zh-CN.js +202 -202
  120. package/src/installer/language-screen.js +31 -31
  121. package/src/installer/music-file-input.js +304 -304
  122. package/src/installer.js +0 -0
  123. package/src/services/config-service.js +264 -264
  124. package/src/services/language-service.js +47 -47
  125. package/src/services/provider-service.js +143 -143
  126. package/src/utils/audio-duration-validator.js +298 -298
  127. package/src/utils/audio-format-validator.js +277 -277
  128. package/src/utils/dependency-checker.js +469 -469
  129. package/src/utils/file-ownership-verifier.js +358 -358
  130. package/src/utils/list-formatter.js +194 -194
  131. package/src/utils/music-file-validator.js +285 -285
  132. package/src/utils/preview-list-prompt.js +136 -136
  133. package/src/utils/secure-music-storage.js +412 -412
  134. package/templates/agentvibes-receiver.sh +231 -231
  135. package/templates/audio/welcome-music.mp3 +0 -0
  136. package/.claude/hooks/bmad-party-manager.sh +0 -225
  137. package/.claude/hooks/stop.sh +0 -38
package/src/i18n/pt.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: "Idioma aplicado",
4
- welcomeTitle: "Bem-vindo ao AgentVibes!",
5
- installDetails: "Detalhes da instalação",
6
- installLocation: "Local de instalação",
7
- packageVersion: "Versão do pacote",
8
- readyToConfigure: "Pronto para configurar o AgentVibes?",
9
- installationCancelled: "Instalação cancelada.",
10
- startInstall: "Iniciar instalação",
11
- installationCancelledMsg: "A instalação foi cancelada pelo usuário.",
12
- installedSuccess: "AgentVibes instalado com sucesso!",
13
- installComplete: "Instalação concluída",
14
- installationFailed: "Falha na instalação",
15
- installing: "Instalando AgentVibes...",
16
- providerLabel: "Provedor",
17
- voiceLabel: "Voz",
18
- locationLabel: "Local",
19
- versionLabel: "Versão",
20
- configurationSetup: "Configuração",
21
- configurationIntro: "Por favor, configure sua instalação do AgentVibes.",
22
- navigationHint: "Use as teclas de seta para navegar entre as páginas.",
23
- nonInteractiveDetected: "Modo não interativo detectado",
24
- installError: "Falha na instalação",
25
- continuePrompt: "Continuar",
26
- cancelPrompt: "Cancelar",
27
- setupWizard: "Assistente de Configuração",
28
- setupWizardSubtitle: "TTS para assistentes de IA com personalidade.",
29
- dependencyCheck: "Verificação de Dependências",
30
- checkingDependencies: "Verificando dependências...",
31
- depColumn: "Dependência",
32
- statusColumn: "Status",
33
- installed: "Instalado",
34
- notFound: "Não encontrado",
35
- ffmpegMissing: "Não encontrado (necessário para música de fundo)",
36
- ttsDetected: "Provedores TTS Detectados",
37
- noTtsFound: "Nenhum provedor TTS encontrado. Instale o Piper ou Soprano primeiro.",
38
- providerSelection: "Seleção de Provedor",
39
- availableProviders: "Provedores TTS disponíveis:",
40
- providerAndVoice: "Provedor e Voz",
41
- voiceChangeHint: "(após instalação, pode alterar em Configurações)",
42
- introText: "Texto de Introdução",
43
- introTextLabel: "Texto intro",
44
- none: "nenhum",
45
- example: "Exemplo",
46
- screen1Hint: "Tela 1/5: Boas-vindas | [←/→] Navegar | [Enter] Começar | [Esc] Sair",
47
- screen2Hint: "Tela 2/5: Dependências | [←] Voltar | [Enter] Próximo",
48
- screen3Hint: "Tela 3/5: Provedor | [←] Voltar | [↑↓] Escolher | [Enter/→] Confirmar",
49
- screen4Hint: "Tela 4/5: Configurar | [Esc] Voltar | [E] Editar | [↓] Aceitar e Instalar",
50
- screen5HintDone: "Tela 5/5: Completo | [Enter] OK — Concluído",
51
- screen5HintWait: "Tela 5/5: Instalando... | Aguarde",
52
- languageSettings: "Idioma",
53
- languageSettingsSubtitle: "Selecionar idioma da interface",
54
- currentLanguage: "Idioma atual",
55
- changeLanguage: "Alterar idioma",
56
- beginBtn: "▶ Começar",
57
- exitBtn: "✗ Sair",
58
- footerText: "[Enter] Continuar/Concluir [Esc] Voltar/Sair [C] Console [S/V/M/A/R] Tab [Q] Sair",
59
- customizationTool: "Ferramenta de Personalização",
60
- quitLabel: "[Q] Sair",
61
- tabInstall: "Instalar",
62
- tabSettings: "Configurações",
63
- tabVoices: "Vozes",
64
- tabMusic: "Música",
65
- tabBmad: "BMad",
66
- tabReceiver: "Receptor",
67
- tabReadme: "Leiame",
68
- tabHelp: "Ajuda",
69
- subTabVoice: " [V] Voz ",
70
- subTabEffects: " [E] Efeitos ",
71
- subTabPersonality: " [P] Personalidade ",
72
- subTabOutput: " [O] Saída ",
73
- subTabLanguage: " [L] Idioma ",
74
- sectionProviderVoice: " 🎤 Provedor e Voz ",
75
- sectionAudioEffects: " ⚡ Efeitos de Áudio ",
76
- sectionBgMusic: " 🎸 Música de Fundo ",
77
- sectionStyle: " 🎭 Estilo ",
78
- sectionIntroText: " ✍️ Texto de Intro ",
79
- sectionAudioDest: " 📡 Destino de Áudio ",
80
- sectionConfigStorage: " 💾 Armazenamento de Config ",
81
- sectionLanguage: " 🌐 Idioma ",
82
- providerRowLabel: "Provedor:",
83
- currentVoiceLabel: "Voz Atual:",
84
- reverbLabel: "Reverb:",
85
- trackLabel: "Faixa:",
86
- volumeLabel: "Volume:",
87
- verbosityLabel: "Verbosidade:",
88
- personalityLabel: "Personalidade:",
89
- introTextRowLabel: "Texto Intro:",
90
- destinationLabel: "Destino:",
91
- sshAliasLabel: "Alias SSH:",
92
- globalLabel: "Global:",
93
- localLabel: "Local:",
94
- languageLabel: "Idioma:",
95
- switchBtn: "Trocar",
96
- changeBtn: "Alterar",
97
- playBtn: "▶ Reproduzir",
98
- stopBtn: "■ Parar",
99
- previewBtn: "▶ Visualizar",
100
- fullPreviewBtn: "▶ Visualização Completa",
101
- saveGloballyBtn: "Salvar Global",
102
- saveLocallyBtn: "Salvar Local",
103
- cancelChangesBtn: "Cancelar Alterações",
104
- editBtn: "Editar",
105
- clearBtn: "Limpar",
106
- applyLanguageBtn: "✓ Aplicar Idioma",
107
- enabledBtn: "Ativado",
108
- disabledBtn: "Desativado",
109
- okSaveBtn: "OK — Salvar",
110
- enableBtn: "Ativar",
111
- streamingTextBtn: "Apenas Texto Streaming ✓",
112
- streamingPulseBtn: "Streaming Áudio Pulse",
113
- continueArrowBtn: "Continuar →",
114
- acceptInstallBtn: "✓ Aceitar e Instalar",
115
- okDoneBtn: "✓ OK — Concluído",
116
- doneCustomizeBtn: "✓ Concluído - Personalizar mais",
117
- doneQuitBtn: "✕ Concluído - Sair",
118
- editInstallBtn: "Editar",
119
- musicDisabledMsg: "Música desativada. Ativar agora?",
120
- settingsFooter: "[↑↓] Grupo [←→] Irmão/Sub-tab [Enter/Space] Ativar [Tab] Trocar Tab [Q] Sair",
121
- voicesFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [F] Favorito [/] Buscar",
122
- musicFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [M] Alternar [*] Favorito [F] Filtrar [Q] Sair",
123
- helpFooter: "[↑↓/jk] Rolar [/] Buscar [PgUp/PgDn] Página [S/V/M/A/R] Tab [Q] Sair",
124
- readmeFooter: "[↑↓/jk] Rolar [PgUp/PgDn] Página [/] Buscar [S/V/M/A/R] Tab [Q] Sair",
125
- receiverFooter: "Receptor SSH [Q] Sair",
126
- searchLabel: "Buscar:",
127
- settingsSavedMsg: "Configurações Salvas",
128
- changesRevertedMsg: "Alterações revertidas",
129
- musicBuiltInHeader: "── Faixas Integradas ",
130
- musicStatusHeader: "── Status da Música ",
131
- musicStatusLabel: "Música:",
132
- musicActiveTrack: "Faixa Ativa:",
133
- musicFilterLabel: "Filtro:",
134
- musicFilterAll: "Todos",
135
- musicFilterFavs: "Favoritos",
136
- musicToggleBtn: "[Ativar/Desativar Música]",
137
- musicAddCustomBtn: "[Adicionar Faixa]",
138
- voicesHeader: "── Vozes ",
139
- voicesColName: "Nome",
140
- voicesColGender: "Gênero",
141
- voicesColProvider: "Provedor",
142
- voicesInfoHeader: "── Info da Voz ",
143
- voicesSwitchBtn: "[Trocar Voz]",
144
- voicesFavoriteBtn: "[★ Favorito]",
145
- voicesDownloadBtn: "[Baixar Voz]",
146
- voicesRowHintInstalled: "[Space] Visualizar [Enter] Selecionar [*] Favorito",
147
- voicesRowHintUninstalled: "[Enter] Baixar e instalar",
148
- musicRowHint: "[Space] Reproduzir [Enter] Selecionar [*] Favorito",
149
- musicHintText: "[Space] visualizar [Enter] definir faixa [*] favorito",
150
- genderFemale: "Feminino",
151
- genderMale: "Masculino",
152
- voiceInfoVoice: "Voz:",
153
- voiceInfoGender: "Gênero:",
154
- voiceInfoLanguage: "Idioma:",
155
- voiceInfoQuality: "Qualidade:",
156
- voiceInfoProvider: "Provedor:",
157
- voiceInfoId: "ID:",
158
- voiceInfoSpeaker: "Locutor:",
159
- voiceInfoModel: "Modelo:",
160
- voiceInfoSpeakerId: "ID do Locutor:",
161
- voiceInfoDownload: "⬇ Pressionar [Enter] para baixar e instalar",
162
- voicePlaying: "(reproduzindo)",
163
- bmadTitle: "🧙 Agentes BMAD",
164
- bmadWhatIsHeader: "O que é BMAD?",
165
- bmadDesc: "O Método BMad (Build More Architect Dreams) é um módulo de framework\nde desenvolvimento orientado por IA que ajuda você a construir software\nde ponta a ponta, da ideação à implementação agêntica. Fornece agentes IA\nespecializados, fluxos de trabalho guiados e planejamento inteligente.\n\nSe você está confortável trabalhando com assistentes de codificação IA\ncomo Claude, Cursor ou GitHub Copilot, você está pronto para começar.",
166
- bmadInstallHeader: "Instalar BMAD no seu projeto:",
167
- bmadLearnMoreHeader: "Saiba mais:",
168
- bmadInstalledNote: "Uma vez que o BMAD estiver instalado, esta aba mostrará todos os seus\nagentes e permitirá personalizar a voz, pretexto, reverb, personalidade\ne música de fundo de cada agente independentemente.",
169
- receiverWhatIsTitle: "O que é o Receptor SSH?",
170
- receiverDesc: "O Receptor SSH permite que seus servidores remotos falem através desta\nmáquina. Quando um assistente de IA em um servidor remoto precisa\nreproduzir áudio TTS, ele envia o texto via SSH para esta máquina, que\ngera e reproduz o áudio pelos seus alto-falantes localmente.\n\nIA Remota ──[SSH]──► Esta Máquina ──[piper+sox+ffmpeg]──► Seus Alto-falantes",
171
- helpSectionGlobal: "Atalhos Globais",
172
- helpSectionNavigation: "Atalhos de Navegação",
173
- helpSectionColors: "Guia de Cores das Abas",
174
- helpQuit: "Sair do console",
175
- helpForceQuit: "Forçar saída",
176
- helpSwitchSettings: "Ir para aba Configurações",
177
- helpSwitchVoices: "Ir para aba Vozes",
178
- helpSwitchMusic: "Ir para aba Música",
179
- helpSwitchReadme: "Ir para aba Readme",
180
- helpSwitchHelp: "Ir para aba Ajuda",
181
- helpSwitchInstall: "Ir para aba Instalar",
182
- helpCloseModal: "Fechar modal / voltar",
183
- helpNavigateLists: "Navegar listas",
184
- helpSelectActivate: "Selecionar / ativar",
185
- helpTogglePreview: "Alternar / visualizar",
186
- helpNextButton: "Próximo botão",
187
- helpPrevButton: "Botão anterior",
188
- helpOpenSearch: "Abrir busca/filtro",
189
- helpToggleFavFilter: "Alternar filtro de favoritos (Vozes/Música)",
190
- helpToggleFav: "Alternar favorito (aba Música)",
191
- helpToggleMusic: "Ativar/desativar música (aba Música)",
192
- helpColorSettings: "Rodapé da aba Configurações",
193
- helpColorVoices: "Rodapé da aba Vozes",
194
- helpColorMusic: "Rodapé da aba Música",
195
- helpColorReadme: "Rodapé da aba Readme",
196
- helpColorHelp: "Rodapé da aba Ajuda",
197
- helpColorInstall: "Rodapé da aba Instalar",
198
- helpSearchLabel: "Buscar:",
199
- readmeScrollMore: "↓ Role para mais conteúdo ↓",
200
- readmeNotFound: "*(Nenhum README.md encontrado no diretório atual)*",
201
- bmadFooterNobmad: "[Tab] Mudar Aba [Q] Sair",
202
- bmadFooterBmad: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Configurar [A] Auto-atribuir [B] Lote [X] Redefinir [Q] Sair",
1
+ export default {
2
+ languageSelectTitle: "🌐 Select Language / Seleccionar Idioma / Choisir la langue / Sprache wählen / Selecionar Idioma / 言語を選択 / भाषा चुनें / 选择语言 / 언어 선택",
3
+ languageApplied: "Idioma aplicado",
4
+ welcomeTitle: "Bem-vindo ao AgentVibes!",
5
+ installDetails: "Detalhes da instalação",
6
+ installLocation: "Local de instalação",
7
+ packageVersion: "Versão do pacote",
8
+ readyToConfigure: "Pronto para configurar o AgentVibes?",
9
+ installationCancelled: "Instalação cancelada.",
10
+ startInstall: "Iniciar instalação",
11
+ installationCancelledMsg: "A instalação foi cancelada pelo usuário.",
12
+ installedSuccess: "AgentVibes instalado com sucesso!",
13
+ installComplete: "Instalação concluída",
14
+ installationFailed: "Falha na instalação",
15
+ installing: "Instalando AgentVibes...",
16
+ providerLabel: "Provedor",
17
+ voiceLabel: "Voz",
18
+ locationLabel: "Local",
19
+ versionLabel: "Versão",
20
+ configurationSetup: "Configuração",
21
+ configurationIntro: "Por favor, configure sua instalação do AgentVibes.",
22
+ navigationHint: "Use as teclas de seta para navegar entre as páginas.",
23
+ nonInteractiveDetected: "Modo não interativo detectado",
24
+ installError: "Falha na instalação",
25
+ continuePrompt: "Continuar",
26
+ cancelPrompt: "Cancelar",
27
+ setupWizard: "Assistente de Configuração",
28
+ setupWizardSubtitle: "TTS para assistentes de IA com personalidade.",
29
+ dependencyCheck: "Verificação de Dependências",
30
+ checkingDependencies: "Verificando dependências...",
31
+ depColumn: "Dependência",
32
+ statusColumn: "Status",
33
+ installed: "Instalado",
34
+ notFound: "Não encontrado",
35
+ ffmpegMissing: "Não encontrado (necessário para música de fundo)",
36
+ ttsDetected: "Provedores TTS Detectados",
37
+ noTtsFound: "Nenhum provedor TTS encontrado. Instale o Piper ou Soprano primeiro.",
38
+ providerSelection: "Seleção de Provedor",
39
+ availableProviders: "Provedores TTS disponíveis:",
40
+ providerAndVoice: "Provedor e Voz",
41
+ voiceChangeHint: "(após instalação, pode alterar em Configurações)",
42
+ introText: "Texto de Introdução",
43
+ introTextLabel: "Texto intro",
44
+ none: "nenhum",
45
+ example: "Exemplo",
46
+ screen1Hint: "Tela 1/5: Boas-vindas | [←/→] Navegar | [Enter] Começar | [Esc] Sair",
47
+ screen2Hint: "Tela 2/5: Dependências | [←] Voltar | [Enter] Próximo",
48
+ screen3Hint: "Tela 3/5: Provedor | [←] Voltar | [↑↓] Escolher | [Enter/→] Confirmar",
49
+ screen4Hint: "Tela 4/5: Configurar | [Esc] Voltar | [E] Editar | [↓] Aceitar e Instalar",
50
+ screen5HintDone: "Tela 5/5: Completo | [Enter] OK — Concluído",
51
+ screen5HintWait: "Tela 5/5: Instalando... | Aguarde",
52
+ languageSettings: "Idioma",
53
+ languageSettingsSubtitle: "Selecionar idioma da interface",
54
+ currentLanguage: "Idioma atual",
55
+ changeLanguage: "Alterar idioma",
56
+ beginBtn: "▶ Começar",
57
+ exitBtn: "✗ Sair",
58
+ footerText: "[Enter] Continuar/Concluir [Esc] Voltar/Sair [C] Console [S/V/M/A/R] Tab [Q] Sair",
59
+ customizationTool: "Ferramenta de Personalização",
60
+ quitLabel: "[Q] Sair",
61
+ tabInstall: "Instalar",
62
+ tabSettings: "Configurações",
63
+ tabVoices: "Vozes",
64
+ tabMusic: "Música",
65
+ tabBmad: "BMad",
66
+ tabReceiver: "Receptor",
67
+ tabReadme: "Leiame",
68
+ tabHelp: "Ajuda",
69
+ subTabVoice: " [V] Voz ",
70
+ subTabEffects: " [E] Efeitos ",
71
+ subTabPersonality: " [P] Personalidade ",
72
+ subTabOutput: " [O] Saída ",
73
+ subTabLanguage: " [L] Idioma ",
74
+ sectionProviderVoice: " 🎤 Provedor e Voz ",
75
+ sectionAudioEffects: " ⚡ Efeitos de Áudio ",
76
+ sectionBgMusic: " 🎸 Música de Fundo ",
77
+ sectionStyle: " 🎭 Estilo ",
78
+ sectionIntroText: " ✍️ Texto de Intro ",
79
+ sectionAudioDest: " 📡 Destino de Áudio ",
80
+ sectionConfigStorage: " 💾 Armazenamento de Config ",
81
+ sectionLanguage: " 🌐 Idioma ",
82
+ providerRowLabel: "Provedor:",
83
+ currentVoiceLabel: "Voz Atual:",
84
+ reverbLabel: "Reverb:",
85
+ trackLabel: "Faixa:",
86
+ volumeLabel: "Volume:",
87
+ verbosityLabel: "Verbosidade:",
88
+ personalityLabel: "Personalidade:",
89
+ introTextRowLabel: "Texto Intro:",
90
+ destinationLabel: "Destino:",
91
+ sshAliasLabel: "Alias SSH:",
92
+ globalLabel: "Global:",
93
+ localLabel: "Local:",
94
+ languageLabel: "Idioma:",
95
+ switchBtn: "Trocar",
96
+ changeBtn: "Alterar",
97
+ playBtn: "▶ Reproduzir",
98
+ stopBtn: "■ Parar",
99
+ previewBtn: "▶ Visualizar",
100
+ fullPreviewBtn: "▶ Visualização Completa",
101
+ saveGloballyBtn: "Salvar Global",
102
+ saveLocallyBtn: "Salvar Local",
103
+ cancelChangesBtn: "Cancelar Alterações",
104
+ editBtn: "Editar",
105
+ clearBtn: "Limpar",
106
+ applyLanguageBtn: "✓ Aplicar Idioma",
107
+ enabledBtn: "Ativado",
108
+ disabledBtn: "Desativado",
109
+ okSaveBtn: "OK — Salvar",
110
+ enableBtn: "Ativar",
111
+ streamingTextBtn: "Apenas Texto Streaming ✓",
112
+ streamingPulseBtn: "Streaming Áudio Pulse",
113
+ continueArrowBtn: "Continuar →",
114
+ acceptInstallBtn: "✓ Aceitar e Instalar",
115
+ okDoneBtn: "✓ OK — Concluído",
116
+ doneCustomizeBtn: "✓ Concluído - Personalizar mais",
117
+ doneQuitBtn: "✕ Concluído - Sair",
118
+ editInstallBtn: "Editar",
119
+ musicDisabledMsg: "Música desativada. Ativar agora?",
120
+ settingsFooter: "[↑↓] Grupo [←→] Irmão/Sub-tab [Enter/Space] Ativar [Tab] Trocar Tab [Q] Sair",
121
+ voicesFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [F] Favorito [/] Buscar",
122
+ musicFooter: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Selecionar [M] Alternar [*] Favorito [F] Filtrar [Q] Sair",
123
+ helpFooter: "[↑↓/jk] Rolar [/] Buscar [PgUp/PgDn] Página [S/V/M/A/R] Tab [Q] Sair",
124
+ readmeFooter: "[↑↓/jk] Rolar [PgUp/PgDn] Página [/] Buscar [S/V/M/A/R] Tab [Q] Sair",
125
+ receiverFooter: "Receptor SSH [Q] Sair",
126
+ searchLabel: "Buscar:",
127
+ settingsSavedMsg: "Configurações Salvas",
128
+ changesRevertedMsg: "Alterações revertidas",
129
+ musicBuiltInHeader: "── Faixas Integradas ",
130
+ musicStatusHeader: "── Status da Música ",
131
+ musicStatusLabel: "Música:",
132
+ musicActiveTrack: "Faixa Ativa:",
133
+ musicFilterLabel: "Filtro:",
134
+ musicFilterAll: "Todos",
135
+ musicFilterFavs: "Favoritos",
136
+ musicToggleBtn: "[Ativar/Desativar Música]",
137
+ musicAddCustomBtn: "[Adicionar Faixa]",
138
+ voicesHeader: "── Vozes ",
139
+ voicesColName: "Nome",
140
+ voicesColGender: "Gênero",
141
+ voicesColProvider: "Provedor",
142
+ voicesInfoHeader: "── Info da Voz ",
143
+ voicesSwitchBtn: "[Trocar Voz]",
144
+ voicesFavoriteBtn: "[★ Favorito]",
145
+ voicesDownloadBtn: "[Baixar Voz]",
146
+ voicesRowHintInstalled: "[Space] Visualizar [Enter] Selecionar [*] Favorito",
147
+ voicesRowHintUninstalled: "[Enter] Baixar e instalar",
148
+ musicRowHint: "[Space] Reproduzir [Enter] Selecionar [*] Favorito",
149
+ musicHintText: "[Space] visualizar [Enter] definir faixa [*] favorito",
150
+ genderFemale: "Feminino",
151
+ genderMale: "Masculino",
152
+ voiceInfoVoice: "Voz:",
153
+ voiceInfoGender: "Gênero:",
154
+ voiceInfoLanguage: "Idioma:",
155
+ voiceInfoQuality: "Qualidade:",
156
+ voiceInfoProvider: "Provedor:",
157
+ voiceInfoId: "ID:",
158
+ voiceInfoSpeaker: "Locutor:",
159
+ voiceInfoModel: "Modelo:",
160
+ voiceInfoSpeakerId: "ID do Locutor:",
161
+ voiceInfoDownload: "⬇ Pressionar [Enter] para baixar e instalar",
162
+ voicePlaying: "(reproduzindo)",
163
+ bmadTitle: "🧙 Agentes BMAD",
164
+ bmadWhatIsHeader: "O que é BMAD?",
165
+ bmadDesc: "O Método BMad (Build More Architect Dreams) é um módulo de framework\nde desenvolvimento orientado por IA que ajuda você a construir software\nde ponta a ponta, da ideação à implementação agêntica. Fornece agentes IA\nespecializados, fluxos de trabalho guiados e planejamento inteligente.\n\nSe você está confortável trabalhando com assistentes de codificação IA\ncomo Claude, Cursor ou GitHub Copilot, você está pronto para começar.",
166
+ bmadInstallHeader: "Instalar BMAD no seu projeto:",
167
+ bmadLearnMoreHeader: "Saiba mais:",
168
+ bmadInstalledNote: "Uma vez que o BMAD estiver instalado, esta aba mostrará todos os seus\nagentes e permitirá personalizar a voz, pretexto, reverb, personalidade\ne música de fundo de cada agente independentemente.",
169
+ receiverWhatIsTitle: "O que é o Receptor SSH?",
170
+ receiverDesc: "O Receptor SSH permite que seus servidores remotos falem através desta\nmáquina. Quando um assistente de IA em um servidor remoto precisa\nreproduzir áudio TTS, ele envia o texto via SSH para esta máquina, que\ngera e reproduz o áudio pelos seus alto-falantes localmente.\n\nIA Remota ──[SSH]──► Esta Máquina ──[piper+sox+ffmpeg]──► Seus Alto-falantes",
171
+ helpSectionGlobal: "Atalhos Globais",
172
+ helpSectionNavigation: "Atalhos de Navegação",
173
+ helpSectionColors: "Guia de Cores das Abas",
174
+ helpQuit: "Sair do console",
175
+ helpForceQuit: "Forçar saída",
176
+ helpSwitchSettings: "Ir para aba Configurações",
177
+ helpSwitchVoices: "Ir para aba Vozes",
178
+ helpSwitchMusic: "Ir para aba Música",
179
+ helpSwitchReadme: "Ir para aba Readme",
180
+ helpSwitchHelp: "Ir para aba Ajuda",
181
+ helpSwitchInstall: "Ir para aba Instalar",
182
+ helpCloseModal: "Fechar modal / voltar",
183
+ helpNavigateLists: "Navegar listas",
184
+ helpSelectActivate: "Selecionar / ativar",
185
+ helpTogglePreview: "Alternar / visualizar",
186
+ helpNextButton: "Próximo botão",
187
+ helpPrevButton: "Botão anterior",
188
+ helpOpenSearch: "Abrir busca/filtro",
189
+ helpToggleFavFilter: "Alternar filtro de favoritos (Vozes/Música)",
190
+ helpToggleFav: "Alternar favorito (aba Música)",
191
+ helpToggleMusic: "Ativar/desativar música (aba Música)",
192
+ helpColorSettings: "Rodapé da aba Configurações",
193
+ helpColorVoices: "Rodapé da aba Vozes",
194
+ helpColorMusic: "Rodapé da aba Música",
195
+ helpColorReadme: "Rodapé da aba Readme",
196
+ helpColorHelp: "Rodapé da aba Ajuda",
197
+ helpColorInstall: "Rodapé da aba Instalar",
198
+ helpSearchLabel: "Buscar:",
199
+ readmeScrollMore: "↓ Role para mais conteúdo ↓",
200
+ readmeNotFound: "*(Nenhum README.md encontrado no diretório atual)*",
201
+ bmadFooterNobmad: "[Tab] Mudar Aba [Q] Sair",
202
+ bmadFooterBmad: "[↑↓/jk] Navegar [Space] Visualizar [Enter] Configurar [A] Auto-atribuir [B] Lote [X] Redefinir [Q] Sair",
203
203
  };
@@ -1,54 +1,54 @@
1
- /**
2
- * File: src/i18n/strings.js
3
- *
4
- * Internationalization strings for the AgentVibes installer TUI.
5
- * Supports: en, es, fr, de, pt, ja, hi, zh-CN, ko
6
- *
7
- * Usage:
8
- * import { t, SUPPORTED_LANGUAGES, strings } from './i18n/strings.js';
9
- * t('es', 'welcomeTitle') // => Spanish welcome title
10
- * t('xx', 'welcomeTitle') // => falls back to English
11
- */
12
-
13
- import en from './en.js';
14
- import es from './es.js';
15
- import fr from './fr.js';
16
- import de from './de.js';
17
- import pt from './pt.js';
18
- import ja from './ja.js';
19
- import hi from './hi.js';
20
- import zhCN from './zh-CN.js';
21
- import ko from './ko.js';
22
-
23
- export const strings = { en, es, fr, de, pt, ja, hi, 'zh-CN': zhCN, ko };
24
-
25
- /**
26
- * Translate a key for a given language, falling back to English.
27
- * @param {string} lang - Language code (e.g. 'es', 'zh-CN')
28
- * @param {string} key - String key to look up
29
- * @returns {string} Translated string, or English fallback, or the key itself
30
- */
31
- export function t(lang, key) {
32
- const langStrings = strings[lang];
33
- if (langStrings && langStrings[key] !== undefined) {
34
- return langStrings[key];
35
- }
36
- // Fall back to English
37
- return strings.en[key] !== undefined ? strings.en[key] : key;
38
- }
39
-
40
- /**
41
- * Supported languages for the language chooser UI.
42
- * Each entry has: value (language code), name (display label for inquirer)
43
- */
44
- export const SUPPORTED_LANGUAGES = [
45
- { value: 'en', name: '🇺🇸 English' },
46
- { value: 'es', name: '🇪🇸 Español (Spanish)' },
47
- { value: 'fr', name: '🇫🇷 Français (French)' },
48
- { value: 'de', name: '🇩🇪 Deutsch (German)' },
49
- { value: 'pt', name: '🇧🇷 Português (Portuguese)' },
50
- { value: 'ja', name: '🇯🇵 日本語 (Japanese)' },
51
- { value: 'hi', name: '🇮🇳 हिन्दी (Hindi)' },
52
- { value: 'zh-CN', name: '🇨🇳 中文 (Chinese Simplified)' },
53
- { value: 'ko', name: '🇰🇷 한국어 (Korean)' },
54
- ];
1
+ /**
2
+ * File: src/i18n/strings.js
3
+ *
4
+ * Internationalization strings for the AgentVibes installer TUI.
5
+ * Supports: en, es, fr, de, pt, ja, hi, zh-CN, ko
6
+ *
7
+ * Usage:
8
+ * import { t, SUPPORTED_LANGUAGES, strings } from './i18n/strings.js';
9
+ * t('es', 'welcomeTitle') // => Spanish welcome title
10
+ * t('xx', 'welcomeTitle') // => falls back to English
11
+ */
12
+
13
+ import en from './en.js';
14
+ import es from './es.js';
15
+ import fr from './fr.js';
16
+ import de from './de.js';
17
+ import pt from './pt.js';
18
+ import ja from './ja.js';
19
+ import hi from './hi.js';
20
+ import zhCN from './zh-CN.js';
21
+ import ko from './ko.js';
22
+
23
+ export const strings = { en, es, fr, de, pt, ja, hi, 'zh-CN': zhCN, ko };
24
+
25
+ /**
26
+ * Translate a key for a given language, falling back to English.
27
+ * @param {string} lang - Language code (e.g. 'es', 'zh-CN')
28
+ * @param {string} key - String key to look up
29
+ * @returns {string} Translated string, or English fallback, or the key itself
30
+ */
31
+ export function t(lang, key) {
32
+ const langStrings = strings[lang];
33
+ if (langStrings && langStrings[key] !== undefined) {
34
+ return langStrings[key];
35
+ }
36
+ // Fall back to English
37
+ return strings.en[key] !== undefined ? strings.en[key] : key;
38
+ }
39
+
40
+ /**
41
+ * Supported languages for the language chooser UI.
42
+ * Each entry has: value (language code), name (display label for inquirer)
43
+ */
44
+ export const SUPPORTED_LANGUAGES = [
45
+ { value: 'en', name: '🇺🇸 English' },
46
+ { value: 'es', name: '🇪🇸 Español (Spanish)' },
47
+ { value: 'fr', name: '🇫🇷 Français (French)' },
48
+ { value: 'de', name: '🇩🇪 Deutsch (German)' },
49
+ { value: 'pt', name: '🇧🇷 Português (Portuguese)' },
50
+ { value: 'ja', name: '🇯🇵 日本語 (Japanese)' },
51
+ { value: 'hi', name: '🇮🇳 हिन्दी (Hindi)' },
52
+ { value: 'zh-CN', name: '🇨🇳 中文 (Chinese Simplified)' },
53
+ { value: 'ko', name: '🇰🇷 한국어 (Korean)' },
54
+ ];