verbalcoding 0.2.11 → 0.2.13

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 (235) hide show
  1. package/.env.example +98 -2
  2. package/README.es.md +134 -0
  3. package/README.fr.md +134 -0
  4. package/README.ja.md +134 -0
  5. package/README.ko.md +134 -0
  6. package/README.md +118 -74
  7. package/README.ru.md +134 -0
  8. package/README.zh.md +133 -0
  9. package/app-node/agent_adapters.mjs +37 -5
  10. package/app-node/agent_adapters.test.mjs +27 -1
  11. package/app-node/agent_detect.mjs +73 -0
  12. package/app-node/agent_detect.test.mjs +77 -0
  13. package/app-node/agent_routing.mjs +148 -0
  14. package/app-node/agent_routing.test.mjs +138 -0
  15. package/app-node/agent_turn.mjs +86 -0
  16. package/app-node/agent_turn.test.mjs +109 -0
  17. package/app-node/bridge_context.mjs +73 -0
  18. package/app-node/bridge_context.test.mjs +54 -0
  19. package/app-node/bridge_state.mjs +4 -0
  20. package/app-node/bridge_wireup.test.mjs +462 -0
  21. package/app-node/cli_install.test.mjs +31 -0
  22. package/app-node/cross_agent_routing.test.mjs +78 -0
  23. package/app-node/discord_command_router.mjs +204 -0
  24. package/app-node/discord_command_router.test.mjs +311 -0
  25. package/app-node/discord_voice_setup.mjs +251 -0
  26. package/app-node/discord_voice_setup.test.mjs +86 -0
  27. package/app-node/hermes_profiles.test.mjs +12 -1
  28. package/app-node/install_config.mjs +113 -3
  29. package/app-node/install_config.test.mjs +8 -0
  30. package/app-node/instance_doctor.test.mjs +9 -0
  31. package/app-node/instances.test.mjs +8 -1
  32. package/app-node/main.mjs +513 -1058
  33. package/app-node/mcp_tools.test.mjs +7 -0
  34. package/app-node/notification_handler.mjs +89 -0
  35. package/app-node/notification_handler.test.mjs +187 -0
  36. package/app-node/notify.mjs +73 -0
  37. package/app-node/notify.test.mjs +68 -0
  38. package/app-node/plan_dispatcher.mjs +215 -0
  39. package/app-node/plan_dispatcher.test.mjs +101 -0
  40. package/app-node/plan_mode.mjs +203 -0
  41. package/app-node/plan_mode.test.mjs +231 -0
  42. package/app-node/progress_handler.mjs +220 -0
  43. package/app-node/progress_handler.test.mjs +193 -0
  44. package/app-node/progress_speech.mjs +54 -32
  45. package/app-node/progress_speech.test.mjs +12 -3
  46. package/app-node/project_sessions.mjs +5 -2
  47. package/app-node/project_sessions.test.mjs +7 -0
  48. package/app-node/research_mode.mjs +282 -0
  49. package/app-node/research_mode.test.mjs +264 -0
  50. package/app-node/restart_notice.mjs +3 -0
  51. package/app-node/restart_notice.test.mjs +11 -0
  52. package/app-node/session_ontology.mjs +271 -0
  53. package/app-node/session_ontology.test.mjs +130 -0
  54. package/app-node/smart_progress.mjs +94 -0
  55. package/app-node/smart_progress.test.mjs +66 -0
  56. package/app-node/stream_sentencer.mjs +91 -0
  57. package/app-node/stream_sentencer.test.mjs +129 -0
  58. package/app-node/streaming_tts_queue.mjs +52 -0
  59. package/app-node/streaming_tts_queue.test.mjs +64 -0
  60. package/app-node/stt_whisper.mjs +24 -0
  61. package/app-node/stt_whisper.test.mjs +32 -0
  62. package/app-node/text_routing.mjs +22 -0
  63. package/app-node/text_routing.test.mjs +23 -1
  64. package/app-node/tts_backends.mjs +537 -3
  65. package/app-node/tts_backends.test.mjs +454 -0
  66. package/app-node/tts_player.mjs +164 -0
  67. package/app-node/tts_player.test.mjs +202 -0
  68. package/app-node/tts_runtime.mjs +134 -0
  69. package/app-node/tts_runtime.test.mjs +89 -0
  70. package/app-node/tts_settings.mjs +150 -3
  71. package/app-node/tts_settings.test.mjs +204 -0
  72. package/app-node/tts_voice_config.mjs +136 -2
  73. package/app-node/tts_voice_config.test.mjs +94 -0
  74. package/app-node/utterance_router.mjs +216 -0
  75. package/app-node/utterance_router.test.mjs +236 -0
  76. package/app-node/voice_autojoin.mjs +37 -0
  77. package/app-node/voice_autojoin.test.mjs +59 -0
  78. package/app-node/voice_io.mjs +272 -0
  79. package/app-node/voice_io.test.mjs +102 -0
  80. package/app-node/voice_turn_runner.mjs +449 -0
  81. package/app-node/voice_turn_runner.test.mjs +289 -0
  82. package/docs/CONFIGURATION.md +79 -96
  83. package/docs/FRESH_INSTALL.md +105 -63
  84. package/docs/HARNESSES.md +58 -0
  85. package/docs/HARNESS_AIDER.md +50 -0
  86. package/docs/HARNESS_CLAUDE.md +56 -0
  87. package/docs/HARNESS_CODEX.md +56 -0
  88. package/docs/HARNESS_CURSOR.md +45 -0
  89. package/docs/HARNESS_GEMINI.md +45 -0
  90. package/docs/HARNESS_HERMES.md +57 -0
  91. package/docs/HARNESS_OPENCLAW.md +44 -0
  92. package/docs/HARNESS_OPENCODE.md +44 -0
  93. package/docs/HERMES_VOICE.md +65 -0
  94. package/docs/MULTI_INSTANCE.md +16 -0
  95. package/docs/README.md +50 -0
  96. package/docs/RELEASE.md +42 -19
  97. package/docs/ROADMAP.md +53 -0
  98. package/docs/TROUBLESHOOTING.md +126 -0
  99. package/docs/TTS_BACKENDS.md +227 -0
  100. package/docs/USAGE.md +94 -40
  101. package/docs/assets/figures/verbalcoding-flow.svg +1 -1
  102. package/docs/i18n/AGENTS.es.md +34 -0
  103. package/docs/i18n/AGENTS.fr.md +34 -0
  104. package/docs/i18n/AGENTS.ja.md +34 -0
  105. package/docs/i18n/AGENTS.ko.md +34 -0
  106. package/docs/i18n/AGENTS.ru.md +34 -0
  107. package/docs/i18n/AGENTS.zh.md +34 -0
  108. package/docs/i18n/CONFIGURATION.es.md +25 -0
  109. package/docs/i18n/CONFIGURATION.fr.md +25 -0
  110. package/docs/i18n/CONFIGURATION.ja.md +25 -0
  111. package/docs/i18n/CONFIGURATION.ko.md +25 -0
  112. package/docs/i18n/CONFIGURATION.ru.md +25 -0
  113. package/docs/i18n/CONFIGURATION.zh.md +25 -0
  114. package/docs/i18n/FRESH_INSTALL.es.md +27 -2
  115. package/docs/i18n/FRESH_INSTALL.fr.md +27 -2
  116. package/docs/i18n/FRESH_INSTALL.ja.md +27 -2
  117. package/docs/i18n/FRESH_INSTALL.ko.md +27 -2
  118. package/docs/i18n/FRESH_INSTALL.ru.md +27 -2
  119. package/docs/i18n/FRESH_INSTALL.zh.md +27 -2
  120. package/docs/i18n/HARNESSES.es.md +58 -0
  121. package/docs/i18n/HARNESSES.fr.md +58 -0
  122. package/docs/i18n/HARNESSES.ja.md +58 -0
  123. package/docs/i18n/HARNESSES.ko.md +58 -0
  124. package/docs/i18n/HARNESSES.ru.md +58 -0
  125. package/docs/i18n/HARNESSES.zh.md +58 -0
  126. package/docs/i18n/HARNESS_AIDER.es.md +48 -0
  127. package/docs/i18n/HARNESS_AIDER.fr.md +48 -0
  128. package/docs/i18n/HARNESS_AIDER.ja.md +50 -0
  129. package/docs/i18n/HARNESS_AIDER.ko.md +50 -0
  130. package/docs/i18n/HARNESS_AIDER.ru.md +48 -0
  131. package/docs/i18n/HARNESS_AIDER.zh.md +48 -0
  132. package/docs/i18n/HARNESS_CLAUDE.es.md +55 -0
  133. package/docs/i18n/HARNESS_CLAUDE.fr.md +55 -0
  134. package/docs/i18n/HARNESS_CLAUDE.ja.md +56 -0
  135. package/docs/i18n/HARNESS_CLAUDE.ko.md +56 -0
  136. package/docs/i18n/HARNESS_CLAUDE.ru.md +55 -0
  137. package/docs/i18n/HARNESS_CLAUDE.zh.md +56 -0
  138. package/docs/i18n/HARNESS_CODEX.es.md +55 -0
  139. package/docs/i18n/HARNESS_CODEX.fr.md +55 -0
  140. package/docs/i18n/HARNESS_CODEX.ja.md +56 -0
  141. package/docs/i18n/HARNESS_CODEX.ko.md +56 -0
  142. package/docs/i18n/HARNESS_CODEX.ru.md +55 -0
  143. package/docs/i18n/HARNESS_CODEX.zh.md +56 -0
  144. package/docs/i18n/HARNESS_CURSOR.es.md +42 -0
  145. package/docs/i18n/HARNESS_CURSOR.fr.md +42 -0
  146. package/docs/i18n/HARNESS_CURSOR.ja.md +45 -0
  147. package/docs/i18n/HARNESS_CURSOR.ko.md +45 -0
  148. package/docs/i18n/HARNESS_CURSOR.ru.md +42 -0
  149. package/docs/i18n/HARNESS_CURSOR.zh.md +42 -0
  150. package/docs/i18n/HARNESS_GEMINI.es.md +44 -0
  151. package/docs/i18n/HARNESS_GEMINI.fr.md +44 -0
  152. package/docs/i18n/HARNESS_GEMINI.ja.md +45 -0
  153. package/docs/i18n/HARNESS_GEMINI.ko.md +45 -0
  154. package/docs/i18n/HARNESS_GEMINI.ru.md +44 -0
  155. package/docs/i18n/HARNESS_GEMINI.zh.md +45 -0
  156. package/docs/i18n/HARNESS_HERMES.es.md +54 -0
  157. package/docs/i18n/HARNESS_HERMES.fr.md +54 -0
  158. package/docs/i18n/HARNESS_HERMES.ja.md +57 -0
  159. package/docs/i18n/HARNESS_HERMES.ko.md +57 -0
  160. package/docs/i18n/HARNESS_HERMES.ru.md +54 -0
  161. package/docs/i18n/HARNESS_HERMES.zh.md +57 -0
  162. package/docs/i18n/HARNESS_OPENCLAW.es.md +41 -0
  163. package/docs/i18n/HARNESS_OPENCLAW.fr.md +41 -0
  164. package/docs/i18n/HARNESS_OPENCLAW.ja.md +44 -0
  165. package/docs/i18n/HARNESS_OPENCLAW.ko.md +44 -0
  166. package/docs/i18n/HARNESS_OPENCLAW.ru.md +41 -0
  167. package/docs/i18n/HARNESS_OPENCLAW.zh.md +42 -0
  168. package/docs/i18n/HARNESS_OPENCODE.es.md +41 -0
  169. package/docs/i18n/HARNESS_OPENCODE.fr.md +41 -0
  170. package/docs/i18n/HARNESS_OPENCODE.ja.md +44 -0
  171. package/docs/i18n/HARNESS_OPENCODE.ko.md +44 -0
  172. package/docs/i18n/HARNESS_OPENCODE.ru.md +41 -0
  173. package/docs/i18n/HARNESS_OPENCODE.zh.md +44 -0
  174. package/docs/i18n/HERMES_VOICE.es.md +46 -0
  175. package/docs/i18n/HERMES_VOICE.fr.md +46 -0
  176. package/docs/i18n/HERMES_VOICE.ja.md +46 -0
  177. package/docs/i18n/HERMES_VOICE.ko.md +65 -0
  178. package/docs/i18n/HERMES_VOICE.ru.md +46 -0
  179. package/docs/i18n/HERMES_VOICE.zh.md +46 -0
  180. package/docs/i18n/MULTI_INSTANCE.es.md +25 -0
  181. package/docs/i18n/MULTI_INSTANCE.fr.md +25 -0
  182. package/docs/i18n/MULTI_INSTANCE.ja.md +25 -0
  183. package/docs/i18n/MULTI_INSTANCE.ko.md +25 -0
  184. package/docs/i18n/MULTI_INSTANCE.ru.md +25 -0
  185. package/docs/i18n/MULTI_INSTANCE.zh.md +25 -0
  186. package/docs/i18n/README.es.md +20 -134
  187. package/docs/i18n/README.fr.md +20 -134
  188. package/docs/i18n/README.ja.md +20 -134
  189. package/docs/i18n/README.ko.md +20 -133
  190. package/docs/i18n/README.ru.md +20 -134
  191. package/docs/i18n/README.zh.md +20 -133
  192. package/docs/i18n/RELEASE.es.md +26 -1
  193. package/docs/i18n/RELEASE.fr.md +26 -1
  194. package/docs/i18n/RELEASE.ja.md +26 -1
  195. package/docs/i18n/RELEASE.ko.md +26 -1
  196. package/docs/i18n/RELEASE.ru.md +26 -1
  197. package/docs/i18n/RELEASE.zh.md +26 -1
  198. package/docs/i18n/TROUBLESHOOTING.es.md +39 -0
  199. package/docs/i18n/TROUBLESHOOTING.fr.md +39 -0
  200. package/docs/i18n/TROUBLESHOOTING.ja.md +39 -0
  201. package/docs/i18n/TROUBLESHOOTING.ko.md +39 -0
  202. package/docs/i18n/TROUBLESHOOTING.ru.md +39 -0
  203. package/docs/i18n/TROUBLESHOOTING.zh.md +39 -0
  204. package/docs/i18n/USAGE.es.md +25 -0
  205. package/docs/i18n/USAGE.fr.md +25 -0
  206. package/docs/i18n/USAGE.ja.md +25 -0
  207. package/docs/i18n/USAGE.ko.md +25 -0
  208. package/docs/i18n/USAGE.ru.md +25 -0
  209. package/docs/i18n/USAGE.zh.md +25 -0
  210. package/docs/superpowers/plans/2026-05-13-phase1-streaming-pipeline.md +122 -0
  211. package/docs/superpowers/plans/2026-05-13-phase10-push-notifications.md +152 -0
  212. package/docs/superpowers/plans/2026-05-13-phase2-agent-adapters.md +242 -0
  213. package/docs/superpowers/plans/2026-05-13-phase6-smart-progress.md +172 -0
  214. package/docs/superpowers/plans/2026-05-13-phase7-voice-plan-mode.md +108 -0
  215. package/docs/superpowers/plans/2026-05-14-cross-agent-voice-transfer.md +625 -0
  216. package/docs/superpowers/plans/2026-05-21-audio-overview-narrated-diffs.md +95 -0
  217. package/docs/superpowers/plans/2026-05-21-autoresearch-ontology.md +83 -0
  218. package/docs/superpowers/plans/2026-05-21-phase11-push-to-talk-wakeword-v2.md +77 -0
  219. package/docs/superpowers/plans/2026-05-21-phase12-multi-user-voice.md +147 -0
  220. package/docs/superpowers/plans/2026-05-21-phase14-verbalbench.md +136 -0
  221. package/docs/superpowers/plans/2026-05-21-phase15-phone-companion.md +72 -0
  222. package/integrations/fireredtts2/mlx_llm.py +183 -0
  223. package/integrations/fireredtts2/synth.py +156 -0
  224. package/integrations/fireredtts2/synth_mlx.py +196 -0
  225. package/integrations/mlxaudio/synth.py +74 -0
  226. package/integrations/neuttsair/synth.py +104 -0
  227. package/integrations/omnivoice/synth.py +110 -0
  228. package/package.json +7 -1
  229. package/scripts/cli.mjs +88 -3
  230. package/scripts/doctor.mjs +115 -4
  231. package/scripts/install.mjs +20 -2
  232. package/scripts/install_fireredtts2.sh +109 -0
  233. package/scripts/install_mlxaudio.sh +34 -0
  234. package/scripts/install_mossttsnano.sh +46 -0
  235. package/scripts/postinstall.mjs +34 -0
@@ -0,0 +1,44 @@
1
+ # OpenCode — Harness 说明
2
+
3
+ <p align="center">
4
+ <a href="../../README.zh.md">README</a> ·
5
+ <a href="HARNESSES.zh.md">Harness</a> ·
6
+ <a href="USAGE.zh.md">使用</a> ·
7
+ <a href="CONFIGURATION.zh.md">配置</a>
8
+ </p>
9
+
10
+ OpenCode 是开源终端编码代理。VerbalCoding 通过 `opencode run` 驱动。
11
+
12
+ ## 安装
13
+
14
+ 参考上游 OpenCode 指引,确认:
15
+
16
+ ```bash
17
+ opencode run "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 配置
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=opencode
25
+ # 可选
26
+ OPENCODE_COMMAND="opencode run" # 默认
27
+ AGENT_PROJECT_CONTEXT="..."
28
+ AGENT_WORKDIR=/Users/you/code/your-project
29
+ AGENT_CHAT_TIMEOUT_MS=45000
30
+ AGENT_TASK_TIMEOUT_MS=0
31
+ ```
32
+
33
+ ## 切到 OpenCode 的语音表述
34
+
35
+ - en: `"switch to OpenCode"`、`"ask OpenCode ..."`、`"switch to open code"`
36
+ - zh: `"切到 OpenCode"`
37
+
38
+ 别名: `opencode`、`open code`。
39
+
40
+ ## 坑
41
+
42
+ - **默认命令无会话续接。** 若 OpenCode 构建支持 resume,可改为 `OPENCODE_COMMAND="opencode run --resume"` (适配器会把 prompt 作为末尾 positional 参数)。
43
+ - **模型选择。** 若需 `--model` 等标志,直接加入 `OPENCODE_COMMAND`。
44
+ - **详细进度。** stdout/stderr 中按关键字匹配 (文件读取、网页搜索、终端)。无 `SMART_PROGRESS_API_KEY` 时 bridge 回退到原始标签。
@@ -0,0 +1,46 @@
1
+ # Voz integrada de Hermes vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.es.md">README</a> ·
6
+ <a href="README.es.md">Centro de docs</a> ·
7
+ <a href="USAGE.es.md">Uso</a> ·
8
+ <a href="CONFIGURATION.es.md">Configuración</a> ·
9
+ <a href="TROUBLESHOOTING.es.md">Solución de problemas</a>
10
+ </p>
11
+
12
+ > Hermes ya soporta canales de voz de Discord. VerbalCoding no reemplaza ese bucle básico: añade una capa de flujo de trabajo para usar agentes de programación como si fueran una llamada.
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Lo que Hermes ya hace
16
+
17
+ El gateway de Discord de Hermes Agent incluye soporte para canales de voz. Cuando el bot está en tu servidor, `/voice join` o `/voice channel` lo une al VC donde estás. Después puede transcribir con Whisper/STT y responder con TTS mediante Edge TTS, ElevenLabs, OpenAI u otros proveedores configurados.
18
+
19
+ Para una conversación de voz básica, esto ya basta:
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ ## Lo que añade VerbalCoding
26
+
27
+ | Área | Voz integrada de Hermes | VerbalCoding |
28
+ |---|---|---|
29
+ | Objetivo | Conversación general con Hermes en un VC | Flujo de trabajo tipo llamada para agentes CLI de programación |
30
+ | Comandos | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, comandos multiinstancia |
31
+ | Backend | Hermes Agent | Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw o comando personalizado |
32
+ | Sesiones | Sesión normal del gateway Hermes | Ruteo por proyecto/sesión, vínculos de canal de voz y contexto compartido voz + `!ask` cuando el backend lo soporta |
33
+ | UX de voz | STT + TTS básico | Ventanas de habla ajustadas, presets de idioma, limpieza de transcripción, espejo de texto y pruebas de voz |
34
+ | Interrupción | Comportamiento básico de reproducción | Reglas de barge-in que paran la reproducción sin matar por accidente una tarea activa del agente |
35
+ | Tareas largas | Respuesta genérica del agente | Avisos de progreso/estado, resúmenes verbose de herramientas y supresión de diffs/logs en TTS |
36
+ | Operación | Configuración del gateway Hermes | `vc doctor`, diagnósticos redactados, métricas de latencia, guía Docker UDP y salas/procesos por proyecto |
37
+
38
+ ## Cuándo elegir cada uno
39
+
40
+ Usa **Hermes integrado** si solo necesitas hablar, transcribir, responder y escuchar en un canal de voz.
41
+
42
+ Usa **VerbalCoding** si necesitas contexto de proyecto compartido entre voz y texto, varios backends CLI, presets coreano/inglés, interrupciones seguras durante tareas largas, progreso hablado, métricas de latencia y herramientas operativas.
43
+
44
+ ## Posicionamiento honesto
45
+
46
+ VerbalCoding no debería describirse como “añadir voz de Discord a Hermes desde cero”. Hermes ya tiene esa base. Mejor: VerbalCoding es una capa de workflow de voz en Discord para agentes CLI de programación; puede usar Hermes como backend por defecto y añade ruteo de proyecto, semántica de interrupción, UX de progreso, diagnósticos y cambio de backend.
@@ -0,0 +1,46 @@
1
+ # Voix intégrée Hermes vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.fr.md">README</a> ·
6
+ <a href="README.fr.md">Accueil docs</a> ·
7
+ <a href="USAGE.fr.md">Utilisation</a> ·
8
+ <a href="CONFIGURATION.fr.md">Configuration</a> ·
9
+ <a href="TROUBLESHOOTING.fr.md">Dépannage</a>
10
+ </p>
11
+
12
+ > Hermes prend déjà en charge les salons vocaux Discord. VerbalCoding ne remplace pas cette boucle de base : il ajoute une couche de workflow pour travailler avec des agents de code comme lors d’un appel.
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Ce que Hermes fait déjà
16
+
17
+ Le gateway Discord de Hermes Agent inclut la prise en charge des salons vocaux. Une fois le bot dans le serveur, `/voice join` ou `/voice channel` le fait rejoindre le VC où vous vous trouvez. Hermes peut ensuite transcrire via Whisper/STT et répondre en TTS avec Edge TTS, ElevenLabs, OpenAI ou un autre provider configuré.
18
+
19
+ Pour une conversation vocale simple, cette boucle suffit déjà :
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ ## Ce que VerbalCoding ajoute
26
+
27
+ | Domaine | Voix intégrée Hermes | VerbalCoding |
28
+ |---|---|---|
29
+ | Objectif | Conversation Hermes générale dans un VC | Workflow type appel téléphonique avec agents CLI de code |
30
+ | Commandes | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, commandes multi-instance |
31
+ | Backend | Hermes Agent | Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw ou commande personnalisée |
32
+ | Sessions | Session gateway Hermes normale | Routage projet/session, liaison de salons vocaux, contexte partagé voix + `!ask` quand le backend le permet |
33
+ | UX vocale | STT + TTS de base | Fenêtres d’énoncé réglées, préréglages de langue, nettoyage de transcription, miroir texte, tests de voix |
34
+ | Interruption | Lecture vocale de base | Règles de barge-in qui arrêtent la lecture sans tuer par erreur une tâche agent active |
35
+ | Tâches longues | Réponse agent générique | Annonces de progression/état, résumés verbose des outils, suppression des diffs/logs en TTS |
36
+ | Opérations | Configuration du gateway Hermes | `vc doctor`, diagnostics redactés, métriques de latence, guide Docker UDP, salons/processus par projet |
37
+
38
+ ## Quand choisir quoi
39
+
40
+ Choisissez **la voix intégrée Hermes** si vous voulez seulement parler, transcrire, répondre et réécouter dans un salon vocal.
41
+
42
+ Choisissez **VerbalCoding** si vous avez besoin d’un contexte projet partagé entre voix et texte, de plusieurs backends CLI, de préréglages coréen/anglais, d’interruptions sûres pendant les longues tâches, de progression vocale, de métriques de latence et d’outils d’exploitation.
43
+
44
+ ## Positionnement honnête
45
+
46
+ VerbalCoding ne doit pas être présenté comme “l’ajout de la voix Discord à Hermes depuis zéro”. Hermes fournit déjà cette base. La description juste : VerbalCoding est une couche de workflow vocal Discord pour agents CLI de code, capable d’utiliser Hermes comme backend par défaut et d’ajouter routage projet, sémantique d’interruption, UX de progression, diagnostics et changement de backend.
@@ -0,0 +1,46 @@
1
+ # Hermes 標準音声 vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ja.md">README</a> ·
6
+ <a href="README.ja.md">ドキュメント</a> ·
7
+ <a href="USAGE.ja.md">利用ガイド</a> ·
8
+ <a href="CONFIGURATION.ja.md">設定</a> ·
9
+ <a href="TROUBLESHOOTING.ja.md">トラブルシューティング</a>
10
+ </p>
11
+
12
+ > Hermes はすでに Discord 音声チャンネルに対応しています。VerbalCoding はその基本ループを置き換えるものではなく、コーディングエージェントと電話のように作業するためのワークフローレイヤーです。
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Hermes がすでにできること
16
+
17
+ Hermes Agent の Discord gateway には音声チャンネル対応があります。bot がサーバーに入っていれば、`/voice join` または `/voice channel` で、実行したユーザーが現在入っている VC に参加できます。その後、Whisper/STT で発話を文字起こしし、Edge TTS、ElevenLabs、OpenAI など設定済みの TTS provider で音声回答を再生できます。
18
+
19
+ 基本のライブ音声会話だけなら、この流れで十分です。
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ ## VerbalCoding が追加するもの
26
+
27
+ | 領域 | Hermes 標準音声 | VerbalCoding |
28
+ |---|---|---|
29
+ | 主目的 | Discord VC での一般的な Hermes 会話 | CLI エージェントと電話のように行うコーディング作業 |
30
+ | コマンド | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, multi-instance commands |
31
+ | バックエンド | Hermes Agent | Hermes Agent、Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw、custom command |
32
+ | セッション | 通常の Hermes gateway session | プロジェクト/セッションルーティング、VC バインド、対応バックエンドでの音声 + `!ask` テキスト共有コンテキスト |
33
+ | 音声 UX | 基本 STT + TTS | 調整済み発話ウィンドウ、言語プリセット、transcript cleanup、text mirror、voice test |
34
+ | 割り込み | 基本的な再生動作 | 再生だけ止め、実行中の agent task を誤って殺さない barge-in ルール |
35
+ | 長い作業 | 通常の agent 応答 | 進捗/状態音声、verbose tool-progress 要約、diff/log を TTS で読まない保護 |
36
+ | 運用 | Hermes gateway の設定 | `vc doctor` auto-fix、redacted diagnostics、latency metrics、Docker UDP ガイド、multi-bot/project rooms |
37
+
38
+ ## どちらを選ぶべきか
39
+
40
+ **Hermes 標準音声**は、単純な「話す → 文字起こし → 回答 → 音声再生」で十分なときに向いています。
41
+
42
+ **VerbalCoding**は、プロジェクトごとの部屋、音声とテキストの共有コンテキスト、複数 CLI エージェント、韓国語/英語プリセット、長時間作業中の安全な割り込み、進捗音声、運用診断が必要なときに向いています。
43
+
44
+ ## 正直な位置づけ
45
+
46
+ VerbalCoding を「Hermes に Discord 音声を初めて追加するもの」と説明すべきではありません。Hermes にはすでに基本機能があります。より正確には、VerbalCoding は Hermes を既定バックエンドとして使える、CLI コーディングエージェント向けの Discord 音声ワークフローレイヤーです。
@@ -0,0 +1,65 @@
1
+ # Hermes 기본 음성 vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ko.md">README</a> ·
6
+ <a href="README.ko.md">문서 허브</a> ·
7
+ <a href="USAGE.ko.md">사용법</a> ·
8
+ <a href="CONFIGURATION.ko.md">설정</a> ·
9
+ <a href="TROUBLESHOOTING.ko.md">문제 해결</a>
10
+ </p>
11
+
12
+ > Hermes는 이미 Discord 음성 채널을 지원합니다. VerbalCoding은 그 기본 음성 루프를 대체하는 것이 아니라, 코딩 에이전트와 통화하듯 일하기 위한 워크플로 레이어입니다.
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Hermes가 이미 하는 일
16
+
17
+ Hermes Agent에는 Discord gateway 기반 음성 채널 지원이 들어 있습니다. 봇이 서버에 들어온 뒤 `/voice join` 또는 `/voice channel`을 실행하면, 사용자가 현재 들어가 있는 음성 채널에 참가할 수 있습니다. 그 다음 Whisper/STT로 말을 전사하고, Edge TTS, ElevenLabs, OpenAI 등 설정된 TTS provider로 음성 답변을 재생합니다.
18
+
19
+ 기본 라이브 음성 대화만 필요하면 이 흐름으로 충분합니다.
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ 요구사항이 여기까지라면 Hermes 기본 음성 모드를 먼저 쓰면 됩니다.
26
+
27
+ ## VerbalCoding이 더하는 것
28
+
29
+ VerbalCoding은 같은 큰 루프를 유지하되, CLI 에이전트용 코딩 워크플로 런타임으로 다듬습니다.
30
+
31
+ | 영역 | Hermes 기본 음성 | VerbalCoding |
32
+ |---|---|---|
33
+ | 주 목적 | Discord VC에서 일반 Hermes 대화 | CLI 에이전트와 통화하듯 코딩 작업 |
34
+ | 명령 | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, multi-instance 명령 |
35
+ | 백엔드 | Hermes Agent | Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw, custom command |
36
+ | 세션 모델 | 일반 Hermes gateway 세션 | 프로젝트/세션 라우팅, 음성 채널 바인딩, 지원되는 경우 음성 + `!ask` 텍스트 공유 컨텍스트 |
37
+ | 음성 UX | 기본 STT + TTS | 조정된 발화 종료 판단, 언어 프리셋, transcript cleanup, text mirror, voice test |
38
+ | 끼어들기 | 기본 재생 동작 | 재생은 멈추되 실행 중인 에이전트 작업은 실수로 죽이지 않는 바지인 규칙 |
39
+ | 긴 코딩 작업 | 일반 agent 응답 | 진행/상태 음성, verbose tool-progress 요약, diff/log TTS 낭독 방지 |
40
+ | 운영 | Hermes gateway 설정과 config | `vc doctor` auto-fix, redacted diagnostics, latency metrics, Docker UDP 안내, multi-bot/project rooms |
41
+
42
+ ## 무엇을 선택할까
43
+
44
+ **Hermes 기본 음성**이 맞는 경우:
45
+
46
+ - Discord 음성 채널 하나에서 간단히 말하고 답변을 듣고 싶다;
47
+ - speak → transcribe → answer → speak-back 흐름이면 충분하다;
48
+ - 추가 소프트웨어를 최소화하고 공식 Hermes gateway 경로를 쓰고 싶다;
49
+ - Hermes 세션과 도구만 쓰면 된다.
50
+
51
+ **VerbalCoding**이 맞는 경우:
52
+
53
+ - 음성과 텍스트가 코딩 프로젝트 컨텍스트를 함께 공유해야 한다;
54
+ - Hermes 외 Claude Code, Codex 등 여러 CLI 에이전트 백엔드를 쓰고 싶다;
55
+ - 프로젝트별 Discord 방이나 여러 bot instance가 필요하다;
56
+ - 한국어/영어 언어 프리셋과 런타임 voice control이 필요하다;
57
+ - 긴 작업 중 끼어들기 처리와 취소 의미를 세밀하게 다루고 싶다;
58
+ - 거대한 diff, stack trace, log를 음성으로 읽지 않고 진행 상황만 듣고 싶다;
59
+ - `vc doctor`, latency summary, container voice-network 안내 같은 운영 도구가 필요하다.
60
+
61
+ ## 정직한 포지셔닝
62
+
63
+ VerbalCoding을 “Hermes에 Discord 음성을 처음 붙이는 프로젝트”라고 설명하면 안 됩니다. Hermes는 이미 그 기본 기능을 갖고 있습니다. 더 정확한 설명은 다음과 같습니다.
64
+
65
+ > VerbalCoding은 CLI 코딩 에이전트용 Discord 음성 워크플로 레이어입니다. Hermes를 기본 백엔드로 사용할 수 있고, 긴 소프트웨어 작업을 위해 프로젝트 라우팅, 끼어들기 의미론, 진행 UX, 진단, 백엔드 전환을 추가합니다.
@@ -0,0 +1,46 @@
1
+ # Встроенный голос Hermes vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ru.md">README</a> ·
6
+ <a href="README.ru.md">Центр документации</a> ·
7
+ <a href="USAGE.ru.md">Использование</a> ·
8
+ <a href="CONFIGURATION.ru.md">Конфигурация</a> ·
9
+ <a href="TROUBLESHOOTING.ru.md">Диагностика</a>
10
+ </p>
11
+
12
+ > Hermes уже поддерживает голосовые каналы Discord. VerbalCoding не заменяет этот базовый цикл, а добавляет workflow-слой для работы с coding-агентами как по телефону.
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Что Hermes уже умеет
16
+
17
+ Discord gateway в Hermes Agent умеет работать с голосовыми каналами. Когда bot находится на сервере, команды `/voice join` или `/voice channel` подключают его к VC, где сейчас находится пользователь. Затем Hermes распознаёт речь через Whisper/STT и отвечает голосом через Edge TTS, ElevenLabs, OpenAI или другой настроенный TTS provider.
18
+
19
+ Для базового живого голосового чата этого уже достаточно:
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ ## Что добавляет VerbalCoding
26
+
27
+ | Область | Встроенный голос Hermes | VerbalCoding |
28
+ |---|---|---|
29
+ | Цель | Обычный разговор с Hermes в Discord VC | Телефонный workflow для CLI coding-агентов |
30
+ | Команды | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, multi-instance команды |
31
+ | Backend | Hermes Agent | Hermes Agent, Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw или custom command |
32
+ | Сессии | Обычная Hermes gateway session | Маршрутизация project/session, привязка VC, общий контекст голоса + `!ask` где backend это поддерживает |
33
+ | Голосовой UX | Базовые STT + TTS | Настроенные окна реплик, языковые пресеты, очистка transcript, text mirror, voice tests |
34
+ | Прерывания | Базовое поведение playback | Barge-in правила: остановить воспроизведение, не убив случайно активную agent task |
35
+ | Долгие задачи | Обычный ответ agent | Голосовой progress/status, verbose сводки tool-progress, защита от чтения diff/log через TTS |
36
+ | Операции | Настройка Hermes gateway | `vc doctor`, redacted diagnostics, latency metrics, Docker UDP guidance, multi-bot/project rooms |
37
+
38
+ ## Что выбрать
39
+
40
+ Выбирайте **встроенный голос Hermes**, если нужен простой цикл “сказать → распознать → ответить → озвучить” в одном голосовом канале.
41
+
42
+ Выбирайте **VerbalCoding**, если нужен общий проектный контекст для голоса и текста, несколько CLI backend, корейские/английские пресеты, безопасные прерывания во время долгих задач, голосовой прогресс, latency metrics и операционные инструменты.
43
+
44
+ ## Честное позиционирование
45
+
46
+ VerbalCoding не стоит описывать как “добавление Discord voice в Hermes с нуля”. У Hermes уже есть базовая функция. Точнее: VerbalCoding — это Discord voice workflow layer для CLI coding-агентов; он может использовать Hermes как backend по умолчанию и добавляет project routing, interruption semantics, progress UX, diagnostics и backend switching.
@@ -0,0 +1,46 @@
1
+ # Hermes 内置语音 vs VerbalCoding
2
+
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.zh.md">README</a> ·
6
+ <a href="README.zh.md">文档中心</a> ·
7
+ <a href="USAGE.zh.md">使用指南</a> ·
8
+ <a href="CONFIGURATION.zh.md">配置</a> ·
9
+ <a href="TROUBLESHOOTING.zh.md">故障排查</a>
10
+ </p>
11
+
12
+ > Hermes 已经支持 Discord 语音频道。VerbalCoding 不是替代这个基础能力,而是在其上提供面向编码代理的“电话式”工作流层。
13
+ <!-- /readme-glow-up:intro -->
14
+
15
+ ## Hermes 已经支持什么
16
+
17
+ Hermes Agent 的 Discord gateway 内置了语音频道支持。bot 加入服务器后,用户可以通过 `/voice join` 或 `/voice channel` 让它加入自己当前所在的 VC。随后 Hermes 会用 Whisper/STT 转写语音,并通过 Edge TTS、ElevenLabs、OpenAI 等已配置的 TTS provider 在语音频道中回答。
18
+
19
+ 如果你只需要基础实时语音对话,这个闭环已经足够:
20
+
21
+ ```text
22
+ Discord VC → Hermes STT → Hermes agent → TTS → Discord VC playback
23
+ ```
24
+
25
+ ## VerbalCoding 增加什么
26
+
27
+ | 领域 | Hermes 内置语音 | VerbalCoding |
28
+ |---|---|---|
29
+ | 主要目标 | 在 Discord VC 中进行普通 Hermes 对话 | 像打电话一样使用 CLI 编码代理工作 |
30
+ | 命令 | `/voice join`, `/voice channel`, `/voice leave`, `/voice tts` | `vc setup`, `vc start`, `!join`, `!ask`, `!session`, `!verbose`, `!latency`, 多实例命令 |
31
+ | 后端 | Hermes Agent | Hermes Agent、Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 或自定义命令 |
32
+ | 会话模型 | 普通 Hermes gateway 会话 | 项目/会话路由、语音频道绑定、支持时共享语音 + `!ask` 文本上下文 |
33
+ | 语音体验 | 基础 STT + TTS | 调整过的发话窗口、语言预设、转写清理、文本镜像、语音测试 |
34
+ | 打断 | 基础播放行为 | 停止当前播放,但避免误杀正在运行的 agent 任务 |
35
+ | 长任务 | 普通 agent 回复 | 进度/状态语音、verbose 工具进度摘要、避免朗读巨大 diff/log |
36
+ | 运维 | Hermes gateway 配置 | `vc doctor` 自动修复、脱敏诊断、延迟指标、Docker UDP 指南、多 bot/项目房间 |
37
+
38
+ ## 如何选择
39
+
40
+ 选择 **Hermes 内置语音**:你只需要一个 bot 在一个 Discord 语音频道中完成简单的“说话、转写、回答、朗读”。
41
+
42
+ 选择 **VerbalCoding**:你需要项目级房间、语音与文本共享上下文、多 CLI agent 后端、韩/英语言预设、长任务中的安全打断、进度语音、延迟指标和 `vc doctor` 这类运维工具。
43
+
44
+ ## 准确定位
45
+
46
+ 不要把 VerbalCoding 描述成“给 Hermes 从零添加 Discord 语音”。Hermes 已经有基础语音功能。更准确的说法是:VerbalCoding 是面向 CLI 编码代理的 Discord 语音工作流层,可以使用 Hermes 作为默认后端,并为长时间软件工作添加项目路由、打断语义、进度 UX、诊断和后端切换。
@@ -1,5 +1,30 @@
1
1
  # VerbalCoding multiinstancia
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.es.md">README</a> ·
6
+ <a href="README.es.md">Centro de documentación</a> ·
7
+ <a href="FRESH_INSTALL.es.md">Fresh Install</a> ·
8
+ <a href="USAGE.es.md">Usage</a> ·
9
+ <a href="CONFIGURATION.es.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.es.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.es.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > Ruta rápida: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## Flujo setup actualizado
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ No edites `.env` manualmente: usa `vc setup token` para guardar `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID` y `vc setup channels` para guardar `AUTO_JOIN_VOICE_CHANNELS`. Si Docker muestra `Cannot perform IP discovery - socket closed`, usa `network_mode: "host"` en Linux Compose y elimina `ports:`.
27
+
3
28
  VerbalCoding puede ejecutar múltiples procesos independientes de puente de voz de Discord. Cada proceso sigue siendo el puente Node de instancia única existente, pero carga un archivo `instances/<name>.env` diferente y usa un token de bot de Discord diferente.
4
29
 
5
30
  Usa esto cuando cada proyecto deba ocupar permanentemente su propio canal de voz de Discord y escribir en su propio canal/hilo de transcripción.
@@ -1,5 +1,30 @@
1
1
  # VerbalCoding multi-instance
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.fr.md">README</a> ·
6
+ <a href="README.fr.md">Centre de documentation</a> ·
7
+ <a href="FRESH_INSTALL.fr.md">Fresh Install</a> ·
8
+ <a href="USAGE.fr.md">Usage</a> ·
9
+ <a href="CONFIGURATION.fr.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.fr.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.fr.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > Chemin rapide: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## Flux setup actuel
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ Ne modifiez pas `.env` à la main : utilisez `vc setup token` pour enregistrer `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID`, et `vc setup channels` pour `AUTO_JOIN_VOICE_CHANNELS`. Si Docker affiche `Cannot perform IP discovery - socket closed`, utilisez `network_mode: "host"` avec Compose sous Linux et supprimez `ports:`.
27
+
3
28
  VerbalCoding peut exécuter plusieurs processus indépendants de passerelle vocale Discord. Chaque processus reste la passerelle Node à instance unique existante, mais il charge un fichier `instances/<name>.env` différent et utilise un jeton de bot Discord différent.
4
29
 
5
30
  Utilisez ceci quand chaque projet doit occuper de façon permanente son propre salon vocal Discord et écrire dans son propre salon/fil de transcription.
@@ -1,5 +1,30 @@
1
1
  # マルチインスタンス VerbalCoding
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ja.md">README</a> ·
6
+ <a href="README.ja.md">ドキュメントハブ</a> ·
7
+ <a href="FRESH_INSTALL.ja.md">Fresh Install</a> ·
8
+ <a href="USAGE.ja.md">Usage</a> ·
9
+ <a href="CONFIGURATION.ja.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.ja.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.ja.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > 最短経路: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## 最新の setup フロー
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ 手動で `.env` を編集せず、`vc setup token` で `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID`、`vc setup channels` で `AUTO_JOIN_VOICE_CHANNELS` を保存してください。Docker で `Cannot perform IP discovery - socket closed` が出る場合、Linux Compose サービスに `network_mode: "host"` を使い、`ports:` を削除します。
27
+
3
28
  VerbalCoding は、複数の独立した Discord 音声ブリッジプロセスを実行できます。各プロセスは既存の単一インスタンス Node ブリッジのままですが、異なる `instances/<name>.env` ファイルを読み込み、異なる Discord ボットトークンを使います。
4
29
 
5
30
  各プロジェクトが専用の Discord 音声チャンネルに常駐し、専用の文字起こしチャンネル/スレッドへ書き込む必要がある場合に使います。
@@ -1,5 +1,30 @@
1
1
  # Multi-instance VerbalCoding
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ko.md">README</a> ·
6
+ <a href="README.ko.md">문서 허브</a> ·
7
+ <a href="FRESH_INSTALL.ko.md">Fresh Install</a> ·
8
+ <a href="USAGE.ko.md">Usage</a> ·
9
+ <a href="CONFIGURATION.ko.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.ko.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.ko.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > 빠른 경로: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## 최신 setup 흐름
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ 수동 `.env` 편집 대신 `vc setup token`으로 `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID`를 저장하고, `vc setup channels`로 `AUTO_JOIN_VOICE_CHANNELS`를 저장하세요. Docker에서 `Cannot perform IP discovery - socket closed`가 보이면 Linux Compose 서비스에 `network_mode: "host"`를 사용하고 `ports:`를 제거하세요.
27
+
3
28
  VerbalCoding은 여러 개의 독립적인 Discord 음성 브리지 프로세스를 실행할 수 있습니다. 각 프로세스는 여전히 기존 단일 인스턴스 Node 브리지이지만, 서로 다른 `instances/<name>.env` 파일을 로드하고 서로 다른 Discord 봇 토큰을 사용합니다.
4
29
 
5
30
  각 프로젝트가 자체 Discord 음성 채널을 영구적으로 차지하고 자체 전사 채널/스레드에 기록해야 할 때 사용하세요.
@@ -1,5 +1,30 @@
1
1
  # Многоэкземплярный VerbalCoding
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.ru.md">README</a> ·
6
+ <a href="README.ru.md">Центр документации</a> ·
7
+ <a href="FRESH_INSTALL.ru.md">Fresh Install</a> ·
8
+ <a href="USAGE.ru.md">Usage</a> ·
9
+ <a href="CONFIGURATION.ru.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.ru.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.ru.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > Быстрый путь: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## Актуальный setup-процесс
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ Не редактируйте `.env` вручную: используйте `vc setup token` для `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID` и `vc setup channels` для `AUTO_JOIN_VOICE_CHANNELS`. Если Docker показывает `Cannot perform IP discovery - socket closed`, в Linux Compose используйте `network_mode: "host"` и удалите `ports:`.
27
+
3
28
  VerbalCoding может запускать несколько независимых процессов голосового bridge Discord. Каждый процесс всё ещё является существующим одноэкземплярным Node bridge, но загружает другой файл `instances/<name>.env` и использует другой токен Discord-бота.
4
29
 
5
30
  Используйте это, когда каждый проект должен постоянно занимать собственный голосовой канал Discord и писать в собственный канал/тред расшифровок.
@@ -1,5 +1,30 @@
1
1
  # 多实例 VerbalCoding
2
2
 
3
+ <!-- readme-glow-up:intro -->
4
+ <p align="center">
5
+ <a href="../../README.zh.md">README</a> ·
6
+ <a href="README.zh.md">文档中心</a> ·
7
+ <a href="FRESH_INSTALL.zh.md">Fresh Install</a> ·
8
+ <a href="USAGE.zh.md">Usage</a> ·
9
+ <a href="CONFIGURATION.zh.md">Configuration</a> ·
10
+ <a href="TROUBLESHOOTING.zh.md">Troubleshooting</a> ·
11
+ <a href="MULTI_INSTANCE.zh.md">Multi-Instance</a>
12
+ </p>
13
+
14
+ > 最快路径: `npm install -g verbalcoding@latest → vc setup → vc doctor → vc start`
15
+ <!-- /readme-glow-up:intro -->
16
+
17
+ ## 最新 setup 流程
18
+
19
+ ```bash
20
+ npm install -g verbalcoding@latest
21
+ vc setup
22
+ vc doctor
23
+ vc start
24
+ ```
25
+
26
+ 不要手动编辑 `.env`;使用 `vc setup token` 保存 `DISCORD_BOT_TOKEN`/`DISCORD_CLIENT_ID`,使用 `vc setup channels` 保存 `AUTO_JOIN_VOICE_CHANNELS`。如果 Docker 中出现 `Cannot perform IP discovery - socket closed`,请在 Linux Compose 服务中使用 `network_mode: "host"` 并移除 `ports:`。
27
+
3
28
  VerbalCoding 可以运行多个相互独立的 Discord 语音桥接进程。每个进程仍然是现有的单实例 Node 桥接,但会加载不同的 `instances/<name>.env` 文件,并使用不同的 Discord 机器人令牌。
4
29
 
5
30
  当每个项目都应长期占用自己的 Discord 语音频道,并写入自己的转写频道/thread 时,请使用此模式。